gbdk-releases/gbdk-lib/libc/gb/cpy_data.s
2015-01-10 16:25:08 +01:00

42 lines
493 B
ArmAsm

.include "global.s"
;; BANKED: checked
.area _BASE
;; Copy part (size = DE) of the VRAM from (BC) to (HL)
.copy_vram::
1$:
LDH A,(.STAT)
AND #0x02
JR NZ,1$
LD A,(BC)
LD (HL+),A
INC BC
DEC DE
LD A,D
OR E
JR NZ,1$
RET
_set_data::
_get_data::
PUSH BC
LDA HL,9(SP) ; Skip return address and registers
LD D,(HL) ; DE = len
DEC HL
LD E,(HL)
DEC HL
LD B,(HL) ; BC = src
DEC HL
LD C,(HL)
DEC HL
LD A,(HL-) ; HL = dst
LD L,(HL)
LD H,A
CALL .copy_vram
POP BC
RET