Proper shader code makes no difference if sprites are animated or not.

Just use the standard shader functions and you will save yourself a lot of work. Correctly sending texture coordinates looks like this:

Out.Tex = DoTexture(inTex);

A8 and A7 are different engines and of course handle rendering in many different ways. A8 loads all frames in a single texture, A7 used a separate texture for every frame. But this is mostly irrelevant for your shader code because the standard shader functions take care of all such differences.