;;; -*- Mode: asm; indent-tabs-mode: t; tab-width: 8 -*- ;;Move length bytes from A_start address to lenght bytes starting at B_start. .proc memcpy .include "mem.inc" LDY #$00 loop: LDA (B_start), Y STA (A_start), Y INY BEQ y_overflow change_length: DEC length BNE loop DEC length +1 BPL loop JMP loop_end y_overflow: ;; Y is now 0 INC B_start + 1 INC A_start + 1 jmp change_length loop_end: RTS .endproc