; MOVE - BYTE TRANSFER ; ; THIS IS ONE OF A SET OF BYTE MANIPULATION ROUTINES IN WHICH THE ; BEGINNING OF A STRING IS SPECIFIED BY AN ADDRESS,COUNT PAIR A,K WHERE ; A IS A BASE ADDRESS (OF A VARIABLE OR ARRAY) AND K IS A TWO-BYTE ; INTEGER WORD SPECIFYING AT WHICH BYTE OF A THE STRING BEGINS. K MAY BE ; POSITIVE, ZERO, OR NEGATIVE. K=1 MEANS THE FIRST BYTE OF A. ; ; CALL MOVE(A1,K1,A2,K2,L) ; ; THIS ROUTINE MOVES L BYTES FROM A1,K1 TO A2,K2. ; ; A1,K1 - SPECIFIES THE BEGINNING OF THE SOURCE STRING. A1 MAY BE ; A LITERAL CONSTANT. ; A2,K2 - SPECIFIES THE BEGINNING OF THE DESTINATION STRING. ; L - A TWO-BYTE INTEGER COUNT OF THE NUMBER OF BYTES TO MOVE. ; IF L IS ZERO OR NEGATIVE, NO BYTES ARE MOVED. ; ; THIS ROUTINE DOES NOTHING IF PASSED THE WRONG NUMBER OF ARGUMENTS. ; ; THE SOURCE AND DESTINATION STRINGS MAY OVERLAP. FOR EXAMPLE, BYTES ; IN AN ARRAY MAY BE SHIFTED EITHER "FORWARD" OR "BACKWARD" INTACT. THE ; ROUTINE DECIDES WHETHER TO START THE MOVE WITH THE FIRST BYTE OR THE LAST ; BYTE.