Tiny Lisp Computer
The Tiny Lisp Computer 2 is a small self-contained computer based on an ATmega1284, with its own display and keyboard, that you can use to program in uLisp.
You can build it on a prototyping board using the PDIP version of the ATmega1284P:
For details see Tiny Lisp Computer 2 on Technoblogy.
There's also a PCB you can use to build one:
For details see Tiny Lisp Computer 2 PCB on Technoblogy.
Specification
Display: 21 characters x 8 lines.
Memory available: 3001 Lisp cells (12004 bytes).
EEPROM: 1024 Lisp cells (4K bytes).
Language: uLisp, a subset of Common Lisp, with 125 Lisp functions and special forms. For a full definition see uLisp Language Reference.
Types supported: list, symbol, and integer.
An integer is a sequence of digits, optionally prefixed with "+" or "-". Integers can be between -32768 and 32767. You can enter numbers in hexadecimal, octal, or binary with the notations #x2A, #o52, or #b101010, all of which represent 42.
User-defined symbol names can have up to three characters consisting of a-z and 0-9. Any sequence that isn't an integer can be used as a symbol; so, for example, 12a is a valid symbol.
There is one namespace for functions and variables; in other words, you cannot use the same name for a function and a variable.
Includes a mark and sweep garbage collector. Garbage collection takes under 11 msec.
Interfaces:
- Analogue input using analogread: A0 to A7 (24 to 31)
- Analogue output using analogwrite: 3, 4, 6, 7 , and 12 to 15
- Digital input and output using pinmode, digitalread, and digitalwrite: 0, 3 to 19, A0 to A7 (24 to 31)
- I2C using with-i2c and restart-i2c: 16 and 17
- SPI using with-spi: 5, 6, 7
As on an Arduino Uno, pin 13 is connected to an LED.