Hacker News new | past | comments | ask | show | jobs | submit login
Operating the Lisp Machine (1981) [pdf] (uni-stuttgart.de)
116 points by vezzy-fnord on Nov 8, 2015 | hide | past | favorite | 41 comments



Most awesome paragraph:

One blinker is associated with the mouse: when you slide the mouse along a surface, that blinker moves in a corresponding direction. When the mouse is moved very rapidly, the mouse blinker gets big like Godzilla in order to maintain visibility. Small children should be taken out of the room before demonstrating this frightening feature.

More broadly, reading this manual made me realize (a) how many of the ideas of the modern GUI probably were influenced by the Symbolics, and (b) how many more ideas 1981 had than today. The sense of freedom to do anything, try anything, is all over the document.


Oh, yes, the Godzilla mouse cursor was a great feature, and as I recall there wasn't such on the Xerox Altos that were donated to MIT in ~1980. In those days, pretty much anyone developing a window system was doing serious innovation.

There was another big UI detail that's been somewhat lost, a "don't move the text" default behavior you see with the less program. When I first visited Western Digital, which was developing the 68000 engineering workstation that LMI's first custom processor was going to run in back then in 1982, the people developing the video were spending a lot of effort and budget on scrolling of the bitmapped screen.

The MIT AI Lab's approach, initially out of necessity when they first did this with a first generation PDP-11/20 and Intel 1103 first generation DRAMs (https://en.wikipedia.org/wiki/Intel_1103), they just kept the text in place and moved the cursor, which can be confusing in that new text is not automatically at the bottom, but is a lot easier to skim and read than moving text.


That happens to me every time I delve into Xerox PARC documentation.

I only had a glimpse of those technologies by means of Smalltalk Visual Works and Oberon, and it was quite productive.

Nowadays it feels like only Cocoa, JVM and .NET development environments are the closest mainstream developers get from the whole developer experience from those days.


> When the mouse is moved very rapidly, the mouse blinker gets big like Godzilla in order to maintain visibility.

That happens in OS X El Capitan presently.


As one of the machine designers, it is gratifying to see continued interest. My favorite feature which I miss daily is the WHO line, with run bars and mouse documentation lines. And, of course, the correct placement of rubout along with the missing meta, hyper, super modifiers.


Hi Tom, do you you know anyone from those days that might help us track down the Prolog and Ada implementations for Symbolics? http://www.retrocomputingtasmania.com/home/projects/spg We heard from David Schmidt that some of the software was lost during one of the office moves, but we're hopeful someone kept a copy.


No offense but, for a man of your stature I think I would like to see some evidence that you're the real Tom Knight before I take it at face value. :P


Haha, I'll vouch that it is him. He's a cofounder of a YC company with me (Ginkgo Bioworks) and I emailed him about this thread a couple hours ago. But I would like to see him take the quiz someone posted below :)


At the very least, I can assure you he's familiar with Lisp Machines, I miss those things too.

Let me ask a few questions, e.g. I've been getting into electrics more directly as of late, and:

Which logic families did the CADR and 3600 use? (The LMI LAMBDA was designed to use 74F for Fast and Fairchild. Which wasn't initially good when the ALU was first tried out, its outputs oscillated at ~100MHz, then a CADR logic family chip was put in it to proceed for the moment.)

Ah, here's obscure stuff very few would know: who made the CONS machine's disk and controller, what was the size of the disk, and what was special about the particular controller unit? Several boards, separated by...?

Strangely enough, in this technological vastness of the future, Google is no help with the later paragraph's questions, except maybe the size.


Well, most of it was 74S series for the faster logic. 74F was not available at the time the machine was designed. The disk was a Fujitsu 80 Megabyte wonder. Who knew you could possibly make them that large in such a small rack sized unit. Here's one for you: Who made the CORE memory for that machine?


Hmmm, I or rather my computer center "inherited" an 80 MiB CDC stand alone SMD drive with a Xylogics (sp?) prototype Unibus controller, which I was told was the CONS machine's disk drive, but I wasn't involved in that acquisition. You aren't thinking of the Fujitsu Eagle 10.5 inch 470 MiB Winchester rack mount disk drives that everyone including LMI loved in the early '80s are you (https://en.wikipedia.org/wiki/Fujitsu_Eagle)? That was an amazing drive, Fujitsu was turning out a lot of nice stuff, their Sparrow? 8 inch 80 MiB? drives powered a set of WD->TI workstations that were donated to MIT, that I and a friend salvaged 4 of for the EECS database computer in the late '80s.

Core, yow; we weren't sweeping up raw memory, although it was sweet that our 2nd hand from the Logo Lab's PDP-11/45 had core, made booting from a crash easy unless the boot code had been scribbled on. I suppose you used some core because it was handy and DRAM was dear? If it was DRAM, I'd assume simply from the date and their partly being located in Worcester, it was Mostek, and I can imagine you itching to design a memory system with their addressed DRAMs. If you were familiar with the Intel 1103 from it being used (or so I was told) in the MIT-AI and Logo 11/45 display systems, and it being available, then that?

As I recall, LMI's CADRs used 74LS logic, but I could easily be wrong.

(Besides working for LMI in 1982-3 and playing with CADRs before then, in 1980 I started a student run computer center using the Logo Lab's then surplus 11/45; much of this I know from being told as opposed to direct knowledge, but I do have a weird memory for details.

And, hmmm, I guess I did a lot of salvage in the '80s; that student computer center eventually ended up with MIT-AI's KA10, and my EE friends marveled at the schematics, pre-standardized symbols and occasionally a gate's output would be hit hard to change its state.)


Kudos tk.

I worked on the Symbolics machines as well as the old CADRs as a mere undergrad on the 7th floor, and totally took for granted that I was working on machines ahead of their time. Pretty much spoiled me rotten, and had to seriously adjust when I hit the real world. ;)


Hi Tom, I was researching the ancestry of Nichimen Mirai, and its roots in Symbolics Graphics. Do you know how the SGD package came to be ?

ps: would a Lisp* cpu be absurd today ? (lisp or any other non byte-arrays oriented paradigm)


Well, many of the concepts of the lisp machine are extremely relevant to the current design problems of today's CPUs, primarily around security and privacy. The continuing disaster promulgated on the world by languages such as C can only be solved by enforcing type safety and bounds checking in hardware. There continues to be progress in making these easier and more efficient to implement. I'd suggest looking at the SAFE architecture papers, especially the low-fat pointer paper: http://www.crash-safe.org/papers.html


At least on OS X, you could probably implement something like this using supported functionality for interrogating the OS state, and even interrogating the state of running applications using the accessibility APIs.


Someone should be making those keyboards... But I wouldn't mind if they also added arrow keys.


Page one describes the keyboard being completely reprogrammable:

The keyboard has unlimited rollover, meaning that a keystroke is sensed when the key is depressed, no matter what other keys are depressed at the time.

Actually, the hardware can tell exactly what physical keys are being pressed at any given moment: it knows when any key is depressed and when it is released. This means that the Lisp Machine could* be programmed to interpret the keyboard in any manner whatsoever: in this sense the keyboard is completely "soft".*

It's refreshing reading an instruction manual for a computer that states the reprogrammability of its keyboard. This is "what you get when you make the hardware and software" taken further than Apple.

The manual then says the number of deviants from their defaults will be small:

But the Lisp Machine has already been programmed to interpret the keyboard input in a useful way, and such reprogramming would be necessary only for the most special needs.

Symbolics, I disagree. I (a regular programmer) have reprogrammed my computer's keyboard to imitate parts of "programmer's dvorak." Because my system is not as reprogrammable as a lisp machine, I must be aware of how my BIOS, kernel, X11, and emacs are each interpreting my keyboard input. It was a pain that would have been less on a lisp machine.

There are a lot of holes in my argument, though. My need for reprogrammability was created by ThinkPad's, Linux', and emacs' design choices I disagree with.


I reprogrammed the alphabetic layout on my Symbolics machine. It was easy. (I use a custom layout I created myself, very similar to the Asset layout [0].)

Fortunately, there was no need to remap the Caps Lock key, which I am guessing is the one that gave you the most trouble on the ThinkPad. It would have been hopeless on the Symbolics; the key has a physical alternate-action mechanism, like a ballpoint pen's. Here's a photo [1] taken with the key in the down position. You can also see it's well out of the way; Rub Out (the key that deleted the previous character; now generally labeled Backspace on PCs, or Delete on Macs) is where God intended it, to the left of A. So you probably wouldn't have had any desire to remap Caps Lock.

[0] http://millikeys.sourceforge.net/asset/

[1] https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Sy...


At least it's still useful as CTRL-LOCK for Emacs.

I remember you had an awesome custom MINCE keyboard. Any old photos of that?


No, and I scrapped that machine c. 1989. Wish I hadn't.


I admired your keyboard because at the time, I had a custom keyboard on my own Apple ][, which mapped the left and right "meta" keys to the game paddle buttons.

I wrote a terminal emulator for it in FORTH that supported RMS and Devon's SUPDUP line saving protocol (%TDSAV and %TDRES) which ITS EMACS could use to stash lines away in a buffer before scrolling them off or writing over them, and then restore them instantly when you scroll back! It was really great for EMACSing at 1200 baud!

http://donhopkins.com/home/archive/forth/supdup.f


Mapping the paddle buttons to meta keys was such a good idea that Apple used it on the Apple //e with the open-Apple and closed-Apple (eventually option) keys. Was that a common thing for extended keyboards in the Apple ][ era?


It was standard practice to wire the shift key to paddle button zero to get upper/lower case when you had an 80-column card. But I used full ASCII keyboard that supported upper and lower case, and had two extra buttons that were easy to wire up to paddle buttons and use as modifiers.

"For lowercase input, since it was not possible to detect whether the keyboard's Shift keys were in use, a modification called the "one-wire shift key mod" connected the Shift key to one of the pins on the motherboard's paddle connector. Compatible applications, including nearly all word processors, could then detect whether the shift key was being pressed. This modification, however, involved adding wires inside the Apple II, and was therefore only popular among hobbyists. For this reason, most applications that could support lower-case letters could also use the ESC key as a substitute lowercase toggle if the "shift key mod" was not installed." -- https://en.wikipedia.org/wiki/Apple_II_Plus#Substitute_lower...


> Symbolics, I disagree. I (a regular programmer) have reprogrammed my computer's keyboard to imitate parts of "programmer's dvorak.

I think that qualifies as 'most special'.


It's really a bummer that whoever it is who bought the Symbolics intellectual property at probate* hasn't been more open about their plans for it or how they will be opening it up to the world.

The Symbolics intellectual property doesn't have much direct value today; their patents are all expired and licensing revenue can't be significant. However it has a huge amount of historical value, and it would be amazing to eventually have a runnable system available legally for free (rather than for the thousands of dollars the VLM still costs) and to have on GitHub a complete and accurate history of the code for the Genera operating system, the hardware microcode and FEP/console code, and the various applications.

* It's rumored that the creator of CL-HTTP was the buyer. I was actually starting to look into purchasing it myself (with the intent of freeing it as much as possible, starting a project to get it on GitHub, etc.) when I found it had been bought.


For anyone browsing mobiley who can't see the url, it's

http://bitsavers.informatik.uni-stuttgart.de/pdf/symbolics/L...

so you can open folders as URLs and browse many interesting files.

edit: Even on desktop the URL is ellipses'd (what's the term for that?). It's /pdf/symbolics/LM-2/Operating_the_Lisp_Machine.pdf. You can see how many interesting topics there are...


> the URL is ellipses'd (what's the term for that?)

Ellipsed.

Weirdly, dictionary.cambridge.org, merriam-webster.com, and etymonline.com all avow ignorance of this verb, but wiktionary knows it. https://en.wiktionary.org/wiki/ellipse#Verb


I thought it was "elided".


But the noun form of "elide" is "elision", whereas we want the verb for which the noun form is "ellipsis".


Abbreviated, shortened, clipped, etc., would probably be more accurate. Ellipses are not typically used to indicated this so much as "the text continues".


Here are some more Lisp Machine operating instructions:

Proposed Symbolics guidelines for mail messages

http://www.art.net/~hopkins/Don/text/flame-manual.html


And I just found this :

https://youtu.be/IjmostrFetg

Thinking Machines parallel computer Fluid Dynamics demo, the Lisp OS and GUI can be seen live half way. Pretty pretty.


If you can't picture the keyboard that would have been used, it is this one (the "space cadet keyboard"): https://upload.wikimedia.org/wikipedia/commons/4/47/Space-ca...


I thought there would be more pictures


Conjecture: I think this is online documentation, for an early definition of "online"[0]: inside the machine, rather than on paper. That would explain the sophisticated-for-the-time print quality, and lack of pictures. Symbolics and LMI had, relative to Unix, pretty documentation.

Question for a knowledgeable someone: When was this published, and for what audience? It says "for non-programmers," but that could be anyone.

[0] I first said "original" but remembered an earlier definition: when one's town was accessible by train one was "online," meaning "on the line," where line means rail.


When was this published, and for what audience?

Either 1981 or 1982.

Seems like it's part of some user manuals and promotional materials, so I'd wager the intended audience was any party evaluating their technology.


Man, I would not want to be them in 1981. I wrote in another thread on this post that programmability ended up being valuable to me, but I certainly didn't know its value when I got started with Linux and emacs.

I can only now articulate its value after seeing the limits of Linux' and emacs' programmability.


That's when early Symbolics was barely running.

More detail about the next machine, the 3600, and its software/OS here: Symbolics 3600 Technical Summary, 1983

http://bitsavers.informatik.uni-stuttgart.de/pdf/symbolics/3...


Indeed, the LM-2 was a repacked MIT AI Lab CADR, the 2nd version and the first to be put in serial production. As I recall being told, the wirewrap CPU and wirewrapped peripheral cards (Chaosnet LAN, disk controller and video) were converted to Multiwire (https://en.wikipedia.org/wiki/Printed_circuit_board#Multiwir...), and the Multiwire memory cards were converted to PCBs (everyone wanted lots of DRAM). And of course packaged in something more convenient than a full height 19 inch rack.

As I recall, Symbolic ordered up parts and did 50 of them, and LMI 25 CADRs, and both really wished they'd planned on doing more of them. Although LMI perhaps more, we had at any one time around 3 CADRs in house, which were mainly used for CAD for designing the LMI LAMBDA, and some Z-80 CP/M machines to do documentation and the like.


Do you recall what software you were using on the CP/M machines for documentation?


Hmmm, I was on a CADR when I was on any computer at LMI; I don't think it was Electric Pencil, might have been WordStar, it was something generally familiar in its day that I'd heard of it before.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: