One thing may help a little.. you need to change the rom page to
$d before the call and set it back at the end. This screwed me up
before. you should do this:
push af ;your code
push hl
push bc
in a,(5) ;added
push af
ld a,$d
out (5),a
call $46bb ;original
call $4a33
call _getkey
pop af ;added
out (5),a
pop af ;original
pop hl
pop bc
That should fix some problems you are having.. :)