6. Software.

Software, the PDP-10 Software, straddles both the Context and the Content of the SAILDART Archive. The Software as Context is that the WAITS Time Sharing System, and its utilities such as DART, were the tools that recorded the SAIL Content. The content recorded included the system software itself as well as the tools for authoring, compiling, loading, testing, maintaining, repairing, training and allocating resources to run the software. Software as Content, viewed from 2017+, is the surviving set of old SAIL files. The old SAIL files are a heap of shattered pottery shards. The software pottery fragments need to be inspected, sorted and re-glued together to form program vessels that have enough shape to be assembled, compiled, loaded and executed in the present. There is no computer museum (as of 2014) with PDP-10 hardware that replicates the SAIL environment sufficiently to restore DART tapes (or virtual DART tapes) to run the software necessary to re-assemble source files into machine executible images. There is no emulation software (as of early 2014) extensive enough to run the SAIL binary code near its totality. I have succeeded in running my thesis program GEOMED in single user mode. I have succeeded in running a 1974 SYSTEM.DMP for the dual PDP-6 and PDP-10 through its initialization, startup greetings,a few simple console commands, and its executive DDT debug tool. A clue to long term preservation, or just a fluke, some of the old LISP programs (for example ELIZA) run almost as-is on 2014 computer servers – once you get the LISP source text translated out of the SAIL 7-bit non-standard ASCII. But I have digressed from the software that preserved SAIL, which is a program named DART running on a computer Operating System named SYSTEM which in 1976 was renamed WAITS. To revisit this cyber world requires understanding the tools that built and ran it.

DART was the backup program.

The DART program wrote the tapes that preserved the DART program as well as 18 years of DART catalogs of what was written on the tapes. Like depicted in Douglas R. Hofstadter books, "Godel Escher Bach" or "I am a Strange Loop", DART is seen looking at itself. DART even looks at Hofstadter, who had an account at SAIL as programmer code DRH. There are also the notes concerning DART MCOPY, the DART command, which makes the final master copy of the three thousand low density tapes into the final high density 229 reels.

I bootstrapped myself into this strange loop starting with a Unix tape reading program from Marty Frost that was able to read SAIL files off DART tapes into SUN Unix workstations. However that program lacked important details concerning the SAIL-WAITS file system and the DART recording format. In 1997, I was pleased to find all of my own BGB files on the first few tapes. Then later, in early 1998, Professor John McCarthy encouraged me to go back and read all the tapes to disk. We (Frost and Baumgart) were almost too late, we rescued the tape drive (a full six foot tall rack) from a junk heap at a loading dock of the Paul Allen Building catty corner across the street from the CSD William Gates Building. The junk was about to be recycled. We rolled that tape drive back across Serra Street to the basement computer room of the Gates Building. We simply read the tapes “as-is” without any conversion using the Unix utility command ’dd’ and a small amount of bash scripting to roll the raw tape records from the ’dd’ copy into large compressed tar tgz files, one tar ball per reel. Reading a reel would take 15 minutes. We were on our own time outside of paid work hours. The tape drive read heads were in poor condition and required frequent cleaning.

Starting with the Unix read tape ’C’ language program from Marty and making some changes based on hard-copy manuals (the PDP-10 reference manual, the FAIL assembly language manual, the system API UUO manual and the system command Monitor manual) which I had kept paper copies from the 1970s, I was able to read the source files of the PDP-10 assembly language DART program and its documentation which then made it easier to write improved conversion programs with better consistency checking and error recovery. That sequence of programs are name ’undart year.c’ for example a recent one is named ’undart 2014.c’ which converts the raw DART tape records into the data blobs with metadata database CSV file indicating what SAIL filenames, SAIL programmers, SAIL projects and dates are associated with each data blob. DART was first written by Ralph Gorin, version 1972 to 1979, and was then taken over by Marty Frost.

The Operating System with two names: SYSTEM-1974 and WAITS-1991.

Before Windows, Apple and even Unix; before men went to the moon in 1969; very few computers had time sharing systems; perhaps fewer than 100. The time sharing system at the Stanford AI Lab was called SYSTEM, it had been derived from a Digital Equipment Corporation time sharing system which was called MONITOR. In 1976, after a naming contest, the SAIL time sharing SYSTEM was renamed WAITS. As mentioned earlier, the WAITS acronym was never officially nailed down. I now propose that “West coast A.I. Time Sharing” will do as a mnemonic, in contrast to the East coast sister system named ITS "Incompatible Time Sharing" at the MIT AI Lab. The hubris of incompatibility, has proven fatal to each.

The SAIL system “shell” and its in-line command text editor.

The SAIL operating system command “shell” was entangled (buried in clock service inside the operating system. The addictive text input in-line editor named “LINED” was wired into the keyboard device driver of the operating system. Latter day LINED appears today in GNU/Linux bash as the GNU readline library and the low level character edit commands in emacs or vi. Larry Tesler first at SAIL but then later at Xerox PARC coined the terms “cut” and “paste”, which in TECO and EMACS were called “KILL” and “YANK”.

File system repair – RALPH

The eponymous program RALPH written by Ralph Gorin[297]↓ is the SAIL-WAITS disk file system checker. Reading the source code of RALPH.FAI[S,SYS] is how I deduced the block level disk format for the SYSTEM disk image of 1974. The best latter day RALPH source is at RALPH.FAI[S,SYS] dated August 1983 and the final version in 1974 is at RALPH[ACT,REG]21. Reading the SYSTEM source code itself for DSKSER and DSKINT is at a yet lower level and the file system format which is buried in the UUO service for routines that implement OPEN, LOOKUP and the I/O transfers. RALPH uses a back door called GOD mode to read and write directly to the disk.

Help

A user level program that can be run without being logged in is HELP. The HELP source code leads to the documentation on how to use the 1974 system.

Login and Logout

Nothing interesting can be done until you get past the gatekeeper, LOGIN.

Accounting ACCT *SPY*

Another Ralph Gorin program which existed and ran in conjunction with the Operating System was named ACCT and was visible to everyone as the JOBNAM “*SPY*” which was always there.

Assembly Language – MACRO, FAIL and MIDAS

MACRO was the original DEC assembler that came with the PDP-6. FAIL, an acronym for Fast AI Language, became the dominant PDP-10 machine code assembler at SAIL. The rationale for FAIL was both for performance efficiency and the ability to add and control additional features. On latter day DEC PDP-10 systems there was an assembler named MIDAS which was relevant at SAIL for ARPA network software and for people who learned PDP-10 MIDAS before arriving at SAIL. Further assembly language tools include the LOADER, DDT, RAID, and CREF; and for that matter the Fortran utility library routines and CUSP fragments.

The LOADER

The loader creates executable DMP files from REL files. Strange to say, the early DEC loader continued at SAIL almost unmolested, although Tovar (TVR) did replace the linear symbol table lookup with a binary search.

The Text Editors ’E’ Enterprise.

During this period, the tools for authoring text for software as well as for documentation transitioned from the neolithic primitive (EDIT and TECO), through the mesolithic usable (first Stopgap, then Son of Stopgap SOS and TVED) until ’E’ which dominated the SAIL epoch. Later, emacs arrives in the late 1970s. The point here is that the text editor named E and the E format dominate the period that is central to the SailDart archive. An E document always had a block index table of content at the front of the file.

RPG - Rapid Program Generation.

The SAIL work flow was not what is now called an IDE, Integrated Development Environment. However in forgiving retrovision the primitive SAIL IDE consisted of RPG, the Rapid Program Generation suite of commands to invoke cycles of edit, compile, execute and debug.

Software content payload reviewed

  The high level programming languages at SAIL were
  LISP
  M LISP
  Micro Planner
  SAIL
  PASCAL
  ’C’
  BASIC
  F4
  FORTRAN
  ADA

  Some of the FONT software programs were
  The dominant document formating markup languages were PUB and TeX.
  The earliest SAIL document formatting programs were XIP, XAP, XGP and POX.

  Graphical Design Software,

  SUDS suite
  GEOMED for 3-D models

  Games and Puzzles

  Spacewar
  Life
  Adventure
  Go
  Kalah

  Robotics

  Image Processing
  The Hand-Eye Robotics Library

  Music, Audio and Voice

  John Chowning. Leland Smith SCORE. Andy Moorer. Jim Grey.

Exercises

  1. Experiment: Find out how hard is it for a non-SAIL person to become a code reader of SAIL system PDP-10 assembly language.
  2. exercise
  3. exercise

Part II. Content of SailDart The banner means “A Discussion about the Content of the SailDart” and where you can find the actual content. Part II Content of SailDart chapter 7 Access 8 Provenance 9 Exegesis 10 Taxonomy 11 Corpora 12 non-DART The next four chapters, 7 to 10, are archive technical. There is one visual moment that justifies two photographs to document moving the magnetic tapes from Gates to Green. Chapters 11 and 12 can be illustrated for a coffee table edition, arrays of thumbnails will suffice for this white paper edition. From Data to Information. Primary content of the SailDart web site is SAIL computer files from the DART backup tapes. Secondary content is the DART metadata about the SAIL file system which appears both out-of-band in the DART tape records and in-band inside the accounting files that DART generated in the course of performing its backup runs, which were then backed up in turn by later backups. The final months of the SAIL Time Sharing System were spent just running the DART tape conversion. Tertiary data on the SailDart web site is data related to SAIL but not found on the DART tapes. The tertiary data includes scanned documents, video from reunions, as well as post DART writings such as this white paper. Chapter 07. Access, Privacy & Search.