mirror of
https://github.com/stid/woz64.git
synced 2024-06-06 21:29:29 +00:00
34 lines
893 B
NASM
34 lines
893 B
NASM
|
#importonce
|
||
|
.filenamespace Memory
|
||
|
|
||
|
#import "mem_map.asm"
|
||
|
|
||
|
* = * "Memory Routines"
|
||
|
|
||
|
// move memory down
|
||
|
//
|
||
|
// from = source start address
|
||
|
// to = destination start address
|
||
|
// size = number of bytes to move
|
||
|
//
|
||
|
clone:
|
||
|
ldy #0
|
||
|
ldx MemMap.MEMORY_SPACE.size
|
||
|
beq md2
|
||
|
md1: lda (MemMap.MEMORY_SPACE.from),y // move a page at a time
|
||
|
sta (MemMap.MEMORY_SPACE.to),y
|
||
|
iny
|
||
|
bne md1
|
||
|
inc MemMap.MEMORY_SPACE.from+1
|
||
|
inc MemMap.MEMORY_SPACE.to+1
|
||
|
dex
|
||
|
bne md1
|
||
|
md2: ldx MemMap.MEMORY_SPACE.size+1
|
||
|
beq md4
|
||
|
md3: lda (MemMap.MEMORY_SPACE.from),y // move the remaining bytes
|
||
|
sta (MemMap.MEMORY_SPACE.to),y
|
||
|
iny
|
||
|
dex
|
||
|
bne md3
|
||
|
md4: rts
|