7

I'd like to bring up an old (pre-1975) LISP REPL so I can type things in and see how it behaves. MACLISP would be good but I'm open to other, similar LISPs, even as far back as LISP 1.5.

What's the fastest an easiest way to do this? Does anybody run a web page with a REPL? Or is there a package available (preferably that can run under Linux) with all the setup work already done? Or do I need to go as far as installing and configuring SIMH and software for it? If the last, what are the simplest steps to do this?

5

PDP-10 MACLISP (mid-80s version)

Lars Brinkhoff runs a public ITS system on its.pdp10.se (telnet protocol on port 10003) which has MACLISP available, though it's a mid-1980s version. You can log in and use it as follows.

Below, indicates elided output text, ^Z is Ctrl-Z, and lines containing your input (sometimes preceeded by a prompt) are indicated with » at the left-hand margin. Expressions are evaluated as soon as you type the closing parenthesis.

» $ telnet its.pdp10.se 10003
  Connected to the KA-10 simulator MTY device, line 2
» ^Z
  TT ITS.1648. DDT.1547.
…
» :LOGIN JMCCAR
  TT: JMCCAR; JMCCAR MAIL - NON-EXISTENT DIRECTORY
» :LISP

  LISP 2154
» Alloc? n
…
  *

» (+ 7 1)
  10

» ^Z
» 50107)   XCT 11   :LOGOUT

Remember to exit Lisp and :LOGOUT when you're done; if you don't do this the terminal might be left in its logged-in state for the next user that connects.

You may find David Moon's Maclisp Reference Manual to be a helpful reference while using this.

  • Looks great! Except for this version of Maclisp, the "Pitmanual" is probably more appropriate: maclisp.info/pitmanual – Lars Brinkhoff Jan 22 at 10:41
  • why does (+ 7 1) evaluate to 10? Is it in octal by default? – Kevin Troy Jan 22 at 20:01
  • 1
    @KevinTroy, yes. – Lars Brinkhoff Feb 5 at 20:04
  • Note, Maclisp from 1971 may be available in the future. There's also an undated smaller executable which feels a lot like PDP-6 LISP but runs under ITS. – Lars Brinkhoff Aug 26 at 5:20
4

PDP-6 LISP (around 1966)

LISP 1.5 ported to the Project MAC / AI Lab PDP-6 in 1964. This version is estimated to be from around 1966 and is a binary machine code file found on a DECtape belonging to Peter Samson. Due to an incompatible PDP-6 instruction, it has been patched to run on a PDP-10. It can of course also be run unpatched on PDP-6 emulators, of which there are a few.

To run this, download and build http://github.com/PDP-10/its

Then start the PDP-10 emulator. You will enter DSKDMP which can read, write, and run files from the disk. Type LISP and Enter to start PDP-6 LISP.

» $./start
…
   DSKDMP
» LISP
» ALLOC? N
» (PLUS 1 2)
  3
» (CONS T NIL)
  (T)
| improve this answer | |
3

I think you first has to decide whether you want Maclisp, or LISP 1.5, or something else.

We do have a copy of PDP-10 Maclisp running on ITS here: http://github.com/PDP-10/its
But it's the latest version from the mid 1980s. There are older versions archived going back to the early 1970s, but they are not public (yet).

There is also Multics Maclisp; ask multicians about it.

There is the direct predecessor to Maclisp: PDP-6 LISP. It's also available from the its repository linked above. It runs standalone on a PDP-6 or 10; the file name is @ LISP.

I think LISP 1.5 is available and runs on IBM emulators.

The easiest way to experience Maclisp is to log in on an ITS machine and try it.

| improve this answer | |
  • 1
    You are welcome to telnet to its.pdp10.se port 10003. Type ^Z and then :LOGIN CJS or similar to login. Run Maclisp: :LISP. It will ask Alloc?; just type n. – Lars Brinkhoff Jan 22 at 7:59
  • Also on this machine is TECO EMACS, PDP-10 Logo, PDP-11 Logo, Lisp Logo, Greenblatt's chess program MacHack VI, Macsyma, etc. – Lars Brinkhoff Jan 22 at 8:00
  • I'm open to whatever's easy; I anticipate that this question will have multiple answers for various versions of LISP and various levels of "easy." Building ITS myself seems pretty daunting, but your its.pdp10.se is a brilliant solution for my needs. I've added a community wiki answer giving the steps to log in to that; feel free to edit it as you see fit. – cjs Jan 22 at 8:44
  • Sadly SE does not support telnet urls like telnet://its.pdp10.se:10003 – Thorbjørn Ravn Andersen Jan 22 at 23:16
2

PDP-1 LISP

Amongst the SIMH Software Kits is L. Peter Deutsch's PDP-1 LISP 1.5 implementation. It's quite limited (particularly in terms of memory) and also reads all numbers in octal, but does at least let you enter and evaluate basic expressions.

On Linux, install SIMH from your distribution's package repositories, e.g., sudo apt-get install simh. Download lispswre.zip (that's from the "Lisp" link on the Kits page above) and unpack it. lisp_doc.txt contains instructions.

You need not compile the assembler and assemble the source; the included lisp.rim is the same output you would have generated anyway.

Start the emulator with the pdp1 command and follow the instructions in §3 of lisp_doc.txt to set up the initial machine state. After the final c (continue) command you will not be presented with a prompt, but you can type Lisp expressions to be evaluated. Remember that newlines are ignored; typing a space ( in sample input below) after the final closing paren is what triggers evaulation.

Most errors will halt the machine; when this happens you can continue with the c command:

(puls 7 1)▒

HALT instruction, PC: 000005 (STF6)
sim> c
(plus 7 1)▒
10

When you're done, Ctrl-E will exit back to the sim> prompt where you can use the q command to exit. To start again from your saved machine state (created during the setup above), start the simulator with pdp1 and at the sim> prompt use the command get lisp.sav followed by c.

The SIMH Users' Guide contains further details about using SIMH.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.