[HN Gopher] The Lisp Implementafion for the PDP-1 Computer [pdf]
___________________________________________________________________
 
The Lisp Implementafion for the PDP-1 Computer [pdf]
 
Author : abrax3141
Score  : 57 points
Date   : 2022-05-19 17:10 UTC (5 hours ago)
 
web link (s3data.computerhistory.org)
w3m dump (s3data.computerhistory.org)
 
| jonjacky wrote:
| Peter Deutsch finished this when he was 17 years old.
| 
| https://en.wikipedia.org/wiki/L._Peter_Deutsch
 
  | lisper wrote:
  | Not sure which is more impressive, that, or the fact that this
  | Lisp ran in under 4k of RAM.
 
    | phtrivier wrote:
    | No idea what the arch of a PDP would be like; but the manual
    | mentions 4096 "registers". Would those register actually
    | correspond to memory words in a more modern arch ? Was it
    | possible in assembly to directly address each of those
    | register (without the need for MOV-golfing ?)
 
      | ngvrnd wrote:
      | Dunno about the pdp-1, but the pdp-10 series machines
      | allowed the registers to be addressed like memory, if I
      | recall correctly- the registers were special and faster
      | than the rest of memory, but one could put machine code in
      | them and run it there. I guess using registers would have
      | been tricky in that case though.
 
        | aap_ wrote:
        | The pdp-1 has two architectural registers: AC and IO and
        | they're not addressable as memory. The PDP-10 has a
        | similar internal structure but fetches and stores the
        | accumulator from/to memory* for instructions that use it.
        | 
        | * in the PDP-6 it really is external memory, in the later
        | models (aka PDP-10) it was moved into the CPU
 
      | djmips wrote:
      | https://www.masswerk.at/spacewar/inside/pdp1-instructions.h
      | t...
 
      | retrac wrote:
      | > Was it possible in assembly to directly address each of
      | those register (without the need for MOV-golfing ?
      | 
      | Kind of. 12-bit address field in the instruction. It was an
      | accumulator machine; the CPU only had one main register (as
      | we use the term today) and all operations were between that
      | implicit register and the address specified in memory.
 
      | FullyFunctional wrote:
      | A "register" is just a [core] memory word. ("The PDP-1 uses
      | an 18-bit word size and has 4096 words as standard main
      | memory", https://en.wikipedia.org/wiki/PDP-1). Terminology
      | changed since then.
      | 
      | I like how the assembly source code is small enough to
      | include at the end of the manual. A bit of slogging finds
      | you the source code and a pdp-1 assembler, enough to run it
      | on simh or MESS, but even though there's a online PDP-1
      | emulator running SpaceWar!, I wasn't able to find a way to
      | run Lisp 1 online.
      | 
      | * http://www.softwarepreservation.org/projects/LISP/interli
      | sp_...
      | 
      | * http://simh.trailing-edge.com/kits/lispswre.zip
 
| djmips wrote:
| Some more info about the PDP-1 asm here.
| https://www.masswerk.at/spacewar/inside/pdp1-instructions.ht...
 
___________________________________________________________________
(page generated 2022-05-19 23:01 UTC)