i mean, setCursor(50,0) that means, its the 51th (virtual) block
So did you actually try this?
Or at least look at the code that implements this in
the library you are using?
Go have a look, it is easy to find and you will see how it works.
If using the one supplied with the IDE,
the code is down in {installdir}/LiquidCrystal/LiquidCystal.cpp
It uses the SET DDRAM ADDRESS command.
The final address is created by adding the address for the given row
than adding in the column offset.
In the LiquidCrystal library that comes with the Arduino IDE,
there is no bounds checking on the column parameter.
--- bill