1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-01-03 19:31:10 +00:00

Update documentation

This commit is contained in:
David Schmenk 2024-07-23 15:46:57 -07:00
parent daed69e113
commit bbfa59ccc7

View File

@ -4,6 +4,7 @@ LISP interpreted on a bytecode VM running on a 1 MHz 6502 is going to be sssllll
## Missing features of LISP 1.5 in DRAWL ## Missing features of LISP 1.5 in DRAWL
- Minimal I/O facilities
- General recursion. The 6502 architecture limits recursion (but see tail recursion below), so don't expect too much here - General recursion. The 6502 architecture limits recursion (but see tail recursion below), so don't expect too much here
- Many of the built-in functions from the LISP 1.5 manual. Most can be coded in LISP and loaded at startup - Many of the built-in functions from the LISP 1.5 manual. Most can be coded in LISP and loaded at startup
@ -15,17 +16,19 @@ However, the code is partitioned to allow for easy extension so some of these mi
- Tail recursion handles deep recursion. Check out [loop.lisp](https://github.com/dschmenk/PLASMA/blob/master/src/lisp/loop.lisp) - Tail recursion handles deep recursion. Check out [loop.lisp](https://github.com/dschmenk/PLASMA/blob/master/src/lisp/loop.lisp)
- Fully garbage collected behind the scenes - Fully garbage collected behind the scenes
- Optionally read LISP source file at startup - Optionally read LISP source file at startup
- The PROG feature now present!
- Arrays of up to four dimensions - Arrays of up to four dimensions
- FUNCTION operation with bound variables
- Additional testing/looping construct: IF, FOR, WHILE, UNTIL
- Bit-wise logic operations on 32 bit integers - Bit-wise logic operations on 32 bit integers
- FUNCTION operation with bound variables
- The PROG Alogol-like programming construct
- Additional testing/looping constructs: IF and FOR
- Hexadecimal input/output - Hexadecimal input/output
- LoRes Apple II graphics - LoRes Apple II graphics
- Ctrl-C break into running program
The DRAWL implementation comes with the following built-in functions: The DRAWL implementation comes with the following built-in functions:
### Constants ### Constants
- T = True - T = True
- F = False - F = False
- NIL = NULL - NIL = NULL
@ -72,7 +75,7 @@ The DRAWL implementation comes with the following built-in functions:
### Conditionals ### Conditionals
- COND(...) - COND(...)
- IF() - IF() = IF THEN w/ optional ELSE
### Output ### Output
@ -95,7 +98,9 @@ The DRAWL implementation comes with the following built-in functions:
### Program feature ### Program feature
- PROG() = Algol like programming in LISP - PROG(...) = Algol like programming in LISP
- COND(...) = Fall-through COND()
- IF() = Fall-through IF THEN w/ optional ELSE
- GO() = Goto label inside PROG - GO() = Goto label inside PROG
- RETURN() = Return from PROG with value - RETURN() = Return from PROG with value
@ -126,8 +131,8 @@ The DRAWL implementation comes with the following built-in functions:
### Floating Point (from the SANE library) ### Floating Point (from the SANE library)
- PI() - PI() = Constant value of pi
- MATH_E() - MATH_E() = Constant value of e
- LOGB() - LOGB()
- SCALEB_I() - SCALEB_I()
- TRUNCATE() - TRUNCATE()
@ -145,9 +150,8 @@ The DRAWL implementation comes with the following built-in functions:
- POW2_1() - POW2_1()
- POWE() - POWE()
- POWE_1() - POWE_1()
- POWE2_1()
- POW_I() - POW_I()
- POWY() - POW()
- COMP() - COMP()
- ANNUITY() - ANNUITY()