|
Guy Steele, who among his many accomplishments counts writing Common Lisp: The Language and chairing the ANSI committee standardizing Common Lisp, implemented LISP for the first time on an IBM 1130 while he attended Boston Latin School in the early 1970s. In mid 2008 Mark Waterbury got in touch with him and obtained photocopies of the LISP source code and documentation, along with Guy's release of it under a Creative Commons license. We tried briefly to OCR the code but it seemed too difficult (at least for Omnipage Pro 15), and we put the PDFs up onto this web site. Fausto Saporito, in Italy, then hand keyed the entire source code listing and got to the point of compiling it without errors. It still had some errors while running, though, and it was unclear whether the problem was in the source code and/or in the 1130 simulator. After Fausto did his hand-transcription, Ray Comas did another, independent transcription, starting with OCR and then hand-correcting the output. The most recent news (Nov. 16, 2008) is from Ray Comas, who says "it's running! (mostly)." More details below, along with a LISP disk image you can download and use in your simulator. Would you like to work further on this? Then download the files and the simulator and take your best shot. Write us if you'd like to be put in touch with Fausto, Mark, Ray, and Guy. LISP 1.6 code and documentation from Guy Steele: Guy Steele writes:
Fausto Saporito's transcription of the code: Ray Comas's transcription of the code, other working files, and running LISP 1.6 image: Ray wrote (on 11/15/2008): After merging Fausto's version of lisp16 with mine, and fixing the SYSIN routine - I think that the original card deck from Guy Steele's listing may have gotten screwed up, since the SYSIN routine in the original listing made no sense - I now have a (mostly) working LISP! The attached ZIP file contains the merged LISP16, KBCP0 and LMACS source, and a LISP.DSK image with lisp already loaded. There is a lisptest.job that executes a few simple statements. The DUP/STORECI issue he mentions is: Possible emulator bug: you'll note that the last few DUP commands in lisp16.job are commented out. These are responsible for building a core image. This process never terminates (or takes way to long to complete, I wound up killing it after about an hour ...). I don't know if this is a problem with the emulator, or some weird bug in the core image builder in the version of DMS that you have. Running // XEQ LISP works just fine, so I'm inclined to believe that the core image builder is fine. I haven't had time to chase this down any further.(Note from Brian: this appears to be a bug in our version of DUP, rather than the simulator. We'll try to follow up on this.) A couple of days later, he wrote: I found out what was going on with this. In the lisp error routine, a "cents" sign is supposed to indicate a CR. In the source listings, there is a back-slash "\" instead of a "cents" sign, probably because the 1132 doesn't have a "cent" sign character, and printed it as "\" instead. So, enjoy the fruit of these four men's labor, and download 1130 LISP! |