
This was recomended by dicander and duunqnd because A =$ABAC looks like one address and not 2 zero-page addresses.
31 lines
533 B
ArmAsm
Executable file
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
|