​below​

On Sun, Sep 27, 2015 at 4:33 AM, Mark Longridge <cubexyz@gmail.com> wrote:
It seems that nroff had the ability to show underlined text very early
on, possibly as early as v3 according to the v3 manual
​yes​


 

Maybe there was the ability to use overstrike characters on the teletype?
Overprinting was a popular idea, particularly with line printers
​ (i.e. devices that printed multiple characters at the same time on a single line), as well one character at a time devices modeled after the ttywrite.
 
​Remember, nroff's "native" terminal is a Teleptype Corp Model 37, which were fairly popular n the labs in those days.  The Teletype machines printed one character at a time, and needs command characters to move "platten" up or down and "carriage" back and forth.    The <CR><LF> idiom is left over from those days.

As others have pointed out,  Char ^H NewChar was a standard way to print things on single chracter devices.     As was also point out that was not the best way to do over strike with a line printer, so there were Unix filters to take reorder the data written, and add spaces as needed so the line printer's output looked the same.

Again, as other point out this trick did not work well with some early video terminals.


 

In bash I can use:

echo -e "\e[4munderline\e[0m"
​You are mixing times I'm afraid.   The \e[4m and \e[0m​ ideom is very late in the game.   Those are called ANSI screen sequences.   To being with, each manufacturer of "data terminating equipment (aka a DTE or a "terminal") define how it would interpret what codes.   As an industry we first had agree on a code set (US ASCII - heck by the early 1980's CDC's system could not agree on a character set - as another side bar, the #1 first behind ASCII was IBM and the 360 was supposed to be an ASCII machine, but management made then ship it as EBCDIC machine for cost containment reasons when OS/360 was late).

So by the 1970s, most systems were using 7-bit ASCII to print character glyfs, but what the DTE did with with other things be it screen manipulation, overprint, underline, cursor movement was all of the map.    Btw the late 1970, BSD would introduce "termcap" to solve the problem for programs, and manufactures got together and agreed on soem screen sequences (the ANSI sequences you refer).

Again, as an interesting twist.   The VT-100 was not fully ANSI compliant - its similar but it's not ANSI.   The DEC terminal group took an earlier (draft) version of the spec and used that to create the VT-100  (I used to work with one of them in another life but that's another story).   They "embraced" and "extended" the ANSI terminal sequence (and VMS of course used the DEC version of the sequences).   By the time of publishing of the ANSI standard, the VT-100 had already become the most popular terminal on the market, so the "Vt-100" compatible terminal became de jigur - as manufacturers wanted sell terminal that could talk to VMS.   Eventually folks like Wyse (and even DEC in later versions of the VT series), had both VT-100 "broken" mode and pure "ANSI" mode.

Clem



 

Shouldn't be too hard to hack up something that works in emulated v5.

Mark