How to read HD44780 LCD programmatically

Another idea: (thinking out loud :wink:
should there be a separate current position for read and one separate current position for write?
Or do they share one current position?

The latter is easier, less footprint, but the first one might have some extra value..