I debugged an issue related to a RAM function failing after seemingly unrelated changes caused the starting address of a block of RAM used to hold a function to shift. When the block was aligned to even bytes the function executed flawlessly, but starting at an odd location caused Illegal Address (or Illegal Opcode, I don't remember) resets. My question is why does 16-bit alignment work?