Something perhaps few people know : if A7 points to an odd address and you byte access it, it will still work !
This will just add/subtract 2 to it as usual, allowing you to read/write one byte out of two (this time at an odd address).
But you must be *very* careful because no other stack access must be made while you do that