2013-06-04, 11:44 PM
LCD Wrote:Okay, so I do now know which one was not working... LD registerpair,(IX+offset) is invalid. Then this should work:Ok, I like this. My two cents: I think it's better to FASCALL it and use the POP sequence in this case:
Code:sub cpymempaged(src as Uinteger,des as Uinteger,length as Uinteger,bank as ubyte) asm ld a,(ix+11) ld bc,32765 out (c),a ld h,(ix+5) ld l,(ix+4) ld d,(ix+7) ld e,(ix+6) ld b,(ix+9) ld c,(ix+8) ldir ld a,(23388) ld bc,32765 out (c),a end asm end sub
Code:
sub fastcall cpymempaged(src as Uinteger,des as Uinteger,length as Uinteger,bank as ubyte)
asm
ex de, hl ; de = src
pop hl ; RET address
pop af ; bank
ld bc,32765
out (c),a
pop bc ; length
ex (sp), hl ; hl = des, RET addr back in the stack
ex de, hl ; hl = src, de = dest
ldir
ld a,(23388)
ld bc,32765
out (c),a
end asm
end sub
