home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / e / dec20.txt < prev    next >
Text File  |  2020-01-01  |  83KB  |  1,437 lines

  1.    THE RISE AND FALL AND RISE OF THE DECSYSTEM-20 AT COLUMBIA UNIVERSITY
  2.  
  3.                     Frank da Cruz and Christine Gianone
  4.                                        
  5.                             Columbia University
  6.                                New York City
  7.  
  8.                            T H I R D    D R A F T
  9.  
  10.                              December 29, 1988
  11.  
  12.                          Copyright (C) 1988, 2001,
  13.                   Frank da Cruz and Christine M. Gianone,
  14.                             All rights reserved.
  15.  
  16.  
  17.     Written in 1988 for a Digital Press book that was to commemorate
  18.     DEC's 36-bit machines with a series of articles, but was never
  19.     published.  Minor edits, notes, glossary, and links added in
  20.     January, 2001.  Bibliography, Glossary, and Links at end.
  21.  
  22.  
  23. Until the middle 1970s, Columbia University was firmly entrenched in IBM
  24. mainframe OS/360 batch-mode computing.  The "Self Service Input/Output"
  25. area was proudly named because it was such a great leap forward from the
  26. days when students and researchers would meekly present their card decks to
  27. the operators and return the next working day for their output -- usually
  28. to find that their SYSMSG was full of incomprehensible complaints, whose
  29. painful decipherment generally led the frustrated user to a missing comma
  30. or an extra space in the Job Control Language.  Or if the JCL passed
  31. inspection then there was a 3-foot thick core dump to curl up with.  The
  32. SSIO area was a room filled with the mind-numbing cacaphony of key punches,
  33. the shrieking of IBM's fearsome 1403 printers, the staccato flutter of card
  34. readers, sorters, and interpreters; anxious crowds gathered around the
  35. printers, waist deep in discarded output...
  36.  
  37. Columbia's IBM 360 Model 91, with its 360/75 front end, was one of the
  38. biggest, fastest, heaviest, loudest computers in the world when installed
  39. in the late 1960s.  It covered acres of floor space, and you could look at
  40. the magnetic cores through windows in the 6-foot-tall 16K memory boxes,
  41. standing in rows that disappeared into the vanishing point.  Power was
  42. supplied by a rumbling cast-iron motor generator, and cooling by chilled
  43. distilled water (delivered from Deer Park in big glass bottles in wooden
  44. crates) pumped through miles of internal plumbing.  The CPU control panel
  45. had more lights than Times Square.  According to legend, among the
  46. thousands of toggles and buttons was one whose lethal mission was "Bulb
  47. Eject" -- certain death to any who pressed it.  The control panel now
  48. [1988] lies in repose at the Computer Museum in Boston, its hypnotic bulbs
  49. dimmed forever (*).
  50.  
  51.   (*) The Computer Museum in Boston is now defunct, as is Digital Equipment
  52.       Corporation (DEC), its original sponsor.  Its collection has moved,
  53.       hopefully in its entirety, to the Computer Museum History Center in
  54.       Moffet Field, California:
  55.  
  56.         http://www.computerhistory.org/
  57.  
  58.       where a search for "360/91" turns up the following:
  59.  
  60.        Artifact Name: System 360 Model 91 Operator Console
  61.         Manufacturer: International Business Machines Corporation (IBM) 
  62.         Model Number: 360/91 or 91
  63.             Category: Transducer: control panel
  64.                 Year: ca 1968
  65.       History Center: ID # X01321.1997
  66.  
  67.       There is no picture, but if memory serves, it was about 4 feet
  68.       tall and 6 feet wide, with perhaps 16 light bulbs per square
  69.       inch.  The "IBM 360/91" nameplate was stolen while it was
  70.       waiting for pickup.  The rest of the machine was chainsawed and
  71.       thrown in acid baths to extract the gold.
  72.  
  73. This massive grey and blue Stonehenge, its thick tentacles reaching into
  74. the SSIO area, executed ponderous Fortran "codes" for our engineers:
  75. twisting bridges; bombarding hapless substances with neutrons; calculating
  76. Pi to millions of digits; transforming the earth's magnetic field into
  77. music...  For our social scientists, it predicted the outcome of the 1956
  78. presidential election with deadly accuracy.  For the administrators it
  79. spewed forth paychecks and transcripts and accounting statements.  And
  80. eventually some small corner of it was allocated to our engineering
  81. students, applying their laboriously crafted DO-loops and GOTOs to Taylor's
  82. series, Simpson's rule, Gauss's quadrature, and Laplace's transform.  These
  83. students had a relatively simple task: write the program, place it in a
  84. sandwich of magic JCL cards, feed the sandwich to the card reader, and
  85. collect the resulting output.  Many teachers would come to look back upon
  86. these simple days with melancholy fondness, though student memories were
  87. haunted more by images of slippery fingers gathering up stacks of dropped
  88. punch cards.
  89.  
  90. Terminals began to appear in the early 1970s, at first only a scattering
  91. among the shadowy system programmers on Olympus, who were able to converse
  92. in arcane languages with "terminal monitors" having names like Milten, Cleo,
  93. Orvyl, and Wylbur, and eventually APL and TSO (the former being the "Irtnog"
  94. of computer languages, the latter a form of JCL typed at one's terminal).
  95. Interacting with the computer was appealing, and yet unsatisfying.  The
  96. commands were obscure, and computation was still -- apart from APL -- in the
  97. batch.
  98.  
  99. Enter, in 1975, our first true timesharing system, a DEC PDP-11/50 running
  100. RSTS/E.  This was to be a low-budget experiment in genuine interactive
  101. computing.  Built around the BASIC language, RSTS allowed up to 32
  102. simultaneous users sitting at DECwriters to program, debug, communicate with
  103. each other, and generally misbehave -- all in real time.  RSTS proved
  104. enormously popular, and the PDP-11 was soon overwhelmed by eager students.
  105.  
  106. DEC was chosen because IBM didn't really offer any kind of general purpose
  107. interactive timesharing in those days.  Compared to the other contenders,
  108. the DEC offering was better developed, more mature, and... more fun.  And
  109. RSTS was chosen as an operating system, rather than, say, UNIX because
  110. Version 6 of UNIX was a mighty trusting system that let anyone to do
  111. anything.  We had the germ of an idea that the system should take some role
  112. in protecting users from one another and from themselves.  While UNIX
  113. offerred little or no facility in this area, RSTS was not without its own
  114. weaknesses.  Users soon learned that they could assign all the TTYs, so that
  115. no one else could use them.  Better still, having assigned a TTY, they could
  116. run a program on it to masquerade as the login process, faithfully
  117. transcribing the IDs and passwords of other users into a file, and then
  118. dying in a gasp of simulated noise:
  119.  
  120.   WELCOxE T@\R\~~~~xxx }}}}}~~
  121.  
  122. Other resourceful users found that if they opened a new file for
  123. record-oriented access, they could read records before writing them, picking
  124. up old data from other users' deleted files, or the system password file.
  125.  
  126. And at one point, our system was infested by a cabal of teenagers from a
  127. nearby prep school, who had broken in by exploiting a bug in the login
  128. process.  They had their way with the system for several weeks before they
  129. were detected, and it took several days of round-the-clock work to eradicate
  130. the numerous trap doors and time bombs they had left behind.
  131.  
  132. Despite its problems, RSTS proved quite popular, and rapidly became
  133. overloaded.  The experiment was declared a success, and we began to look
  134. about for something bigger and somewhat more sophisticated -- BASIC not
  135. being exactly the language of choice among computer scientists.  This was
  136. about when DEC first announced the DECSYSTEM-20 (its logo, all uppercase
  137. unlike that of its older cousin the DECsystem-10, was said to be a slip of
  138. the Caps Lock key on the trademark application).  Before even looking at the
  139. system, we forced the marketing people to drag in some technical help, and
  140. quizzed them mercilessly about whether users could assign all the devices,
  141. fill up the disk, control-C out of the login process, bombard each other
  142. with stupid messages, even whether a file was "scrubbed" when it was
  143. deleted.  When all seemed to our satisfaction, we took a look at the system.
  144.  
  145. Wonder and amazement, this computer knows what you're going to type and
  146. types it for you!  Well, almost.  But its attractions were apparent at first
  147. glance.  If you don't know what to type, then type a question mark, and it
  148. tells you.  Suddenly "fill-in-the-blank" became more like "multiple choice".
  149. Well of course it can tell you!  It knows what the choices are, so why
  150. shouldn't it tell you???  A question that might have been asked to good
  151. advantage ten or fifteen years earlier (visions of veteran system
  152. programmers rooting through manual after manual looking for what to type in
  153. the next field of some obscure command...  a common sight on some machines
  154. even to this day).  And this "?"  was not a highly priviliged function (as
  155. was ownership of the manual set) -- even ORDINARY USERS could employ it.
  156. Astonished, we discovered that error messages came out in plain,
  157. comprehensible text, rather than 17-digit hexadecimal numbers, so that they
  158. could be understood without a "messages and codes" book.
  159.  
  160. We were sold immediately on the friendliness, the casual attitude, the
  161. humor.  We didn't know until later that COOKIE (which survives today in UNIX
  162. as 'fortune') was not a standard part of the system, and then there was
  163. TECO (*):
  164.  
  165.   @make love
  166.   not WAR?
  167.  
  168. (*) TECO (Text Editor and Corrector) was both an editor and a language for
  169.     writing editors.  When used "bare" its command language was sparse and
  170.     cryptic, similar to DDT (see below).  When used as a basis for "higher
  171.     level" products, such as EMACS, its power could readily be appreciated.
  172.     "Make love, not war!" was a familiar chant at the anti-Vietnam-war
  173.     demonstrations of the 1960s and 70s.
  174.  
  175. The DEC-20 was a real, general-purpose timesharing system.  It was not built
  176. around a particular language, as RSTS was around BASIC.  It offered a wide
  177. range of compilers, interpreters, text editors, and utilites, reflecting
  178. many years of TOPS-10 and TENEX software development.  It could absorb not
  179. only our RSTS users, but also many of our IBM mainframe Fortran and APL
  180. users, and its ease of use would attract many first-time users as well.
  181.  
  182. Our new DEC-20 arrived June 29, 1977, with TOPS-20 version 1B.  Installation
  183. was finished by July 26th.  Next to the IBM 360/91, and even the DEC PDP-11,
  184. it was disappointingly featureless -- no lights to speak of, no switches for
  185. entering data, no dials, no motors, no pumps...  Yet the DEC-20 was
  186. infinitely more powerful than the feeble PDP-11.  It was equipped with four
  187. state-of-the-art RP06(*) disk drives that could never fill up, and an
  188. unbelievable 256K of main memory -- words, not bytes!  Such a machine would
  189. meet our instructional computing requirements for years to come.
  190.  
  191.  (*) For those who don't recall, an RP06 is the size of a dishwasher,
  192.      weighs a ton, and uses a removable disk pack that can hold about
  193.      75 Megabytes.  In 1977 it was exciting news, as it doubled the
  194.      the capacity of its predecessor, the RP04.
  195.  
  196. Whenever a computer facility gets a new kind of computer, the programmers
  197. embark immediately on a furious spate of activity to turn the new system
  198. into their beloved old system.  As delivered, the DEC-20's only editor
  199. (besides an unofficial copy of TECO) was the cryptic, line-oriented EDIT,
  200. descended from TOPS-10 SOS.  Our users were accustomed to Wylbur, the much
  201. less cryptic line editor on our IBM 360/91, so we immediately embarked on
  202. writing a version of Wylbur for the DEC-20, to make our IBM users feel more
  203. at home.
  204.  
  205. We began to learn DEC-20 assembly language, and to read the Monitor Calls
  206. Reference Manual.  We soon discovered that this was a wonderful machine
  207. indeed.  The instruction set and the repertoire of monitor calls (JSYS's)
  208. were astoundingly rich.  Included among the monitor calls was a special set,
  209. unlike anything we had ever seen: built into the system itself were standard
  210. functions for conversion between internal and external representations of
  211. all the different kinds of data meaningful to the system: numbers in
  212. different radices, characters, strings, filenames, directory names, dates
  213. and times.  Programmers from an earlier era knew that the most difficult and
  214. tedious part of writing an interactive program was the prompting, accepting,
  215. and validating of data typed in by the user.  How many programs written in
  216. Fortran have blown up in your face when you typed a letter instead of a
  217. digit?...
  218.  
  219. Best of all, these conversion functions were collected into a single package
  220. called the COMND JSYS, developed by Dan Murphy, which allowed programmers to
  221. make use of the same "user interface" in their programs as the one in the
  222. TOPS-20 Exec: full prompting, editing, help on every field; abbreviation and
  223. recognition of keywords and switches; completion of filenames; forgiveness
  224. when the user makes a typo, etc.
  225.  
  226. Programs coded with the COMND JSYS had many virtues.  They were friendly,
  227. helpful, and consistent.  All programs written using COMND worked the same
  228. way: type "?" to find out what the commands or options are, type ESC to
  229. complete the current field (if possible) and receive a prompt for the next
  230. field.  People could use the "?" and ESC features liberally to learn their
  231. way through a new program, and later, could type terse, abbreviated commands
  232. for speed.  This approach, called "menu on demand," does not favor the
  233. novice over the expert (as menu-oriented systems do), nor the expert over
  234. the novice (as do the cryptic, terse command sets of APL or UNIX).
  235.  
  236. Our new Wylbur-like editor, called "Otto", was written to take full
  237. advantage of the COMND JSYS.  For all its stubborn limitations, Otto was an
  238. immediate success because it allowed IBM mainframe users to move painlessly
  239. to the new environment, while simultaneously indoctrinating them in the ways
  240. of the DEC-20.  Its hidden purpose was to get them hooked, and then
  241. frustrate them sufficiently that they would take the time to learn a "real"
  242. editor.
  243.  
  244.  
  245. PROGRAMMING LANGUAGES
  246.  
  247. As the months wore on, we made contact with other DEC 36-bit sites, many of
  248. them -- Stanford, CMU, MIT, Rutgers, BBN, SRI -- with many years of TOPS-10,
  249. TENEX, WAITS, or ITS experience, and received from them programs that were
  250. to occupy us for years to come.  Some were false starts, but others will
  251. thrive in some form well into the next century, the legacy of the DEC-10 and
  252. -20.  From this experience we learned the benefits of sharing, and knew that
  253. if we should ever produce anything of general utility, we would share it
  254. with others in the same spirit that these institutions shared their work
  255. with us.
  256.  
  257. Our major goal in canvassing these sites was to find out what they did about
  258. programming.  In conception, the DEC-20 user and system interfaces came as
  259. close to perfection as anyone at the time (outside of Xerox PARC) could
  260. imagine, but in practice the conception was incompletely realized.  Most of
  261. the programming languages came directly from TOPS-10, and did not provide
  262. access to the TOPS-20 monitor calls or its file system.  And yet we were
  263. determined that, in this era of structured programming, we would not write
  264. systems-level code in assembly language.  After brief flirtations with
  265. Bliss-10, BCPL, Simula, and even an early Portable C (which was ill suited
  266. to the 36-bit architecture), we settled upon Stanford University's Sail as
  267. our "offical language," and plunged into a frenzy of the kind of programming
  268. incumbent upon every site that gets a new kind of computer: user ID
  269. management, resource management, accounting systems, tape conversion
  270. programs, ...  But several years of devotion to Sail resulted finally in
  271. disillusion.  There were too many bugs, too much dependence on the runtime
  272. system and knowing where it was, too much conversion necessary upon new
  273. releases of Sail or of TOPS-20, too many grotesque workarounds to accomplish
  274. what would have been natural in assembler -- the only language that really
  275. understood the machine and the operating system.  And from that day forward,
  276. all our systems programming was done in assembler.
  277.  
  278. Like many things, dependence on assembler is good and bad.  It was good
  279. because it touched a creative nerve -- programmers were unfettered,
  280. unhampered by the bureaucratic requirements and authoritarian strictures of
  281. high-level languages, and they had full access to the machine's instruction
  282. set and repertoire of monitor calls, which, on the DEC-20, were a joy to
  283. behold.  Programming in assembler was just plain fun, and our programmers
  284. gleefully turned out millions of lines of code, but with the nagging feeling
  285. that there was something sinful in it.  This was because of the bad side:
  286. assembly language programs are specific to the underlying machine and
  287. operating system.  What happens to these programs when the machine
  288. disappears?
  289.  
  290. Nevertheless, MACRO was irresistible (MACRO is used here as a generic term,
  291. encompassing DEC's MACRO-10 and -20, as well as MIT's Midas and Ralph
  292. Gorin's FAIL).  Unlike FORTRAN or BASIC or any other language on the DEC-20
  293. (except for Sail, for which we had written a COMND JSYS interface package),
  294. MACRO let you write real DEC-20 programs -- programs that were helpful,
  295. gentle, and forgiving to the user.  For assembly language programmers with
  296. an IBM 360 background, the machine architecture and instruction set were
  297. delightful.  A 256K word linear address space (no more BALRs and USINGs!),
  298. hundreds of exotic instructions...  And the assembler itself allowed for
  299. relatively clean, even "structured" programs.  For instance, MACRO's in-line
  300. literals are almost equivalent to the "begin ...  end" blocks of Algol or
  301. Pascal, obviating the horrendous spaghetti logic that plagues most assembly
  302. language programs.  For example, here's an IF-THEN-ELSE construction with
  303. multiple statements in each part, and no GOTOs or labels (excuse any
  304. mistakes, this is from memory):
  305.  
  306.         CAIL B, FOO                     ; IF (b < foo) THEN
  307.          PUSHJ P, [                     ;   BEGIN
  308.                 HRROI A, [ASCIZ/.LT./]  ;     message = ".LT.";
  309.                 SETOM LESS              ;     less = -1;
  310.                 AOS (P)                 ;   END (skip around ELSE-part)
  311.                 POPJ P, ]               ; ELSE
  312.          PUSHJ P, [                     ;   BEGIN
  313.                 HRROI A, [ASCIZ/.GE./]  ;     message = ".GE.";
  314.                 SETZM LESS              ;     less = 0;
  315.                 POPJ P, ]               ;   END;
  316.         PSOUT                           ; PRINT message;
  317.  
  318. Anything within square brackets is a literal; the assembler finds a place to
  319. put it, and replaces the literal with the address of that place.  Thus,
  320. (nearly) any amount of data or code can be placed "in line", rather than in
  321. a separate data area.  And as you can see from the example, literals can be
  322. nested.  Other common control structures can be simulated using literals
  323. too, such as the CASE statement:
  324.  
  325.         MOVEM B, @[EXP FOO, BAR, BAZ](A)
  326.  
  327. This example stores B in FOO, BAR, or BAZ, depending on the value of A.
  328. Such an operation would require many lines of code in most other assembly
  329. languages, and in most high-level languages.
  330.  
  331. To cap it off, assembly language programs could be debugged interactively on a
  332. symbolic level using "DDT" -- not Dichloro-Diphenyl-Trichloroethane, but a
  333. "Dynamic Debugging Tool" designed to get the bugs out just as effectively as
  334. the real thing, with fewer undesirable side effects (other debugging aids bore
  335. similarly insecticidal names, like RAID).  With DDT (*), there need be no more
  336. poring through thick hex dump printouts, no more inserting print statements
  337. and reassembling, etc etc.  Its command syntax is a bit obstruse, consisting
  338. mostly of cryptic single letters, punctuation marks, tabs, and liberal use of
  339. the ESC ("Altmode") character, often doubled.  But DDT can do anything.  In
  340. fact, since it can execute all computer instructions and system services, the
  341. creators of MIT's "Incompatible Timesharing System" (ITS) for the PDP-10 used
  342. it as their top-level command interpreter.  Talk about user-friendly...
  343.  
  344.  (*) DDT dates from the PDP-1 (where it stood for DEC Debugging Tape,
  345.      since it was executed from paper tape), circa 1960, via the PDP-6
  346.      (which was the predecessor to the PDP-10), and descends from an
  347.      earlier bug-killer, FLIT (Flexowriter Interrogation Tape) on the
  348.      PDP-1's predecessor, the TX-0, on the 2nd floor of MIT building 26.
  349.      Both DDT and TECO were originally done at MIT for the PDP-1 [1].
  350.      DDT lives on in present-day debuggers such as GDB, where most of
  351.      its concepts -- if not its unique user interface -- survive.
  352.  
  353. The DEC-10/20 instruction set, monitor calls, assembler, and debugger lured
  354. many otherwise sensible programmers into prolonged coding sessions, or "hack
  355. attacks".  A subculture of DEC-10/20 programmers arose, speaking strange
  356. words and phrases whose etymologies were mainly traceable to the PDP-10
  357. Hardware Reference Manual.  The ingredient added by the hackers (in those
  358. days, not a perjorative term) was the pronunciation of mnemonics never
  359. intended for human speech organs (AOS, BLT, JRST, ILDB, HRROI), and
  360. extension of their meanings into other areas of life (mostly eating).
  361. Eventually, this lexicon was collected and codified by Guy Steele of CMU and
  362. others as the "Hacker's Jargon," published originally as a file, later
  363. expanded into a book (see bibliography).
  364.  
  365. DEC-10/20 hackers were a small group at first, owing mainly to a paucity of
  366. usable documentation.  To write a functioning program, one could consult the
  367. Hardware Reference Manual, the Monitor Calls Reference Manual, and the MACRO
  368. Assembler Reference Manual.  But these manuals were just lists of
  369. instructions, monitor calls, and pseudo-ops, and did not impart the
  370. slightest notion of how to put a program together.  In 1981, the situation
  371. changed dramatically with the publication of Ralph Gorin's DEC-20 assembly
  372. language programming book, and the world was soon overpopulated with
  373. undergraduate DEC-20 programmers.
  374.  
  375. Nevertheless, the lack of a coherent set of high-level programming
  376. languages, fully integrated with the operating system and file system, was
  377. one of the fatal flaws of the DEC-20.  This weakness was remedied by DEC in
  378. VAX/VMS, where programs written in a variety of languages can call upon
  379. common or compatible runtime support, and systems programs can be written in
  380. practically any language -- even BASIC or FORTRAN.
  381.  
  382. Many TOPS-10 holdovers ran -- and will still run until the final gasp of the
  383. last DEC-20 -- in "compatibility mode."  This meant that programs written in
  384. these languages could only access files according to TOPS-10 rules: no long
  385. filenames, no funny characters in filenames, no explicit references to
  386. directories or generation numbers.  In particular, source programs for most
  387. programming languages had this restriction: most compilers had not been
  388. TOPS-20-ized, and even if they had, LINK had not.  Ultimately, this meant
  389. that the user had to know about TOPS-10 in order to use TOPS-20, and that
  390. high-level language programmers were denied access to many of TOPS-20's
  391. features.
  392.  
  393.  
  394. COPING WITH GROWTH
  395.  
  396. Within a year, our DEC-20 was hopelessly overburdened, with load averages
  397. through the roof and the disks filling up regularly.  It remained in this
  398. condition for another year until we found a way to buy a second machine.
  399. Soon that was full too, and in the ensuing years came a third and a fourth,
  400. plus a DEC-20 in Columbia's Computer Science department and another in the
  401. Teachers College.  The Computer Center systems were upgraded by adding
  402. memory and disks, and eventually by interconnecting them all with CFS, and
  403. installing RA-81 disk drives and an HSC-50.  Eventually, all the CPUs were
  404. upgraded to 2065's with maximum memory, and there was nothing further we
  405. could do to get more performance out of them.  Like other DEC-20 loyalists,
  406. we had filled our machine room to capacity with DEC-20s and had no room for
  407. more.  Our only option for expansion would be a new model, with more power
  408. in less floor space.  For several years, we made periodic trips to Marlboro
  409. to discuss a forthcoming machine.  There were actually 2 projects.
  410.  
  411. DOLPHIN began as a high-end system which would offer a truly distributed
  412. 36-bit architecture.  Large DOLPHINS would sit amid small single-user
  413. MINNOWS on a high-bandwidth network.  Both DOLPHIN and MINNOW succumbed to
  414. problems with technology.  DOLPHIN used custom designed Motorola chips that
  415. had reliability problems.  MINNOW's dense packaging, designed to fit into a
  416. VT52 terminal case, coupled with the need for a locally attached RP06 disk
  417. drive(!), were its downfall.  Ethernet was still years away from commercial
  418. use, and the network problem remained as well. [2]
  419.  
  420. The JUPITER project came along several months after DOLPHIN was canceled.
  421. Its design did not incorporate distributed MINNOWs, but did endorse the
  422. requirement for a fast centralized processor.  It was to be 10+MIPS, and
  423. cheap.  A long and difficult design process resulted in neither of these
  424. goals being met and in 1983 the project was canceled, although portions of
  425. it eventually reached the marketplace -- the CI, the HSC-50, etc. [2]
  426.  
  427. LCG management and engineers always assured us on each visit to Marlboro
  428. (MA) (sometimes including helicopter and limo rides, plus lodging in
  429. "theme" hotels) that the new system was just "18 months away" from
  430. announcement, regardless of its code name.  The cost of ownership of either
  431. system would have been significantly lower than the equivalent number of
  432. KLs.
  433.  
  434. While waiting for the Jupiter to appear, we still needed ways to apportion
  435. our existing DEC-20 resources among the users in the fairest way.  This had
  436. been a concern since early on.  The DEC-20, as originally delivered, allowed
  437. ordinary users to take over the machine in various ways, making it unusable
  438. by everyone else.  Users wrote programs to endlessly create self-replicating
  439. forks, they assigned all the PTYs and used them to write password stealers,
  440. they ran programs in infinite loops that consumed all available CPU cycles,
  441. they monopolized scarce terminal lines for long hours, they filled up the
  442. batch queues, they bombarded the operators with thousands of spurious tape
  443. mount requests, they printed millions of pages of nonsense, etc etc.
  444.  
  445. As a monitor and exec source site, Columbia was able to make modifications
  446. to restrict access to certain resources by certain classes of users, based
  447. upon user ID or account string, or by taking over "unused" bits in the
  448. capability word.  But back in our OS/360 days, we learned the painful lesson
  449. that local modifications to operating systems come back to haunt us when new
  450. releases appear: it took years to upgrade our heavily modified IBM OS/360
  451. 21.0 to 21.8.  Therefore we felt obliged to convince DEC that our
  452. requirements applied universally.  To do this, we went through channels,
  453. first submitting Software Performance Report forms, then writing letters,
  454. and finally we had a series of meetings with the monitor group in Marlboro.
  455.  
  456. One product of these meetings was the Access Control Job.  This was a
  457. customer-supplied task which would be consulted by the monitor whenever
  458. users requested access to certain resources.  The ACJ could decide whether
  459. to grant or deny access based upon the customer site's own criteria.  Some
  460. of these resources included login, enabling of capabilities, job creation,
  461. fork creation, device assignment, batch job submission, tape mounts,
  462. structure mounts, directory creation, scheduler class changes, access and
  463. connect, etc.  This was a great boon to security and resource management.
  464.  
  465. But the ACJ did not allow us to regulate ongoing consumption of resources.
  466. For this we needed to produce a monitoring program to collect per-user
  467. statistics on CPU and connect time.  Students were granted a weekly budget
  468. of connect and CPU time, and received periodic warnings as they approached
  469. the cutoff.  Even after cutoff, they were allowed to return during off-peak
  470. hours to complete their work.  The ACJ and Omega allowed our DEC-20s to
  471. accommodate a population upwards of 6000 active students on four machines at
  472. the peak of the DEC-20 era.
  473.  
  474. One area was of particular interest to us.  Terminals were not connected
  475. directly to our DEC-20s, but were switched through a data PBX.  Therefore,
  476. the DEC-20 did not know that TTY37 (for instance) was terminal number X in
  477. room Y of building Z.  For reasons of both security and convenience, it was
  478. necessary to have this knowledge.  If a user was suspected of misbehavior,
  479. the staff had to know the user's physical location.  And upon job creation,
  480. the exec needed to know the terminal type and speed, so the user would not
  481. be confused by fractured, jumbled screens.  Fortunately, the data PBX had a
  482. console terminal that kept a log of connections.  This was connected, via an
  483. octopus RS-232 cable, to ports on each of the DEC-20s, which kept a database
  484. of PBX ports, locations, terminal types, and speeds.  This database was used
  485. by the ACJ to prevent enabling of capabilities by users at insecure
  486. locations like student terminal rooms and dialups, and to prevent login of
  487. certain IDs (like Operator and Field Service) altogether outside of the
  488. machine room.
  489.  
  490. The logs kept by the ACJ and Omega included the physical location of the
  491. job.  These logs enabled us to track down more than a few would-be and
  492. actual violators of system security, and other users' privacy.
  493.  
  494.  
  495. NETWORKING
  496.  
  497. Our first DEC-20 was connected to the IBM 360/91 using DEC's HASP/RJE
  498. product, which required its own dedicated DN20 front end.  This method of
  499. communication was quite painful, requiring the DEC-20 to masquerade as a
  500. card reader and line printer to the IBM system.  We wrote a series of Sail
  501. programs that would build the "magic JCL sandwich" for our users who wanted
  502. to send files or submit jobs to the IBM system.
  503.  
  504. As soon as we got our second DEC-20, we connected it to the first one with
  505. DECnet [date?], and then connected this small network with other DEC systems
  506. on campus.  DECnet was also in use on the Carnegie-Mellon University
  507. computer center machines, and so we merged our two DECnets into one with a
  508. leased phone line between New York and Pittsburgh, calling the expanded
  509. network CCnet [date?] (CC stands for Computer Center, or maybe
  510. Carnegie-Columbia).  Before long, other institutions joined the network --
  511. Stevens Institute of Technology, Case Western Reserve University, New York
  512. University, the University of Toledo, and others.  The major benefit was
  513. sharing of software and programming work by the computer management staffs
  514. at these sites, which included DEC-20s, DEC-10s, VAXes, PDP-11s, and other
  515. DEC systems.  For many years, Columbia and CMU ran a common DEC-20 Galaxy
  516. system, jointly developed, which allowed transparent printing over DECnet
  517. and spooled print tapes for the Xerox 9700 printer.  One of Columbia's
  518. DEC-20s served as a mail gateway between CCnet and BITNET, a large academic
  519. network based upon IBM mainframe RSCS protocols.
  520.  
  521. The most important contribution of the DEC-20 to networking was its support
  522. for the ARPANET protocols, first NCP and later TCP/IP.  For many years, DEC
  523. was the only major computer vendor to support these protocols, which were
  524. mostly developed on DEC 36-bit machines under TENEX, TOPS-10, and TOPS-20
  525. (and later on VAXes for Berkeley UNIX).  In the late 70s and early 80s, the
  526. days in which the ARPAnet grew and prospered beyond its original tiny
  527. research mandate, it was dominated by DEC 36-bit machines, and many of the
  528. basic Internet protocols and procedures were developed in that framework.
  529. DEC itself had a DEC-20 on the ARPANET, which allowed major DEC-20 academic
  530. and research sites to communicate directly with TOPS-20 engineers, to send
  531. bug reports or fixes by e-mail, to transfer files, and so forth.  An
  532. ARPANET mailing list of TOPS-20 managers was set up by Mark Crispin at
  533. Stanford.  The mailing list included TOPS-20 developers at DEC, and there
  534. was much useful give and take which bypassed the cumbersome SPR procedure.
  535.  
  536. Locally, our own DEC-20s received NIA20 Ethernet interfaces to replace the
  537. awkward and oversized DN20 front ends.  Ethernet allowed us to run TCP/IP
  538. alongside DECnet, and before long [circa 1982] there was a large campus-wide
  539. Ethernet connecting the computer center DEC-20s with departmental systems
  540. all over campus, and beyond, thanks to the Computer Science department's
  541. Internet membership [1982?], and later [1984?], our own membership in other
  542. wide-area TCP/IP based networks like NYSERNET and JVNCNET.  Ethernet and
  543. TCP/IP even allowed us to discard our HASP RJE link to the IBM mainframes,
  544. which by now were on the Ethernet, running TCP/IP code from the University
  545. of Wisconsin (later incorporated by IBM into their own product line).
  546.  
  547.  
  548. KERMIT
  549.  
  550. At the height of the DEC-20's popularity, the demand among students and
  551. faculty for user IDs was so great that we could no longer afford to give out
  552. perpetual IDs.  Instead, instructional IDs were assigned on a per-course
  553. basis and then deleted at the end of each semester.  Even though files were
  554. scrupulously backed up to tape, students were not allowed to request
  555. restoral of a previous term's files because of limited tape drive capacity
  556. and operator coverage.  And even during the term, a student's disk quota
  557. (something like 35K as I recall) was often not sufficient to keep all her
  558. files online at the same time.
  559.  
  560. If the DEC-20 had some kind of removable media, then users could take
  561. responsibility for managing and archiving their own files.  Our first effort
  562. in this area involved a little-known product called the DN200, a remote
  563. DECnet station that was originally designed to connect 32 terminals and a
  564. line printer to the DEC-20 (this product never quite ripened).  The DN200
  565. was a PDP-11/34 running some derivative of RSX.  Ours -- one of a kind --
  566. included a dual 8-inch floppy disk drive.  Our plan was to write DN200
  567. software for copying files between the diskettes and the DEC-20 file system.
  568. Users would simply insert their own floppies and issue COPY commands to save
  569. or restore their files.  Fortunately, this project never got off the ground.
  570.  
  571. But the idea of removable media felt right.  Computer users had had it for
  572. years in the form of cards, paper tape, or even DEC's own irresistible little
  573. spinning DECtapes, such a fixture on the PDP-8, -9, -10, -11, -12, etc, and
  574. sorely missing from the -20.  A number of crazy schemes were considered and
  575. rejected: letting users send files to the IBM mainframe's card punch,
  576. putting a 9-track "self service" tape drive in a public area, writing a
  577. program that would convert the user's data to bar codes for printing on our
  578. Printronix printers...
  579.  
  580. Right around this time (1980), 8-bit CP/M microcomputers were appearing on
  581. the scene.  Even if they weren't good for much else, they could communicate,
  582. and they could read and write floppy disks.  Put a few of these in public
  583. areas, connect them to the DEC-20s, and students would have their removeable
  584. media -- little disks they could take away with them, store and reuse
  585. without reliance on the computer center staff.  The big question was how to
  586. move a file from a big timesharing mainframe to a small personal computer.
  587.  
  588. We looked at the marketplace and saw that there were a few commercial RS-232
  589. communication packages for micros, but none for the DEC-20.  And we had not
  590. only DEC-20s and micros to worry about, but also our IBM mainframes.  If we
  591. bought software to transfer files between the DEC-20 and the Intertec
  592. Superbrain (this was the micro we selected, primarily for its tank-like
  593. user-proof construction, and despite its silly name), assuming it was
  594. available, we would have to buy yet another software package for our IBM
  595. mainframe users to do the same.  We also had to consider that the Superbrain
  596. might not be everyone's micro of choice.  Columbia, being a highly
  597. decentralized and diverse organization, was likely to have as many different
  598. kinds of computers as there were places to put them.  If a separate software
  599. package was required to connect each unique pair of systems, then we'd find
  600. ourselves needing nearly n-squared distinct packages, where n is the number
  601. of different kinds of computer systems, with sufficient copies to cover each
  602. instance of each system.
  603.  
  604. Far better to have one software package on each computer, a package that is
  605. capable of exchanging data with all the other computers.  This reduces the
  606. number of required programs to n, which in turn eases the burden on the
  607. budget, and makes the user's life a little easier.
  608.  
  609. All of these questions resulted in the decision to invest in our own
  610. programmers rather than the software companies.  This way we could have
  611. software specifically designed for our own needs.  The end result was the
  612. Kermit file transfer protocol.  Our first Kermit programs were written for
  613. the DEC-20 and the Superbrain.  Superbrains were placed in public areas to
  614. allow students to copy their own files onto floppies, and restore them to
  615. the DEC-20 later.
  616.  
  617. The Kermit protocol was largely influenced by limitations of the DEC-20.
  618. The DEC-20, with its PDP-11/40 front end, was designed on the assumption
  619. that terminal input comes directly from people sitting at keyboards typing
  620. with their fingers at a relatively slow rate -- maybe 10 characters per
  621. second, tops -- whereas large amounts of sustained output can be sent from
  622. the computer to the screen.  RSX20F, the front end's operating system,
  623. therefore allocates small buffers for input and large ones for output.  We
  624. learned about this the hard way, when we bought our first terminals that
  625. included a "transmit screen" function (HDS Concept-100s).  As soon as
  626. someone tried it, the front end crashed.  Similar phenomena were observed
  627. with autorepeat keys (as when one of our programmers fell asleep on the
  628. keyboard)(*), and again when DEC first released its VT100 terminal: when
  629. doing smooth scrolling at 9600 bps the terminal overwhelmed the poor front
  630. end with XOFFs and XONs.  Later releases of RSX20F coped with these problems
  631. in draconian fashion -- if input buffers could not be allocated fast enough,
  632. the front end would set the line's speed to zero for a second or two!  The
  633. lesson?  Don't send sustained bursts of terminal data into the DEC-20 --
  634. it's like trying to make sparrow eat a meatball hero.  Kermit's normal
  635. packets are therefore quite short, 96 characters maximum -- seeds, insects,
  636. and worms that a sparrow can digest.
  637.  
  638.  (*) The steady stream of characters caused a crash; the system recovered
  639.      but the steady stream continued; the system crashed again, and so on
  640.      throughout the night.
  641.  
  642. Another peculiarity of the DEC-20 is its sensitivity to control characters.
  643. During normal terminal dialog, 17 of the 33 ASCII control characters are
  644. used for special purposes -- editing, program interruption, flow control,
  645. status reporting, signalling end of file, etc. -- rather than being accepted
  646. as data.  Even though a DEC-20 program can open the terminal in "binary
  647. mode" to bypass the special processing of these characters, it is not
  648. necessarily desirable to do so, because some of these functions could be
  649. useful during data transfer.  The lesson here is don't send control
  650. characters "bare" when transferring data.  In fact, the Kermit protocol
  651. sends packets that are strictly lines of text.
  652.  
  653. The IBM mainframe (by this time, the 360/91 had been replaced by a 4341
  654. running the VM/CMS operating system) had its own set of peculiarities.
  655. Unlike the DEC-20, it used half duplex communication, and used 7 data bits
  656. with parity always.  This meant that our file transfer protocol would have
  657. to be half duplex too, and would require a special mechanism for
  658. transmitting 8-bit binary data through a 7-bit communication link.
  659. Furthermore, as all communication was through either a 3705 front end
  660. (linemode) or an IBM Series/1 (or equivalent, e.g. 7171 or 4994) 3270
  661. protocol converter, both of which treated many of the control characters as
  662. commands to be executed immediately, the prohibition on bare control
  663. characters in data was reinforced.  Reducing the protocol to the lowest
  664. common denominator made it work in all cases, but at the expense of
  665. efficiency and elegance.  Some of the resulting shortcomings were addressed
  666. in later years by the addition of long packets and full-duplex packet
  667. transfer to the protocol.
  668.  
  669. By happy coincidence, the combined quirks of the DEC-20, the IBM mainframe,
  670. and the CP/M microcomputer resulted in a design that would prove adaptable
  671. to practically any computer capable of asynchronous communication.  A
  672. file was first transferred with Kermit protocol on April 29, 1981, by two
  673. instances of Kermit-20 running on a single DEC-20, using two serial ports
  674. interconnected by a null modem cable.
  675.  
  676. The idea of sharing our Kermit programs and giving away the source code was
  677. a natural outgrowth of our experiences with the community of DEC-10/20
  678. customers.  We received so much of our own software this way, it was only
  679. fair.  We included Kermit on our export tapes and submitted it to DECUS.
  680. DEC was one of the first companies to recognize Kermit as a tool of
  681. widespread value, and publicized it in their Large Systems flyers and
  682. newsletters (e.g. Copy-N-Mail).  And DEC was the first organization to port
  683. Kermit to a new platform -- their VT-180 CP/M micro.  Because we wanted
  684. Kermit software to the shared openly, we did not place our Kermit programs
  685. into the public domain.  While this might seem contradictory, we felt that
  686. by copyrighting the programs, we could prevent them from being taken by
  687. entrepreneurs and sold as commercial products.  We had even heard stories of
  688. other universities that had been enjoined from using programs which they
  689. themselves had written by firms that had taken their work and copyrighted it
  690. for themselves.
  691.  
  692. Because of the widespread distribution of early Kermit programs, along with
  693. source code and the protocol specification, sites with other kinds of
  694. systems began to write Kermit programs of their own and send them back to
  695. us.  Some of the early contributions in this vein were DECsystem-10 and
  696. VAX/VMS Kermit programs from Stevens Institute of Technology (written in
  697. Common Bliss so the code could be shared), PDP-11 Kermit from the University
  698. of Toledo, and the first bare-bones UNIX Kermit in C from our own Computer
  699. Science department.  The process continued for many years, resulting in
  700. the large collection of Kermit programs you can find today at the Kermit
  701. Project FTP site.
  702.  
  703. Columbia's Kermit Project used the DEC-20, our CU20B system, as its testbed,
  704. librarian, and network home since the beginning until CU20B (our last
  705. remaining DEC-20) was switched off in September 1988.  The electronic
  706. Info-Kermit newsletter was produced and sent out to people on academic and
  707. corporate networks all over the world from the DEC-20 using MM, the DEC-20
  708. mail program.  Those same users can use MM for queries and information, and
  709. they can also access programs, source code, and documentation through the
  710. DEC-20's DECnet and TCP/IP file servers.  Even our distribution tapes were
  711. originally shipped from our DEC-20s.
  712.  
  713. During early days, DEC-20 Kermit was the "benchmark" against which all other
  714. Kermits were to be verified for interoperability.  Many new Kermit features
  715. were added to DEC-20 Kermit first (server mode, etc).  The DEC-20 user
  716. interface became the model for most Kermit programs, so millions of people
  717. today are using the COMND JSYS without knowing it.  Long after the DEC-20
  718. faded from the scene, Kermit programs on Windows, UNIX, MS-DOS, and many
  719. other platforms continue to "keep the faith".
  720.  
  721. Soon after Kermit first appeared, microcomputing became an important force
  722. with the introduction of the IBM PC.  PCs suddenly became useful
  723. general-purpose computers in their own right.  In response to urgent
  724. requests from Columbia faculty members who had received the first IBM PCs,
  725. we hastily produced version 1 of IBM PC Kermit and found that Kermit was
  726. being used in ways we hadn't anticipated.  Rather than use the PC's floppies
  727. to store mainframe files, users were doing most of their file creation and
  728. manipulation on the PC, and sending the results to the mainframe for
  729. archiving and sharing.  Kermit had become an early model of distributed
  730. processing.  
  731.  
  732. (In later years, after the original Kermit project was canceled by the
  733. university, it nevertheless managed to continue through various forms of
  734. self-funding.)
  735.  
  736.  
  737. SOFTWARE PACKAGES
  738.  
  739. The DEC 36-bit large systems were the source of some of the most influential
  740. and enduring software packages yet written.  Here we arbitrarily mention a
  741. few of our favorites, with apologies to the hundreds that we have neglected.
  742.  
  743. -- Editors
  744.  
  745. Foremost among the programs created on these systems is the text editor
  746. EMACS, created by Richard M. Stallman on ITS, MIT's "Incompatible
  747. Timesharing System" for the PDP-10.  EMACS embodied the revolutionary
  748. concept that the terminal screen should act as a window upon the text being
  749. edited, and that any changes to the text should be reflected immediately on
  750. the screen.  After many years of line-oriented editing (and before that,
  751. keypunching) it was hard for us at first to comprehend the power and
  752. convenience of a screen editor.  There was even discussion about whether we
  753. should allow it on our system, as if it were a subsersive influence...
  754. "What do we need it for?  Every keystroke results in 37 context switches!"
  755. etc etc.  But soon even the skeptics began to appreciate EMACS for its
  756. enormous boost to human productivity, and it quickly became the editor of
  757. choice for staff, students, and faculty alike.  A cottage industry sprang up
  758. at Columbia for adding new terminal types and operations to TECO's database
  759. (DEC-10/20 EMACS was written in TECO), as well as new libraries for EMACS
  760. itself.
  761.  
  762. While some may view EMACS and its descendents as "obsolete" today, compared
  763. to GUI editors and word processors, it has one great advantage over the
  764. newer editors: it is entirely driven by ordinary ASCII characters (*) (as
  765. opposed to function or arrow keys, mouse, etc) so touch typists never have
  766. to leave the home keys, and skilled EMACS users can enter and manipulate
  767. text faster than experts with other editors can, especially modern GUI
  768. editors.  And by restricting the command set to ordinary ASCII characters,
  769. EMACS can be used on any platform, no matter how you access it (the
  770. workstation's own keyboard and screen, an xterm window, telnet, dialin,
  771. rlogin, ssh, etc).
  772.  
  773.  (*) 8-bit commands are also possible but not required.  Originally,
  774.      they were produced with a "Meta" key, which was available on
  775.      certain select terminals.  But since about 1990, it has become 
  776.      more important to be able to enter 8-bit data characters, such as
  777.      the accented letters of Italian and Spanish; the special letters
  778.      of German and Icelandic; the non-Roman letters of Russian, Greek,
  779.      Hebrew, and so on.
  780.      
  781. -- Text Formatters
  782.  
  783. EMACS is an editor for ASCII text, which means that by itself it cannot
  784. ordinarily produce special printing effects like boldface, italics,
  785. underlining, math notation, different point sizes, graphics, etc.  For that
  786. we need -- at least in the world of character terminals -- a text formatter.
  787. EMACS was one of several screen editors for the DEC-20 (TV and TVEDIT were
  788. other early contenders), and there were also several text formatters.  The
  789. DEC-20 comes, of course, with RUNOFF, DEC's standard formatter.  RUNOFF is
  790. simple, not too powerful, but has the advantage that RUNOFF files are mostly
  791. portable among PDP-11's, VAXes, DEC-10s, and DEC-20s.  However, RUNOFF is
  792. proprietary and therefore not available on non-DEC systems.  RUNOFF also has
  793. three basic flaws.  First, it is strictly procedural, which means that the
  794. writer must behave like a programmer, instructing RUNOFF in the minutest
  795. detail.  Second, it can't do math.  And third, it does not support a wide
  796. variety of output devices.
  797.  
  798. These shortcomings are addressed by several text formatters that were
  799. developed by users of DEC large systems, and for that matter some of its
  800. smaller systems (UNIX, for instance, was originally written for the PDP-7,
  801. and later moved to the PDP-11; UNIX nroff and troff are probably offshoots
  802. of RUNOFF).  Early efforts on 36-bit systems included R and Pub.
  803.  
  804. Brian Reid, working on a DECsystem-10 for his PhD thesis at CMU, devised a
  805. document production language called Scribe, which addressed the procedural
  806. element.  Where in RUNOFF one must say, "center and underline this word,
  807. leave 7 blank lines, indent 4 spaces, etc", in Scribe one says "This is an
  808. article, here is the title, here is a section, here is a footnote, here is a
  809. bibliographic citation, put this in the index, etc" and leaves the stylistic
  810. decisions and details up to Scribe, which includes a vast database of
  811. document types and publication styles.  For example, if you have written an
  812. article for the CACM, you can ask Scribe to format it in the CACM's required
  813. style.  When the CACM rejects it, you simply tell Scribe to redo it in IEEE
  814. Computer format, and then submit it there (*).
  815.  
  816.  (*) Newcomers to computing might not appreciate the separation of text
  817.      editing from text formatting, or the advantage of embedding
  818.      plain-text formatting commands in the text over manually making
  819.      this word bold, that word italic, and so on, in a word processor.
  820.      But this is not the place to explain it.
  821.  
  822. During its development, Scribe was shared freely with other universities,
  823. and there was much give and take between Brian and users all over.  When
  824. Brian left CMU, however, rights to Scribe were sold to a private company,
  825. Unilogic Ltd, which sold it as a commercial product (*).  Scribe was a
  826. fixture at many DEC-10 and -20 sites, and has been converted from the
  827. original Bliss to other languages for use on systems like UNIX, VMS, and
  828. even IBM mainframes.
  829.  
  830.  (*) Ownership of Scribe has changed hands several times since then and
  831.      is no longer easily pinned down, but reportedly [2001] they are
  832.      still in business.
  833.  
  834. Meanwhile at Stanford, Donald Knuth was planning new editions of his
  835. multivolume work, "The Art of Computer Programming."  But he soon discovered
  836. that in the time since his first editions were published, the art of
  837. mathematical typesetting, like that of architectural stonecutting, had died:
  838. he could not find a typesetter equal to the task.  So he set to work on a
  839. computer program for mathematical typesetting and a set of harmonious fonts
  840. suitable for computer downloading to a laser printer.  The work was done on
  841. a PDP-10 at Stanford, running their homegrown operating system WAITS, in the
  842. Sail language.  The result, a system called TeX (tau epsilon chi) and
  843. METAFONT, its companion font-builder, attracted many devotees, and the
  844. original Sail program was soon translated into other languages for
  845. portability.  It now runs on many different platforms, and is responsible
  846. for the production of numerous books and articles of surpassing
  847. typographical beauty.
  848.  
  849. Both TeX and Scribe support a wide variety of output devices, and are among
  850. the earliest text formatters to do so.  When Xerox let a few of its XGP
  851. printers (an experimental Xerographic printer with fonts downloaded from the
  852. host) escape into laboratories at Stanford, MIT, and CMU in the early 70's,
  853. these were quickly hooked up to PDP-10s, to be driven by formatters like R
  854. and Pub.  Their flexibility supplied the impetus to people like Don and
  855. Brian to include fullblown typesetting concepts in their designs, and
  856. because of this, it was possible later to add support to TeX and Scribe for
  857. printers like the GSI CAT-4 (then widely used at Bell Labs with Troff), the
  858. Xerox Dover, the Imagen, and today's PostScript printers (and if we're not
  859. mistaken, Brian was the guiding force behind PostScript too).
  860.  
  861. -- Electronic Mail
  862.  
  863. The benefits of electronic mail hardly need touting, but there was a time
  864. when people didn't use it or trust it.  Today, many of these same people can
  865. scarcely live without it.  Its major benefit is that it lets the people who
  866. participate in it communicate conveniently, and with some assurrance that
  867. the message will be received.  Unlike postal mail, e-mail can be sent on the
  868. spur of the moment, and a single message can be sent to more than one person
  869. at once.  Unlike telephone calls, e-mail does not depend on the callee being
  870. present when the message is sent.  There are those who say that it's a
  871. dehumanizing influence, that people in adjacent offices who once would visit
  872. and chat now sit glued to their screens and fire off e-mail messages to each
  873. other, messages whose true intent cannot be gleaned from facial expression,
  874. body language, or tone of voice.  This may be true, but e-mail is here to
  875. stay and most people will find a way to fit it into their lives in a
  876. sensible way.
  877.  
  878. If you did a SYSTAT on any DEC-20 at Columbia since 1978, you would see
  879. about half the users running EMACS and the other half MM, with only
  880. occasional time out for text formatting, program compilation, file transfer,
  881. and other kinds of "real work".  MM is the Mail Manager, originally written
  882. by Mike McMahon and taken over later by Mark Crispin.  It is the "user
  883. agent" side of the mail system.  MM is an ordinary unprivileged user program
  884. which lets you read your mail, compose and send mail to other users, forward
  885. mail, and manage your mail file.  MM lets you move messages to different
  886. files, to print messages, delete them, flag them for later attention, and so
  887. on.
  888.  
  889. Any operation that MM can perform on a single message can also apply to a
  890. message sequence.  This is one of MM's most powerful features.  MM's message
  891. selection functions let you treat your mail file almost like a database, and
  892. issue complex queries like "show me (or reply to, or delete, or forward, or
  893. flag, or print) all the messages from so-and-so sent between such-and-such
  894. dates that are longer than so-many characters and include the word 'foo' in
  895. their subject."
  896.  
  897. MM is enormously powerful, but it's also easy to use because it fully
  898. employs the COMND JSYS.  Users can find out what's expected at any point by
  899. typing a question mark (except when composing message text, in which case
  900. the question mark becomes part of the text).  There is a SET command that
  901. allows many of MM's operations to be customized, and its default actions
  902. changed.  Users can save these customizations in an initialization file, so
  903. they are made automatically every time MM is run.
  904.  
  905. MM was quickly adopted in favor of DEC-20 MAIL and RDMAIL, and was used
  906. initially among the programming staff.  Its use quickly spread to the
  907. students and faculty, to the extent that several courses came to totally
  908. depend on it.  Homeworks and readings were assigned, conferences were
  909. conducted, assignments turned in, questions asked and answered, all with MM.
  910. MM is also used to post messages to public "bulletin boards," which were
  911. used for everything from selling used motorcycles to trivia quizzes to
  912. raging controversies on political topics.
  913.  
  914. At Columbia, many of the departments are spread across different buildings,
  915. on and off campus.  These departments were ideal candidates for electronic
  916. mail, and many of them run their daily business using MM.  And MM is equally
  917. at home in the networked environment.  Given the appropriate network
  918. connections and delivery agent, MM can be -- and is -- used to transmit
  919. electronic mail all over the world, faster than any post office or delivery
  920. service could deliver paper.  From Columbia, we send e-mail to locations as
  921. far-flung as Utah, England, Norway, Australia, Brazil, Japan, China, and the
  922. USSR, and receive replies within minutes (assuming our correspondents keep
  923. the same kind of odd hours we do!).
  924.  
  925.  
  926. OTHER NOTEWORTHY CONTRIBUTIONS
  927.  
  928. The DEC-20 architecture actually goes back to the mid 1960s, to DEC's PDP-6,
  929. which was designed with LISP in mind -- the halfwords and associated
  930. instructions are perfect for CARs and CDRs (that's LISP talk, descended from
  931. instruction set of the IBM 7090, where LISP was first developed).  Most of
  932. the large implementations of LISP were done for DEC's 36-bit machines --
  933. MACLISP, INTERLISP -- and among the applications based on them, MIT's
  934. MACSYMA stands out as a landmark.  MACSYMA is used by scientists and
  935. engineers to manipulate mathematical expressions of arbitrary complexity on
  936. the symbolic, rather than numerical, level.  There is one famous (perhaps
  937. apocryphal) story about a 19th-century astronomer-mathematician who devoted
  938. his life to formulating the exact equation of motion of the moon.  The
  939. result filled a 300-page book.  MACSYMA was given the same problem and
  940. solved it in about half an hour, finding a few mistakes in the original to
  941. boot.
  942.  
  943. In 1971, Ralph Gorin of Stanford University wrote the first known
  944. computer-based spelling checker for text, SPELL for TOPS-10.  It was later
  945. adapted to the DEC-20, and "interfaced" with packages like EMACS and MM.
  946. The descendents of SPELL are legion -- no self-respecting PC-based word
  947. processing program would appear in public without a spelling corrector.
  948.  
  949.  
  950. CONVERTING TO UNIX
  951.  
  952.   [Remember: this document was written in 1988.]
  953.  
  954. "Smooth sailing through the 80's..."  By the late '80s, demand for DEC-20
  955. service leveled off and then began to drop.  The DEC-20 was like a clipper
  956. ship, the highest expression of a technology which many believed obsolete --
  957. the large central timesharing computer.  Students were now willing to forego
  958. the amenities of the DEC-20 for the control and predictability of a PC of
  959. their own.  Thanks to Columbia's membership in the Apple University
  960. Consortium, there were soon thousands of Macintoshes in student hands.
  961. Special arrangements with IBM also put IBM PCs in hundreds of offices and
  962. dorm rooms.  These systems met student's needs for small programming
  963. assignments in Pascal and Basic, as well as for modest word processing, and
  964. relieved the central systems of a large burden.  However, PCs did not
  965. fulfill the needs of the Computer Science and other engineering departments,
  966. where larger projects were assigned in languages like Fortran, C, Prolog,
  967. and Lisp, which were not readily and affordably available for PCs.
  968.  
  969. Meanwhile, UNIX was taking over the computing world -- on mainframes, minis,
  970. workstations, and even PCs.  Our major group of instructional users -- CS
  971. students -- were doing most of their work on departmental ATT 3B2's, but
  972. badly needed a centralized, reliable environment with tolerable performance,
  973. backups, service, and all the rest.  We already had been running UNIX on a
  974. VAX 750 for some years (for internal development work), as well as Amdahl
  975. UTS on an IBM mainframe, so had developed some UNIX expertise.
  976.  
  977. For these reasons, we decided that it was time to start converting from
  978. TOPS-20 to UNIX.  For financial reasons, we chose a VAX 8650 for this
  979. purpose.  The DEC-20 tradein was attractive, and we were able to keep our
  980. old disk and tape drives.  In fact, we figured that over 3 years, buying the
  981. VAX was cheaper than keeping the DEC-20.  And it was more powerful, with a
  982. bigger address space, in a smaller footprint, than the DEC-20 it replaced.
  983.  
  984. VMS was not chosen for several reasons.  First, we were feeling somewhat
  985. betrayed by DEC's abandonment of TOPS-20, and did not want to leave
  986. ourselves open to the same treatment in the future.  UNIX, unlike VMS, does
  987. not tie you to a particular vendor.  Furthermore, UNIX has networking and
  988. communications for all our major requirements: Ethernet, TCP/IP, DECnet (our
  989. initial UNIX was Ultrix-32), BITNET (UREP), RS-232 and LAT terminals,
  990. Kermit.  And UNIX itself has many benefits: a very powerful applications
  991. development environment for experienced programmers, a programmable shell,
  992. piping of programs, simple but powerful utilities.
  993.  
  994. UNIX, however, is notoriously terse, cryptic and unfriendly, especially to
  995. novice computer users.  VMS, though lacking the DEC-20's COMND JSYS, is
  996. certainly friendlier than UNIX, and verbose to a fault.  So it was not
  997. without some misgivings that we embarked on the conversion.
  998.  
  999. Many of us DEC-20 users were resistant to change.  Familiarity, for better
  1000. or for worse, is often more appealing than uncertainty.  But converting to
  1001. UNIX did force us to give up some of the features which originally drew us
  1002. to the DEC-20 in the first place.
  1003.  
  1004. The "user-friendly" shell provided by the TOPS-20 Exec, which gives help to
  1005. those who need it but does not penalize expert users, is probably the
  1006. feature that was missed the most.  In UNIX, most commands are programs,
  1007. assumed to have arguments of only options or filenames.  This means you
  1008. can't have "?" for commands and arguments in the shell, because the programs
  1009. that would act upon the help request hasn't even started running yet.  This
  1010. is the opposite of TOPS-20, where most major functions are built into the
  1011. exec, but which doesn't allow concise building-block programs to be piped
  1012. together as UNIX does.
  1013.  
  1014. To cite an example of the radical difference between the TOPS-20 and UNIX
  1015. philosophies, suppose you wanted to create a procedure that would produce a
  1016. directory listing, sort it in reverse order by filesize, and format the
  1017. listing into numbered pages with three columns per page, suitable for
  1018. printing.  In TOPS-20 you would spend a week writing an assembly language
  1019. program to do all of this.  In UNIX, the tools are already there and only
  1020. need to be combined in the desired way:
  1021.  
  1022.   ls -s | sort -r | pr -3
  1023.  
  1024. This makes UNIX look pretty attractive.  But the DEC-20 program, once
  1025. written, will contain built-in help, command and filename completion, etc,
  1026. whereas the UNIX procedure can only be used by those who know exactly what
  1027. they are doing.  If you've typed "ls -s | sort" but don't know what the
  1028. appropriate sort option is, typing question mark at that point won't do any
  1029. good because the sort program isn't running yet.
  1030.  
  1031. The DEC-20 (like most common operating systems) uses case-independent
  1032. commands and filenames.  Case dependence, however, is a feature of UNIX
  1033. which is vigorously defended by its advocates.  It can be quite confusing to
  1034. users of other operating systems.  In general, UNIX commands are very
  1035. different from the commands used in other systems.  Even if the DEC-20 had
  1036. not offered a menu-on-demand help facility the average user could have
  1037. probably guessed the proper commands to type -- DELETE to delete a file,
  1038. COPY to copy a file, RENAME to rename a file, etc.  In UNIX, how do you
  1039. delete a file?  DELETE?  No.... ERASE?  No, it's "rm" (small letters only!).
  1040.  
  1041. Without a manual at your side, how could you find this out?  Even if you
  1042. knew about "man -k" (keyword search through the online manual), UNIX doesn't
  1043. give you much assistance: "man -k delete" doesn't turn up anything relevant,
  1044. neither does "man -k erase".  But at least "rm" is somewhat suggestive of
  1045. the word "remove", and indeed "man -k remove" would have uncovered the
  1046. elusive command (early versions of UNIX had an even more elusive name for
  1047. this command: dsw, an abbreviation for "do swedanya", Russian for goodbye,
  1048. transliterated into Polish or perhaps German; this is not the only place
  1049. where the censor has been at work...  Current "standard" versions of UNIX do
  1050. not have a "help" command, but in earlier releases, a help command was
  1051. provided which declared simply, "UNIX helps those who help themselves").
  1052.  
  1053. A special amenity of TOPS-20 is its retention of multiple generations
  1054. (versions) of each file, giving the ability to revert to an earlier version
  1055. should the latest one suffer from human error, folly, or tragedy.  This,
  1056. coupled with the ability to resurrect a file after it is deleted, imparts a
  1057. sense of comfort and security that can only be appreciated once one moves to
  1058. a more conventional and precarious file system.  If you delete a file in
  1059. UNIX, or create a new file with the same name as an existing one, then the
  1060. old file is just plain gone.  The "rm *" command in UNIX is simply too
  1061. powerful, and too silent.  Yes, it did what you said, but how did it know
  1062. you meant what you said?  UNIX does not save users from themselves.  After
  1063. accidentally deleting all your files in UNIX you will never again be annoyed
  1064. when you type a command and it asks "Are you sure?".
  1065.  
  1066. Another important feature of TOPS-20 is the logical device name, which can
  1067. be defined in infinite variety for the system as a whole, and for each
  1068. individual user.  Each logical name can point to a particular device and/or
  1069. directory, or to a whole series of them, to be searched in order.  These are
  1070. built into the operating system itself, whereas the notion of PATH and
  1071. CDPATH are afterthoughts, grafted into the UNIX shell, not available from
  1072. within programs, and not applicable outside their limited spheres of
  1073. operation.
  1074.  
  1075. Then we have the programming languages which would no longer be available --
  1076. ALGOL (60 & 68), APL, BASIC, BCPL, BLISS (10, 11, and 36), CPL (and "real"
  1077. PL/I), ECL, FOCAL, PPL, SAIL, SIMULA, SNOBOL, ...  And TECO!  And MACRO and
  1078. Midas and Fail...  In fact, few people will miss any of these, with the
  1079. possible exceptions of APL (used in some classes) and SNOBOL (which can still
  1080. be found for UNIX on selected platforms).
  1081.  
  1082. Of course all our homegrown applications written in assembly language had to
  1083. be be redone for UNIX: user ID entry and management (as opposed to editing
  1084. the passwd file), accounting, user restrictions (ACJ, Omega).  And one
  1085. feature which we could never again live without is MM, a powerful mail
  1086. management system equally usable by novices and experts.
  1087.  
  1088. On the positive side, we would not be giving up EMACS, Scribe, TeX, Kermit,
  1089. or the TCP/IP utilities Telnet and FTP.  All of these programs are available
  1090. in some form for UNIX.  Some of the UNIX implementations are definite
  1091. improvements, such as GNU EMACS from the Free Software Foundation, without
  1092. the memory limitations of TOPS-20 EMACS.  There is also a high quality
  1093. Fortran from DEC for our engineers, and of course the whole C and LISP
  1094. programming environments for CS students and other software developers, plus
  1095. a set of powerful text manipulation utilities like sed, grep, awk, lex, and
  1096. yacc, whose functions should be obvious from their names.
  1097.  
  1098. The VAX installation was much quicker than the typical DEC-20 installation.
  1099. The 8650's performance was quite snappy, and its reliability was excellent.
  1100. After one year, the 8650 was sold, and a second DEC-2065 was traded in to
  1101. DEC for a VAX 8700.  The 8700 is about the same power as the 8650, but,
  1102. unlike the 8650, is compatible with the new BI devices, and upgradable to a
  1103. bigger model VAX should it run out of steam.
  1104.  
  1105. It turned out, however, that it when it came time for expansion, it was more
  1106. cost-effective to buy Sun UNIX systems rather than upgrade the 8700 to a
  1107. bigger VAX.  This is a choice you don't get with a proprietary operating
  1108. system like TOPS-20, VMS, etc.  Converting from a VAX to a SUN requires some
  1109. "giving up" (e.g. DECnet) but not nearly so much as the journey from DEC-20
  1110. to VAX, and in return you get a very powerful machine in a fraction of the
  1111. VAX's floorspace -- what the Jupiter should have been, but with UNIX instead
  1112. of TOPS-20.
  1113.  
  1114.  
  1115. MAJOR CONVERSION ISSUES
  1116.  
  1117.   [Remember: this document was written in 1988.]
  1118.  
  1119. A big question during the conversion to UNIX was user education.  UNIX does
  1120. not help users the way TOPS-20 does.  There is no COMND-style ? help, there
  1121. is not even a "help" command.  The commands themselves do not have
  1122. intuititive names: a user would be hard-pressed to guess that "mv" is the
  1123. command to rename a file, "cat" to type a file, etc.  How will users know
  1124. how to respond to the mute "$" (or "%") staring them in the face?  Should we
  1125. write a user-friendly shell for them?  Or reams of tutorials and reference
  1126. manuals?
  1127.  
  1128. For all its cryptic terseness, UNIX has become very popular.  UNIX systems
  1129. run on computers of all kinds, from PCs to supercomputers.  Consequently,
  1130. computer bookstores are loaded with books of the "Teach Yourself UNIX"
  1131. variety.  Our feeling has been that no matter how cryptic and unfriendly
  1132. UNIX itself may be, it shouldn't be changed.  Otherwise we lose the
  1133. compatibility with other UNIX systems, the books and articles, we leave
  1134. ourselves open to a maintenance nightmare, and we let our users in for a
  1135. rude surprise should they ever encounter a real UNIX system.
  1136.  
  1137. Another issue is the mail system.  As the user-level mail agent, you have
  1138. the choice of UNIX mail or GNU EMACS RMAIL.  UNIX mail is primitive and
  1139. unintuitive, and RMAIL is accessible only to those who know EMACS.  RMAIL
  1140. has the advantage of a consistent interface -- no jumping in and out of the
  1141. editor -- but it has a relatively limited command repertoire.
  1142.  
  1143. Our users have become very much acclimated to electronic mail, thanks
  1144. largely to the power, convenience, and friendliness of MM.  Many of the
  1145. biggest users of MM are faculty or administrators who do not need to learn a
  1146. new mail system.  But a program as powerful as MM requires a lot of
  1147. commands, and when you have many commands, you need the kind of built-in
  1148. help that comes for free on the DEC-20.  Similar comments apply to other
  1149. complicated programs, for example (on our system) user ID entry and
  1150. management programs, the operator interface (like OPR on the DEC-20), etc.
  1151.  
  1152. For this reason, we decided to "turn our new system into our beloved old
  1153. one" by writing a COMND package for UNIX.  This package, CCMD, started as
  1154. part of the "Hermit" project, a Columbia research effort funded by DEC,
  1155. 1983-87.  We were trying to design a network architecture that would allow
  1156. various kinds of PCs -- IBM, Rainbow, Pro-380, VAXstation, SUN, Macintosh,
  1157. etc -- access to the files and services of our DEC-20 and IBM mainframes in
  1158. a consistent and transparent way.  The project ultimately failed, because
  1159. technology passed us by (cheap Ethernet & token ring connections and
  1160. gateways, Sun NFS, VAX-based Macintosh file servers, etc).
  1161.  
  1162. CCMD, written entirely in C, does all COMND functions and more, parses from
  1163. the terminal, a file, redirected standard input, or a string in memory.
  1164. It's not oriented to any specific keyboard or screen.  It favors neither the
  1165. novice nor the expert.  It runs under 4.xBSD, Ultrix, AT&T System V, SunOS,
  1166. and MS-DOS, and it should be easily portable to VAX/VMS, and any other
  1167. system with a C compiler.
  1168.  
  1169. CCMD is a fullblown COMND implementation, allowing chained FDBs (e.g. parse
  1170. a filename, or a number, or a date), redirection of command input, and so
  1171. forth.  Additions to the DEC-20 COMND JSYS include "?"-help lists for
  1172. matching filenames, partial filename completion (up to first character
  1173. that's not unique), a very flexible time and date parser, and additional
  1174. data types.
  1175.  
  1176. Using CCMD, Columbia's programmers were able to write a clone of DEC-20 MM
  1177. entirely in C.  It has all the features of DEC-20 MM, plus a few more.  It
  1178. handles a variety of mail-file formats, including DEC-20, Babyl (RMAIL), and
  1179. mbox (UNIX mail).  It uses UNIX sendmail as its delivery system, and should
  1180. be adaptable to the delivery services of non-UNIX systems.
  1181.  
  1182.  
  1183. FINAL WORDS...
  1184.  
  1185.   [Remember: this document was written in 1988.]
  1186.  
  1187. Columbia is highly decentralized and facing the budget squeeze common to all
  1188. higher education institutions.  There is no central mandate to put expensive
  1189. workstations on every desk, connected by gigabit fiber optic networks.
  1190. Students, faculty, and staff for the most part use their own or departmental
  1191. funds to get the best PC they can use, typically an IBM PC or Macintosh with
  1192. an RS-232 interface.  Most users communicate only sporadically via dialup,
  1193. or by hauling a diskette to a public PC lab, where PCs are connected to the
  1194. network or a laser printer.
  1195.  
  1196. As PCs become cheaper and more powerful, what's left to be done centrally?
  1197. There are those who claim that anything a VAX or DEC-20 can do, can also be
  1198. done on a PC.  The only exceptions might be very large applications, shared
  1199. and/or large and/or constantly changing databases, and communication in
  1200. general -- wide area networks, mail, shared program libraries, bulletin
  1201. boards, conferences, ...
  1202.  
  1203. But massive decentralization of computing means enormous duplication of
  1204. effort and expense for hardware, software licenses, and maintenance.
  1205. Everyone becomes a system manager, doing backups, troubleshooting, software
  1206. installation and debugging, consulting, training, scrounging for parts.
  1207. Researchers who were once hot on the trail of a cure for cancer or AIDS are
  1208. now twiddling DIP switches, running Norton utilities on their fractured hard
  1209. disks, poring through the back pages of BYTE for bargains.  Each person or
  1210. group may have a unique collection of software & hardware, which makes
  1211. instruction, collaboration, and most other functions much more difficult
  1212. than in the timesharing days.  And space must be found for computing
  1213. equipment in practically every office and dorm room, rather than in one
  1214. central area.  Some day, the budgeteers might notice the cumulative effect
  1215. of all this distributed computing and the pendulum will start to swing back
  1216. the other way.  What's the phrase, "economies of scale?"...
  1217.  
  1218. There was an article in the paper some years ago during the fuel crisis,
  1219. about bringing back clipper ships...  The DEC large systems, the clipper
  1220. ships of the timesharing era, will never return, but they will live on in
  1221. the software they spawned -- EMACS, TeX, Scribe, Spell, MM, Kermit, advanced
  1222. LISP dialects, and so on.  Meanwhile, as the computer industry struggles to
  1223. turn PCs into multiuser systems and to reinvent multiprocessing, security,
  1224. and other forgotten concepts, it might profitably pause to look back at the
  1225. past decades, when the expense and limitations of computing equipment forced
  1226. designers and coders to be...  well, smarter.
  1227.  
  1228.  
  1229. EPILOG [January 2001]
  1230.  
  1231. Today, when you can walk into an ordinary retail store and buy a computer
  1232. with 10 times the power (and 100 times the main memory, and 1000 times the
  1233. disk capacity) of the biggest, fastest KL10 ever made for under $1000, plug
  1234. it into an ordinary wall socket and phone jack (or cable box, etc), and be
  1235. on the Internet in a few minutes with full color graphics, video, sound,
  1236. and who knows what else, we might easily forget how computers have evolved
  1237. from big standalone stored-program calculators into "communicators".  At
  1238. least for us at Columbia University, the change began with the large DEC
  1239. systems that exposed us all at once to file sharing, electronic mail, and
  1240. local and wide-area networking, opening up possibilities of collaboration
  1241. and communication in work and in life: within the computer, across the
  1242. campus, and around the world.
  1243.  
  1244. The PDP-10 postmortem has been long and painful (who killed it and why, how
  1245. might it have survived, and what would the world be like today if it had),
  1246. but those who might still like a glimpse into the exciting times of 1970s
  1247. and 80s when computers first became a cultural phenomenon and a communication
  1248. medium might soon be able to do so, with several software- and hardware-
  1249. based PDP-10 emulation projects underway.  Perhaps the greatest legacy of
  1250. those days is found in today's open software movement, in which developers
  1251. all over the world cooperate on projects ranging from operating systems
  1252. (Linux, FreeBSD, etc) to applications of all kinds, just like the original
  1253. PDP-10 ARPANET "hackers" did.
  1254.  
  1255. Meanwhile, many of us who lived through that era retain our old habits,
  1256. still using text-based applications such as EMACS and MM (or its successor,
  1257. Pine) rather than their fashionable GUI replacements, on UNIX platforms
  1258. instead of PDP-10s.  Each time a new PC virus plunges the entire
  1259. organization into chaos and panic, we barely notice.  There is something to
  1260. be said for the old ways.
  1261.  
  1262.  
  1263. GLOSSARY
  1264.  
  1265. 3270     IBM fullscreen blockmode terminal
  1266. ACJ      Access Control Job (TOPS-20)
  1267. AOS      Add One and Skip (PDP-10 instruction)
  1268. APL      A (cryptic) Programming Language
  1269. ARPANET  Advanced Research Project Administration Network
  1270. ASP      Attached Support Processor (IBM 360 terminal monitor) (*)
  1271. BALR     Branch and Link Register (IBM 360 instruction)
  1272. BASIC    Basic All Purpose Symbolic Instruction Code
  1273. BBN      Bolt Beranek and Newman, developers of TENEX and much of ARPANET
  1274. BITNET   Because It's There Network (based on IBM remote job entry)
  1275. BLT      Block Transfer (PDP-10 instruction)
  1276. CACM     Communications of the Association for Computing Machiner (journal)
  1277. CCMD     COMND JSYS package written in C
  1278. CCNET    Computer Center Network (based on DECnet)
  1279. CFS      Common File System (TOPS-20)
  1280. COMND    The Command JSYS mnemonic (TOPS-20).
  1281. CP/M     Control Program / Microcomputer (early OS for 8-bit PCs)
  1282. CPU      Central Processing Unit
  1283. CU20B    Columbia University's 2nd and longest-lived DEC-20
  1284. DDT      Dynamic Debugging Tool (PDP-10) Originally DEC Debugging Tape (PDP-1)
  1285. DEC      Digital Equipment Corporation, 1957-1998
  1286. DEC-20   The DECSYSTEM-20, a PDP-10 specially designed to run TOPS-20
  1287. DECNET   DEC's proprietary networking suite for most of its OS's
  1288. DN20     A full-cabinet PDP-11/34 communications front end for the DEC-20
  1289. DN200    A full-cabinet PDP-11/34 terminal/printer concentrator for the DEC-20
  1290. DOLPHIN  A never-completed followon to the KL10
  1291. EMACS    Editing Macros: a fullscreen editor originally based on TECO
  1292. ESC      The Escape (Altmode) control character (ASCII 27)
  1293. FAIL     Ralph Gorin's fast PDP-10 assembler
  1294. FORTRAN  Formula Translator: the first high-level programming language (1957)
  1295. FTP      File Transfer Protocol (ARPANET/Internet)
  1296. HASP     Houston Automatic Spooling Priority
  1297. HRROI    Half Right to Right Ones Immediate (PDP-10 instruction)
  1298. IEEE     Institute of Electrical and Electronics Engineers
  1299. ILDB     Increment Pointer and Load Byte (PDP-10 instruction)
  1300. ITS      Incompatible Timesharing System (for PDP-10 at MIT)
  1301. JCL      Job Control Language (IBM OS/360)
  1302. JRST     Jump and Restore (PDP-10 instruction)
  1303. JSYS     Jump to System (PDP-10 instruction)
  1304. JUPITER  Another never-completed followon to the KL10
  1305. JVNCNET  John Von Neumann Supercomputer Center Network (Princeton)
  1306. KA10     First PDP-10 model, only runs TOPS-10
  1307. KI10     Second PDP-10 model, only runs TOPS-10
  1308. KL10     Third and biggest / most advanced PDP-10 model, runs TOPS-10 and -20
  1309. KS10     Fourth, small PDP-10 model, runs TOPS-10 and -20
  1310. LCG      DEC's Large Computer Group, responsible for PDP-10s
  1311. LISP     List Processing Language (Jon McCarthy, Stanford U, 1960)
  1312. MACRO    DEC's family of assemblers: MACRO-10, MACRO-11, MACRO-20, etc
  1313. MIDAS    MIT's PDP-10 assembler
  1314. MINNOW   A desktop PDP-10 (never completed)
  1315. MIT      Massachusetts Institute of Technology
  1316. MM       Mail Manager (a DEC-20 -- and later UNIX -- email client)
  1317. MS-DOS   Microsoft Disk Operating System
  1318. NCP      Network Control Program (early ARPANET protocol replaced by TCP/IP)
  1319. NJE      Network Job Entry
  1320. NYSERNET New York State Engineering and Research Network
  1321. PARC     Xerox Palo Alto Research Center
  1322. PBX      Private Branch Exchange
  1323. PDP      Programmed Data Processor (PDP-7, PDP-8, PDP-10, PDP-11, others)
  1324. RA81     A later-model, bigger, sealed disk (but still washing-machine size)
  1325. RAID     Ralph Gorin's PDP-10 debugger
  1326. RJE      Remote Job Entry (card reader / line printer simulation)
  1327. RP06     The most common PDP-10 disk drive in the late 1970s - early 80s
  1328. RSCS     Remote Spooling Communications Subsystem (BITNET protocols)
  1329. RSTS/E   DEC's Resource-Sharing Time-Sharing system for the PDP-11
  1330. RSX11    DEC's Realtime Executive for the PDP-11 (not an acronym)
  1331. RSX20F   A special version of RSX11 used in the KL10 front end
  1332. SSIO     Columbia's Self Service Input/Output Area
  1333. TCP/IP   Transmission Control Protocol / Internet Protocol
  1334. TECO     Text Editor and Corrector
  1335. TENEX    The paged PDP-10 operating system from BBN, precursor to TOPS-20
  1336. TOPS-10  The Operating System (PDP-10, DECsystem-10)
  1337. TOPS-20  The Operating System (DECSYSTEM-20)
  1338. TTY      Teletype or Teletypewriter; that is, a terminal or terminal port
  1339. UNIX     Popular operating system originally from Bell Labs (not an acronym)
  1340. UREP     The UNIX version of RSCS
  1341. VAX      Virtual Address Extended, DEC's 32-bit followon to the PDP-11
  1342. VMS      Virtual Memory System, DEC's operating system for the VAX
  1343. VT100    DEC's 24x80 upper/lower-case smooth-scrolling video terminal (1977)
  1344. WAITS    Stanford's PDP-10 operating system
  1345. XOFF     Control-S (ASCII 19), used for host/terminal flow control
  1346. XON      Control-Q (ASCII 17), used for host/terminal flow control
  1347.  
  1348. (*) Also: Asymmetric Multiprocessing Support.
  1349.  
  1350.  
  1351. ACKNOWLEDGEMENTS
  1352.  
  1353. [1] Bob Clements, BBN.
  1354. [2] Joe Dempster, DEC.
  1355.  
  1356.      
  1357. BIBLIOGRAPHY
  1358.  
  1359. Bobrow, D.G., and J.D. Burchfiel, D.L. Murphy, R.S. Tomlinson, "TENEX, A
  1360. Paged Timesharing System for the PDP-10", CACM Vol 15 No 3, March 1972.
  1361.  
  1362. da Cruz, Frank, "Kermit, A File Transfer Protocol", Digital Press, 1987.
  1363.  
  1364. DECsystem-10/DECSYSTEM-20 Hardware Reference Manual, Volume I, Central
  1365. Processor, Digital Equipment Corporation, EK-10/20-HR-001, 1978.
  1366.  
  1367. DECsystem-10 Journal of Applications and Research (undated; probably 1973
  1368. or 1974 and probably the one and only issue); predecessor of the Digital
  1369. Technical Journal.
  1370.  
  1371. Gianone, Christine, Editor, "Kermit News", published periodically by
  1372. Kermit Distribution, Columbia University Center for Computing Activities,
  1373. 612 West 115th Street, New York, NY 10025.
  1374.  
  1375. Gorin, Ralph, "Introduction to DECSYSTEM-20 Assembly Language Programming",
  1376. Digital Press, 1981.
  1377.  
  1378. Knuth, Donald E, "TeX and Metafont", Digital Press, 1979 (now a collector's
  1379. item).
  1380.  
  1381. Murphy, Dan, "Storage Organization and Management in TENEX", AFIPS
  1382. Conference Proceedings Vol. 41, 1972.
  1383.  
  1384. Peterson, James L., "Computer Programs for Detecting and Correcting Spelling
  1385. Errors", CACM, V23 #12, Dec 1980.
  1386.  
  1387. Stallman, Richard M., "EMACS, the extensible, customizable, self-documenting
  1388. display editor", ACM SIGPLAN Notices, V16 # 6, June 1981.
  1389.  
  1390. Steele, Guy L., Don Woods, Raphael Finkel, Mark Crispin, Geoff Goodfellow,
  1391. Richard Stallman, "The Hacker's Dictionary: A Guide to the World of Computer
  1392. Wizards", Harper & Row, 1983.
  1393.  
  1394.  
  1395. LINKS [2001]
  1396.  
  1397. The Kermit Project Website:
  1398.   http://www.columbia.edu/kermit/ 
  1399.  
  1400. DECsystem-10 Kermit:
  1401.   ftp://kermit.columbia.edu/kermit/d/k10*.*
  1402.  
  1403. DECSYSTEM-20 Kermit:
  1404.   ftp://kermit.columbia.edu/kermit/d/k20*.*
  1405.  
  1406. MM and CCMD:
  1407.   ftp://kermit.columbia.edu/
  1408.  
  1409. The Free Software Foundation (it started with EMACS):
  1410.   http://www.gnu.org/
  1411.  
  1412. The Computer Museum History Center:
  1413.   http://www.computerhistory.org/
  1414.  
  1415. Dan Murphy's TENEX and TOPS-20 Papers:
  1416.   http://www.opost.com/dlm/tenex/index.html
  1417.  
  1418. Tim Shoppa's PDP-10 Software Archive:
  1419.   http://pdp-10.trailing-edge.com/
  1420.  
  1421. Preserving Computing's Past - Restoration and Simulation:
  1422.   http://www.digital.com/DTJN02/DTJN02HM.HTM
  1423.  
  1424. DEC-10/20 (PDP-10) recollections:
  1425.   http://www.inwap.com/pdp10/
  1426.  
  1427. 36 bits forever! (Joe Smith):
  1428.   http://www.inwap.com/pdp10/
  1429.  
  1430. Additional Glossary (primarily for RJE/NJE terms and acronyms):
  1431.   http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/IEA1M503/GLOSSARY
  1432.  
  1433. The PDP-10 newsgroup:
  1434.   news:alt.sys.pdp10
  1435.  
  1436. (End)
  1437.