.CM  SCRIPT , Version - 1.1 , last edited by barbara
.ad 8
.bm 8
.fm 4
.bt $Copyright (c) 1995-2005 SAP AG$$Page %$
.tm 12
.hm 6
.hs 3
.tt 1 $SQL$Project Distributed Database System$VSP10$
.tt 2 $$$
.tt 3 $$RTE-Extension-10$1995-04-19$
***********************************************************
.nf

.nf

.nf

    ========== licence begin  GPL
    Copyright (c) 1995-2005 SAP AG

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    ========== licence end
.fo


.fo


.fo
.nf
.sp
Module  : RTE-Extension-10
=========
.sp
Purpose : Routines to move and s10fil any type written in PASCAL
.CM *-END-* purpose -------------------------------------
.sp
.cp 3
Define  :
 
        PROCEDURE
              s10fil (
                    size     : tsp00_Int4;
                    VAR m    : tsp00_MoveObj;
                    pos      : tsp00_Int4;
                    len      : tsp00_Int4;
                    fillchar : char);
 
        PROCEDURE
              s10fil1 (
                    size     : tsp00_Int4;
                    VAR m    : tsp00_MoveObj;
                    pos      : tsp00_Int4;
                    len      : tsp00_Int4;
                    fillchar : char);
 
        PROCEDURE
              s10fil2 (
                    size     : tsp00_Int4;
                    VAR m    : tsp00_MoveObj;
                    pos      : tsp00_Int4;
                    len      : tsp00_Int4;
                    fillchar : char);
 
        PROCEDURE
              s10fil3 (
                    size     : tsp00_Int4;
                    VAR m    : tsp00_MoveObj;
                    pos      : tsp00_Int4;
                    len      : tsp00_Int4;
                    fillchar : char);
 
        PROCEDURE
              s10fil4 (
                    size     : tsp00_Int4;
                    VAR m    : tsp00_MoveObj;
                    pos      : tsp00_Int4;
                    len      : tsp00_Int4;
                    fillchar : char);
 
        PROCEDURE
              s10fil5 (
                    size     : tsp00_Int4;
                    VAR m    : tsp00_MoveObj;
                    pos      : tsp00_Int4;
                    len      : tsp00_Int4;
                    fillchar : char);
 
        PROCEDURE
              s10fil6 (
                    size     : tsp00_Int4;
                    VAR m    : tsp00_MoveObj;
                    pos      : tsp00_Int4;
                    len      : tsp00_Int4;
                    fillchar : char);
 
        PROCEDURE
              s10mvc (
                    size1    : tsp00_Int4;
                    size2    : tsp00_Int4;
                    VAR val1 : tsp00_TakCacheBuf;
                    p1       : tsp00_Int4;
                    VAR val2 : tsp00_TakCacheBuf;
                    p2       : tsp00_Int4;
                    cnt      : tsp00_Int4);
 
        PROCEDURE
              s10mv (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
                    VAR source  : tsp00_MoveObj;    source_pos : tsp00_Int4;
                    VAR destin  : tsp00_MoveObj;    destin_pos : tsp00_Int4;
                    length      : tsp00_Int4);
 
        PROCEDURE
              s10mv1 (source_upb : tsp00_Int4;      destin_upb : tsp00_Int4;
                    VAR source   : tsp00_MoveObj;   source_pos : tsp00_Int4;
                    VAR destin   : tsp00_MoveObj;   destin_pos : tsp00_Int4;
                    length       : tsp00_Int4);
 
        PROCEDURE
              s10mv2 (source_upb : tsp00_Int4;      destin_upb : tsp00_Int4;
                    VAR source   : tsp00_MoveObj;   source_pos : tsp00_Int4;
                    VAR destin   : tsp00_MoveObj;   destin_pos : tsp00_Int4;
                    length       : tsp00_Int4);
 
        PROCEDURE
              s10mv3 (source_upb : tsp00_Int4;      destin_upb : tsp00_Int4;
                    VAR source   : tsp00_MoveObj;   source_pos : tsp00_Int4;
                    VAR destin   : tsp00_MoveObj;   destin_pos : tsp00_Int4;
                    length       : tsp00_Int4);
 
        PROCEDURE
              s10mv4 (source_upb : tsp00_Int4;      destin_upb : tsp00_Int4;
                    VAR source   : tsp00_MoveObj;   source_pos : tsp00_Int4;
                    VAR destin   : tsp00_MoveObj;   destin_pos : tsp00_Int4;
                    length       : tsp00_Int4);
 
        PROCEDURE
              s10mv5 (source_upb : tsp00_Int4;      destin_upb : tsp00_Int4;
                    VAR source   : tsp00_MoveObj;   source_pos : tsp00_Int4;
                    VAR destin   : tsp00_MoveObj;   destin_pos : tsp00_Int4;
                    length       : tsp00_Int4);
 
        PROCEDURE
              s10mv6 (source_upb : tsp00_Int4;      destin_upb : tsp00_Int4;
                    VAR source   : tsp00_MoveObj;   source_pos : tsp00_Int4;
                    VAR destin   : tsp00_MoveObj;   destin_pos : tsp00_Int4;
                    length       : tsp00_Int4);
 
        PROCEDURE
              s10mv7 (source_upb : tsp00_Int4;      destin_upb : tsp00_Int4;
                    VAR source   : tsp00_MoveObj;   source_pos : tsp00_Int4;
                    VAR destin   : tsp00_MoveObj;   destin_pos : tsp00_Int4;
                    length       : tsp00_Int4);
 
        PROCEDURE
              s10mv8 (source_upb : tsp00_Int4;      destin_upb : tsp00_Int4;
                    VAR source   : tsp00_MoveObj;   source_pos : tsp00_Int4;
                    VAR destin   : tsp00_MoveObj;   destin_pos : tsp00_Int4;
                    length       : tsp00_Int4);
 
        PROCEDURE
              s10mv9 (source_upb : tsp00_Int4;      destin_upb : tsp00_Int4;
                    VAR source   : tsp00_MoveObj;   source_pos : tsp00_Int4;
                    VAR destin   : tsp00_MoveObj;   destin_pos : tsp00_Int4;
                    length       : tsp00_Int4);
 
        PROCEDURE
              s10mv10 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv11 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv12 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv13 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv14 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv15 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv16 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv17 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv18 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv19 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv20 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv21 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv22 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv23 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv24 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv25 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv26 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv27 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv28 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv29 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mv30 (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source    : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin    : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length        : tsp00_Int4);
 
        PROCEDURE
              s10mvr (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
                    VAR source   : tsp00_MoveObj;  source_pos : tsp00_Int4;
                    VAR destin   : tsp00_MoveObj;  destin_pos : tsp00_Int4;
                    length       : tsp00_Int4);
 
.CM *-END-* define --------------------------------------
.sp;.cp 3
Use     :
 
        FROM
              RTE_driver : VEN102;
 
        PROCEDURE
              sqlabort;
 
.CM *-END-* use -----------------------------------------
.sp;.cp 3
Synonym :
 
.CM *-END-* synonym -------------------------------------
.sp;.cp 3
Author  : 
.sp
.cp 3
Created : 1979-06-07
.sp
.cp 3
Version : 1995-04-19
.sp
.cp 3
Release :  6.1.1 	 Date : 1995-04-19
.sp
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Specification:
 
The position information POS indicates the first byte of the field
concerned.
The first byte in the buffer is addressable via POS = 1.
.sp 2
PROCEDURE  S10FIL:
.sp 1
A move object m is filled with fillchar of the length len, starting at
position pos.  When len <= 0, nofilling occurs.
A check is run to find out whether the position plus len exceeds the
move limits.
.sp 4
PROCEDURE  S10MV..:
.sp
Moves the strings from left to right and checks the size areas
(i.e. the first bytes are moved first).
.sp
.nf
   size1  : indicates the maximum length of the source object
   size2  : indicates the maximum length of the destination object.
   val1   : source object
   val2   : destination object
   p1     : first position in val1 from which moving is to take place
   p2     : first position in val2 to which moving is to take place
   anz    : number of bytes by which object is to be moved
.sp
A check is run to find out whether the positions and move limits for
val1 and val2 are exceeded and whether the number of bytes to be
moved is > 0.
.sp 2
   S10MVC  is for moving the cache buffer (maxcachelength)
          (approx. 12 buffers).
.sp 4
PROCEDURE  S10MVR :
.sp
Moves the strings from right to left and checks the size areas.
.sp
.nf
   size1  : indicates the maximum length of the source object
   size2  : indicates the maximum length of the destination object.
   val1   : source object
   val2   : destination object
   p1     : first position in val1 from which moving is to take place
   p2     : first position in val2 to which moving is to take place
   anz    : number of bytes by which object is to be moved
.sp
A check is run to find out whether the positions and move limits for
val1 and val2 are exceeded and whether the number of bytes to be
moved is > 0.
.CM *-END-* specification -------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Description:
 
 
.CM *-END-* description ---------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.nf
.oc _/1
Structure:
 
.CM *-END-* structure -----------------------------------
.sp 2
**********************************************************
.sp
.cp 10
.nf
.oc _/1
.CM -lll-
Code    :
 
 
(*------------------------------*) 
 
PROCEDURE
      s10fil (
            size     : tsp00_Int4;
            VAR m    : tsp00_MoveObj;
            pos      : tsp00_Int4;
            len      : tsp00_Int4;
            fillchar : char);
 
VAR
      i : tsp00_Int4;
 
BEGIN
IF  (pos+len-1 > size) OR
    (pos <= 0) OR (len < 0)
THEN
    sqlabort
ELSE
    FOR i := 1 TO len DO
        m[ pos+i-1 ] := fillchar;
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10fil *)
 
(*------------------------------*) 
 
PROCEDURE
      s10fil1 (
            size     : tsp00_Int4;
            VAR m    : tsp00_MoveObj;
            pos      : tsp00_Int4;
            len      : tsp00_Int4;
            fillchar : char);
 
VAR
      i : tsp00_Int4;
 
BEGIN
IF  (pos+len-1 > size) OR
    (pos <= 0) OR (len < 0)
THEN
    sqlabort
ELSE
    FOR i := 1 TO len DO
        m[ pos+i-1 ] := fillchar;
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10fil1 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10fil2 (
            size     : tsp00_Int4;
            VAR m    : tsp00_MoveObj;
            pos      : tsp00_Int4;
            len      : tsp00_Int4;
            fillchar : char);
 
VAR
      i : tsp00_Int4;
 
BEGIN
IF  (pos+len-1 > size) OR
    (pos <= 0) OR (len < 0)
THEN
    sqlabort
ELSE
    FOR i := 1 TO len DO
        m[ pos+i-1 ] := fillchar;
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10fil2 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10fil3 (
            size     : tsp00_Int4;
            VAR m    : tsp00_MoveObj;
            pos      : tsp00_Int4;
            len      : tsp00_Int4;
            fillchar : char);
 
VAR
      i : tsp00_Int4;
 
BEGIN
IF  (pos+len-1 > size) OR
    (pos <= 0) OR (len < 0)
THEN
    sqlabort
ELSE
    FOR i := 1 TO len DO
        m[ pos+i-1 ] := fillchar;
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10fil3 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10fil4 (
            size     : tsp00_Int4;
            VAR m    : tsp00_MoveObj;
            pos      : tsp00_Int4;
            len      : tsp00_Int4;
            fillchar : char);
 
VAR
      i : tsp00_Int4;
 
BEGIN
IF  (pos+len-1 > size) OR
    (pos <= 0) OR (len < 0)
THEN
    sqlabort
ELSE
    FOR i := 1 TO len DO
        m[ pos+i-1 ] := fillchar;
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10fil4 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10fil5 (
            size     : tsp00_Int4;
            VAR m    : tsp00_MoveObj;
            pos      : tsp00_Int4;
            len      : tsp00_Int4;
            fillchar : char);
 
VAR
      i : tsp00_Int4;
 
BEGIN
IF  (pos+len-1 > size) OR
    (pos <= 0) OR (len < 0)
THEN
    sqlabort
ELSE
    FOR i := 1 TO len DO
        m[ pos+i-1 ] := fillchar;
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10fil5 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10fil6 (
            size     : tsp00_Int4;
            VAR m    : tsp00_MoveObj;
            pos      : tsp00_Int4;
            len      : tsp00_Int4;
            fillchar : char);
 
VAR
      i : tsp00_Int4;
 
BEGIN
IF  (pos+len-1 > size) OR
    (pos <= 0) OR (len < 0)
THEN
    sqlabort
ELSE
    FOR i := 1 TO len DO
        m[ pos+i-1 ] := fillchar;
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10fil6 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mvc (
            size1    : tsp00_Int4; size2 : tsp00_Int4;
            VAR val1 : tsp00_TakCacheBuf; p1 : tsp00_Int4;
            VAR val2 : tsp00_TakCacheBuf; p2  :tsp00_Int4;
            cnt      : tsp00_Int4);
 
VAR
      i  : tsp00_Int4;
      n  : tsp00_Int4;
      i1 : tsp00_Int4;
      n1 : tsp00_Int4;
      i2 : tsp00_Int4;
      n2 : tsp00_Int4;
 
BEGIN
n := cnt - 1;
IF  (p1+n > size1) OR (p2+n > size2) OR (cnt < 0)
    OR (p1 <= 0) OR (p2 <= 0)
THEN
    sqlabort
ELSE
    BEGIN
    i1 := ((p1 - 1) DIV mxsp_buf) + 1;
    n1 := ((p1 - 1) MOD mxsp_buf) + 1;
    i2 := ((p2 - 1) DIV mxsp_buf) + 1;
    n2 := ((p2 - 1) MOD mxsp_buf) + 1;
    FOR i := 1  TO  cnt  DO
        BEGIN
        val2.buf[ i2, n2 ] := val1.buf[ i1, n1 ];
        n2 := n2 + 1;
        IF  n2 > mxsp_buf
        THEN
            BEGIN
            n2 := 1;
            i2 := i2 + 1;
            END;
        (*ENDIF*) 
        n1 := n1 + 1;
        IF  n1 > mxsp_buf
        THEN
            BEGIN
            n1 := 1;
            i1 := i1 + 1;
            END;
        (*ENDIF*) 
        END;
    (*ENDFOR*) 
    END;
(*ENDIF*) 
END; (* s10mvc *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source  : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin  : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length      : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv1 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source   : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin   : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length       : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv1 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv2 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source   : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin   : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length       : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv2 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv3 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source   : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin   : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length       : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv3 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv4 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source   : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin   : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length       : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv4 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv5 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source   : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin   : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length       : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv5 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv6 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source   : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin   : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length       : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv6 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv7 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source   : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin   : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length       : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv7 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv8 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source   : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin   : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length       : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv8 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv9 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source   : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin   : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length       : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv9 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv10 (source_upb : tsp00_Int4;      destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;   source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;   destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv10 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv11 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv11 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv12 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv12 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv13 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv13 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv14 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv14 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv15 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv15 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv16 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv16 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv17 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv17 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv18 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv18 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv19 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv19 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv20 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv20 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv21 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv21 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv22 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv22 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv23 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv23 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv24 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv24 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv25 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv25 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv26 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv26 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv27 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv27 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv28 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv28 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv29 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv29 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mv30 (source_upb : tsp00_Int4;       destin_upb : tsp00_Int4;
            VAR source    : tsp00_MoveObj;    source_pos : tsp00_Int4;
            VAR destin    : tsp00_MoveObj;    destin_pos : tsp00_Int4;
            length        : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := 0 TO n DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mv30 *)
 
(*------------------------------*) 
 
PROCEDURE
      s10mvr (source_upb : tsp00_Int4;     destin_upb : tsp00_Int4;
            VAR source   : tsp00_MoveObj;  source_pos : tsp00_Int4;
            VAR destin   : tsp00_MoveObj;  destin_pos : tsp00_Int4;
            length       : tsp00_Int4);
 
VAR
      i : tsp00_Int4;
      n : tsp00_Int4;
 
BEGIN
n := length - 1;
IF  (source_pos + n > source_upb) OR (source_pos <= 0) OR
    (destin_pos + n > destin_upb) OR (destin_pos <= 0) OR (length < 0)
THEN
    sqlabort
ELSE
    FOR i := n DOWNTO 0 DO
        destin [destin_pos + i] := source [source_pos + i]
    (*ENDFOR*) 
(*ENDIF*) 
END; (* s10mvr *)
 
.CM *-END-* code ----------------------------------------
.SP 2 
***********************************************************
*-PRETTY-*  statements    :        205
*-PRETTY-*  lines of code :       1028        PRETTY  3.09 
*-PRETTY-*  lines in file :       1429         1992-11-23 
.PA 
