BGGETで取れる値は単純なキャラ値ではなくアトリビュート(回転・反転)が入っているので、 BGGET(BG,X,Y) == &H9F ではなく、 (BGGET(BG,X,Y) AND &HFFF) == &H9F でないとキャラ値は取れませんが、それではないですか?