The neat thing about the old SAIL computer hardware is that the old documentation can speak clearly for itself. For example, the PDP-10 computer architecture stands shiny clean and well documented by William English in ▶ the System Reference Manual. Unfortunately, building a full SAIL Time Sharing System emulator rapidly hits difficulties, which I had failed to learn in the 1970s, as well as mechanisms which are now, in the 2010s, irrelevant to showing off the software. The first four principal areas of nastiness are the incompatible Stanford 7-bit ASCII with its father to ▶ the space-cadet 12-bit custom keyboard, the "home-made" mass storage system interface between the PDP-10 computer and the IBM disk channel, the two display systems vector graphics on a dynamic CRT (Cathode Ray Tube) Information International, and the hardcopy print out to the brand new XGP (Xerox Graphics Printer). The irrelevant mechanism includes frequent parity checking of the system core image, refreshing of the vector display to maintain a page of text on a screen, busy wait loops in the disk accessing logic, and elaborate time slicing in the clock interrupt service routines. All these mechanisms are now irrelevant to running SAIL software.
Computers The main-frame time-shared SAIL computer system spanned three generations of DEC 36-bit machines named the PDP-6, the PDP-10 KA and the PDP-10 KL. SAIL did not use the final generation machines, the DEC PDP-10 KI, which was less powerful than a KL, but much cheaper. Special purpose processors such as the SPS-41, IMLACs, the IMP, various PDP-11s, the Samson Box, and latter day Foonlies where all peripheral to SAIL’s central time sharing system. In addition, several major computers were designed at SAIL named Super Foonly, the Livermore S-1 supercomputer, the first SUN workstation and the first Cisco network switch. The schematic drawings and documentation for the new computers and their peripherals overlap the documentation for some of the actually implemented local hardware. Peripheral computers existed at SAIL such as the PDP-11, a high performance FFT box, the IMLACs, the IMP and so on. Terminals The SailDart era spanned the transition from hard-copy terminals, teletypes with paper, to display terminals which were initially vector graphics CRTs and then video raster terminals that were refreshed from a central video disk. Burdened with an incompatible character set, SAIL was late in finally supporting the generation of 24x80 character video display boxes. TT teletypes The console teletype was a model 35 TeleType. I recall that the slightly fancier model 37 Teletype with lower case was available as well as a number of model 33 teletypes some of which were used as home terminals at 150 baud and later 300 baud. Triple-I vector CRT displays DD video raster displays In 1973 the first Data Disc terminals were installed at SAIL providing green phosphorus screens on each person’s desk. The telnet program was implemented on the earliest versions of ARPANET and provided terminal access to SAIL for remote network users via the IMP. IMLAC The IMLAC display computer was used as a home terminal by Professor McCarthy and Lynn Quam, Printers: LPT and XGP LPT: XGP: Xerox Graphics Printer Disks: Librascope and IBM-3330 Tapes: DEC tape, MAG tape, paper tape Kludge Bay A to D converters D to A converters Petit calendar clock Voice Synthesizer Video and Audio Switch Robotics – Hand-Eye and Cart Eyes Arms and Hands
Les Earnest narrative concerning the Stanford Cart, completely omits my humble solo participation on the Cart project between Rodney Schmidt and Hans Moravec. Hans Moravec 1974 proposal for The Cart Project which contains the insightful paragraphs:
Cart Project 1970-1973 Baumgart
Baumgart decides he likes the idea of a robot that reasons visually, and concocts a grand scheme in which every scene viewed by the camera would be related to a model of the lab and surrounding territory. He notices the uncertainty in the analog link, and decides to make it into a digital one. This is his first digital design effort, and the result, which provides for on-off control of the motors and has no indication of the orientation of anything, is considerably inferior to the original in concept, and in addition works unreliably. The original servo electronics are disassembled or misplaced, making his changes irreversible. He rationalizes that the problems with the link are unimportant, since, when his visual reasoner works, it will be able to deduce the state of things, and detect when a transmitted command has failed, to try again.
— remarks by Hans Moravec 1974
The enormity of the effort needed to make his plan a reality becomes apparent to him as he works on sub-problems. Since it would become possible to actually use a vehicle only when his proposed scheme was almost completed, and since he now sees that it is unrealistic to think that it could be brought to fruition in a reasonable number of years, he abandons any serious efforts directly concerned with the cart, but maintains his association with it, as a status symbol and a toy. He occasionally drives it around for show, often over rough ground, contributing to its mechanical decline. During this time several other graduate students are steered towards this essentially nonexistent "cart project". They are disillusioned by the lack of a coherent plan and suffer from too little guidance and from conflicts with Baumgart’s personality. All these associations are short lived and unhappy. Baumgart finds success and happiness working on the graphics and vision sub-problems suggested by his original concept.
The main computer at SAIL in 1974 was a PDP-10 model KA. Its Central Processing Unit has two device codes PI: and APR: for controlling the Priority Interrupt and the Arithmetic Processor. Those large plastic rocker switches were chosen by Ken Olsen, the CEO of the Digital Equipment Corporation. The blinking lamps were tiny incandescent bulbs not LEDs; LEDs in 1970 were dim, red and expensive.
The console terminal was a teletype at device code CTY: with a mechanical print head, black ink ribbon and a roll of paper. The ordinary teletype was the model 33, without lower case characters. Somewhat more rugged was the model 35, again without lower case. A single, expensive model 37 Teletype was available, but was not connected as the CTY, console teletype.
The shared online SAIL file system in late 1974 was implemented on three disk packs of a four drive IBM-3330 storage system smaller than the one in the picture. The IBM specification advertised 200MB per pack, the SAIL operating system raw capacity was 609MB using four such packs, 3 packs for SYS and 1 pack was called UDP. Figure SYS: when implement on an IBM-3330
Display terminal keyboards SAIL custom ordered from Microswitch. figure Pictures/Lester_Keyboard.jpg Figure 5.5 Stanford Microswitch Keyboards
Ralph Gorin at a Triple-I vector display terminal figure Pictures/III/REG_and_SWR_on_III-2.jpg Figure 5.6 REG at III
A typical Data Disc raster display terminal video monitor on a professor’s desk (actually DEK’s desk). figure Pictures/DD/cs_knuth.jpg Figure 5.7 SAIL keyboard and DataDisc video monitor
The shared line printer, device LPT, was manufactured by Data Products OEM to DEC. The Stanford line printer had a custom drum which spins the full font set of 133 glyphs past a bank of 128 solenoid hammers, one hammer at each of the 128 column positions. Hammer timing is critical and early Stanford documents were noted for sloppy horizontal character alignment. figure Pictures/hardware/LPT.jpg figure Pictures/hardware/XGP-at-SAIL-in-1972.png Figure 5.8 LPT and XGP
The XGP: Xerox Graphics Printer. This fragment is the only picture I have of the XGP in situ at SAIL in 1972. The XGP output falls directly into the wastebasket for users to retrieve. The computer room floor tiles were two foot square, so the XGP at SAIL was smaller than the XGP prototype at Xerox Webster and later at Xerox PARC.
figure Pictures/cart/Cart.1975.jpg Figure 5.9 Cart 1975
figure Pictures/hardware/Kludge.bay.s.1979.jpg Figure 5.10 Kludge Racks 1979
The two standard tape drives, as device MTA, at SAIL in 1974 were 7-Track and could write 800 BPI onto 2400 foot reels of tape. So 2400 feet times 12 inches times 800 BPI Bit-frames-Per-Inch of 7 bits (6 bits data and 1 bit parity) with the 36-bit PDP10 words taking 6 frames, there is dead space for record gaps, and so optimistically one reel of 7-Track tape holds up to 15 Megabytes. Late in SAIL history, 9-Track tape drives were installed as device MTU. The 9-Track drives could write 6250 BPI onto 3600 foot reels; so 3600 feet times 12 inch times 6250 bit-frames-per-inch, 9 bits per frame (8 bits data and 1 bit parity) with 36-bit PDP10 words now taking 5 frames, there still are record gaps, and so optimistically one reel of 9-Track tape holds at most 180 Megabytes. Capacity 2400 feet 3600 feet 800 BPI 15 MB 22 MB 1600 BPI 30 MB 44 MB 6250 BPI 120 MB 180 MB 5.3 Wizard Hardware Lore Do not meddle in the affairs of wizards for they are subtle and quick to anger. - Tolkein LOTR CPU The easy part of learning the PDP-10 machine code is the seemingly simple Effective Address Calculation and the illusion that the instruction set is an orderly array of 512 opcodes in eight major groups. CONSOLE TELETYPE foo PETIT REAL TIME CLOCK MICROSWITCH KEYBOARD SCANNER SYSTEM DISK By disassembling all the versions of SYSTEM.DMP and WAITS.DMP found in [S,SYS] I can see that the symbol LSTTRK (last track) definition for the total file system disk capacity (minus one track) changed overtime as follows: Date [S,SYS] version LSTTRK 2336. PDP10 words per track CAPACITY days years ---------- ---------- ---#--- octal 10512. bytes per track -------------- ---- ----- 1 1972-11-04 SYSTEM.DMP ~1~ 0073277 = 30399. tracks = 319554288 bytes = 304 Megabytes 94 ~ 0 2 1973-02-06 SYSTEM.DMP ~7~ 0131037 = 45599. tracks = 479336688 bytes = 457 Megabytes 506 ~ 1 3 1974-06-28 SYSTEM.DMP ~30~ 0166577 = 60799. tracks = 639119088 bytes = 609 Megabytes 424 ~ 1 4 1975-08-26 SYSTEM.DMP ~56~ 0420144 = 139364. tracks = 1464994368 bytes = 1397 Megabytes 19 ~ 0 5 1975-09-14 SYSTEM.DMP ~58~ 0265355 = 92909. tracks = 976659408 bytes = 931 Megabytes 38 ~ 0 6 1975-10-22 SYSTEM.DMP ~59~ 0227160 = 77424. tracks = 813881088 bytes = 776 Megabytes 1119 ~ 3 7 1978-11-14 WAITS.DMP ~2~ 0323552 = 108394. tracks = 1139437728 bytes = 1086 Megabytes 136 ~ 0 8 1979-03-30 WAITS.DMP ~8~ 0361747 = 123879. tracks = 1302216048 bytes = 1241 Megabytes 1738 ~ 5 9 1984-01-01 WAITS.DMP ~58~ 0227160 = 77424. tracks = 813881088 bytes = 776 Megabytes 1472 ~ 4 10 1988-01-12 WAITS.DMP ~114~ 0036174 = 15484. tracks = 162767808 bytes = 155 Megabytes 817 ~ 2 until ---------------------------------------------------------------------------------------------- 1990-04-09 WAITS.DMP ~141~ figure Pictures/capplot.png Figure 5.11 SAIL online disk CAPACITY by date It is difficult to feel what it was like in 1974 when disk file storage was both so very expensive and so very small. Note that the SAIL system first went into decline 1984-01-01 as its file storage space was cut. VECTOR DISPLAY The character display was analog driven and the III glyphs corresponded to the raw (mode 100) line printer drum codes except for 011 none, 013 integral sign, 014 plus-or-minus sign, and 0177 backslash. RASTER DISPLAY XEROX GRAPHICS PRINTER LINE PRINTER The six extra glyphs were center dot 000, gamma 011, small delta 012, integral sign 013, plus-or-minus sign 014, and circle-plus sign 015 each requiring a 0177 prefix. I suppose we may assume that 0177 followed by 0177 prints as one backslash.