17. PDP-10 KA Simulation
1974 WAITS Re-Enactment
[ J17, SYS ] SYSTEM . DMP

This chapter reports work-in-progress on my quest to run all the old SAIL software via the SAILDART web site. Like a 19th century railroad steam engine, or an 18th century tall masted sailing ship, running the 1974 SAIL mid 20th century time sharing system is a major stunt that I have not adequately achieved yet.

PDP-10 KA :

Good PDP-10 simulators are available and PDP-10 hardware does exists in museums in running order. However, running the SAIL operating system of 1974 has proven to be difficult because that particular PDP-10 machine, a model KA-10, had unique modifications. The best emulators target later models such as the KL-10 differs substantially in I/O and memory mapping / relocation. For example, at Stanford the non-user mode execute XCT instruction with a non-zero AC field was modified, (most likely by Dave Poole, DWP) to do peek or poke into user space.

I/O devices :

Each and every major I/O device was a one of a kind. With extreme pride, our beloved pioneers hacked out each device. The supporting documentation as well as the actual artifacts are gone from my horizon. The year 1974 is a portal. If I can get 1974 running again in simulation or as a re-enactment - then the following decade and a half becomes much more visible because the documents and digital drawings at the foundation of the 1970s start at SAIL with SUDS, PUB, TeX and lead directly into Xerox, Apple, Adobe, Autodesk, Cisco, Sun and other places. In the case of Sun and Cisco, the relationship is direct as well as sinister; but the law suits have been settled, and the personal relationships can be viewed from a distance. Let the muse of History, Clio, be the judge. She need not report for another hundred years or more, lets say 2114 or 2214.

Non ASCII :

The character set was a NON standard version of ASCII. The XGP Xerox Graphics Printer was one of the first three in the world. The LPT line printer was a custom drum. The disk channels were built by Stanford personnel. The real time digital calendar clock was designed an built by Phil Petit and was only one of many interesting pieces of digital hacking mounted in the Kludge Bay.

The III vector display processor was the only one of its kind every built, likewise the first large disk the Librascope disk, the interface to the IBM-2314 and later the IBM-3330 were hacker built home brew, the Television camera A to D was built by Dave Poole who also decided one day to swap the charcter code for ALT and Right Curly Brace because that was the way it was on a raw model-35 Teletype. Standard ASCII the ’}’ is octal 0175 to this day, at SAIL for twenty five years the octal 0175 was the ALT character ’r’ and the right curly was at octal 0176.

Alan Kay in 1968 showed people a cardboard mockup of his Dyna Book idea; those of us who saw it were skeptical and said such things like “OK and someday a PDP-10 will fit in a suitcase”. Ken Olson (Digital Corp CEO) did not like having a big machine product line. The PDP-10 Javascript simulation of GEOMED, the 1974 SYSTEM console teletype and 1974 SYSTEM single user III vector display are close to being ready for 2014 previewing on the public web site. PUB, POX, TeX and XGP web output are a high priority. PDP-10 history PDP-10 fandom Hardware Difficulties Simulation of ideosyncratic hardware : Given that the design drawings for the 1974 generation of the hardware is lost, the only path forward for me is a careful review (a trace) of executing the operating system and patch out all the devices which are not interesting to me and making up fictional representations of the devices I care about based on the interface visible in the code itself augmented with a few paper documents I saved, poloroid photographs I took and memories I can recall. That includes the special SAIL keyboards, the III vector display, the XGP printer, the LPT printer, the CTY console teletype, and the IBM disk interface. Perhaps SAIL hardware built after 1974 will reveal itself via SUDS drawings if and when I get SUDS running again. Post 1974 SAIL, SUN, Cisco, DEC, S-1, Foonly and so on designed their early digital wonders at SAIL using the SUDS design software. Verification of ancient system software : The system programmers who wrote and debugged the SAIL system used program listings and built-in debug software name XDDT for executive mode DDT. Mechanical toggle switches and small incandescent lights (light emitting diodes, LEDs, in the late sixties, were expensive and only glowed a dim red) on the console also implemented Examine, Deposit, Stop, Start. These listings were generated by the assembler and printed on wide paper. On the left side of the listing page there were octal columns showing the address and value generated for each line of PDP-10 source code shown on the right side of the page. There were also printed symbol cross reference tables called CREF. Since the listings, cref and obj could all be rebuilt from the source these derivative files were intentionally NOT preserved on the DART backup tapes. One might bootstrap into this past world by getting a version of the FAIL assembler to work, or by disassembling the binary DMP files and trying to join matching lines of disassembly to the corresponding source lines. Such latter day neo assembly and matching has to deal with the extensive use of conditional assembly and macro expansion. Model KA-10 Priority Interrupt : The early models of the PDP-10 simply implemented the PDP-6 seven level interrupt mechanism which was inferior to late models of PDP-1 which had sixteen level sequence break hardware for scientific real-time data collection. PDP-10 Code Reading : The major part of getting the old SAIL system running has involved single stepping the code, then setting break pointers to isolate the unknown portions. SAILON-76 After a gap of 38 years, here is the Stanford Artificial Intelligence Laboratory Operating Note number 76 seventy six. Keyboard left1: break escape row 1: 0 1 2 3 4 5 6 7 8 9 + - * top 1: ␣ ≡ ∩ ∪ ⊂ ⊃ $ % ⊗ _ | ¬ ⊗ right: call left2: clear tab row 2: Q W E R T Y U I O P ( ) / \ top 2: ∧ ∨ @ # & ” ‘ ’ { } [ ] ∂ ∞ left3: form vt bs row 3: A S D F G H J K L ; : top 3: ≤ ≥ < > ≠ = ← → ↔ ↑ ↓ right: return line left4: shift_lock shift top row 4: Z X C V B N M , . top 4: α β ε λ π ∀ ∃ ! ? right: top shift alt row 5: meta ctrl space ctrl meta ≡ ∩ ∪ ⊂ ⊃ $ % ~ _ | ¬ ⊗ brk esc 0 1 2 3 4 5 6 7 8 9 + - * call ∧ ∨ @ # & “ ‘ ’ { } [ ] ∂ ∞ clear tab Q W E R T Y U I O P ( ) / \ ≤ ≥ < > ≠ = ← → ↔ ↑ ↓ form vt bs A S D F G H J K L ; : return line shift α β ε λ π ∀ ∃ ! ? lock shift top Z X C V B N M , . top shift alt meta ctrl space ctrl meta Table 17.1 keyboard layout