Using ANSI escape sequences and ASCII control characters

As some of you may have noticed, I have started to develop an ANSI/ASCII compatible lcd control panel. Here is a sneak preview:

For this panel, I am trying to use all classic elements of the 70s 80s and 90s to control terminals, such as using \b for back space, \n for new line, \f for clear screen (form feed), and as many ANSI escape sequences to control cursor as I can. Here is a reference on wiki:

http://en.wikipedia.org/wiki/ANSI_escape_sequence

I think it is an awesome way to introduce retro stuff to the newbies. Besides, there exist lots of serial displays some even with keys like mine (not as cool mine with the arrangement, LEDs and buzzer :)). They each use their special character sets to control the display. Would be a pain to go between displays made by different people. With this panel I'm making, I hope others will do the same and follow the convention/standard that has been out there since several decades ago.

Here are a few things I don't know about and I hope to find some answers from the forum members that have done this in the remote past to guide me:

The ANSI escape sequence has a special command, called select graphic rendition or SGR (in the middle of the wiki page). In this command, if you use parameter n=8 then you mean to "Conceal", per wiki. I don't know what that is used for. Does someone know? Currently I coded it to turn off the entire LCD, while its corresponding command with n=28 the "Reveal" will turn on the LCD. I don't know if that is close enough to their original purpose. I know I won't be able to make all commands work on the character LCD but want to stick to the standard as much as I can. For example, I don't know what "blink" command does so I make it to control blinking cursor. I can't do "underline" so instead I just turn on or off underline cursor.

BTW, there are two ASCII control characters I'd like to commandeer, the shift out and the shift in. They seem to represent using alternative character set. I'm thinking of using it to start multi-tap and end multi-tap on my panel. Any suggestions? Good? Bad?

Once this panel is done (firmware) it should drastically improve how an arduino user interface should be done. You no longer need to write your own button or menu codes the hard way or even waste a dozen IO to connect to LCD + buttons, you connect to this panel serially and do serial.read() on button inputs and serial.print() to write to it. A short menu is easy like hell:

Anyone after going through basic serial tutorials can do this now!

  Serial.print('\f'); // Clear screen
  Serial.println("GPS Menu:"); // Display "GPS Menu" on line 1
  Serial.println("1.Display GPS info"); // Display option 1 on line 2
  Serial.println("2.Record GPS info"); // Display option 2 on line 3
  Serial.print("3.Show credit"); // Display option 3 on line 4
  
  while(1) {
    if (Serial.available()) {
      char response=Serial.read();
      if (response=='1') display_GPS(); // Display GPS info on LCD
      if (response=='2') record_GPS(); // Record GPS info on SD card
      if (response=='3') show_credit(); // show project credit
      break; // This breaks out of the while(1) loop.
    }
  }

The ANSI escape sequence has a special command, called select graphic rendition or SGR (in the middle of the wiki page). In this command, if you use parameter n=8 then you mean to "Conceal", per wiki. I don't know what that is used for. Does someone know?

I get the impression that "select graphic rendition" is used to turn on / off character attributes. Ah. Here we go. This is easy to understand...

http://vt100.net/docs/vt510-rm/SGR

From that website... After you select an attribute, the terminal applies that attribute to all new characters received. If you move characters by scrolling, then the attributes move with the characters.

I suspect "conceal" was meant to be used for things like password entry. Often, terminals are configured for local echo. Switching to "conceal" would allow the terminal to stay in local echo but also hide what was typed. From Wikipedia... "not widely supported" ...for you that means you can pretty much do whatever you'd like with that attribute.

Currently I coded it to turn off the entire LCD, while its corresponding command with n=28 the "Reveal" will turn on the LCD.

My suspicion is that "reveal" is meant to turn character display back on but not actually reveal anything that was previously "concealed".

I don't know if that is close enough to their original purpose.

I doubt it makes any difference. "Not widely supported" very likely also means "not widely used".

For example, I don't know what "blink" command does so I make it to control blinking cursor.

Written characters blink.

I can't do "underline" so instead I just turn on or off underline cursor.

I believe there are separate cursor control commands (hide, block, blink, etcetera).

They seem to represent using alternative character set. I'm thinking of using it to start multi-tap and end multi-tap on my panel. Any suggestions? Good? Bad?

Does the LCD support more than ASCII character set? Have you searched for escape sequences that are not defined?