On Mar 22, 2021, at 11:31 AM, Nate DeSimone <nathaniel.l.desimone@intel.com> wrote:

Hi Andrew,

I tested VT_UTF8 on the macOs Terminal software and I can confirm that VT_UTF8 renders nicely. See the attached screenshot.


Nate,

Yes it is close to VT_UTF8, but not quite the same. I was looking back through the driver and I’d forgotten how similar it really is. 

Symbols used in table below
===========================
  ESC = 0x1B  
  CSI = 0x9B  
  DEL = 0x7f  
  ^   = CTRL

+=========+======+===========+==========+==========+=============+
|         | EFI  | EFI 1.10  |          |          |             |
|         | Scan |           |  VT100+  |          |             |
|   KEY   | Code |  PC ANSI  |  VTUTF8  |   VT100  | xterm-color | 
+=========+======+===========+==========+==========+=============+
| NULL    | 0x00 |           |          |          |             |
| UP      | 0x01 | ESC [ A   | ESC [ A  | ESC [ A  | ESC [ A     |
| DOWN    | 0x02 | ESC [ B   | ESC [ B  | ESC [ B  | ESC [ B     |
| RIGHT   | 0x03 | ESC [ C   | ESC [ C  | ESC [ C  | ESC [ C     |
| LEFT    | 0x04 | ESC [ D   | ESC [ D  | ESC [ D  | ESC [ D     |
| HOME    | 0x05 | ESC [ H   | ESC h    | ESC [ H  | ESC [ H     |
|         |      |           |          |          | ^A          |
| END     | 0x06 | ESC [ F   | ESC k    | ESC [ K  | ESC [ F     |
| INSERT  | 0x07 | ESC [ @   | ESC +    | ESC [ @  | ^E          |
|         |      | ESC [ L   |          | ESC [ L  |             |
| DELETE  | 0x08 | ESC [ X   | ESC -    | ESC [ P  | 0x7f        |
| PG UP   | 0x09 | ESC [ I   | ESC ?    | ESC [ V  | ESC [ 5 ~   |
|         |      |           |          | ESC [ ?  | ^P          |
| PG DOWN | 0x0A | ESC [ G   | ESC /    | ESC [ U  | ESC [ 6 ~   |
|         |      |           |          | ESC [ /  | ^N          |
| F1      | 0x0B | ESC [ M   | ESC 1    | ESC O P  | ESC O P     |
| F2      | 0x0C | ESC [ N   | ESC 2    | ESC O Q  | ESC O Q     |
| F3      | 0x0D | ESC [ O   | ESC 3    | ESC O w  | ESC O R     |
| F4      | 0x0E | ESC [ P   | ESC 4    | ESC O x  | ESC O S     |
| F5      | 0x0F | ESC [ Q   | ESC 5    | ESC O t  | ESC [ 1 5 ~ |
| F6      | 0x10 | ESC [ R   | ESC 6    | ESC O u  | ESC [ 1 7 ~ |
| F7      | 0x11 | ESC [ S   | ESC 7    | ESC O q  | ESC [ 1 8 ~ |
| F8      | 0x12 | ESC [ T   | ESC 8    | ESC O r  | ESC [ 1 9 ~ |
| F9      | 0x13 | ESC [ U   | ESC 9    | ESC O p  | ESC [ 2 0 ~ |
| F10     | 0x14 | ESC [ V   | ESC 0    | ESC O M  | ESC [ 2 1 ~ |
| Escape  | 0x17 | ESC       | ESC      | ESC      | ESC         |
+=========+======+===========+==========+==========+=============+
| F11     | 0x16 |           |          |          | ESC [ 2 3 ~ |
| F12     | 0x16 |           |          |          | ESC [ 2 4 ~ |
+=========+======+===========+==========+==========+=============+


I’m wondering it we could pick the default terminal type based on the toolchain? 

Thanks,

Andrew Fish

Thanks,
Nate

On 3/17/21, 9:02 AM, "Andrew Fish" <afish@apple.com> wrote:

   If we are mentioning terminal types the default terminal type on a Mac is xterm-256color. So that is going to be the default when people run OVMF on a Mac. So it would be nice if we can add that. I can help out with anything xterm-256color related. 

   Thanks,

   Andrew Fish

On Mar 16, 2021, at 8:23 AM, Laszlo Ersek <lersek@redhat.com> wrote:

Hi Nate,

(adding Leif and Ard)

On 03/13/21 03:52, Desimone, Nathaniel L wrote:
I've created a new wiki page for this task with all the information I
have gathered thus far. I've done some more experimentation and found
that there are several newer terminal emulators that don't support
DEC Special Graphics so I've reduced the number of modes where DEC
Special Graphics should be preferred. Laszlo, if you could take a
look at the terminal type matrix I created that would be very
helpful.

https://github.com/tianocore/tianocore.github.io/wiki/Tasks-Terminal-driver-improvements

(

My background:

I settled on plain (non-UTF-8) xterm around 1998, and have been using it
ever since. Whenever something was off, I always tried to hammer the
application into conformance with my particular xterm setup, rather than
the other way around. I also have some quirky terminal settings -- for
me, "backspace" generates ^H / keycode 22 (stty sets erase to ^H),
"delete" generates keycode 119, and there's no "rubout". I still don't
use UTF-8 (I use latin2).

)

* Regarding ArmVirtPkg, I stick with the default TTY_TERMINAL=FALSE
setting (which means VT-100). Using that setting, I see the following
kind of "ASCII approximation" for box drawing:

/------------------------------------------------------------------------------\
|                                Boot Manager                                  |
\------------------------------------------------------------------------------/

I'm really happy with this, as I don't care much for nice-looking
boxes; instead I prefer portability.

(NB: this seems to disagree with your "Current Behavior (Which is
wrong)" line for VT100, as it suggests CP437. That's not what I'm
seeing with VT100.)

TTY_TERMINAL=TRUE would mainly affect backspace / delete I think -- as
far as I recall, that's why I asked Roy not to make TTY_TERMINAL=TRUE
the default, in 2015:

http://mid.mail-archive.com/555458DB.3090602@redhat.com
http://mid.mail-archive.com/CAFECyb_E+bGZt5xv7QhRqyD0jX=AzoEMw7VW_tjZr+E=sQf8ww@mail.gmail.com

(I'd like to CC Roy, but I can't tell if he's now working for Linaro,
Cavium, HPE, Marvell, or another company.)

* Regarding OvmfPkg, currently PC_ANSI is hard-coded, and for me it
looks like this:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄż
ł                                Boot Manager                                  ł
ŔÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŮ

Obviously I'd much prefer if I got the simple ASCII approximation here
as well.

* Whether VT100 and/or PC_ANSI and/or TTY_TERM are *officially* supposed
to use DEC Special Graphics, I can't tell.

I know what my preferences are:

- the current BackSpace and Delete mappings (which work fine for me
  with both VT100 and PC_ANSI, but *not* with TTY_TERM),

- and the most primitive ASCII mapping (no special graphics, no UTF-8
  sequences, etc). I really like a super dumb terminal, where taking
  simple "ASCII screenshots" (and pasting them into plaintext emails!)
  is *trivial*.

... Looking at your "Expected Behavior" table, there is only one line
left with "poor man's ASCII" -- namely, TTY_TERM. Unfortunately,
TTY_TERM breaks my BackSpace / Delete settings :(

* In summary, I'd prefer if (a) VT100 stayed as-is (using "poor man's
ASCII", as seen in ArmVirtPkg), and (b) if OVMF used *that* VT100,
rather than PC_ANSI, by default.

Thanks!
Laszlo













<macos_terminal_vt_utf8.png>