hey, have a look into the manual
ret = tex2D(sampler_billy, uv);
this is the way to load and display your texture (stretched).
if you multiply the uv vector by texsize.xy*texsize_billy.zw
ret = tex2D(sampler_billy, 0.5 + (uv-0.5)*texsize.xy*texsize_billy.zw);
your texture should be scaled to its original size.
now just add a float2(offsetx,offsety) to move it around.
Moreover you can pass these values via the q1-q32 variables from the per-frame code to the shader.
ret = tex2D(sampler_billy, 0.5 + (uv-0.5)*texsize.xy*texsize_billy.zw + _qa.xy);
(with q1 = offset_x and q2 = offset_y in the per-frame code)
and as a little homework... go figure out the difference between
(do you incidentally try kidding me? - the examples in the preset authoring guide are not just by accident also with "billy" or what?)