*DECK IMNS
IDENT IMNS
*CALL COPYRITE CDCNET - COPYRIGHT CONTROL DATA. 1992.
ENTRY IMNS
SYSCOM B1
TITLE IMNS - MOVE NON-OVERLAPPING STRING
COMMENT IMNS - MOVE NON-OVERLAPPING STRING.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1994.
SPACE 4,10
** IMNS - MOVE NON-OVERLAPPING STRING.
*
* MOVE DATA FROM A SOURCE BUFFER TO A DESTINATION BUFFER.
*
* *SYMPL* CALL.
*
* IMNS (NUMBITS, SRCBUF, SRCBIT, DSTBUF, DSTBIT);
*
* ENTRY NUMBITS = NUMBER OF BITS TO MOVE.
* SRCBUF = ADDRESS OF THE SOURCE BUFFER.
* SRCBIT = STARTING BIT POSITION IN THE SOURCE BUFFER
* FIRST WORD.
* DSTBUF = ADDRESS OF THE DESTINATION BUFFER.
* DSTBIT = STARTING BIT POSITION IN THE DESTINATION
* BUFFER FIRST WORD.
*
* EXIT SRCBUF = NEXT WORD ADDRESS OF THE SOURCE BUFFER.
* SRCBIT = NEXT BIT POSITION IN THE SOURCE BUFFER.
* DSTBUF = NEXT WORD ADDRESS OF THE DESTINATION BUFFER.
* DSTBIT = NEXT BIT POSITION IN THE DESTINATION BUFFER
* FIRST WORD.
*
* CALLS XMNS=
*
* USES A1, A2, A3, A5, A6.
* B1, B2, B4.
* X0, X1, X3, X4, X5, X6.
*
IMNS SPACE 4,10
IMNS SUBR ENTRY/EXIT
SB1 1
SX6 A1 SAVE PARAMETER ARRAY ADDRESS
SA6 PARRAY
SA2 A1 GET NUMBER OF BITS TO MOVE
SA2 X1
BX0 X2
SA2 A1+B1 GET SOURCE BUFFER ADDRESS
SA3 A2+B1 GET SOURCE STARTING BIT
SA2 X2
SA4 X3
SB2 X4
SA3 A3+B1 GET DESTINATION BUFFER ADDRESS
SA4 X3
SA3 A3+B1 GET DESTINATION STARTING BIT
SA5 X3
SB4 X5
RJ =XMNS= MOVE DATA
SA1 PARRAY
SX6 X2
SA3 X1+B1 SET SOURCE BUFFER NEW POSITION
SA6 X3
SX6 B2
SA3 X1+2
SA6 X3 SET SOURCE NEW BIT POSITION
SX6 X4
SA3 X1+3 SET DESTINATION BUFFER NEW POSITION
SA6 X3
SX6 B4
SA3 X1+4
SA6 X3 SET DST BIT POSITION
EQ IMNSX RETURN
PARRAY BSS 1 PARAMETER ARRAY ADDRESS
END
*WEOR