User Tools

Site Tools


base:use_shy_as_sty_abs_x

This is an old revision of the document!


Using SHY as sta abs,y

The 6510 doesn't have a sty abs,x. So instead you would normally do something like this:

tay
sta address,x

Which takes 7 cycles. But instead you can do this, which only takes 5:

shy address,x

However, there's a little catch. The Y value is and'ed with the high byte of the address. And to make it even more confusing, it's actually the high byte + 1. So if you store it in $fe00, the value is and'ed with $ff, and therefore unaffected. But since you don't always use all the 8 bits, other addresses might work as well. E.g. if your values are C64 colors, which are between $00 and $0f, the upper 4 bits don't matter. So in that case all pages ending in $e will work, i.e. $0e00, $1e00, etc.

base/use_shy_as_sty_abs_x.1510791961.txt.gz · Last modified: 2017-11-16 01:26 by cruzer