39 lines
787 B
ArmAsm
Executable file
39 lines
787 B
ArmAsm
Executable file
;;; -*- Mode: asm; indent-tabs-mode: t; tab-width: 8 -*-
|
|
|
|
;;##### HANDLES BIG MEMORY MANAGMENTS ############
|
|
;;Sets big barts of memory to a certain byte.
|
|
.proc memset
|
|
Address_start = $FBFC
|
|
Address_end = $FDFE
|
|
;;Writes data in A
|
|
;;Adress start: $FC, $FB
|
|
;;Adress end: $FE, $FD
|
|
|
|
;;Example [ $FC =$44, $FB =$00, $FE =$45, $FD =$01, A =0]
|
|
;;writes zeros in memory from $4400 to $4501.
|
|
|
|
;;put what to recursive write in Y.
|
|
LDX #$0
|
|
TAY
|
|
loop:
|
|
;;write to byte
|
|
TYA
|
|
STA ($FB ,X)
|
|
|
|
Add_16 >Address_start, <Address_start, #$01, #$00
|
|
|
|
LDA >Address_start
|
|
CMP >Address_end
|
|
BEQ test
|
|
jmp loop
|
|
test:
|
|
LDA <Address_start
|
|
CMP <Address_end
|
|
BEQ end
|
|
jmp loop
|
|
end:
|
|
;;Dont forget to rewrite last byte
|
|
TYA
|
|
STA ($FB, X)
|
|
RTS
|
|
.endproc
|