46

I was just staring at my blinking terminal cursor:

blinking terminal cursor

And was wondering where it comes from. Does anybody have some piece of history about the blinking cursor? I couldn't find much online.

E.g.:

  • when/where was it invented?
  • who invented it?
  • is there a conventional blinking frequency?
  • is there a technical reason for its shape?
  • ...

migrated from unix.stackexchange.com May 15 at 16:51

This question came from our site for users of Linux, FreeBSD and other Un*x-like operating systems.

  • 2
  • 1
    Just a comment as no time for research right now. But as far as the shape - depending on the device, it can be anything from a one-pixel thick line to a full character height (as in your example), and in newer systems (e.g., Windows that I'm using right now) a vertical line. So while I am sure in older terminals (and even early PCs) the shape had a technical basis, there is no "one" shape. – manassehkatz May 15 at 17:10
  • 1
    Not marking as a duplicate because there is still "frequency" to answer. But who/when/where is a duplicate of ux.stackexchange.com/questions/33640/… which has a definitive (patent) answer. – manassehkatz May 15 at 17:13
  • 1
    Arf, I had run into ux.stackexchange.com/questions/33640 but dismissed it too quickly because of the misleading "mouse" tag. Thanks for the pointer. – Gohu May 15 at 18:52
  • 4
    Seriously, this looks like a parody question to demonstrate the point of this meta question. – pipe May 15 at 20:23
39

The cursor is needed on a CRT raster display because otherwise it's hard to know where the next character will appear. On a teletype or teleprinter, you know where the next character will be printed because that's where the print head is positioned.

The full-block cursor depends on the ability of your video hardware to do reverse video (otherwise the character under the cursor is obscured half the time, which is undesirable). Early video hardware couldn't do this, so it was typical in the early days to see underline cursors, typically only a single scan line tall.

The DEC VT05 is a very early CRT terminal, and it used an underscore cursor. According to the VT05 Maintenance Manual (page 3-33) the video hardware could be configured with a 3.75 Hz or 7.5 Hz blink rate (or 3.125 Hz and 6.25 Hz in models with 50 Hz screen refresh), or always-on, via a jumper setting. This was an internal jumper and not something the end user was expected to be able to change. The later VT52 used a 2 Hz refresh rate.

The underscore cursor was easy to implement; a particular scan line in each character cell was reserved for the cursor and was lit when the character being drawn on-screen matched the cursor coordinates held in internal registers. Blinking was easily handled by using a counter to toggle a flip-flop that switched the cursor between 'enabled' and 'disabled'. The ability to blink the cursor was important otherwise it was hard to tell it apart from an underscore character.

  • 6
    The underline cursor was not always displayed on a reserved scanline; on the VT-220 it partially obscured descenders. – Wilson May 15 at 19:36
  • 2
    Yes, the VT-220 came much later and is also able to display reverse video (afair). Being able to do reverse video is a key enabler for having a non-dedicated scanline for the cursor. – Ken Gober May 15 at 20:07
  • 1
    If a terminal uses dynamic shift registers to hold display contents along with a shorter static shift register for the current row (the cheapest approach in the early 1970s, and the one used by the Apple I), generating a block cursor may require adding an extra static shift register or counter chip--a much bigger cost consideration than an xor gate to invert the video. – supercat May 15 at 21:20
  • 1
    Re "The cursor is needed on a CRT raster display" - sure, but it doesn't have to blink. I think I've used terminals with non-blinking cursors, but it's difficult to be sure, it's now in the zone of everyday things I don't even notice. Maybe ralfzahn will tell us whether a 3277 blinked its cursor? – another-dave May 15 at 23:17
  • 7
    Most of the 3270 terminals I've ever used had a non-blinking cursor, but they were also color terminals and the cursor color was usually different from other colors on screen so it was easy to find even without blinking. The need for a blinking cursor depends on how easy it is to mistake other characters for the cursor or vice-versa; as terminal resolution has increased it has gotten easier to tell things apart and the need for blinking has diminished. – Ken Gober May 16 at 2:17
20

In 1967, a magazine article, cited a few times in the decade afterwards, said:

The cursor (entry marker) identifies the next display position to be entered. The cursor continually blinks three to five times per second, which permits quick visual location by the operator.
— F. H. Reagan Jr. (February 1967). "Viewing the CRT Display Terminals". Data Processing Magazine. pp. 32–37.

It was talking about the Datanet-760 Keyboard/Display System from General Electric, which came out in 1965. A 1966 report from Auerbach says the same thing:

  • The cursor continually blinks 3 to 5 times per second, which permits quick visual location by the operator.
    — "GE DATANET-760 KEYBOARD/DISPLAY SUBSYSTEM". Auerbach Data Communications Reports. November 1966. p. 6321:06
  • cursor is nondestructive and blinks continually 3 to 5 times a second to aid operator visibility;
    — "GE DATANET-760 KEYBOARD/DISPLAY SUBSYSTEM". Auerbach Data Communications Reports. November 1966. p. 6321:09

(Note to readers of these Auerbach Data Communications Reports on-line: The reports were issued over a period of several years, and the document that you see all of these decades later is an accumulation of looseleaf inserts. The actual date of each item is in MM/YY format in the corners of the pages.)

This gives you one of the earliest terminals that had a blinking cursor, and the reason why it had a blinking cursor. Since both Auerbach and M. Reagan used exactly the same sentence, I presume that this originated with General Electric doco and can be viewed as GE's own rationale for this feature.

The GE user manual, the Auerbach report, and the magazine article all show prior art to the widely claimed invention of the blinking cursor by Charles A. Kiesling at Sperry Rand, whose patent was filed later, in August 1967. Whether this, in its turn, is the invention of the blinking cursor, and who exactly at GE did this, I cannot tell you.

You are rather assuming that the cursor has one shape. In fact, it hasn't. At the time, as alluded to in the Sperry patent, the shapes of cursors were a lot more varied than they are now in GUI terminal emulator programs. Terminals used horizontal lines, vertical lines, rotated "L" shapes, underscores, underscores+overlines, and blocks. The innovation in the middle 1960s is specifically a cursor that blinks.

As you can see from the report, the Datanet-760 was one of several terminals where the text could be made to blink, also. Blinking was a way to draw attention to more than just the cursor.

Ironically, it was the microcomputer revolution that narrowed the shapes down. Microcomputers employed off-the-shelf VDAC/VTLC/CRTC parts that, by the 1970s, had mostly settled on cursors formed by inclusive/exclusive-ORing the character ROM output, under the control of a counter that was clocked by the vertical synch and logic to select which scan lines this applied to. The start and end scan lines, the blink cycle, and whether blinking was enabled, were all in programmable hardware registers.

This gave us a lot of equipment with these semantics, which is what you see in emulator programs, emulating these things on GUIs in software, today. The GUI programs have within the past couple of decades added things such as vertical line and box cursors which the 1970s and 1980s hardware did not have but that the more widely varied 1960s in some cases did have.

Interestingly, they have also reversed direction on blinking, with people changing terminal emulators to default to non-blinking cursors. This is because these are not hardware cursors, implemented as OR circuitry. They aren't even sprites. They are purely rasterized shapes in GUI window display memory, which a processor has to wake up and re-draw at every blink state change, continually.

  • 2
    Any idea why the blink rate was so unspecific? Was it configurable in the range 3-5/sec, or did it vary depending on how busy the terminal was? – Barmar May 16 at 16:03
  • It would have been a fixed division down of one of the video timings, in all probability. The timing would not have been affected by how "busy" the terminal was, but it's possible that the cursor blink was disabled when characters were being written. – MikeW 2 days ago
  • Wouldn't surprise me if the original implementation was analogue and driven off something like an RC oscillator, in which case the speed would be dependent on temperature... – pjc50 2 days ago
  • 2
    Interestingly, they have also reversed direction on blinking, with people changing terminal emulators to default to non-blinking cursors. Yes, but that's naught to do with CPU usage. It's because a blinking cursor is distracting. This is also why the HTML blink tag was not universally loved. There should be as little movement as possible on a screen meant for work because movement in the corner of your gaze will always signal "potential predator" and get your attention will-nilly. – David Tonhofer 2 days ago
  • Wrong. – JdeBP 2 days ago

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.