10 ; This is a position independent subroutine¢20 ; found in DATA statements line numbered 250 and 260¢30 ; Calling Sequence from BASIC is:¢40 ; A = USR(ADR($STR),Start Addr,Count)¢50 ;¢60 *= $600 ;can go anywhere¢70 PLA ;ignore argument count¢80 PLA ;save lo-byte of dest addr¢90 STA $CC¢0100 PLA ;save hi-byte of dest addr¢0110 STA $CB¢0120 PLA ;save total to be moved¢0130 STA $CE ;*¢0140 PLA ;save total to be moved¢0150 STA $CD ; *¢0160 LDX $CE ; count of bytes to move¢0170 LDY #0 ; init index¢0180 LDA #0 ; init character to be moved¢0190 MOV STA ($CB),Y ; move data¢0200 DEY ; decrement index¢0210 BNE MOV ; go move next character¢0220 INC $CC ; incr dest addr l0-byte¢0230 DEX ; decr lo-byte count to move¢0240 BMI EXIT¢0250 BNE MOV ; go move next character¢0260 LDY $CD ; hi-byte of count to move¢0270 BNE MOV ; go move next character¢0280 EXIT DEC $CC ; decr lo-byte dest addr¢0290 LDY #0¢0300 STA ($CB),Y¢0310 RTS ; return to BASIC¢0320 .END¢