Files
GB-GameOfLife/Code/utils.asm

66 lines
888 B
NASM

INCLUDE "hardware.inc"
EXPORT MemoryCopy
SECTION "Memory Copy", ROM0
; de = destination
; hl = source
; bc = count
MemoryCopy:
ld a, [hl+]
ld [de], a
inc de
dec bc
ld a, b
or c
jr nz, MemoryCopy
ret
EXPORT VideoMemoryCopy
SECTION "Video Memory Copy", ROM0
; de = destination
; hl = source
; bc = count
VideoMemoryCopy:
ldh a, [rSTAT]
and a, STATF_BUSY
jr nz, VideoMemoryCopy
ld a, [hl+]
ld [de], a
inc de
dec bc
ld a, b
or c
jr nz, VideoMemoryCopy
ret
EXPORT MemorySet
SECTION "Memory Set", ROM0
; hl = destination
; d = data
; bc = count
MemorySet:
ld a, d
ld [hl+], a
dec bc
ld a, b
or c
jr nz, MemorySet
ret
EXPORT VideoMemorySet
SECTION "Video Memory Set", ROM0
; hl = destination
; d = data
; bc = count
VideoMemorySet:
ldh a, [rSTAT]
and a, STATF_BUSY
jr nz, VideoMemorySet
ld a, d
ld [hl+], a
dec bc
ld a, b
or c
jr nz, VideoMemorySet
ret