c64-livecoding/wip-hugo/routines/memory/memset.s
hugova 7f56f90613 Changed 16-bit value syntax from using > and < in addresses to using +1.
This was recomended by dicander and duunqnd because  A =$ABAC
looks like one address and not 2 zero-page addresses.
2025-04-28 12:56:52 +02:00

31 lines
533 B
ArmAsm
Executable file

;;; -*- 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"
;;put what to recursive write in Y.
LDX #$0
TAY
loop:
;;write to byte
TYA
STA (B_start ,X)
Add_16 B_start, B_start +1, #$01, #$00
LDA B_start
CMP B_end
BEQ test
jmp loop
test:
LDA B_start +1
CMP B_end +1
BEQ end
jmp loop
end:
;;Dont forget to rewrite last byte
TYA
STA (B_start, X)
RTS
.endproc