I have some menu routines on a 16/2 or 16/4 that work
with vertical or horizontal selection by moving cursor,
and display is buffered to eliminate effects (digit flicker)
from unnecessary write activity.
Originally done for PSOC 1 but apply to 3/4/5 as well.
General written in C.