My little LCD menu. Several options and features.

if (N < 8){
mySerial.print("?y0?x00 "); // cursor to beginning of line 1 and writes blank space
mySerial.print("?y1?x00");
Remainder = (N % 8); // % sign is modulo operator - calculates remainder
// now print the remainder
mySerial.print("?"); // first half of the custom character command
mySerial.print(Remainder, DEC); // prints the custom character equal to remainder
delay(10);

}
else{
mySerial.print("?y1?x00?7"); // cursor to beginning of line 1 and writes black character
mySerial.print("?y0?x00");
Remainder = (N % 8); // % sign is modulo operator - calculates remainder
// now print the remainder
mySerial.print("?"); // first half of the custom character command
mySerial.print(Remainder, DEC); // prints the custom character equal to remainder
delay(10);

}

}
delay(50);
for ( N = 0; N <= 15; N++){
mySerial.print("?y1?x00"); // cursor to beginning of line 1
delay(10);

if (N < 8){
mySerial.print("?y0?x00 "); // cursor to beginning of line 1 and writes blank space
mySerial.print("?y1?x00");
Remainder = (N % 8); // % sign is modulo operator - calculates remainder
// now print the remainder
mySerial.print("?"); // first half of the custom character command
mySerial.print(Remainder, DEC); // prints the custom character equal to remainder
delay(10);

}
else{
mySerial.print("?y1?x00?7"); // cursor to beginning of line 1 and writes black character
mySerial.print("?y0?x00");
Remainder = (N % 8); // % sign is modulo operator - calculates remainder
// now print the remainder
mySerial.print("?"); // first half of the custom character command
mySerial.print(Remainder, DEC); // prints the custom character equal to remainder
delay(10);

}

}
delay(100);

for ( N = 15; N >= 0; N--){ // 16 chars * 8 bits each = 80
mySerial.print("?y1?x00"); // cursor to beginning of line 1
delay(10);

if (N < 8){
mySerial.print("?y0?x00 "); // cursor to beginning of line 1 and writes blank space
mySerial.print("?y1?x00");
Remainder = (N % 8); // % sign is modulo operator - calculates remainder
// now print the remainder
mySerial.print("?"); // first half of the custom character command
mySerial.print(Remainder, DEC); // prints the custom character equal to remainder
delay(10);

}
else{
mySerial.print("?y1?x00?7"); // cursor to beginning of line 1 and writes black character
mySerial.print("?y0?x00");
Remainder = (N % 8); // % sign is modulo operator - calculates remainder
// now print the remainder
mySerial.print("?"); // first half of the custom character command
mySerial.print(Remainder, DEC); // prints the custom character equal to remainder
delay(10);

}

}
delay(1000);
}

/*
Note the line pair first seen as:
mySerial.print("?"); // first half of the custom character command
mySerial.print(Remainder, DEC); // prints the custom character equal to remainder

This is a clever technique to use the variable "Remainder" to print a custom character
that depends on the (integer) value of "Remainder" using the ?# command where # is expected to be
an integer constant in the range #=0 to #=7.
*/

Sorry for all the posts, the forum wouldn't let me put it one post.