I finally found the manual online here:
http://bitsavers.org/pdf/motorola/M6...lMan_Mar75.pdf
The problem was that for push I was decrementing the stack pointer before
saving the value (and doing the opposite for pull). I fixed that and now it
works!