TECO - the original copy & paste

The first "clipboard" was developed in the programming language TECO. This stands for Text Editor and Corrector. TECO was created by a MIT student, Dan Murphy. It later became widespread in the 1960s. The original acronym was "Tape Editor and Corrector". Because at the time, the punch tapes were the only way to store source code on the PDP-1s:

PDP-1 computer at the Computer History Museum. The large cabinet houses the processor, with the paper tape reader and punch visible above the desk.
Image credit: Wikipedia

TECO was built around the usage of Quick Registers (still used today in some editors). Q-registers were temporary storage solutions that could hold text, numbers, or macros. The macros, or mini scripts, could be written to manipulate those registers. Oh, and these registers? They were limited to kilobyes due to hardware constraints.

for the EMACs users, your text editor was at first a bunch of TECO macros implemented in 1976!

These Q-registers allowed for a short term storage of multiple different items or commands for your machine and session. Although of course they would be erased after you completed your session (an issue many clipboards continue to have today!).

These macros and registers were of course not marketed as clipboards or anything of that sort. You would have to wait a few decades for that. But this was, as far as I can tell, the first way in which you could create a functioning digital clipboard.

The way you would do this is moving text from the main buffer into a Q-register (copying). Then you could insert that same text back into the current buffer (pasting). Here is how you would write "Hello, World!", then create "Hello, WorldWorld!" in TECO:

@^A'Hello, World!'
0l5k               ! Go to start, move 5 chars forward (after Hello) !
MA                 ! Mark position A (end of Hello) !
0l                ! Go to start again !
MB                 ! Mark position B (start of Hello) !
QA:MBUA            ! Store from B to A into QA !
l$                 ! Move to end of buffer !
QA"AU              ! Insert QA content here !

I recommend you read, The Glorious Horror of TECO if you want some more examples on how crazy TECO can get…

IBM Mainframe Editors

In the IBM /370s, copy and pasting expanded. It was also made easier. There were line-oriented editors, which allowed you to edit multiple areas and one temporary area. You could copy lines into this "temporary space" and then later paste them elsewhere. If you use VIM, this type of operation will seem familiar.

IBM System/370, which introduced silicon-based memory chips to computing, replacing the older magnetic core memory systems.
Image credit: IBM
# Assume lines 5 to 10 are to be copied
5-10 CUT A          ← Cuts lines 5-10 into a named buffer A
15 PASTE A AFTER    ← Pastes buffer A after line 15

Larry Tesler, the Clipboard Godfather

Inspired by Stanford's Pentti Kanerva, who was using delete buffers to do copy and pasting, Larry would create the GUI version of a clipboard manager.

Larry and Tim Mott were working at Xerox palo Alto Research Center and they built Gypsy in 1973. This was one of the first graphical text editors with a copy and paste system.

Here is a tutorial by the man himself.

Smalltalk, one of the first object-oriented programming languages that pioneered modern copy, cut, and paste terminology
Image credit: Portland State University

Apple has entered the chat

The Apple Lisa was the first system to officially name the temporary text storage solution as the clipboard.

The Apple Lisa computer interface, released in 1983, which helped establish the modern GUI paradigm including clipboard operations
Image credit: Computer History Museum

One of the great advantages of the Desktop Interface is its consistency: a user who learns one application already knows a good deal about other applications. For example, Command-X and Command-V mean Cut and Paste in all standard applications;

What about today's systems?

  • Windows uses their user32.dll library to manage their clipboard. Their API allows for calls such as OpenClipboard() and GetClipboardData(). The Windows clipboard system supports multiple formats, and can be accessed via the command line, powershell, or their crappy clipboard app.
  • macOS uses NSPasteboard in Cocoa.
  • Linux uses selection buffers PRIMARY, SECONDARY, CLIPBOARD.
  • Many modern browsers like to use something along the lines of navigator.clipboard
  • Really cool people use Clipboard History Pro

Thanks, Larry!

Transfering text and data is one of the most common uses of computers. Think about how many times you have copied/pasted today! Larry is the pioneer in this field, and has had a massive impact on how we think about copy/pasting today. Larry, you are a legend.

Larry Tesler, pictured at the PC Forum in 1989, worked to make computers more accessible
Image credit: BBC News