Right off the bat, the button value for square is 8000, not 0400.

Also, just make a new t register and load the offset in it. Do the same as you would to normally pair up address + hex.

Just unDMA and joker it, if need be joker the subroutine.