The escape sequences ESC # 3 and ESC # 4 (DECDHL) are meant to be used on pairs on adjacent lines to request double height lines. As an example:


Now different terminal emulators behave differently when only a single line is set to double height. xterm happily displays the corresponding half of the double height characters, while konsole < 21.08 displays the whole double height characters.

What did real VTxxx do?


What did real VTxxx do?

Certainly the VT220 does the same as what xterm does. It just shows the top or bottom half of the character. I don't recall this behaviour depending on the emulation mode.

I'm assuming the other VT's do the same as the VT220. It'd make for much simpler implementation.

  • 1
    Yes, the VT100 did. Aug 13 at 3:51
  • I have a real VT100, and have written a simulator running the firmware. I can confirm this answer is correct. Sep 2 at 7:29

Text-based VT-series terminals divide the screen into horizontal stripes whose height is that of a single text line, and generate the video output for each stripe independently. Once a stripe is completed, the rendering hardware will "forget" everything about it as it fetches data describing how to render next stripe.

When rendering text to a bitmap display, as a GUI-based terminal emulator would have to do, it is often easier to draw a line of text without clipping than to show just the top half or just the bottom half. That's probably the reason for the cited behavior. On an actual text-based terminal, however, a line marked as the top or bottom half of a double-height line would be rendered without regard for how any previous lines had been formatted, since taking the formatting of previous lines into consideration would have made things more complicated.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.