public void SetCursorPosition(Hd44780Position position)
{
var row = position.Row;
if (row < 0 || height <= row)
row = height - 1;
var column = position.Column;
if (column < 0 || width <= column)
column = width - 1;
var address = column + GetLcdAddressLocation(row);
WriteByte(address, false);
currentPosition = new Hd44780Position { Row = row, Column = column };
}