.TITLE BYTMOV MOVE A BYTE ARRAY .SBTTL GENERAL INFORMATION .IDENT /01/ .LIST ME ;+ ; AUTHOR: KERRY WYCKOFF ;- ;+ ; CHANGES: NONE ;- ;+ ; MODULE FUNCTION: ; ; THIS ROUTINE MOVES A SPECIFIED NUMBER OF BYTES ; FROM A SOURCE ARRAY TO A TARGET ARRAY. ; ;- ;+ ; ASSEMBLY INSTRUCTIONS: ; ; MAC BYTMOV=BYTMOV ; ;- ;+ ; CALL FORMAT: ; ; CALL BYTMOV(LENGTH,SOURCE,TARGET) ; ;- .PAGE .SBTTL SYMBOL, MACRO, DATA DEFINITIONS ;+ ; LOCAL SYMBOL DEFINITIONS: NONE ;- ;+ ; LOCAL MACROS: NONE ;- ;+ ; LOCAL DATA BLOCKS: NONE ;- .PAGE .SBTTL FUNCTION DETAILS ;+ ; FUNCTION DETAILS: ; ; ; INPUTS: ; ; R5 CONTAINS THE ADDRESS OF THE PARAMETER LIST ; 1) NUMBER OF PARAMETERS ; 2) WORD: ADDRESS OF TOTAL ARRAY LENGTH ; 3) BYTE: ADDRESS OF SOURCE ARRAY ; 4) BYTE: ADDRESS OF TARGET ARRAY ; ; OUTPUTS: NONE ; ; SIDE EFFECTS: ; ; R5 HAS BEEN ALTERED TO INCREASE SPEED ; ;- .PAGE .SBTTL CODE SECTION .PSECT W08COD .ENABL LSB BYTMOV:: TST (R5)+ ; BUMP R5 MOV @(R5)+,R1 ; R1=#BYTES TO MOVE BLE 99$ ; IF LE 0, RETURN MOV (R5)+,R2 ; R2=ADDRESS OF SOURCE MOV (R5),R3 ; R3=ADDRESS OF TARGET 1$: MOVB (R2)+,(R3)+ ; MOVE A BYTE SOB R1,1$ ; LOOP UNTIL DONE 99$: RTS PC ; RETURN .END