;;; -*- Mode: asm; indent-tabs-mode: t; tab-width: 8 -*- ;; Sets memory in A to all addresses from B_start to B_end ;; Modifies A, X and B_start .proc memset .include "mem.inc" LDY #$00 loop: 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 A_start + 1 jmp change_length loop_end: RTS .endproc