tenex icon indicating copy to clipboard operation
tenex copied to clipboard

Interlisp

Open larsbrinkhoff opened this issue 8 years ago • 13 comments

Need Interlisp installed!

larsbrinkhoff avatar Feb 24 '18 14:02 larsbrinkhoff

Here are files from SUMEX.

http://www.mcjones.org/dustydecks/archives/2006/08/14/57/

larsbrinkhoff avatar Feb 24 '18 16:02 larsbrinkhoff

Wonder how many versions of that I have...

b4 avatar Mar 04 '18 06:03 b4

Just need one!

larsbrinkhoff avatar Mar 04 '18 19:03 larsbrinkhoff

MAXC had a Lisp instruction set in parallel with the KA10 instruction set. It's called Byte Lisp, or just BLISP. I found this in an Arpanet Resources Handbook from 1978:

Screenshot from 2022-03-30 13-53-21

I get many hits for MAXC in Interlisp source code (the file <LISP>LISP.MAC). Some hits for lisp in the MAXC monlitor (<PUP>).

Byte Lisp is described briefly in Fiala's "The Maxc Systems":
https://github.com/PDP-10/maxc/blob/master/pdf/the_maxc_systems.pdf

According to MAXC Operations, the mode select between PDP-10 and Byte Lisp is in the PC flags: Screenshot from 2022-03-30 14-12-51

larsbrinkhoff avatar Mar 30 '22 12:03 larsbrinkhoff

Hello @masinter @rmkaplan @blakemcbride @nbriggs,

Do you know anything related to the MAXC Byte Lisp instruction set? I have found some pieces of Interlisp-10 code that uses it, but I believe I'm missing some files like BYTE.MAC. I do have a TENEX monitor with MAXC and Byte Lisp support, so chances are if Interlisp can be completed it could run on a PDP-10 emulator.

Thank you, Lars Brinkhoff

larsbrinkhoff avatar Mar 30 '22 13:03 larsbrinkhoff

A few hits for BYTELISPFLG, from DECUS tapes:
https://www.google.com/search?q=%22BYTELISPFLG%22

larsbrinkhoff avatar Mar 30 '22 14:03 larsbrinkhoff

Predates my time at PARC (from 1984) but that TELNET code has Larry's name all over it.

nbriggs avatar Mar 30 '22 16:03 nbriggs

I worked on this with Ed Fiala. It used the fact that maxc was a microcoded 36-bit machine. so different 9-bit bytecodes. I got it to work but performance was a problem. I vaguely recall something about context switching overhead.

masinter avatar Mar 31 '22 01:03 masinter

there's code in medley around PRINTCODE that doesn't treat BITSPERBYTE as a constant (8) or (9) on maxc

masinter avatar Mar 31 '22 02:03 masinter

@masinter -- BTDT, but Honeywell L66 CPU after using a Xerox Sigma 9. At least it was operating in 4x9-bit bytes for text rather than 6x6-bit mode!

nbriggs avatar Mar 31 '22 02:03 nbriggs

I understand that L Peter Deutsch was one of the people behind this byte code. His 1973 paper "A LISP machine with very compact programs" describes a MicroLISP instruction set. I believe this came before the MAXC Byte Lisp implementation.

http://www.softwarepreservation.org/projects/LISP/interlisp-d/Deutsch-3IJCAI.pdf

I asked him about this, but he doesn't have any additional information or software.

larsbrinkhoff avatar Mar 31 '22 04:03 larsbrinkhoff

I don't have contact info for Peter Deutsch or Ed Fiala. What I remember (from early 70s) was how PARC built their own PDP-10 because they couldn't buy one from DEC. The Lisp 9-bit bytecode instruction set was a side project by Ed which I got roped into helping with. It wasn't going to help with Lisp performance on Maxc because too much overhead of swapping from one setup of registers to another when there is a per-process microcode mode.

masinter avatar Mar 31 '22 18:03 masinter

Thanks for the info, @masinter! I think it's a marvelous story - a PDP-10 that can also execute bytecode! It does seem like the Interlisp bytecode for Maxc is lost though, so there's no use updating a PDP-10 emulator for this.

larsbrinkhoff avatar Apr 01 '22 09:04 larsbrinkhoff