.TITLE MOVES. PLM RUNTIME LIBRARY: MOVB. ET AL. ;----------------------------------------------------------------------- ; ; D I S C L A I M E R N O T I C E ; ------------------- ----------- ; ; This document and/or portions of the material and data furnished ; herewith, was developed under sponsorship of the U. S. Government. ; Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior ; University, nor their employees, nor their respective contractors, ; subcontractors, or their employees, makes any warranty, express or ; implied, or assumes any liability or responsibility for accuracy, ; completeness or usefulness of any information, apparatus, product ; or process disclosed, or represents that its use will not infringe ; privately-owned rights. Mention of any product, its manufacturer, ; or suppliers shall not, nor is it intended to, imply approval, dis- ; approval, or fitness for any particular use. The U. S. and the ; University at all times retain the right to use and disseminate same ; for any purpose whatsoever. Such distribution shall be made by the ; National Energy Software Center at the Argonne National Laboratory ; and only subject to the distributee furnishing satisfactory proof ; that he has a valid license from the Intel Corporation in effect. ; ;----------------------------------------------------------------------- .PSECT PLMRUN_CODE,RD,NOWRT,EXE,GBL,CON,LONG ; ; CALL MOVB(SOURCE,DESTINATION,COUNT) ; SOURCE=4 ; POINTER. DESTINATION=8 ; POINTER. COUNT=12 ; WORD. .ENTRY MOVB.,^M CMPL SOURCE(AP),DESTINATION(AP) BLEQU 1$ ; ; NO OVERLAP POSSIBLE. ; MOVC3 COUNT(AP),@SOURCE(AP),@DESTINATION(AP) RET ; ; OVERLAP POSSIBLE. ; 1$: MOVZWL COUNT(AP),R0 BEQL 3$ MOVL SOURCE(AP),R1 MOVL DESTINATION(AP),R3 2$: MOVB (R1)+,(R3)+ SOBGTR R0,2$ 3$: RET ; ; CALL MOVRB(SOURCE,DESTINATION,COUNT) ; .ENTRY MOVRB.,^M CMPL SOURCE(AP),DESTINATION(AP) BGEQU 1$ ; ; NO OVERLAP POSSIBLE. ; MOVC3 COUNT(AP),@SOURCE(AP),@DESTINATION(AP) RET ; ; OVERLAP POSSIBLE. ; 1$: MOVZWL COUNT(AP),R0 BEQL 3$ ADDL3 R0,SOURCE(AP),R1 ADDL3 R0,DESTINATION(AP),R3 2$: MOVB -(R1),-(R3) SOBGTR R0,2$ 3$: RET ; ; CALL MOVW(SOURCE,DESTINATION,COUNT) ; .ENTRY MOVW.,^M MOVZWL COUNT(AP),R0 BEQL 3$ MOVL SOURCE(AP),R1 MOVL DESTINATION(AP),R3 2$: MOVW (R1)+,(R3)+ SOBGTR R0,2$ 3$: RET ; ; CALL MOVRW(SOURCE,DESTINATION,COUNT) ; .ENTRY MOVRW.,^M MOVZWL COUNT(AP),R0 BEQL 3$ ADDL3 R0,SOURCE(AP),R1 ADDL2 R0,R1 ADDL3 R0,DESTINATION(AP),R3 ADDL2 R0,R3 2$: MOVW -(R1),-(R3) SOBGTR R0,2$ 3$: RET .END