Need help on ATI fragment shader

Now I try to do simple dependent texture on my R8500 and catalyst 3.4 but it doesn’t work.
All I’ve got is black surface.

my code :

glBindFragmentShaderATI(idMyShader);
glBeginFragmentShaderATI();
glSampleMapATI(GL_REG_1_ATI, GL_TEXTURE1_ARB, GL_SWIZZLE_STR_ATI);
glColorFragmentOp2ATI(GL_MOVE_ATI, GL_REG_2_ATI, GL_NONE, GL_NONE,
GL_REG_3_ATI, GL_NONE, GL_NONE);
glSampleMapATI(GL_REG_0_ATI, GL_REG_1_ATI, GL_SWIZZLE_STR_ATI);
glEndFragmentShaderATI();

It doesn’t work so I try to map base texture only.

glBeginFragmentShaderATI();
glSampleMapATI(GL_REG_0_ATI, GL_TEXTURE1_ARB, GL_SWIZZLE_STR_ATI);
glEngFragmentShaderATI();

It still doesn’t work.
The results are the same.

I’m sure that I bound the textures right coz
when I disable GL_FRAGMENT_SHADER_ATI
in my code the textures are mapped on surface correctly.

I really need to get this working. Any help would be much appreciated.

do you call glBeginShader / glEndShader EVERY FRAME or do you call this pair ONCE in an initialization process ?

FYI , callling this line :
glSampleMapATI(GL_REG_0_ATI, GL_TEXTURE1_ARB, GL_SWIZZLE_STR_ATI);
has the effect of sampling TEXTURE0 with coordinates from TEXTURE1, if ever allowed. Is it what you want ?