66 lines
888 B
NASM
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
|