LISP on the BBC Microcomputer (Remastered PDF)

These forums are for community collaboration on archiving, magazine scanning etc. to avoid work duplication and agree conventions / define standards
Post Reply
User avatar
dv8
Posts: 247
Joined: Mon Jun 22, 2009 9:07 pm
Contact:

LISP on the BBC Microcomputer (Remastered PDF)

Post by dv8 » Sun Sep 01, 2019 11:23 am

Attached is a remastered PDF of the book LISP on the BBC Microcomputer by Arthur Norman and Gillian Cattell.

This book is the first edition from 1983 and covers LISP 2.00. It is likely there was a later release in 1984 titled "Lisp on the BBC Microcomputer and Acorn Electron" that covers LISP 5.00. If anyone has a copy of this book, or any other paperwork for LISP 5, please get in touch so I can update the PDF.

LISP_on_the_BBC_Microcomputer.pdf
(Second revision, September 2019)
(593.83 KiB) Downloaded 34 times
LISP_on_the_BBC_Microcomputer.ssd
(54 KiB) Downloaded 24 times
LISP_roms.zip
(42.27 KiB) Downloaded 24 times

LISP 5 differences

As far as I can tell, these are the differences between LISP 2 and LISP 5:
  • The ROM is listed in *HELP
  • 'Warm or cold start' prompt on BREAK
  • Automatic relocation to high memory on second processors (47.5K free)
  • Two new functions (INKEY n) and (GENSYM)
ROM images

The zip file above contains the LISP ROMs. LISP-200.rom is the 1983 release for the BBC Micro, LISP-500.rom is the 1984 release used in the Electron and Master cartridges. LISP 5 will also work on the BBC Micro.

There are two additional ROMs included. LISP-201.rom and LISP-501.rom are patched versions that allow the use of shadow screen modes on the B+ and Master. i.e. (MODE 128) through (MODE 135) is now supported.

I would recommend the use of LISP-501.rom on all machines.

Disc image

The SSD disc image contains the two patched ROMs as described above and all the demonstration programs listed in the book.

Enter the command *TYPE !INDEX (from BASIC) or (* 'TYPE! !!INDEX) (from LISP) to get an index of the files on the disc and which section of the book they relate to.

The demonstration programs are all plain text files and so need to be read into LISP using the *EXEC command. For example, to load the UTILS package enter the command (* 'EXEC! UTILS) or the abbreviated form (* 'E!.UTILS)
Last edited by dv8 on Sun Sep 08, 2019 1:39 pm, edited 2 times in total.


acorn
Posts: 56
Joined: Fri Dec 23, 2016 10:18 am
Contact:

Re: LISP on the BBC Microcomputer (Remastered PDF)

Post by acorn » Sun Sep 01, 2019 1:23 pm

Wow. Thank you very much! It is truly amazing (including the cover graphics)! :D

Just a side note: according to everygamegoing, the Electron ROM Cartridge actually holds two roms, the other being the examples from the book: STH ROM (Serial Rom 1982)

User avatar
dv8
Posts: 247
Joined: Mon Jun 22, 2009 9:07 pm
Contact:

Re: LISP on the BBC Microcomputer (Remastered PDF)

Post by dv8 » Sun Sep 01, 2019 1:48 pm

acorn wrote:
Sun Sep 01, 2019 1:23 pm
the Electron ROM Cartridge actually holds two roms, the other being the examples from the book
Yes, if you own the cartridge version the example programs can be loaded by switching to the ROM Filing System and EXECing as usual, e.g:

(* 'ROM)
(* 'EXEC! UTILS)

The serial ROM contains every program from the book except the route-finder from section 23.7.

User avatar
dv8
Posts: 247
Joined: Mon Jun 22, 2009 9:07 pm
Contact:

Re: LISP on the BBC Microcomputer (Remastered PDF)

Post by dv8 » Sun Sep 08, 2019 2:07 pm

I've found and fixed a few errors in this book. The updated PDF is in the opening post.

Changes since revision 1 (August 2019):
  • p133 (139) CHARCOUNT : arguments wrong way round, should be (CHARCOUNT item number)
  • p143 (149) LAMDA should be LAMBDA
  • p145 (151) MAP : arguments wrong way round, should be (MAP function list), description completely wrong
    (MAP passes each item in the list to the function and discards the result)
  • p145 (151) MAPC : arguments wrong way round, should be (MAPC function list)
  • p146 (152) MAPC example : should be (MAPC '(LAMBDA (X) (TIMES 2 X)) '(1 3 4 2 0))

Post Reply