Also, wenn ich das übersetze und mir die .lst anschau, bleibt von dem
if(0 < zaehler < 20) { zaehler++; } else ....
nur der { zaehler++; } übrig

Probier mal statt
if(0 < zaehler < 20)

if ( (zaehler > 0 ) && (zaehler < 20 ) )

Zumindest mir kommt das vertrauter vor, will aber nix heissen.