Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 12 submissions in the queue.

Submission Preview

Link to Story

The Early History of the more Command

Accepted submission by Phoenix666 at 2015-11-16 14:51:36
Code

I was a first-year graduate student at UC Berkeley in 1978. I had been an undergraduate at MIT, and had used the ITS timesharing systems there, which ran on PDP-10's. ITS put a "--MORE--" at the bottom of the screen when one typed out files; you pressed the space bar to continue.

At Berkeley, we'd just gotten our first VAX UNIX system, though there were already PDP-11 UNIX systems. There was a very simple program through which one could pipe stdout to do screen-at-a-time output. It rang the terminal bell after printing 24 lines, and waited for a carriage return. It was called cr3. My guess is that in some version of UNIX, someone had hacked a page-at-a-time output mode into the tty output drivers. Using stty, one could already say cr0, cr1, and cr2, which added different amounts of delay when printing a carriage return, for the benefit of slow printing terminals. cr3 was probably unused, and the page- at-a-time mode was piggybacked on it. But our version of UNIX didn't have this cr3 stty mode; instead we had the cr3 program that provided equivalent functionality.

Many of the terminals at Berkeley were Lear-Siegler ADM-3 and ADM-3A "dumb" terminals. Both models (or maybe just the ADM-3's) rang the terminal bell when the cursor advanced to near the right margin, as a typewriter bell would. Unfortunately, they rang the bell on output as well as keyboard input, which made for incessant beeping. It was particularly maddening in a room full of terminals. So most of the bell speakers had been disconnected. Since cr3 rang the terminal bell to indicate that a full page had been output, you couldn't tell when it was waiting for input on those muted terminals. The problem was exacerbated by the slow response time of the overloaded UNIX systems.

So I wrote a simple cr3-like program, but had it print "--More--" instead of ringing the bell [danhalbert.org]. I had it accept space instead of carriage return to continue, because that was what I was used to from ITS. I also made it take multiple filenames, and had it print lines of colons ("::::::::::::") before and after it printed each filename.

An old article, but it's occasionally good to touch on the foundations of what we take for granted.


Original Submission