PDP-10 / tenex

BBN's PDP-10 operating system
32 stars 3 forks source link

Interlisp #9

Open larsbrinkhoff opened 6 years ago

larsbrinkhoff commented 6 years ago

Need Interlisp installed!

larsbrinkhoff commented 6 years ago

Here are files from SUMEX.

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

b4 commented 6 years ago

Wonder how many versions of that I have...

larsbrinkhoff commented 6 years ago

Just need one!

larsbrinkhoff commented 2 years ago

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.MAC). Some hits for lisp in the MAXC monlitor (\).

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 commented 2 years ago

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 commented 2 years ago

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

nbriggs commented 2 years ago

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

masinter commented 2 years ago

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 commented 2 years ago

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

nbriggs commented 2 years ago

@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!

larsbrinkhoff commented 2 years ago

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.

masinter commented 2 years ago

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.

larsbrinkhoff commented 2 years ago

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.