summaryrefslogtreecommitdiff
path: root/docsrc/xlisp/xlisp-doc/reference
diff options
context:
space:
mode:
Diffstat (limited to 'docsrc/xlisp/xlisp-doc/reference')
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/abs.htm78
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/acos.htm93
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/addition.htm87
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/address-of.htm99
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/alloc.htm98
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/alphanumericp.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/and.htm118
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/append.htm90
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/apply.htm89
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/aref.htm105
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/arrayp.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/asin.htm93
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/assoc.htm121
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/atan.htm77
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/atom.htm90
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/backquote.htm170
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/baktrace.htm117
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/bigendianp.htm69
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/block.htm94
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/both-case-p.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/boundp.htm104
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/break.htm107
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/caaaar.htm134
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/caaar.htm106
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/caar.htm101
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/car.htm85
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/case.htm171
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/catch.htm197
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/cddddr.htm135
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/cdddr.htm104
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/cddr.htm101
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/cdr.htm85
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/cerror.htm23
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-code.htm86
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-downcase.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-equal-i.htm89
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-equal-s.htm91
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-greaterp-i.htm91
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-greaterp-s.htm91
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-int.htm86
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-lessp-i.htm91
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-lessp-s.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-not-equal-i.htm90
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-not-equal-s.htm98
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-not-greaterp-i.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-not-greaterp-s.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-not-lessp-i.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-not-lessp-s.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char-upcase.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/char.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/characterp.htm86
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/class.htm113
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/clean-up.htm90
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/close.htm85
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/code-char.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/cond.htm95
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/cons.htm74
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/consp.htm95
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/continue.htm90
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/cos.htm71
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/decf.htm88
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/decrement.htm75
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/defmacro.htm142
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/defun.htm134
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/delete-if-not.htm107
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/delete-if.htm110
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/delete.htm99
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/digit-char-p.htm87
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/digit-char.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/division.htm101
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/do-star.htm144
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/do.htm133
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/dolist.htm111
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/dotimes.htm101
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/dribble.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/echoenabled.htm68
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/endp.htm86
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/eq.htm93
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/eql.htm99
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/equal.htm111
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/error.htm161
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/errset.htm117
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/eval.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/evalhook.htm142
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/evenp.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/exit.htm69
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/exp.htm76
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/expand.htm91
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/expt.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/fboundp.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/filep.htm75
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/find-in-xlisp-path.htm66
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/first.htm74
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/flatc.htm74
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/flatsize.htm74
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/flet.htm87
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/float.htm71
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/floatp.htm81
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/format.htm161
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/fourth.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/funcall.htm102
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/function.htm87
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/gc.htm74
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/gcd.htm75
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/gensym.htm89
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/get-env.htm64
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/get-key.htm66
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/get-lambda-expression.htm78
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/get-output-stream-list.htm75
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/get-output-stream-string.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/get-temp-path.htm68
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/get-user.htm67
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/get.htm97
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-applyhook.htm78
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-breakenable.htm106
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-debug-io.htm72
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-error-output.htm71
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-evalhook.htm123
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-file-separator.htm68
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-float-format.htm179
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-gc-flag.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-gc-hook.htm125
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-integer-format.htm129
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-obarray.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-print-case.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-readtable.htm166
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-rslt.htm83
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-standard-input.htm73
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-standard-output.htm81
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-trace-output.htm71
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-tracelimit.htm103
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-tracelist.htm74
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-tracenable.htm105
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/global-unbound.htm70
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/go.htm106
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/hash.htm90
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/if.htm83
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/incf.htm88
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/increment.htm75
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/info.htm63
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/int-char.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/integerp.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/intern.htm117
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/interpolate.htm76
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/intersection.htm76
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-answer.htm107
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-class.htm83
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-constituent.htm95
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-isa.htm83
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-isnew.htm96
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-mescape.htm86
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-new.htm86
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-nmacro.htm103
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-sescape.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-show.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-tmacro.htm107
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keyword-white-space.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/keywordp.htm78
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/labels.htm101
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/lambda-keyword-aux.htm116
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/lambda-keyword-key.htm132
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/lambda-keyword-optional.htm98
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/lambda-keyword-rest.htm104
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/lambda.htm109
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/last.htm75
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/length.htm74
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/let-star.htm106
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/let.htm94
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/list.htm74
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/listdir.htm67
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/listp.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/load.htm162
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/log.htm67
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/logand.htm81
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/logior.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/lognot.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/logxor.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/loop.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/lower-case-p.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/macroexpand-1.htm85
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/macroexpand.htm83
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/macrolet.htm146
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/make-array.htm95
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/make-string-input-stream.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/make-string-output-stream.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/make-symbol.htm93
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/mapc.htm87
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/mapcar.htm151
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/mapl.htm89
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/maplist.htm86
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/max.htm73
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/member.htm93
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/min.htm73
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/minusp.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/multiplication.htm87
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/nconc.htm89
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/nil.htm70
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/not.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/nstring-downcase.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/nstring-upcase.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/nth.htm74
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/nthcdr.htm75
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/null.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/number-equal.htm87
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/number-greaterp.htm90
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/number-lessp.htm90
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/number-not-equal.htm101
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/number-not-greaterp.htm91
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/number-not-lessp.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/numberp.htm78
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/object.htm120
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/objectp.htm72
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/oddp.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/open-binary.htm103
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/open.htm117
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/or.htm87
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/peek-char.htm105
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/peek.htm86
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/pi.htm66
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/plus.htm75
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/poke.htm88
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/pop.htm85
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/power.htm77
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/pprint.htm94
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/prin1.htm94
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/princ.htm94
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/print.htm95
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/profile.htm85
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/prog-star.htm101
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/prog.htm96
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/prog1.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/prog2.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/progn.htm81
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/progv.htm133
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/psetq.htm78
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/push.htm83
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/putprop.htm108
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/quit.htm69
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/quote.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/random.htm86
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/read-byte.htm100
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/read-char.htm100
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/read-float.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/read-int.htm78
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/read-line.htm97
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/read.htm125
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/real-random.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/reference-copyright.htm50
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/reference-format.htm83
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/reference-index.htm2468
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/reference.css34
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/rem.htm88
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/remove-if-not.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/remove-if.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/remove.htm100
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/remprop.htm94
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/rest.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/restore.htm112
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/return-from.htm89
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/return.htm93
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/reverse.htm73
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/room.htm90
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/round.htm81
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/rplaca.htm99
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/rplacd.htm89
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/rrandom.htm66
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/save.htm124
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/second.htm81
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/self.htm81
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/send-super.htm87
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/send.htm96
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/set-difference.htm75
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/set.htm83
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/setdir.htm65
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/setf.htm273
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/setq.htm70
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/setup-console.htm72
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/sin.htm76
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/sort.htm104
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/soundp.htm70
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/sqrt.htm76
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/strcat.htm72
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/streamp.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-downcase.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-equal-i.htm111
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-equal-s.htm96
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-greaterp-i.htm98
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-greaterp-s.htm99
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-left-trim.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-lessp-i.htm98
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-lessp-s.htm98
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-not-equal-i.htm112
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-not-equal-s.htm104
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-not-greaterp-i.htm99
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-not-greaterp-s.htm99
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-not-lessp-i.htm98
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-not-lessp-s.htm99
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-right-trim.htm85
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-search.htm68
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-trim.htm84
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string-upcase.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/string.htm88
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/stringp.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/sublis.htm129
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/subseq.htm83
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/subsetp.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/subst.htm96
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/subtraction.htm88
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/symbol-function.htm67
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/symbol-name.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/symbol-plist.htm85
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/symbol-value.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/symbolp.htm85
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/system.htm73
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/t.htm71
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/tagbody.htm81
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/tan.htm76
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/terpri.htm90
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/third.htm81
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/throw.htm23
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/top-level.htm91
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/trace.htm93
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/truncate.htm74
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/type-of.htm103
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/union.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/unless.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/untrace.htm86
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/unwind-protect.htm137
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/upper-case-p.htm76
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/vector.htm73
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/when.htm82
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/while.htm81
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/write-byte.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/write-char.htm92
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/write-float.htm80
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/write-int.htm79
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/zerop.htm81
337 files changed, 33179 insertions, 0 deletions
diff --git a/docsrc/xlisp/xlisp-doc/reference/abs.htm b/docsrc/xlisp/xlisp-doc/reference/abs.htm
new file mode 100644
index 0000000..3069cb2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/abs.htm
@@ -0,0 +1,78 @@
+<html><head><title>XLISP abs</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>abs</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlisp/xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>abs</b> <i>number</i>)</nobr></dt>
+<dd><i>number</i> - an integer or floating point expression<br>
+returns - the absolute value of the number</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'abs' function computes the absolute value of a number and returns
+the result. <nobr>A 'bad argument</nobr> type' error is signalled if the
+argument is not a numebr.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(abs 1) =&gt; 1
+(abs -99) =&gt; 99
+(abs -99.9) =&gt; 99.9
+(abs -32768) =&gt; 32768
+(abs "123") =&gt; <font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/acos.htm b/docsrc/xlisp/xlisp-doc/reference/acos.htm
new file mode 100644
index 0000000..8351556
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/acos.htm
@@ -0,0 +1,93 @@
+<html><head><title>XLISP acos</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>acos</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr></nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>acos</b> <i>flonum</i>)</nobr></dt>
+<dd><i>flonum</i> - an integer or floating point expression<br>
+returns - the <nobr>arc-cosine</nobr> of the number</dd>
+</dl>
+
+</div></p>
+
+<p><b>Note:</b> the 'acos' function is not implemented in Nyquist. Here
+is a Lisp implementation of 'acos', using the <a href="atan.htm">atan</a>
+function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">acos</font> (x)
+ (cond ((not (numberp x)) (error <font color="#880000">"bad argument type"</font> x))
+ ((= x 1) 0.0)
+ ((= x -1) pi)
+ ((&lt; -1 x 1) (+ (atan (/ (- x) (sqrt (1+ (* x (- (float x))))))) (/ pi 2.0)))
+ (t (error <font color="#880000">"argument out of range"</font> x))))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'acos' function returns the <nobr>arc-cosine</nobr> of an integer or
+floating point expression. <nobr>The result</nobr> is a floating point
+number in radians. <nobr>If the</nobr> argument is less <nobr>than -1</nobr>
+or greater <nobr>than +1</nobr>, the <nobr>arc-cosine</nobr> is a complex
+number. Complex numbers are not available <nobr>in XLISP</nobr>. <nobr>In
+this</nobr> case the 'acos' function signals an 'argument out of range'
+error.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(acos 0.0) =&gt; 1.5708
+(acos 1.0) =&gt; 0.0
+(acos -1.0) =&gt; 3.14159
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/addition.htm b/docsrc/xlisp/xlisp-doc/reference/addition.htm
new file mode 100644
index 0000000..13e925d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/addition.htm
@@ -0,0 +1,87 @@
+<html><head><title>XLISP +</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>+</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(+ <i>expr1</i> ...)</nobr></dt>
+<dd><i>exprN</i> - integer or floating point number/expression<br>
+returns - the result of adding the expressions</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '+' function adds a list of numbers together and returns the
+result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(+ 1) =&gt; 1
+(+ 1 2) =&gt; 3
+(+ 1 2 3) =&gt; 6
+(+ 1 2 3 4) =&gt; 10
+</pre>
+
+<pre class="example">
+&gt; (print (+ 1 2 (* 3.5 (/ 3.9 1.45))))
+12.4138 <font color="#008844">; screen output of PRINT</font>
+12.4138 <font color="#008844">; return value</font>
+</pre>
+
+<p>See <a href="multiplication.htm">&nbsp;*&nbsp;</a>,
+<a href="division.htm">&nbsp;/&nbsp;</a>, <a href="print.htm">print</a>.
+XLISP first prints the value on the screen, the second number is the
+return value.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/address-of.htm b/docsrc/xlisp/xlisp-doc/reference/address-of.htm
new file mode 100644
index 0000000..07190d2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/address-of.htm
@@ -0,0 +1,99 @@
+<html><head><title>XLISP address-of</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>address-of</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>address-of</b> <i>expr</i>)</dt>
+<dd>expr - an expression<br>
+returns - the memory address of the expression as an integer</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'address-of' function returns the internal memory address of the
+XLISP node that corresponds to 'expr'. The value returned is an integer.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq var 0) =&gt; 0 <font color="#008844">; set up VAR with 0</font>
+(address-of var) =&gt; 123224
+(address-of 'var) =&gt; 182638
+(peek (address-of var)) =&gt; 83951616
+(peek (1+ (address-of var))) =&gt; 16777216
+(peek (+ 2 (address-of var))) =&gt; 0 <font color="#008844">; value of VAR</font>
+(setq var 14) =&gt; 14 <font color="#008844">; change the value to 14</font>
+(peek (+ 2 (address-of var))) =&gt; 14
+(setq var 99) =&gt; 99 <font color="#008844">; change the value to 99</font>
+(peek (+ 2 (address-of var))) =&gt; 99
+</pre>
+
+<p>See <a href="addition.htm">&nbsp;+&nbsp;</a>,
+<a href="increment.htm">1+</a>, <a href="peek.htm">peek</a>,
+<a href="setq.htm">setq</a>.</p>
+
+<p><div class="box">
+
+<p><b>Nyquist:</b> The '<nobr>address-of</nobr>' function is internally
+disabled, but the code still exists. Look out for PEEK_AND_POKE in the
+Nyquist source code.</p>
+
+<p><b>Caution:</b> Be careful when modifying the internal state of XLISP.
+<nobr>If you</nobr> have modified it, it would be a good idea to exit XLISP
+and <nobr>re-enter</nobr> before doing any work you really want to
+retain.</p>
+
+</div></p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#system-functions">System Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/alloc.htm b/docsrc/xlisp/xlisp-doc/reference/alloc.htm
new file mode 100644
index 0000000..22feb53
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/alloc.htm
@@ -0,0 +1,98 @@
+<html><head><title>XLISP alloc</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>alloc</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xldmem.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>alloc</b> <i>size</i>)</nobr></dt>
+<dd><i>size</i> - the number of nodes to allocate as an integer<br>
+returns - the old number of nodes to allocate</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'alloc' function changes the number of memory nodes allocated per
+segment whenever memory is expanded. <nobr>The previous</nobr> number of
+nodes allocated per segment is the value returned as the result. <nobr>The
+power-up</nobr> default is 1000 nodes per segment. <nobr>Note that</nobr>
+'alloc' does not, itself, expand memory. You need to call the
+<a href="expand.htm">expand</a> function to do the expand operation.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+&gt; (room)
+Nodes: 4000
+Free nodes: 1669
+Segments: 4
+Allocate: 1000 <font color="#008844">; default ALLOC value</font>
+Total: 52570
+Collections: 8
+NIL
+
+&gt; (alloc 2000) <font color="#008844">; new ALLOC value</font>
+1000 <font color="#008844">; old ALLOC value</font>
+
+&gt; (room)
+Nodes: 4000
+Free nodes: 1655
+Segments: 4
+Allocate: 2000 <font color="#008844">; new ALLOC value</font>
+Total: 52570
+Collections: 8
+NIL
+</pre>
+
+<p>See <a href="room.htm">room</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#system-functions">System Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/alphanumericp.htm b/docsrc/xlisp/xlisp-doc/reference/alphanumericp.htm
new file mode 100644
index 0000000..9067193
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/alphanumericp.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP alphanumericp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>alphanumericp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>alphanumericp</b> <i>char</i>)</dt>
+<dd>char - a character expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the character
+is alphabetic or a digit, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p> The 'alphanumericp' function checks if the 'char' expression is an
+alphabetic or a digit character. <nobr>If 'char'</nobr> is an alphabetic
+[either an upper or lower case] or a digit character,
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned, otherwise
+<a href="nil.htm">NIL</a> is returned. Note that XLISP is limited to
+<a href="../misc/ascii-table.htm">ASCII</a> characters, so there is no way
+to find out if an Unicode character with a
+<nobr><a href="char-code.htm">char-code</a></nobr> greater than
+<nobr>ASCII 127</nobr> is alphanumeric <nobr>or not</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(alphanumericp #\A) =&gt; T
+(alphanumericp #\a) =&gt; T
+(alphanumericp #\1) =&gt; T
+(alphanumericp #\[) =&gt; NIL
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/and.htm b/docsrc/xlisp/xlisp-doc/reference/and.htm
new file mode 100644
index 0000000..1a2c3d9
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/and.htm
@@ -0,0 +1,118 @@
+<html><head><title>XLISP and</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>and</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>and</b> [<i>expr1</i> ... ])</nobr></dt>
+<dd><i>exprN</i> - an expression<br>
+returns - <a href="nil.htm">NIL</a> if any expression evaluates
+to <nobr><a href="nil.htm">NIL</a> ,</nobr> otherwise the value
+of the last expression<br>
+<b>Note:</b> evaluation of expressions stops after the first
+expression that evaluates to <a href="nil.htm">NIL</a></dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'and' special form evaluates a sequence of expressions and returns
+the effect of a logical AND on the expressions. <nobr>If, at</nobr> any
+point, an expression is <a href="nil.htm">NIL</a>, then
+<a href="nil.htm">NIL</a> is returned as the result of the 'and'
+function. <nobr>If all</nobr> of the expressions have a
+<nobr>non-<a href="nil.htm">NIL</a></nobr> value, the value of the last
+expression is returned as the result. Evaluation of the expressions will
+stop when an expression evaluates <nobr>to <a href="nil.htm">NIL</a></nobr>,
+none of the subsequent expressions will be evaluated. <nobr>If there</nobr>
+are no expressions, then 'and' returns <a href="t.htm">&nbsp;T&nbsp;</a>
+as its result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(and t t t) =&gt; T</font>
+(and nil t) =&gt; NIL</font>
+(and t nil) =&gt; NIL</font>
+(and) =&gt; T</font>
+</pre>
+
+<p>Some more practical examples:</p>
+
+<pre class="example">
+&gt; (and T "boo" "hiss" T "rah")
+"rah" <font color="#008844">; return value of AND</font>
+
+&gt; (and (princ "hi") NIL (princ "ho"))
+hi <font color="#008844">; prints "hi"</font>
+NIL <font color="#008844">; return value of AND</font>
+</pre>
+
+See <a href="princ.htm">princ</a>.
+
+<pre class="example">
+> (setq a 5 b 6) <font color="#008844">; set up A and B</font>
+6 <font color="#008844">; return value of SETQ</font>
+
+> (if (and (numberp a) <font color="#008844">; if A is a number</font>
+ (numberp b) <font color="#008844">; and B is a number</font>
+ (&lt; a b)) <font color="#008844">; and A &lt; B</font>
+ (print "A is less than B") <font color="#008844">; then do this</font>
+ (print "error")) <font color="#008844">; else do this</font>
+"A is less than B" <font color="#008844">; screen output of PRINT</font>
+"A is less than B" <font color="#008844">; return value of IF</font>
+</pre>
+
+<p>See <a href="number-lessp.htm">&nbsp;&lt;&nbsp;</a>,
+<a href="if.htm">&nbsp;if&nbsp;</a>, <a href="print.htm">print</a>,
+<a href="setq.htm">setq</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#control-constructs">Control Constructs</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">XLISP</a> &gt;
+<a href="../manual/xlisp-man-index.htm">XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a>&nbsp; -&nbsp;
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/append.htm b/docsrc/xlisp/xlisp-doc/reference/append.htm
new file mode 100644
index 0000000..4d7b54a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/append.htm
@@ -0,0 +1,90 @@
+<html><head><title>XLISP append</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+
+<h1>append</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>append</b> [<i>expr</i> ... ])</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - the new list</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'append' function takes an arbitrary number of lists and splices them
+together into a single list. This single list is returned. <nobr>If
+an</nobr> empty list <a href="nil.htm">NIL</a> is appended, it has no
+effect, it does not appear in the final list. Remember that '(nil) is not an
+empty list. <nobr>If a</nobr> list is appended to an atom, it also has no
+effect and the atom will not appear in the final list.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(append) =&gt; NIL
+(append 'a 'b) =&gt; B
+(append '(a) '(b)) =&gt; (A B)
+(append 'a '(b)) =&gt; (B)
+(append '(a) 'b) =&gt; (A . B)
+(append '(a) nil) =&gt; (A)
+(append (list 'a 'b) (list 'c 'd)) =&gt; (A B C D)
+(append '(a (b)) '(c (d))) =&gt; (A (B) C (D))
+(append '(a) nil nil nil '(b)) =&gt; (A B)
+(append '(a) '(nil) '(b)) =&gt; (A NIL B)
+</pre>
+
+<p><b>Note:</b> If a list is appended to an atom, XLISP signals no error,
+the atom just disappears!</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/apply.htm b/docsrc/xlisp/xlisp-doc/reference/apply.htm
new file mode 100644
index 0000000..acc5f05
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/apply.htm
@@ -0,0 +1,89 @@
+<html><head><title>XLISP apply</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>apply</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>apply</b> <i>function args</i>)</dt>
+<dd><i>function</i> - the function or symbol to be applied to 'args'<br>
+<i>args</i> - a list that contains the arguments to be passed to 'function'<br>
+returns - the result of applying the function to the arguments</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'apply' function causes 'function' to be evaluated with 'args' as the
+parameters, returning the result of 'function'. The 'args' argument must be
+a list.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+&gt; (defun my-add (x y) <font color="#008844">; define MY-ADD function</font>
+ (+ x y))
+MY-ADD
+
+&gt; (my-add 1 2) <font color="#008844">; ordinary function call</font>
+3 <font color="#008844">; returns 3</font>
+
+&gt; (apply #'my-add '(2 4)) <font color="#008844">; symbol-function applied to argument-list</font>
+6 <font color="#008844">; returns 6</font>
+</pre>
+
+<p><b>Note:</b> When using 'apply' to cause the evaluation of a function,
+you can use the <nobr>sharp-quoted</nobr> name of the function like
+#'my-add in the example, or <nobr>(function my-add)</nobr>. <nobr>In
+XLISP</nobr> also <nobr>'my-add</nobr> and <nobr>(quote my-add)</nobr> work,
+but this is no good Lisp style.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#evaluation-functions">Evaluation Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/aref.htm b/docsrc/xlisp/xlisp-doc/reference/aref.htm
new file mode 100644
index 0000000..68ad742
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/aref.htm
@@ -0,0 +1,105 @@
+<html><head><title>XLISP aref</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>aref</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>aref</b> <i>array element</i>)</dt>
+<dd><i>array</i> - an array expression<br>
+<i>element</i> - an integer expression<br>
+returns - the value of the array element</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'aref' function returns the specified element out of a previously
+created array. Array elements may be any valid lisp data type, including
+lists or arrays. Arrays made by <a href="make-array.htm">make-array</a> and
+accessed by 'aref' are <nobr>base 0</nobr>. This means the first element is
+accessed by element <nobr>number '0'</nobr> and the last element is accessed
+by element <nobr>number 'n-1'</nobr> [where 'n' is the array size]. Array
+elements are initialized to <a href="nil.htm">NIL</a>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq my-array '#(0 1 2 3 4)) =&gt; #(0 1 2 3 4)
+(aref my-array 0) =&gt; 0
+(aref my-array 4) =&gt; 4
+(aref my-array 5) =&gt; <font color="#AA0000">error: array index out of bounds - 5</font>
+my-array =&gt; #(0 1 2 3 4)
+
+(setq new (make-array 4)) =&gt; #(NIL NIL NIL NIL)
+(setf (aref new 0) (make-array 4)) =&gt; #(NIL NIL NIL NIL)
+new =&gt; #(#(NIL NIL NIL NIL) NIL NIL NIL)
+(setf (aref (aref new 0) 1) 'a) =&gt; A
+new =&gt; #(#(NIL A NIL NIL) NIL NIL NIL)
+(setf (aref new 2) '(a b c)) =&gt; (A B C)
+new =&gt; #(#(NIL A NIL NIL) NIL (A B C) NIL)
+</pre>
+
+<p><b>Read macro:</b> There is a built-in read-macro for arrays,
+<nobr>'#(...)'</nobr> <nobr>[the hash</nobr> symbol with the array elements
+in parentheses]. This allows you to create arbitrary arrays with initial
+values without going through a <a href="make-array.htm">make-array</a>
+function. See the <a href="../manual/xlisp.htm#the-readtable">Readtable</a>
+section in the <nobr>XLISP 2.0</nobr> Manual.</p>
+
+<p><b>Note:</b> This function returns the value of an array element.
+However, there is no equivalent direct function to set the value of an array
+element to some value. <nobr>To set</nobr> an element value, you must use
+the <a href="setf.htm">setf</a> function.
+<nobr>The <a href="setf.htm">setf</a></nobr> function is a generalized
+function that allows you to set the value of arbitrary lisp entities.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#array-functions">Array Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/arrayp.htm b/docsrc/xlisp/xlisp-doc/reference/arrayp.htm
new file mode 100644
index 0000000..139fc4d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/arrayp.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP arrayp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>arrayp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>arrayp</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - an arbitrary Lisp expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the value is an
+array, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'arrayp' function checks if 'expr' evaluates to an array.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr' evaluates to an
+array, <a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(arrayp #(0 1 2)) =&gt; T <font color="#008844">; array</font>
+(setq a #(a b c)) =&gt; #(A B C))
+(arrayp a) =&gt; T <font color="#008844">; evaluates to an array</font>
+(arrayp '(a b c)) =&gt; NIL <font color="#008844">; list</font>
+(arrayp 1) =&gt; NIL <font color="#008844">; integer</font>
+(arrayp 1.2) =&gt; NIL <font color="#008844">; float</font>
+(arrayp 'a) =&gt; NIL <font color="#008844">; symbol</font>
+(arrayp #\a) =&gt; NIL <font color="#008844">; character</font>
+(arrayp NIL) =&gt; NIL <font color="#008844">; NIL</font>
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#predicate-functions">Predicate Functions</a></nobr></li>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#array-functions">Array Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/asin.htm b/docsrc/xlisp/xlisp-doc/reference/asin.htm
new file mode 100644
index 0000000..cd7d7fa
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/asin.htm
@@ -0,0 +1,93 @@
+<html><head><title>XLISP asin</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>asin</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr></nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>asin</b> <i>expr</i>)</nobr></dt>
+<dd><i>expr</i> - floating point number/expression<br>
+returns - the arcsine of the number</dd>
+</dl>
+
+</div></p>
+
+<p><b>Note:</b> The 'asin' function is not imlemented in Nyquist. Here is a
+Lisp implementation of 'asin', using the <a href="atan.htm">atan</a>
+function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">asin</font> (x)
+ (cond ((not (numberp x)) (error <font color="#880000">"bad argument type"</font> x))
+ ((= x 1) (/ pi 2.0))
+ ((= x -1) (/ pi -2.0))
+ ((&lt; -1 x 1) (atan (/ x (sqrt (1+ (* x (- x)))))))
+ (t (error <font color="#880000">"argument out of range"</font> x))))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'asin' function returns the <nobr>arc sine</nobr> of a floating point
+expression. <nobr>The result</nobr> is a floating point number in radians.
+<nobr>If the</nobr> argument is less <nobr>than -1</nobr> or greater
+<nobr>than +1</nobr>, the <nobr>arc sine</nobr> is a complex number. Complex
+numbers are not available <nobr>in XLISP</nobr>. <nobr>In this</nobr> case
+the 'asin' function signals an 'argument out of range' error.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(asin 0.0) =&gt; 0.0
+(asin 1.0) =&gt; 1.5708
+(asin -1.0) =&gt; -1.5708
+(asin 0) =&gt; <font color="#AA0000">error: bad integer operation</font>
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/assoc.htm b/docsrc/xlisp/xlisp-doc/reference/assoc.htm
new file mode 100644
index 0000000..ab1344a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/assoc.htm
@@ -0,0 +1,121 @@
+<html><head><title>XLISP assoc</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>assoc</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>assoc</b> <i>expr a-list</i> [{:test | :test-not} <i>test</i>])</dt>
+<dd><i>expr</i> - the expression to find as an atom or list<br>
+<i>a-list</i> - the association list to search<br>
+<i>test</i> - optional test function (default is <a href="eql.htm">eql</a>)<br>
+returns - the alist entry or <a href="nil.htm">NIL</a></dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>An association list is a collection of list pairs of the form:</p>
+
+<pre class="example">
+((<font color="#0000CC">key1 item1</font>) (<font color="#0000CC">key2 item2</font>) ... (<font color="#0000CC">keyN itemN</font>))
+</pre>
+
+<p>The 'assoc' function searches through an association list
+'<nobr>a-list</nobr>' looking for the key
+<nobr>[a <a href="car.htm">car</a></nobr> in an association pair] that
+matches the search 'expr'. <nobr>If a</nobr> match is found, that
+association pair is returned as the result. <nobr>If no</nobr> match is
+found, <nobr><a href="nil.htm">NIL</a> is</nobr> returned. <nobr>You
+may</nobr> specify your own test with the ':test' and
+'<nobr>:test-not</nobr>' keywords followed by the 'test' you wish to
+perform.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '((a . my-a)
+ (b . his-b)
+ (c . her-c)
+ (d . end)))
+
+(assoc 'a mylist) =&gt; (A . MY-A)
+(assoc 'b mylist) =&gt; (B . HIS-B)
+(assoc 1 mylist) =&gt; NIL
+</pre>
+
+<pre class="example">
+(setq agelist '((1 (bill bob))
+ (2 (jane jill))
+ (3 (tim tom))
+ (5 (larry daryl daryl))))
+
+(assoc 1 agelist) =&gt; (1 (BILL BOB))
+(assoc 3 agelist :test #'&gt;=) =&gt; (1 (BILL BOB))
+(assoc 3 agelist :test #'&lt;) =&gt; (5 (LARRY DARYL DARYL))
+(assoc 3 agelist :test #'&lt;=) =&gt; (3 (TIM TOM))
+(assoc 3 agelist :test-not #'&gt;=) =&gt; (5 (LARRY DARYL DARYL))
+</pre>
+
+<p>Using a list as key, tested with <a href="equal.htm">equal</a>:</p>
+
+<pre class="example">
+&gt; (assoc '(a b) '(((c d) e) ((a b) x)) :test #'equal)
+((A B) X)
+</pre>
+
+<p><b>Note:</b> The 'assoc' function can work with a list or string as the
+'expr'. However, the default <a href="eql.htm">eql</a> test does
+not work with lists or strings, only symbols and numbers.
+<nobr>To make</nobr> this work, you need to use the ':test' keyword along
+with <a href="equal.htm">equal</a> <nobr>for 'test'</nobr>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/atan.htm b/docsrc/xlisp/xlisp-doc/reference/atan.htm
new file mode 100644
index 0000000..27d67b5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/atan.htm
@@ -0,0 +1,77 @@
+<html><head><title>XLISP atan</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>atan</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>atan</b> <i>expr</i> [<i>expr2</i>])</dt>
+<dd><i>expr</i> - an integer or floating point expression<br>
+<i>expr2</i> - an optional divisor [default value <nobr>is 1.0]</nobr><br>
+returns - the arctangent of the division of <i>expr</i> and <i>expr2</i></dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'atan' function returns the arc tangent of the division of 'expr' and
+'expr2'. <nobr>The result</nobr> is in radians.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(atan 0.0) =&gt; 0
+(atan 1.0) =&gt; 0.785398
+(atan -1.0) =&gt; -0.785398
+(atan 0) =&gt; 0
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/atom.htm b/docsrc/xlisp/xlisp-doc/reference/atom.htm
new file mode 100644
index 0000000..fed7af5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/atom.htm
@@ -0,0 +1,90 @@
+<html><head><title>XLISP atom</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>atom</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>atom</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - an arbitrary Lisp expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the value is
+an atom, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'atom' predicate function tests if the 'expr' is an atom.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr' is an
+atom, <a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(atom 'a) =&gt; T <font color="#008844">; symbol</font>
+(atom #'atom) =&gt; T <font color="#008844">; subr - function</font>
+(atom "string") =&gt; T <font color="#008844">; string</font>
+(atom 4) =&gt; T <font color="#008844">; integer</font>
+(atom 4.5) =&gt; T <font color="#008844">; float</font>
+(atom object) =&gt; T <font color="#008844">; object</font>
+(atom #(1 2 3)) =&gt; T <font color="#008844">; array</font>
+(atom #'quote) =&gt; T <font color="#008844">; fsubr</font>
+(atom *standard-output*) =&gt; T <font color="#008844">; stream</font>
+(atom '()) =&gt; T <font color="#008844">; NIL is an atom</font>
+(atom (lambda (x) (print x))) =&gt; T <font color="#008844">; closure</font>
+(atom '(a b c)) =&gt; NIL <font color="#008844">; list</font>
+(setq a '(a b)) =&gt; (A B)
+(atom a) =&gt; NIL <font color="#008844">; value of A is not an atom</font>
+</pre>
+
+<p><b>Note:</b> <a href="nil.htm">NIL</a> or '() is used in many places as a
+list or atom expression. Both 'atom' and <a href="listp.htm">listp</a>, when
+applied to <a href="nil.htm">NIL</a>, return
+<a href="t.htm">&nbsp;T&nbsp;</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#predicate-functions">Predicate Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">XLISP</a> &gt;
+<a href="../manual/xlisp-man-index.htm">XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a>&nbsp; -&nbsp;
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/backquote.htm b/docsrc/xlisp/xlisp-doc/reference/backquote.htm
new file mode 100644
index 0000000..8cb8b59
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/backquote.htm
@@ -0,0 +1,170 @@
+<html><head><title>XLISP backquote</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>backquote</h1>
+
+<hr>
+
+<p>backquote:</p>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c, xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<p>comma, comma-at:</p>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>reader expansion</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c, xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>backquote</b> expr)</dt>
+<dd><i>expr</i> - an expression which is not evaluated except for 'comma' and 'comma-at' portions<br>
+<i>returns</i> - a copy of the template with 'comma' and 'comma-at' expressions expanded</dd>
+</dl>
+
+<dl>
+<dt>(<b>comma</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - an expression which is evaluated within a backquoted expression</dd>
+</dl>
+
+<dl>
+<dt>(<b>comma-at</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - an expression which is evaluated within a backquoted expression</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'backquote' special form returns 'expr' unevaluated, like
+<a href="quote.htm">quote</a>. The difference is that portions of the
+expression may be evaluated when they are preceeded by a 'comma' or
+'<nobr>comma-at</nobr>'.</p>
+
+<ul>
+
+<li><p><b>comma</b> will evaluate the portion of the expression the comma
+preceeds. <nobr>If the</nobr> portion is an atom or a list, it is placed as
+is within the expression.</p></li>
+
+<li><p><nobr><b>comma-at</b></nobr> will evaluate the portion of the
+expression that the <nobr>'comma-at</nobr>' preceeds. <nobr>The
+portion</nobr> needs to be a list. <nobr>The list</nobr> is spliced into the
+expression. <nobr>If the</nobr> portion is not a list,
+'<nobr>comma-at</nobr>' will splice in nothing.</p></li>
+
+</ul>
+
+<p>XLISP supports the following read macros:</p>
+
+<p><table cellpadding="0" cellspacing="0"><tbody>
+<tr>
+ <td><nobr><code>&nbsp;&nbsp;</code></nobr></td>
+ <td class="button" align="right"><nobr><code>`<font color="#0000CC">expression</font></code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;&rarr;&nbsp;&nbsp;</nobr></td>
+ <td class="button" align="right"><nobr><code>(backquote <font color="#0000CC">expression</font>)</code></nobr></td>
+</tr>
+<tr>
+ <td height="2px"></td>
+</tr>
+<tr>
+ <td><nobr><code>&nbsp;&nbsp;</code></nobr></td>
+ <td class="button" align="right"><nobr><code>,<font color="#0000CC">expression</font></code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;&rarr;&nbsp;&nbsp;</nobr></td>
+ <td class="button" align="right"><nobr><code>(comma <font color="#0000CC">expression</font>)</code></nobr></td>
+</tr>
+<tr>
+ <td height="2px"></td>
+</tr>
+<tr>
+ <td><nobr><code>&nbsp;&nbsp;</code></nobr></td>
+ <td class="button" align="right"><nobr><code>,@<font color="#0000CC">expression</font></code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;&rarr;&nbsp;&nbsp;</nobr></td>
+ <td class="button" align="right"><nobr><code>(comma-at <font color="#0000CC">expression</font>)</code></nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq box 'stuff-inside) =&gt; STUFF-INSIDE <font color="#008844">; BOX contains STUFF-INSIDE</font>
+(print box) =&gt; STUFF-INSIDE
+
+'(i have the box) &equiv; (quote (i have the box)) =&gt; (I HAVE THE BOX)
+`(i have the box) &equiv; (backquote (i have the box)) =&gt; (I HAVE THE BOX)
+`(i have the ,box) &equiv; (backquote (i have the (comma box))) =&gt; (I HAVE THE STUFF-INSIDE)
+`(i have the ,@box) &equiv; (backquote (I have the (comma-at box))) =&gt; (I HAVE THE) <font color="#008844">; STUFF-INSIDE is not a list</font>
+
+(setq automobile '(a van)) =&gt; (A VAN) <font color="#008844">; AUTOMOBILE is a VAN</font>
+(print automobile) =&gt; (A VAN)
+
+'(I have automobile) &equiv; (quote (I have automobile)) =&gt; (I HAVE AUTOMOBILE)
+`(I have automobile) &equiv; (backquote (I have automobile)) =&gt; (I HAVE AUTOMOBILE)
+`(I have ,automobile) &equiv; (backquote (I have (comma automobile))) =&gt; (I HAVE (A VAN))
+`(I have ,@automobile) &equiv; (backquote (I have (comma-at automobile))) =&gt; (I HAVE A VAN)
+</pre>
+
+<p>Common errors:</p>
+
+<pre class="example">
+`(,@(i am a list)) =&gt; <font color="#AA0000">error: bad function - I</font>
+`(,@'(i am a list)) =&gt; (I AM A LIST)
+</pre>
+
+<p><b>Note:</b> 'backquote', 'comma', and 'comma-at' are very useful in
+defining macros via <a href="defmacro.htm">defmacro</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#evaluation-functions">Evaluation Functions</a></nobr></li>
+<li><nobr>XLISP 2.0 Manual &rarr; <a href="../manual/xlisp.htm#the-readtable">Readtable</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/baktrace.htm b/docsrc/xlisp/xlisp-doc/reference/baktrace.htm
new file mode 100644
index 0000000..1128206
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/baktrace.htm
@@ -0,0 +1,117 @@
+<html><head><title>XLISP baktrace</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>baktrace</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xldbug.c, xlsys.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>baktrace</b> [<i>level</i>])</dt>
+<dd><i>level</i> - an optional integer expression<br>
+returns - <a href="nil.htm">NIL</a></dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p> The 'baktrace' function is used to examine the system execution stack
+from within the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a>.</nobr> It
+shows the nested forms that got the system to the current state. The
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr> can be
+entered by a system error, or by the Nyquist/XLISP
+<a href="error.htm">error</a>, <a href="cerror.htm">cerror</a>, or
+<a href="break.htm">break</a> functions. <nobr>If the</nobr> 'levels'
+parameter is not specified, all the nested forms will be shown back to the
+main loop form that started the execution. <nobr>If 'level'</nobr> is
+specified the most recent 'level' nested forms will be shown.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun out (x)
+ (print x)
+ (mid 99))
+
+(defun mid (x)
+ (print x)
+ (in 999))
+
+(defun in (x)
+ (print x)
+ (break "in" x)) <font color="#008844">; break</font>
+
+&gt; (out 9)
+9
+99
+999
+<font color="#AA0000">break: in - 999</font>
+<font color="#AA0000">if continued: return from BREAK</font>
+
+1&gt; (baktrace) <font color="#008844">; the 1 before the &gt; indicates a break loop</font>
+Function: #&lt;Subr-BAKTRACE: #9af6688&gt;
+Function: #&lt;Subr-BREAK: #9af6778&gt;
+Arguments:
+ "in"
+ 999
+Function: #&lt;Closure-IN: #9b99574&gt;
+Arguments:
+ 999
+Function: #&lt;Closure-MID: #9b99670&gt;
+Arguments:
+ 99
+Function: #&lt;Closure-OUT: #9b99778&gt;
+Arguments:
+ 9
+NIL
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#debugging-and-error-handling">Debugging and Error Handling</a></nobr></li>
+<li><nobr>XLISP 2.0 Manual &rarr; <a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/bigendianp.htm b/docsrc/xlisp/xlisp-doc/reference/bigendianp.htm
new file mode 100644
index 0000000..38037cb
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/bigendianp.htm
@@ -0,0 +1,69 @@
+<html><head><title>XLISP bigendianp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>bigendianp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>bigendiap</b>)</dt>
+<dd>returns - <a href="t.htm">&nbsp;T&nbsp;</a> with a <nobr>big-endian</nobr>
+architecture, <nobr>otherwise <a href="nil.htm">NIL</a>.</nobr></dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '<nobr>bigendianp</nobr>' function tests if Nyquist/XLISP runs on a
+bigendian machine, storing the <nobr>high-order</nobr> byte of an integer at
+the lowest byte address of the integer.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#predicate-functions">Predicate Functions</a></nobr></li>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#file-io-functions">File I/O Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/block.htm b/docsrc/xlisp/xlisp-doc/reference/block.htm
new file mode 100644
index 0000000..7d3e21d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/block.htm
@@ -0,0 +1,94 @@
+<html><head><title>XLISP block</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>block</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><b>(block</b> <i>name</i> [<i>body</i> ... ])</dt>
+<dd><i>name</i> - an unevaluated symbol for the block name<br>
+<i>body</i> - an arbitrary number of Lisp expressions<br>
+returns - the value of the last expression</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'block' special form specifies a '<nobr>named block</nobr>'
+construct. <nobr>The last</nobr> expression in 'body' will be returned by
+the 'block' construct as its result unless a <a href="return.htm">return</a>
+or <a href="return-from.htm">return-from</a> is executed within 'block'.
+<nobr>The <a href="return.htm">return</a></nobr> exit will exit the nearest
+<nobr>[inner-most]</nobr> 'block'.
+<nobr>The <a href="return-from.htm">return-from</a></nobr> exit will exit
+the specified 'block'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun test ()
+ (block outer <font color="#008844">; outer BLOCK</font>
+ (print "outer")
+ (block inner <font color="#008844">; inner BLOCK</font>
+ (print "inner")
+ (return-from outer "all done")
+ (print "won't get here"))))
+
+&gt; (test)
+"outer" <font color="#008844">; screen output of PRINT</font>
+"inner" <font color="#008844">; screen output of PRINT</font>
+"all done" <font color="#008844">; return value</font>
+</pre>
+
+<p>See <a href="defun.htm">defun</a>, <a href="print.htm">print</a>,
+<nobr><a href="return-from.htm">return-from</a></nobr>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#control-constructs">Control Constructs</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/both-case-p.htm b/docsrc/xlisp/xlisp-doc/reference/both-case-p.htm
new file mode 100644
index 0000000..7d3a691
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/both-case-p.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP both-case-p</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>both-case-p</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>both-case-p</b> <i>char</i>)</dt>
+<dd><i>char</i> - a character expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the character
+is alphabetic, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '<nobr>both-case-p</nobr>' predicate function checks if the 'char'
+expression evaluates to an alphabetic character. <nobr>If 'char'</nobr>
+evaluates to an alphabetic [either an upper or lower case] character
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned, otherwise
+<a href="nil.htm">NIL</a> is returned. Note that XLISP is limited to <a
+href="../misc/ascii-table.htm">ASCII</a> characters, so there is no way to
+find out if an Unicode character is '<nobr>both-case-p</nobr>' if the
+<nobr><a href="char-code.htm">char-code</a></nobr> is greater <nobr>than
+127</nobr>.</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(both-case-p #\A) =&gt; T
+(both-case-p #\a) =&gt; T
+(both-case-p #\1) =&gt; NIL
+(both-case-p #\[) =&gt; NIL
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/boundp.htm b/docsrc/xlisp/xlisp-doc/reference/boundp.htm
new file mode 100644
index 0000000..22bad23
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/boundp.htm
@@ -0,0 +1,104 @@
+<html><head><title>XLISP boundp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>boundp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>boundp</b> <i>symbol</i>)</dt>
+<dd><i>symbol</i> - a symbol expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if a value is
+bound to the symbol, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'boundp' predicate function tests if 'symbol' evaluates to a symbol
+in <nobr>the <a href="global-obarray.htm">*obarray*</a></nobr> with a value
+bound to it. <nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr> returned if
+'symbol' has a value, <a href="nil.htm">NIL</a> is returned otherwise. Note
+that 'boundp' does not test if local <a href="let.htm">let</a> variables, or
+class or instance variables exist.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq a 1) =&gt; 1 <font color="#008844">; create a variable A in the *OBARRAY*</font>
+(boundp 'a) =&gt; T <font color="#008844">; variable A has a value 1</font>
+
+(let ((b 'value))
+ (boundp b)) =&gt; NIL <font color="#008844">; BOUNDP does NOT test LET bindings</font>
+
+(defun foo (x) <font color="#008844">; create a function FOO in the *OBARRAY*</font>
+ (print x)) =&gt; FOO
+
+(boundp 'foo) =&gt; NIL <font color="#008844">; FOO is not a variable</font>
+
+(print myvar) =&gt; <font color="#AA0000">error: unbound variable - MYVAR</font>
+(boundp 'myvar) =&gt; NIL
+
+(setq myvar 'abc) <font color="#008844">; give MYVAR a value</font>
+(boundp 'myvar) =&gt; T
+</pre>
+
+<p>Note that 'symbol' is a symbol expression. This means that 'symbol' is
+evaluated and the return value is tested:</p>
+
+<pre class="example">
+(setq myvar 'qq) <font color="#008844">; MYVAR evaluates to QQ</font>
+(boundp myvar) =&gt; NIL <font color="#008844">; but QQ has no value yet</font>
+
+(setq qq 'new-value) <font color="#008844">; give QQ a value</font>
+(boundp myvar) =&gt; T
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#predicate-functions">Predicate Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/break.htm b/docsrc/xlisp/xlisp-doc/reference/break.htm
new file mode 100644
index 0000000..a8a6c58
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/break.htm
@@ -0,0 +1,107 @@
+<html><head><title>XLISP break</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>break</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c, xldbug.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>break</b> [<i>err-msg</i> [<i>arg</i>]])</dt>
+<dd><i>err-msg</i> - a string expression for the error message<br>
+<i>arg</i> - an optional argument expression<br>
+returns - <a href="nil.htm">NIL</a> when continued from the
+break loop</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'break' function allows the entry into the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr> with a
+continuable error. The continuable error generated by 'break' does not
+require any corrective action. The form of the message generated is:</p>
+
+<pre class="example">
+break: <font color="#0000CC">err-msg</font> - <font color="#0000CC">arg</font>
+if continued: return from BREAK
+</pre>
+
+<p> The default for 'err-msg' is:</p>
+
+<pre class="example">
+**BREAK**
+</pre>
+
+<p>From within the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>, if a
+<a href="continue.htm">continue</a> form is evaluated then
+<a href="nil.htm">NIL</a> is returned from 'break'. <nobr>If desired</nobr>,
+the <a href="clean-up.htm">clean-up</a> or
+<a href="top-level.htm">top-level</a> functions may be evaluated to abort
+the <nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+&gt; (break)
+break: **BREAK**
+if continued: return from BREAK
+
+&gt; (break "out")
+break: out
+if continued: return from BREAK
+
+&gt; (break "it" "up")
+break: it - "up"
+if continued: return from BREAK
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#debugging-and-error-handling">Debugging and Error Handling</a></nobr></li>
+<li><nobr>XLISP 2.0 Manual &rarr; <a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/caaaar.htm b/docsrc/xlisp/xlisp-doc/reference/caaaar.htm
new file mode 100644
index 0000000..69ccda4
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/caaaar.htm
@@ -0,0 +1,134 @@
+<html><head><title>XLISP caaaar ... cadddr</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>caaaar ... cadddr</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>caaaar</b> <i>expr</i>)<br>
+(<b>caaadr</b> <i>expr</i>)<br>
+(<b>caadar</b> <i>expr</i>)<br>
+(<b>caaddr</b> <i>expr</i>)<br>
+(<b>cadaar</b> <i>expr</i>)<br>
+(<b>cadadr</b> <i>expr</i>)<br>
+(<b>caddar</b> <i>expr</i>)<br>
+(<b>cadddr</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - the result of the last <a href="car.htm">car</a>
+function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p> The 'caaaar' ... 'cadddr' functions go through the list expression and
+perform a sequence of <a href="car.htm">car</a> or <a href="cdr.htm">cdr</a>
+operations. <nobr>The sequence</nobr> of operations is performed from right
+to left. <nobr>So 'caaddr'</nobr> does a <a href="cdr.htm">cdr</a> on the
+expression, followed by a <a href="cdr.htm">cdr</a>, followed by a
+<a href="car.htm">car</a>, followed by
+<nobr>another <a href="car.htm">car</a></nobr>. <nobr>If at</nobr> any point
+the list is <a href="nil.htm">NIL</a>, then <a href="nil.htm">NIL</a> is
+returned. <nobr>If at</nobr> any point a <a href="car.htm">car</a> operation
+is performed on an atom <nobr>[as opposed</nobr> to <nobr>a list]</nobr> an
+error is signalled:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument</font>
+</pre>
+
+<p>The 'cadddr' function returns the same result as the
+<a href="fourth.htm">fourth</a> function.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '((((111A 111B) (112A 112B) (113A 113B)) <font color="#008844">; 1st set</font>
+ ((121A 121B) (122A 122B) (123A 123B))
+ ((131A 131B) (132A 132B) (133A 133B))
+ ((141A 141B) (142A 142B) (143A 143B)))
+ (((211A 211B) (212A 212B) (213A 213B)) <font color="#008844">; 2nd set</font>
+ ((221A 221B) (222A 222B) (223A 223B))
+ ((231A 231B) (232A 232B) (233A 233B))
+ ((241A 241B) (242A 242B) (243A 243B)))
+ (((311A 311B) (312A 312B) (313A 313B)) <font color="#008844">; 3rd set</font>
+ ((321A 321B) (322A 322B) (323A 323B))
+ ((331A 331B) (332A 332B) (333A 333B))
+ ((341A 341B) (342A 342B) (343A 343B)))
+ (((411A 411B) (412A 412B) (413A 413B)) <font color="#008844">; 4th set</font>
+ ((421A 421B) (422A 422B) (423A 423B))
+ ((431A 431B) (432A 432B) (433A 433B))
+ ((441A 441B) (442A 442B) (443A 443B)))
+ (((511A 511B) (512A 512B) (513A 513B)) <font color="#008844">; 5th set</font>
+ ((521A 521B) (522A 522B) (523A 523B))
+ ((531A 531B) (532A 532B) (533A 533B))
+ ((541A 541B) (542A 542B) (543A 543B)))))
+
+(caaaar mylist) =&gt; 111A
+(caaadr mylist) =&gt; (211A 211B)
+(caadar mylist) =&gt; (121A 121B)
+(caaddr mylist) =&gt; ((311A 311B) (312A 312B) (313A 313B))
+(cadaar mylist) =&gt; (112A 112B)
+(cadadr mylist) =&gt; ((221A 221B) (222A 222B) (223A 223B))
+(caddar mylist) =&gt; ((131A 131B) (132A 132B) (133A 133B))
+(cadddr mylist) =&gt; (((411A 411B) (412A 412B) (413A 413B))
+ ((421A 421B) (422A 422B) (423A 423B))
+ ((431A 431B) (432A 432B) (433A 433B))
+ ((441A 441B) (442A 442B) (443A 443B)))
+</pre>
+
+<p><b>Note:</b> The '<nobr>c...r</nobr>' functions are part of the
+historical Lisp functions. You may find it easier to work with the modern
+lisp functions like <a href="nth.htm">nth</a> and
+<a href="nthcdr.htm">nthcdr</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+<li><nobr>Tutorials &rarr; Lisp Hints &rarr; <a href="../tutorials/lisp-hints.htm#list-accessors">List Accessors</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/caaar.htm b/docsrc/xlisp/xlisp-doc/reference/caaar.htm
new file mode 100644
index 0000000..a4b210e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/caaar.htm
@@ -0,0 +1,106 @@
+<html><head><title>XLISP caaar ... caddr</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>caaar ... caddr</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>caaar</b> <i>expr</i>)<br>
+(<b>caadr</b> <i>expr</i>)<br>
+(<b>cadar</b> <i>expr</i>)<br>
+(<b>caddr</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - a list expression<br>
+returns - the result of the last <a href="car.htm">car</a> function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p> The 'caaar', 'caadr', 'cadar' and 'caddr' functions go through the list
+expression and perform a sequence of <nobr><a href="car.htm">car</a> or
+<a href="cdr.htm">cdr</a></nobr> operations. <nobr>The sequence</nobr> of
+operations is performed from right to left. <nobr>So 'caddr'</nobr> does a
+<a href="cdr.htm">cdr</a> on the expression, followed by
+a <a href="cdr.htm">cdr</a>, followed by
+<nobr>a <a href="car.htm">car</a></nobr>. <nobr>If at</nobr> any point the
+list is <a href="nil.htm">NIL</a>, then <a href="nil.htm">NIL</a> is
+returned. <nobr>If at</nobr> any point a <a href="car.htm">car</a> operation
+is performed on an atom <nobr>[as opposed</nobr> to <nobr>a list]</nobr> an
+error is signalled:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument</font>
+</pre>
+
+<p>The 'caddr' function returns the same result as the
+<a href="third.htm">third</a> function.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '(((11A 11B) (12A 12B) (13A 13B))
+ ((21A 21B) (22A 22B) (23A 23B))
+ ((31A 31B) (32A 32B) (33A 33B))
+ ((41A 41B) (42A 42B) (43A 43B))))
+
+(caaar mylist) =&gt; 11A
+(caadr mylist) =&gt; (21A 21B)
+(cadar mylist) =&gt; (12A 12B)
+(caddr mylist) =&gt; ((31A 31B) (32A 32B) (33A 33B))
+</pre>
+
+<p><b>Note:</b> The '<nobr>c...r</nobr>' functions are part of the
+historical Lisp functions. You may find it easier to work with the modern
+lisp functions like <a href="nth.htm">nth</a> and
+<a href="nthcdr.htm">nthcdr</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+<li><nobr>Tutorials &rarr; Lisp Hints &rarr; <a href="../tutorials/lisp-hints.htm#list-accessors">List Accessors</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/caar.htm b/docsrc/xlisp/xlisp-doc/reference/caar.htm
new file mode 100644
index 0000000..03cee4a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/caar.htm
@@ -0,0 +1,101 @@
+<html><head><title>XLISP caar, cadr</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>caar, cadr</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>caar</b> <i>expr</i>)<br>
+(<b>cadr</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - a list expression<br>
+returns - the result of the last <a href="car.htm">car</a> function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'caar' and 'cadr' functions go through the list expression and
+perform a sequence of <a href="car.htm">car</a> or
+<a href="cdr.htm">cdr</a> operations. The sequence of operations is
+performed from right to left. <nobr>So 'cadr'</nobr> does a
+<a href="cdr.htm">cdr</a> on the expression, followed by a
+<a href="car.htm">car</a>. <nobr>If at</nobr> any point the list is
+<a href="nil.htm">NIL</a>, then
+<a href="nil.htm">NIL</a> is returned. <nobr>If at</nobr> any point a
+<a href="car.htm">car</a> operation is performed on an atom
+<nobr>[as opposed</nobr> to <nobr>a list]</nobr> an error is signalled:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument</font>
+</pre>
+
+<p>The 'cadr' function returns the same result as the
+<a href="second.htm">second</a> function.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '((1A 1B) (2A 2B) (3A 3B)))
+
+(caar mylist) =&gt; 1A
+(cadr mylist) =&gt; (2A 2B)
+
+(caar 'a) =&gt; <font color="#AA0000">error: bad argument</font>
+(caar nil) =&gt; NIL
+</pre>
+
+<p><b>Note:</b> The '<nobr>c...r</nobr>' functions are part of the
+historical Lisp functions. You may find it easier to work with the modern
+lisp functions like <a href="nth.htm">nth</a> and
+<a href="nthcdr.htm">nthcdr</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+<li><nobr>Tutorials &rarr; Lisp Hints &rarr; <a href="../tutorials/lisp-hints.htm#list-accessors">List Accessors</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/car.htm b/docsrc/xlisp/xlisp-doc/reference/car.htm
new file mode 100644
index 0000000..035d240
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/car.htm
@@ -0,0 +1,85 @@
+<html><head><title>XLISP car</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>car</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>car</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - the first element of the list</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'car' function returns the <a href="first.htm">first</a> element of
+the expression. <nobr>If the</nobr> <a href="first.htm">first</a> expression
+is itself a list, then the sublist is returned. <nobr>If the</nobr> list is
+<nobr><a href="nil.htm">NIL</a> ,</nobr> <a href="nil.htm">NIL</a> is
+returned.</p>
+
+<p>The 'car' function returns the same result as the
+<a href="first.htm">first</a> function.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(car '(a b c)) =&gt; A
+(car '((a b) c d)) =&gt; (A B)
+(car NIL) =&gt; NIL
+(car 'a) =&gt; <font color="#AA0000">error: bad argument type</font>
+(setq bob '(1 2 3)) =&gt; (1 2 3)
+(car bob) =&gt; 1
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+<li><nobr>Tutorials &rarr; Lisp Hints &rarr; <a href="../tutorials/lisp-hints.htm#list-accessors">List Accessors</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/case.htm b/docsrc/xlisp/xlisp-doc/reference/case.htm
new file mode 100644
index 0000000..8cac054
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/case.htm
@@ -0,0 +1,171 @@
+<html><head><title>XLISP case</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>case</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>case</b> <i>expr</i> [(<i>value action</i>) ... ])</dt>
+<dd><i>expr</i> - an expression that can be compared via <a href="eql.htm">eql</a><br>
+<i>value</i> - an unevaluated expression or list of unevaluated expressions<br>
+<i>action</i> - one or more expressions<br>
+returns - the value of the last expression of the matching case</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'case' special form first evaluates 'expr', the return value of this
+evaluation is then compared against all the 'value' entries:</p>
+
+<pre class="example">
+(case <font color="#0000CC">expr</font>
+ (<font color="#0000CC">value-</font><font color="#AA0000">1</font> <font color="#0000CC">action-</font><font color="#AA0000">1</font>)
+ (<font color="#0000CC">value-</font><font color="#AA0000">2</font> <font color="#0000CC">action-</font><font color="#AA0000">2</font>)
+ <font color="#008844">...</font>
+ (<font color="#0000CC">value-</font><font color="#AA0000">n</font> <font color="#0000CC">action-</font><font color="#AA0000">n</font>))
+</pre>
+
+<p>If 'value' is a single atom, the atom is compared against 'expr':</p>
+
+<pre class="example">
+&gt; (case 'a
+ ('a "a")
+ ('b "b"))
+"a"
+</pre>
+
+<p>If 'value' is a list, each of the elements of the list are compared
+against 'expr':</p>
+
+<pre class="example">
+&gt; (case 'a
+ ((1 2 3 4) "number")
+ ((a b c d) "alpha"))
+"alpha"
+</pre>
+
+<p>The 'action' associated with the first 'value' that matches 'expr' is
+evaluated and returned as the result of the 'case' special form.</p>
+
+<p>If no 'value' matches, <a href="nil.htm">NIL</a> is returned:</p>
+
+<pre class="example">
+&gt; (case 'c
+ ('a "a")
+ ('b "b"))
+NIL
+</pre>
+
+<p>If the last 'value' is the symbol <a href="t.htm">&nbsp;T&nbsp;</a> and
+no other 'value' has matched 'expr', then 'case' will evaluate the 'action'
+associated <nobr>with <a href="t.htm">&nbsp;T&nbsp;</a></nobr>:</p>
+
+<pre class="example">
+&gt; (case 3
+ (1 "one")
+ (2 "two")
+ (t "no match"))
+"no match"
+</pre>
+
+<p>If there are multiple <a href="t.htm">&nbsp;T&nbsp;</a> entries, the
+first is considered to be the end of the 'case':</p>
+
+<pre class="example">
+&gt; (case 9
+ (1 "one")
+ (t "first t")
+ (t "second t"))
+"first t"
+</pre>
+
+<p><b>Note:</b> The 'case' special form does not work with a list or string
+as the 'expr' because 'case' uses <a href="eql.htm">eql</a> which cannot
+compare lists or strings:</p>
+
+<pre class="example">
+&gt; (case "a" <font color="#AA0000">; doesn't work!</font>
+ ("a" 'a)
+ ("b" 'b))
+NIL
+</pre>
+
+<p>The <a href="cond.htm">cond</a> special form can be used to test Lisp
+expressions that cannot be handled by 'case'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(case) =&gt; NIL
+(case 'a) =&gt; NIL
+
+(defun c-type (expr)
+ (case (type-of expr)
+ (flonum "float")
+ (fixnum "integer")
+ (string "string")
+ (cons "non-empty list")
+ (nil "empty list")
+ (t "other")))
+
+(c-type 1.2) =&gt; "float"
+(c-type 3) =&gt; "integer"
+(c-type "ab") =&gt; "string"
+(c-type '(a b)) =&gt; "non-empty list"
+(c-type '()) =&gt; "empty list"
+(c-type 'a) =&gt; "other"
+</pre>
+
+<p>See <a href="defun.htm">defun</a>,
+<nobr><a href="type-of.htm">type-of</a></nobr>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#control-constructs">Control Constructs</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/catch.htm b/docsrc/xlisp/xlisp-doc/reference/catch.htm
new file mode 100644
index 0000000..28b682a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/catch.htm
@@ -0,0 +1,197 @@
+<html><head><title>XLISP catch, throw</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>catch, throw</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c, xljump.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>catch</b> <i>tag-symbol</i> [<i>expr</i> ... ])</dt>
+<dd><i>tag-symbol</i> - an expression that evaluates to a symbol<br>
+<i>expr</i> - an optional series of expressions to be evaluated<br>
+returns - the value of the last expression the
+<a href="throw.htm">throw</a> expression</dd>
+</dl>
+
+<dl>
+<dt>(<b>throw</b> <i>tag-symbol</i> [<i>expr</i>])</dt>
+<dd><i>tag-symbol</i> - an expression that evaluates to a symbol<br>
+<i>expr</i> - an optional expression to be returned<br>
+returns - never returns</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'catch' and 'throw' special forms allow for non-local exits and traps
+without going through the intermediate evaluations and function returns:</p>
+
+<pre class="example">
+(catch <font color="#0000CC">tag-symbol</font>
+ [<font color="#0000CC">expr</font> <font color="#008844">...</font>]
+ (throw <font color="#0000CC">tag-symbol</font> [<font color="#0000CC">expr</font>]))
+</pre>
+
+<p>If there is a 'catch' for a '<nobr>tag-symbol</nobr>' that has no 'throw'
+performed to it, 'catch' returns the value returned from 'expr':</p>
+
+<pre class="example">
+&gt; (catch 'mytag
+ (+ 1 (+ 2 3)))
+6
+</pre>
+
+<p>If there is no 'expr', <nobr><a href="nil.htm">NIL</a> is</nobr>
+returned:</p>
+
+<pre class="example">
+&gt; (catch 'mytag)
+NIL
+</pre>
+
+<p>The 'expr' in 'throw' specifies what value is to be returned by the
+corresponding 'catch':</p>
+
+<pre class="example">
+&gt; (catch 'mytag
+ (+ 1 (throw 'mytag 55)))
+55
+</pre>
+
+<p>If there is no 'expr' in 'throw', <a href="nil.htm">NIL</a> is returned
+to the corresponding 'catch':</p>
+
+<pre class="example">
+&gt; (catch 'mytag
+ (throw 'mytag))
+NIL
+</pre>
+
+<p>If more than one 'catch' is set up for the same
+'<nobr>tag-symbol</nobr>', the most recently evaluated
+'<nobr>tag-symbol</nobr>' will be the one that does the actual catching:</p>
+
+<pre class="example">
+&gt; (catch 'mytag
+ (catch 'mytag
+ (throw 'mytag))
+ (print 'hello))
+HELLO
+</pre>
+
+<p>If a 'throw' is evaluated with no corresponding 'catch', an error is
+signalled:</p>
+
+<pre class="example">
+&gt; (catch 'mytag
+ (throw 'foo))
+<font color="#AA0000">error: no target for THROW</font>
+</pre>
+
+<p></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun in (x)
+ (if (numberp x) <font color="#008844">; if X is a number</font>
+ (+ x x) <font color="#008844">; then double X</font>
+ (throw 'math 42))) <font color="#008844">; else throw 42</font>
+
+(defun out (x)
+ (princ "&lt;")
+ (princ (* (in x) 2)) <font color="#008844">; double via multiply</font>
+ (princ "&gt;")
+ "there")
+
+(defun main (x)
+ (catch 'math (out x))) <font color="#008844">; catch the throw from IN</font>
+
+&gt; (in 5)
+10 <font color="#008844">; return value</font>
+
+&gt; (out 5)
+&lt;20&gt; <font color="#008844">; screen output of PRINC</font>
+"there" <font color="#008844">; return value</font>
+
+&gt; (main 5)
+&lt;20&gt; <font color="#008844">; screen output of PRINC</font>
+"there" <font color="#008844">; return value</font>
+
+&gt; (main 'a)
+&lt; <font color="#008844">; screen output of PRINC</font>
+42 <font color="#008844">; return value</font>
+</pre>
+
+<p>See <nobr><a href="addition.htm">&nbsp;+&nbsp;</a></nobr>,
+<nobr><a href="multiplication.htm">&nbsp;*&nbsp;</a></nobr>,
+<a href="defun.htm">defun</a>,
+<nobr><a href="if.htm">&nbsp;if&nbsp;</a></nobr>,
+<a href="numberp.htm">numberp</a>,
+<a href="princ.htm">princ</a>.</p>
+
+<p><div class="box">
+
+<p><b>Note:</b> 'catch' and 'throw' accept not only symbols as
+'<nobr>tag-symbol</nobr>', but if a '<nobr>tag-symbol</nobr>' cannot be
+compared via <a href="eql.htm">eql</a>, an error is signalled:</p>
+
+<pre class="example">
+&gt; (catch "mytag"
+ (throw "mytag"))
+<font color="#AA0000">error: no target for THROW</font>
+</pre>
+
+<p>This was reproduced with <nobr>Nyquist 3.03</nobr> in <nobr>December
+2010</nobr>.</p>
+
+</div></p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#control-constructs">Control Constructs</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/cddddr.htm b/docsrc/xlisp/xlisp-doc/reference/cddddr.htm
new file mode 100644
index 0000000..68b688a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/cddddr.htm
@@ -0,0 +1,135 @@
+<html><head><title>XLISP cdaaar ... cddddr</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>cdaaar ... cddddr</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>cdaaar</b> <i>expr</i>)<br>
+(<b>cdaadr</b> <i>expr</i>)<br>
+(<b>cdadar</b> <i>expr</i>)<br>
+(<b>cdaddr</b> <i>expr</i>)<br>
+(<b>cddaar</b> <i>expr</i>)<br>
+(<b>cddadr</b> <i>expr</i>)<br>
+(<b>cdddar</b> <i>expr</i>)<br>
+(<b>cddddr</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - the result of the last <a href="cdr.htm">cdr</a>
+function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p> The 'cdaaar' ... 'cddddr' functions go through the list expression and
+perform a sequence of <a href="car.htm">car</a> or
+<a href="cdr.htm">cdr</a> operations. <nobr>The sequence</nobr> of
+operations is performed from right to left. <nobr>So 'cddaar'</nobr> does a
+<a href="car.htm">car</a> on the expression, followed by
+<nobr>a <a href="car.htm">car</a></nobr>, followed by
+<nobr>a <a href="cdr.htm">cdr</a></nobr>, followed by <nobr>another
+<a href="cdr.htm">cdr</a></nobr>. <nobr>If at</nobr> any point the list
+<nobr>is <a href="nil.htm">NIL</a></nobr>, then
+<a href="nil.htm">NIL</a> is returned. <nobr>If at</nobr> anypoint a
+<a href="car.htm">car</a> operation is performed on an atom [as
+opposed to a list] an error is signalled:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '((((111A 111B) (112A 112B) (113A 113B)) <font color="#008844">; 1st set</font>
+ ((121A 121B) (122A 122B) (123A 123B))
+ ((131A 131B) (132A 132B) (133A 133B))
+ ((141A 141B) (142A 142B) (143A 143B)))
+ (((211A 211B) (212A 212B) (213A 213B)) <font color="#008844">; 2nd set</font>
+ ((221A 221B) (222A 222B) (223A 223B))
+ ((231A 231B) (232A 232B) (233A 233B))
+ ((241A 241B) (242A 242B) (243A 243B)))
+ (((311A 311B) (312A 312B) (313A 313B)) <font color="#008844">; 3rd set</font>
+ ((321A 321B) (322A 322B) (323A 323B))
+ ((331A 331B) (332A 332B) (333A 333B))
+ ((341A 341B) (342A 342B) (343A 343B)))
+ (((411A 411B) (412A 412B) (413A 413B)) <font color="#008844">; 4th set</font>
+ ((421A 421B) (422A 422B) (423A 423B))
+ ((431A 431B) (432A 432B) (433A 433B))
+ ((441A 441B) (442A 442B) (443A 443B)))
+ (((511A 511B) (512A 512B) (513A 513B)) <font color="#008844">; 5th set</font>
+ ((521A 521B) (522A 522B) (523A 523B))
+ ((531A 531B) (532A 532B) (533A 533B))
+ ((541A 541B) (542A 542B) (543A 543B)))))
+
+(cdaaar mylist) =&gt; (111B)
+(cdaadr mylist) =&gt; ((212A 212B) (213A 213B))
+(cdadar mylist) =&gt; ((122A 122B) (123A 123B))
+(cdaddr mylist) =&gt; (((321A 321B) (322A 322B) (323A 323B))
+ ((331A 331B) (332A 332B) (333A 333B))
+ ((341A 341B) (342A 342B) (343A 343B)))
+(cddaar mylist) =&gt; ((113A 113B))
+(cddadr mylist) (((231A 231B) (232A 232B) (233A 233B))
+ ((241A 241B) (242A 242B) (243A 243B)))
+(cdddar mylist) =&gt; (((141A 141B) (142A 142B) (143A 143B)))
+(cddddr mylist) =&gt; ((((511A 511B) (512A 512B) (513A 513B))
+ ((521A 521B) (522A 522B) (523A 523B))
+ ((531A 531B) (532A 532B) (533A 533B))
+ ((541A 541B) (542A 542B) (543A 543B))))
+</pre>
+
+<p><b>Note:</b> The '<nobr>c...r</nobr>' functions are part of the
+historical Lisp functions. You may find it easier to work with the modern
+lisp functions like <a href="nth.htm">nth</a> and
+<a href="nthcdr.htm">nthcdr</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+<li><nobr>Tutorials &rarr; Lisp Hints &rarr; <a href="../tutorials/lisp-hints.htm#list-accessors">List Accessors</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/cdddr.htm b/docsrc/xlisp/xlisp-doc/reference/cdddr.htm
new file mode 100644
index 0000000..ce35fa5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/cdddr.htm
@@ -0,0 +1,104 @@
+<html><head><title>XLISP cdaar ... cdddr</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>cdaar ... cdddr</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>cdaar</b> <i>expr</i>)<br>
+(<b>cdadr</b> <i>expr</i>)<br>
+(<b>cddar</b> <i>expr</i>)<br>
+(<b>cdddr</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - the result of the last <a href="cdr.htm">cdr</a>
+function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'cdaar', 'cdadr', 'cddar' and 'cdddr' functions go through the list
+expression and perform a sequence of <nobr><a href="car.htm">car</a> or
+<a href="cdr.htm">cdr</a></nobr> operations. <nobr>The sequence</nobr> of
+operations is performed from right to left. So 'cddar' does a
+<a href="car.htm">car</a> on the expression, followed by a
+<nobr> a<a href="cdr.htm">cdr</a></nobr>, followed by <nobr>another
+<a href="cdr.htm">cdr</a></nobr>. <nobr>If at</nobr> any point the list
+<nobr>is <a href="nil.htm">NIL</a></nobr>, then
+<a href="nil.htm">NIL</a> is returned. <nobr>If at</nobr> any point a
+<a href="car.htm">car</a> operation is performed on an atom [as
+opposed to a list] an error is signalled:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '(((11A 11B) (12A 12B) (13A 13B))
+ ((21A 21B) (22A 22B) (23A 23B))
+ ((31A 31B) (32A 32B) (33A 33B))
+ ((41A 41B) (42A 42B) (43A 43B))))
+
+(cdaar mylist) =&gt; (11B)
+(cdadr mylist) =&gt; ((22A 22B) (23A 23B))
+(cddar mylist) =&gt; ((13A 13B))
+(cdddr mylist) =&gt; (((41A 41B) (42A 42B) (43A 43B)))
+</pre>
+
+<p><b>Note:</b> The '<nobr>c...r</nobr>' functions are part of the
+historical Lisp functions. You may find it easier to work with the modern
+lisp functions like <a href="nth.htm">nth</a> and
+<a href="nthcdr.htm">nthcdr</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+<li><nobr>Tutorials &rarr; Lisp Hints &rarr; <a href="../tutorials/lisp-hints.htm#list-accessors">List Accessors</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/cddr.htm b/docsrc/xlisp/xlisp-doc/reference/cddr.htm
new file mode 100644
index 0000000..a69d2f3
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/cddr.htm
@@ -0,0 +1,101 @@
+<html><head><title>XLISP cdar, cddr</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>cdar, cddr</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>cdar</b> <i>expr</i>)<br>
+(<b>cddr</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - the result of the last <a href="cdr.htm">cdr</a>
+function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'cdar' and 'cddr' functions go through the list expression and perform a
+sequence of <a href="car.htm">car</a> or
+<a href="cdr.htm">cdr</a> operations. <nobr>The sequence</nobr> of
+operations is performed from right to left. So 'cdar' does a
+<a href="car.htm">car</a> on the expression, followed by <nobr>a
+<a href="cdr.htm">cdr</a></nobr>. <nobr>If at</nobr> any point the list is
+<a href="nil.htm">NIL</a>, then <a href="nil.htm">NIL</a> is returned.
+<nobr>If at</nobr> any point a <a href="car.htm">car</a> operation is
+performed on an atom [as opposed to a list] an error is signalled:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '((1A 1B) (2A 2B) (3A 3B)))
+
+(caar mylist) =&gt; 1A
+(cadr mylist) =&gt; (2A 2B)
+
+(cdar mylist) =&gt; (1B)
+(cddr mylist) =&gt; ((3A 3B))
+
+(cdar 'a) =&gt; <font color="#AA0000">error: bad argument</font>
+(cdar nil) =&gt; NIL
+</pre>
+
+<p><b>Note:</b> The '<nobr>c...r</nobr>' functions are part of the
+historical Lisp functions. You may find it easier to work with the modern
+lisp functions like <a href="nth.htm">nth</a> and
+<a href="nthcdr.htm">nthcdr</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+<li><nobr>Tutorials &rarr; Lisp Hints &rarr; <a href="../tutorials/lisp-hints.htm#list-accessors">List Accessors</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/cdr.htm b/docsrc/xlisp/xlisp-doc/reference/cdr.htm
new file mode 100644
index 0000000..d9845f5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/cdr.htm
@@ -0,0 +1,85 @@
+<html><head><title>XLISP cdr</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>cdr</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>cdr</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - a list expression<br>
+returns - <i>expr</i> with the first element removed</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'cdr' function returns the <a href="rest.htm">rest</a> of a
+list expression after the first element of the list is removed. <nobr>If
+the</nobr> list <nobr>is <a href="nil.htm">NIL</a></nobr>, then
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<p>The 'cdr' function returns the same result as the
+<a href="rest.htm">rest</a> function.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(cdr '(a b c)) =&gt; (B C)
+(cdr '((a b) c d)) =&gt; (C D)
+(cdr nil) =&gt; NIL
+(cdr 'a) =&gt; <font color="#AA0000">error: bad argument type</font>
+(cdr '(a)) =&gt; NIL
+(setq ben '(a b c)) =&gt;
+(cdr ben) =&gt; (B C)
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+<li><nobr>Tutorials &rarr; Lisp Hints &rarr; <a href="../tutorials/lisp-hints.htm#list-accessors">List Accessors</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/cerror.htm b/docsrc/xlisp/xlisp-doc/reference/cerror.htm
new file mode 100644
index 0000000..116f9f3
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/cerror.htm
@@ -0,0 +1,23 @@
+<html><head><title>XLISP cerror</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>cerror</h1>
+
+<hr>
+
+<p>See <a href="error.htm">error</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-code.htm b/docsrc/xlisp/xlisp-doc/reference/char-code.htm
new file mode 100644
index 0000000..eafd74b
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-code.htm
@@ -0,0 +1,86 @@
+<html><head><title>XLISP char-code</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char-code</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char-code</b> <i>char</i>)</dt>
+<dd><i>char</i> - a character expression<br>
+returns - the decimal <a href="../misc/ascii-table.htm">ASCII</a>
+value as an integer</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'char-code' function returns the decimal
+<a href="../misc/ascii-table.htm">ASCII</a> value of the 'char'
+expression.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char-code #\0) =&gt; 48
+(char-code #\A) =&gt; 65
+(char-code #\a) =&gt; 97
+(char-code #\[) =&gt; 91
+(char-code #\newline) =&gt; 10
+(char-code (code-char 127)) =&gt; 127
+(char-code (int-char 255)) =&gt; 255
+</pre>
+
+<p><b>Note:</b> In <nobr>Nyquist/XLISP</nobr>, '<nobr>char-code</nobr>' and
+<a href="char-int.htm">char-int</a> are two different functions, but behave
+exactly the same <nobr>[Nyquist 3.03</nobr>, <nobr>December
+2010</nobr>].</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-downcase.htm b/docsrc/xlisp/xlisp-doc/reference/char-downcase.htm
new file mode 100644
index 0000000..bcf5829
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-downcase.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP char-downcase</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char-downcase</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char-downcase</b> <i>char</i>)</dt>
+<dd><i>char</i> - a character expression<br>
+returns - the lower case character</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '<nobr>char-downcase</nobr>' function converts the 'char' expression
+to lower case. The lower case equivalent of 'char' is returned. <nobr>If
+'char'</nobr> is not alphabetic <nobr>[a-z or A-Z],</nobr> then the
+character is returned unchanged.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char-downcase #\0) =&gt; #\0
+(char-downcase #\A) =&gt; #\a
+(char-downcase #\a) =&gt; #\a
+(char-downcase #\[) =&gt; #\[
+(char-downcase #\+) =&gt; #\+
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-equal-i.htm b/docsrc/xlisp/xlisp-doc/reference/char-equal-i.htm
new file mode 100644
index 0000000..a4a53b4
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-equal-i.htm
@@ -0,0 +1,89 @@
+<html><head><title>XLISP char-equal</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char-equal</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char-equal</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression[s] to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if all characters
+are equal, <a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'char-equal' function tests if all the character arguments are
+equivalent. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if the arguments
+are of the same <a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise. <nobr>In the</nobr> case of two
+arguments, this has the effect of testing if 'char1' is equal to 'char2'.
+This test is case insensitive, the character '#\a' is considered to be the
+same <a href="../misc/ascii-table.htm">ASCII</a> value as the
+<nobr>character '#\A'.</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char-equal #\a #\b) =&gt; NIL
+(char-equal #\b #\a) =&gt; NIL
+(char-equal #\a #\b #\c) =&gt; NIL
+(char-equal #\a #\a) =&gt; T
+(char-equal #\a #\a #\a) =&gt; T
+(char-equal #\a #\a #\b) =&gt; NIL
+(char-equal #\A #\a) =&gt; T
+(char-equal #\a #\A) =&gt; T
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-equal-s.htm b/docsrc/xlisp/xlisp-doc/reference/char-equal-s.htm
new file mode 100644
index 0000000..04e268f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-equal-s.htm
@@ -0,0 +1,91 @@
+<html><head><title>XLISP char=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char=</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression[s] to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are of the same
+<a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'char=' function tests if all the character arguments are equivalent.
+<nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr> returned if the arguments
+are of the same <a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise. <nobr>In the</nobr> case of two
+arguments, this has the effect of testing if 'char1' is equal to 'char2'.
+This test is case sensitive, the character '#\a' is different and of greater
+<a href="../misc/ascii-table.htm">ASCII</a> value than the <nobr>character
+'#\A'</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char= #\a #\b) =&gt; NIL
+(char= #\b #\a) =&gt; NIL
+(char= #\a #\b #\c) =&gt; NIL
+(char= #\a #\a) =&gt; T
+(char= #\a #\a #\a) =&gt; T
+(char= #\a #\a #\b) =&gt; NIL
+(char= #\A #\a) =&gt; NIL
+(char= #\a #\A) =&gt; NIL
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-greaterp-i.htm b/docsrc/xlisp/xlisp-doc/reference/char-greaterp-i.htm
new file mode 100644
index 0000000..7188588
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-greaterp-i.htm
@@ -0,0 +1,91 @@
+<html><head><title>XLISP char-greaterp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char-greaterp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char-greaterp</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression(s) to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are of monotonically decreasing
+<a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '<nobr>char-greaterp</nobr>' function tests if all the character
+arguments are monotonically decreasing.
+<nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr> returned if the arguments
+are of monotonically decreasing <a href="../misc/ascii-table.htm">ASCII</a>
+value, <a href="nil.htm">NIL</a> otherwise. <nobr>In the</nobr> case of two
+arguments, this has the effect of testing if 'char1' is greater than
+'char2'. This test is case insensitive, the character '#\a' is considered to
+be the same <a href="../misc/ascii-table.htm">ASCII</a> value as the
+<nobr>character '#\A'.</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char-greaterp #\a #\b) =&gt; NIL
+(char-greaterp #\b #\a) =&gt; T
+(char-greaterp #\c #\b #\a) =&gt; T
+(char-greaterp #\a #\a) =&gt; NIL
+(char-greaterp #\c #\a #\b) =&gt; NIL
+(char-greaterp #\A #\a) =&gt; NIL
+(char-greaterp #\a #\A) =&gt; NIL
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-greaterp-s.htm b/docsrc/xlisp/xlisp-doc/reference/char-greaterp-s.htm
new file mode 100644
index 0000000..95c3258
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-greaterp-s.htm
@@ -0,0 +1,91 @@
+<html><head><title>XLISP char&gt;</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char&gt;</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char&gt;</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression[s] to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are of monotonically decreasing
+<a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'char&gt;' function tests if all the character arguments are
+monotonically decreasing. <nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr>
+returned if the arguments are of monotonically decreasing
+<a href="../misc/ascii-table.htm">ASCII</a> value, <a href="nil.htm">NIL</a>
+otherwise. <nobr>In the</nobr> case of two arguments, this has the effect of
+testing if 'char1' is greater than 'char2'. This test is case sensitive, the
+character '#\a' is different and of greater <a
+href="../misc/ascii-table.htm">ASCII</a> value than the
+<nobr>character '#\A'</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char&gt; #\a #\b) =&gt; NIL
+(char&gt; #\b #\a) =&gt; T
+(char&gt; #\c #\b #\a) =&gt; T
+(char&gt; #\a #\a) =&gt; NIL
+(char&gt; #\c #\a #\b) =&gt; NIL
+(char&gt; #\A #\a) =&gt; NIL
+(char&gt; #\a #\A) =&gt; T
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-int.htm b/docsrc/xlisp/xlisp-doc/reference/char-int.htm
new file mode 100644
index 0000000..dbb279c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-int.htm
@@ -0,0 +1,86 @@
+<html><head><title>XLISP char-int</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char-int</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char-int</b> <i>char</i>)</dt>
+<dd><i>char</i> - a character expression<br>
+returns - the decimal <a href="../misc/ascii-table.htm">ASCII</a>
+value as an integer</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '<nobr>char-int</nobr>' function returns the decimal
+<a href="../misc/ascii-table.htm">ASCII</a> value of the 'char'
+expression.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char-int #\0) =&gt; 48</font>
+(char-int #\A) =&gt; 65</font>
+(char-int #\a) =&gt; 97</font>
+(char-int #\[) =&gt; 91</font>
+(char-int #\newline) =&gt; 10</font>
+(char-int (code-char 127)) =&gt; 127</font>
+(char-int (int-char 255)) =&gt; 255</font>
+</pre>
+
+<p><b>Note:</b> In <nobr>Nyquist/XLISP</nobr>,
+<a href="char-code.htm">char-code</a> and '<nobr>char-int</nobr>' are two
+different functions, but behave exactly the same <nobr>[Nyquist 3.03</nobr>,
+<nobr>December 2010</nobr>].</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-lessp-i.htm b/docsrc/xlisp/xlisp-doc/reference/char-lessp-i.htm
new file mode 100644
index 0000000..6b662ab
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-lessp-i.htm
@@ -0,0 +1,91 @@
+<html><head><title>XLISP char-lessp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char-lessp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char-lessp</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression[s] to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are of monotonically increasing
+<a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '<nobr>char-lessp</nobr>' function tests if all the character
+arguments are monotonically increasing.
+<nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr> returned if the arguments
+are of increasing <a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise. <nobr>In the</nobr> case of two
+arguments, this has the effect of testing if 'char1' is less than 'char2'.
+This test is case insensitive, the <nobr>character '#\a'</nobr> is
+considered to be the same <a href="../misc/ascii-table.htm">ASCII</a> value
+as the <nobr>character '#\A'.</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char-lessp #\a #\b) =&gt; T
+(char-lessp #\b #\a) =&gt; NIL
+(char-lessp #\a #\b #\c) =&gt; T
+(char-lessp #\a #\a) =&gt; NIL
+(char-lessp #\a #\b #\b) =&gt; NIL
+(char-lessp #\A #\a) =&gt; NIL
+(char-lessp #\a #\A) =&gt; NIL
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-lessp-s.htm b/docsrc/xlisp/xlisp-doc/reference/char-lessp-s.htm
new file mode 100644
index 0000000..5bee3dd
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-lessp-s.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP char&lt;</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+
+<h1>char&lt;</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char&lt;</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression[s] to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are of monotonically increasing
+<a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p> The 'char&lt;' function tests if all the character arguments are
+monotonically increasing. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if
+the arguments are of monotonically increasing
+<a href="../misc/ascii-table.htm">ASCII</a> value, <a href="nil.htm">NIL</a>
+otherwise. <nobr>In the</nobr> case of two arguments, this has the effect of
+testing if 'char1' is less than 'char2'. This test is case sensitive, the
+character '#\a' is different and of greater
+<a href="../misc/ascii-table.htm">ASCII</a> value than the <nobr>character
+'#\A'</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char&lt; #\a #\b) =&gt; T
+(char&lt; #\b #\a) =&gt; NIL
+(char&lt; #\a #\b #\c) =&gt; T
+(char&lt; #\a #\a) =&gt; NIL
+(char&lt; #\a #\b #\b) =&gt; NIL
+(char&lt; #\A #\a) =&gt; T
+(char&lt; #\a #\A) =&gt; NIL
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-not-equal-i.htm b/docsrc/xlisp/xlisp-doc/reference/char-not-equal-i.htm
new file mode 100644
index 0000000..5d649b5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-not-equal-i.htm
@@ -0,0 +1,90 @@
+<html><head><title>XLISP char-not-equal</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char-not-equal</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char-not-equal</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression(s) to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are of different
+<a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '<nobr>char-not-equal</nobr>' function tests if all the character
+arguments are different values. <nobr><a href="t.htm">&nbsp;T&nbsp;</a>
+is</nobr> returned if the arguments are of different
+<a href="../misc/ascii-table.htm">ASCII</a> value, <a href="nil.htm">NIL</a>
+otherwise. <nobr>In the</nobr> case of two arguments, this has the effect of
+testing if 'char1' is not equal to 'char2'. This test is case insensitive,
+the <nobr>character '#\a'</nobr> is considered to be the same
+<a href="../misc/ascii-table.htm">ASCII</a> value as the <nobr>character
+'#\A'.</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char-not-equal #\a #\b) =&gt; T
+(char-not-equal #\a #\b #\c) =&gt; T
+(char-not-equal #\a #\a) =&gt; NIL
+(char-not-equal #\a #\b #\b) =&gt; NIL
+(char-not-equal #\A #\a) =&gt; NIL
+(char-not-equal #\a #\A) =&gt; NIL
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-not-equal-s.htm b/docsrc/xlisp/xlisp-doc/reference/char-not-equal-s.htm
new file mode 100644
index 0000000..d8876ff
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-not-equal-s.htm
@@ -0,0 +1,98 @@
+<html><head><title>XLISP char/=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char/=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char/=</b> <i>char1 charN</i> ... )</dt>
+<dd>char1 - a character expression<br>
+charN - character expression[s] to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are not equal,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'char/=' function tests if all character arguments are different
+values. <nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr> returned if the
+arguments are of different <a href="../misc/ascii-table.htm">ASCII</a>
+value, <a href="nil.htm">NIL</a> otherwise. <nobr>In the</nobr> case of two
+arguments, this has the effect of testing if 'char1' is not equal to
+'char2'. This test is case sensitive, the character '#\a' is different and
+of greater <a href="../misc/ascii-table.htm">ASCII</a> value than the
+<nobr>character '#\A'</nobr>.</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char/= #\a #\b) =&gt; T
+(char/= #\a #\b #\c) =&gt; T
+(char/= #\a #\a) =&gt; NIL
+(char/= #\a #\b #\b) =&gt; NIL
+(char/= #\A #\a) =&gt; T
+(char/= #\a #\A) =&gt; T
+</pre>
+
+<p><div class="box">
+
+<p><b>Caution:</b> If you type 'char\=' [with a backslash] instead of
+'string/=' by mistake, no error will be signalled because backslash is the
+single escape character and the XLISP reader will evaluate 'char\=' as
+<a href="char-equal-s.htm">char=</a>, but the meaning of the test is
+exactly reversed.</p>
+
+</div></p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-not-greaterp-i.htm b/docsrc/xlisp/xlisp-doc/reference/char-not-greaterp-i.htm
new file mode 100644
index 0000000..010bad1
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-not-greaterp-i.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP char-not-greaterp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char-not-greaterp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char-not-greaterp</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression[s] to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are of monotonically <nobr>non-decreasing</nobr>
+<a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '<nobr>char-not-greaterp</nobr>' function tests if all character
+arguments are monotonically <nobr>non-decreasing</nobr>.
+<nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr> returned if the arguments
+are of monotonically non-decreasing
+<a href="../misc/ascii-table.htm">ASCII</a> value, <a href="nil.htm">NIL</a>
+otherwise. <nobr>In the</nobr> case of two arguments, this has the effect of
+testing if 'char1' is less than or equal to 'char2'. This test is case
+insensitive, the <nobr>character '#\a'</nobr> is considered to be the same
+<a href="../misc/ascii-table.htm">ASCII</a> value as the <nobr>character
+'#\A'.</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char-not-greaterp #\a #\b) =&gt; T
+(char-not-greaterp #\b #\a) =&gt; NIL
+(char-not-greaterp #\a #\b #\c) =&gt; T
+(char-not-greaterp #\a #\a) =&gt; T
+(char-not-greaterp #\a #\b #\b) =&gt; T
+(char-not-greaterp #\A #\a) =&gt; T
+(char-not-greaterp #\a #\A) =&gt; T
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-not-greaterp-s.htm b/docsrc/xlisp/xlisp-doc/reference/char-not-greaterp-s.htm
new file mode 100644
index 0000000..ba1d599
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-not-greaterp-s.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP char&lt;=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char&lt;=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char&lt;=</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression[s] to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are of monotonically <nobr>non-decreasing</nobr>
+<a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p> The 'char&lt;=' function tests if all character arguments are
+monotonically <nobr>non-decreasing</nobr>.
+<nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr> returned if the arguments
+are of monotonically <nobr>non-decreasing</nobr>
+<a href="../misc/ascii-table.htm">ASCII</a> value, <a href="nil.htm">NIL</a>
+otherwise. <nobr>In the</nobr> case of two arguments, this has the effect of
+testing if 'char1' is less than or equal to 'char2'. This test is case
+sensitive, the character '#\a' is different and of greater
+<a href="../misc/ascii-table.htm">ASCII</a> value than the <nobr>character
+'#\A'</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char&lt;= #\a #\b) =&gt; T
+(char&lt;= #\b #\a) =&gt; NIL
+(char&lt;= #\a #\b #\c) =&gt; T
+(char&lt;= #\a #\a) =&gt; T
+(char&lt;= #\a #\b #\b) =&gt; T
+(char&lt;= #\A #\a) =&gt; T
+(char&lt;= #\a #\A) =&gt; NIL
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-not-lessp-i.htm b/docsrc/xlisp/xlisp-doc/reference/char-not-lessp-i.htm
new file mode 100644
index 0000000..c991f04
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-not-lessp-i.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP char-not-lessp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char-not-lessp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char-not-lessp</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression[s] to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are of monotonically non-increasing
+<a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '<nobr>char-not-lessp</nobr>' function tests if all character
+arguments are monotonically <nobr>non-increasing</nobr>.
+<nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr> returned if the arguments
+are of monotonically <nobr>non-increasing</nobr>
+<a href="../misc/ascii-table.htm">ASCII</a> value, <a href="nil.htm">NIL</a>
+otherwise. <nobr>In the</nobr> case of two arguments, this has the effect of
+testing if 'char1' is greater than or equal to 'char2'. This test is case
+insensitive, the <nobr>character '#\a'</nobr> is considered to be the same
+<a href="../misc/ascii-table.htm">ASCII</a> value as the <nobr>character
+'#\A'.</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char-not-lessp #\a #\b) =&gt; NIL
+(char-not-lessp #\b #\a) =&gt; T
+(char-not-lessp #\c #\b #\a) =&gt; T
+(char-not-lessp #\a #\a) =&gt; T
+(char-not-lessp #\c #\a #\b) =&gt; NIL
+(char-not-lessp #\A #\a) =&gt; T
+(char-not-lessp #\a #\A) =&gt; T
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-not-lessp-s.htm b/docsrc/xlisp/xlisp-doc/reference/char-not-lessp-s.htm
new file mode 100644
index 0000000..3f85269
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-not-lessp-s.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP char&gt;=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char&gt;=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char&gt;=</b> <i>char1 charN</i> ... )</dt>
+<dd><i>char1</i> - a character expression<br>
+<i>charN</i> - character expression[s] to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the characters are of monotonically non-increasing
+<a href="../misc/ascii-table.htm">ASCII</a> value,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'char&gt;=' function tests if all character arguments are
+monotonically <nobr>non-increasing</nobr>.
+<nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr> returned if the arguments
+are of monotonically <nobr>non-increasing</nobr>
+<a href="../misc/ascii-table.htm">ASCII</a> value, <a href="nil.htm">NIL</a>
+otherwise. <nobr>In the</nobr> case of two arguments, this has the effect of
+testing if 'char1' is greater than or equal to 'char2'. This test is case
+sensitive, the character '#\a' is different and of greater
+<a href="../misc/ascii-table.htm">ASCII</a> value than the <nobr>characrer
+'#\A'</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char&gt;= #\a #\b) =&gt; NIL
+(char&gt;= #\b #\a) =&gt; T
+(char&gt;= #\c #\b #\a) =&gt; T
+(char&gt;= #\a #\a) =&gt; T
+(char&gt;= #\c #\a #\b) =&gt; NIL
+(char&gt;= #\A #\a) =&gt; NIL
+(char&gt;= #\a #\A) =&gt; T
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char-upcase.htm b/docsrc/xlisp/xlisp-doc/reference/char-upcase.htm
new file mode 100644
index 0000000..6d13de0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char-upcase.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP char-upcase</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char-upcase</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char-upcase</b> <i>char</i>)</dt>
+<dd><i>char</i> - a character expression<br>
+returns - the upper case character</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '<nobr>char-upcase</nobr>' function converts the 'char' expression to
+upper case. The upper case equivalent of 'char' is returned. <nobr>If
+the</nobr> 'char' is not alphabetic <nobr>[a-z or A-Z],</nobr> the
+character is returned unchanged.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char-upcase #\0) =&gt; #\0
+(char-upcase #\A) =&gt; #\A
+(char-upcase #\a) =&gt; #\A
+(char-upcase #\[) =&gt; #\[
+(char-upcase #\+) =&gt; #\+
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/char.htm b/docsrc/xlisp/xlisp-doc/reference/char.htm
new file mode 100644
index 0000000..39d0a88
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/char.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP char</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>char</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>char</b> <i>string position</i>)</dt>
+<dd><i>string</i> - a string expression<br>
+<i>position</i> - an integer expression<br>
+returns - the <a href="../misc/ascii-table.htm">ASCII</a> code of
+the character</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'char' function returns the
+<a href="../misc/ascii-table.htm">ASCII</a> numeric value of the character
+at the specified 'position' in the 'string'. <nobr>A position</nobr> of '0'
+is the first character in the string.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(char "12345" 0) =&gt; #\1
+(char "12 45" 2) =&gt; #\Space
+(string (char "1234" 3)) =&gt; "4"
+(char "1234" 9) =&gt; <font color="#AA0000">error: index out of range</font>
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/characterp.htm b/docsrc/xlisp/xlisp-doc/reference/characterp.htm
new file mode 100644
index 0000000..d5f1d4d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/characterp.htm
@@ -0,0 +1,86 @@
+<html><head><title>XLISP characterp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>characterp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>characterp</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the value is a
+character, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'characterp' predicate function tests if 'expr' evaluates to a
+character. <nobr><a href="t.htm">&nbsp;T&nbsp;</a> is</nobr> returned if
+'expr' evaluates to a character, <a href="nil.htm">NIL</a> is returned
+otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(characterp #\a) =&gt; T <font color="#008844">; character</font>
+(setq a #\b) =&gt; #\b
+(characterp a) =&gt; T <font color="#008844">; evaluates to a character</font>
+(characterp "a") =&gt; NIL <font color="#008844">; string</font>
+(characterp '(a b c)) =&gt; NIL <font color="#008844">; list</font>
+(characterp 1) =&gt; NIL <font color="#008844">; integer</font>
+(characterp 1.2) =&gt; NIL <font color="#008844">; float</font>
+(characterp 'a) =&gt; NIL <font color="#008844">; symbol</font>
+(characterp #(0 1 2)) =&gt; NIL <font color="#008844">; array</font>
+(characterp nil) =&gt; NIL <font color="#008844">; NIL</font>
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#predicate-functions">Predicate Functions</a></nobr></li>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#character-functions">Character Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/class.htm b/docsrc/xlisp/xlisp-doc/reference/class.htm
new file mode 100644
index 0000000..af76573
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/class.htm
@@ -0,0 +1,113 @@
+<html><head><title>XLISP class</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>class</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>object</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;class</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>'class' is the built-in object class that is used to build other classes.
+Classes are, essentially, the template for defining
+<a href="object.htm">object</a> instances.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq myclass (send class :new '(var))) <font color="#008844">; create MYCLASS with VAR</font>
+
+(send myclass :answer :isnew '() <font color="#008844">; set up initialization</font>
+ '((setq var nil) self))
+
+(send myclass :answer :set-it '(value) <font color="#008844">; create :SET-IT message</font>
+ '((setq var value)))
+
+(setq my-obj (send myclass :new)) <font color="#008844">; create MY-OBJ of MYCLASS</font>
+(send my-obj :set-it 5) <font color="#008844">; VAR is set to 5</font>
+</pre>
+
+<p><b>Class definition:</b> The internal definition of the 'class' object
+instance looks like:</p>
+
+<pre class="example">
+Object is #&lt;Object: #23fe2&gt;, Class is #&lt;Object: #23fe2&gt;
+ MESSAGES = ((:ANSWER . #&lt;Subr-: #23e48&gt;)
+ (:ISNEW . #&lt;Subr-: #23e84&gt;)
+ (:NEW . #&lt;Subr-: #23ea2&gt;))
+ IVARS = (MESSAGES IVARS CVARS CVALS SUPERCLASS IVARCNT IVARTOTAL)
+ CVARS = NIL
+ CVALS = NIL
+ SUPERCLASS = #&lt;Object: #23fd8&gt;
+ IVARCNT = 7
+ IVARTOTAL = 7
+#&lt;Object: #23fe2&gt;
+</pre>
+
+<p>The class of 'class' is 'class', itself. The superclass of 'class' is
+<a href="object.htm">object</a>. Remember that the location
+information [like #23fe2] varies from system to system, yours will probably
+look different.</p>
+
+<p><b>Built-in methods:</b> The built in methods in XLISP include:</p>
+
+<ul>
+<li><nobr><a href="keyword-answer.htm">:answer</a> - add a method to an <a href="object.htm">object</a></nobr></li>
+<li><nobr><a href="keyword-class.htm">:class</a> - return the <a href="object.htm">object</a>'s class</nobr></li>
+<li><nobr><a href="keyword-isnew.htm">:isnew</a> - run initialization code on <a href="object.htm">object</a></nobr></li>
+<li><nobr><a href="keyword-new.htm">:new</a> - create a new <a href="object.htm">object</a> [instance or class]</nobr></li>
+<li><nobr><a href="keyword-show.htm">:show</a> - show the internal state of the <a href="object.htm">object</a></nobr></li>
+</ul>
+
+<p><b>Message Structure:</b> The normal XLISP convention for a 'message' is
+to have a valid symbol preceeded by a colon like
+<a href="keyword-isnew.htm">:isnew</a> or ':my-message'. However, it
+is possible to define a 'message' that is a symbol without a colon, but
+this makes the code less readable.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-010.htm#class">class</a>
+object in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/clean-up.htm b/docsrc/xlisp/xlisp-doc/reference/clean-up.htm
new file mode 100644
index 0000000..98faa09
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/clean-up.htm
@@ -0,0 +1,90 @@
+<html><head><title>XLISP clean-up</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>clean-up</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c, xldbug.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(clean-up)</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'clean-up' function aborts one level of the
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a>.</nobr> This
+is valid for <nobr><a href="break.htm">break</a>s ,</nobr>
+<a href="error.htm">error</a>s and
+<a href="cerror.htm">cerror</a>s [continuable errors].
+If 'clean-up' is evaluated while not in a
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a> ,</nobr>
+an error is generated:
+
+<pre class="example">
+<font color="#AA0000">error: not in a break loop</font>
+</pre>
+
+<p>This error does not cause XLISP to go into a
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a>.</nobr>
+'clean-up' never actually returns a value.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(clean-up) <font color="#008844">; [back to previous break level]</font>
+(break "out") <font color="#008844">; break: out</font>
+(clean-up) <font color="#008844">; to exit out of break loop</font>
+</pre>
+
+<p><b>Note:</b> With Nyquist, no error is generated if 'clean-up' is
+invoked when not in a
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a>.</nobr></p>
+
+<p><b>Keystroke equivalent:</b> In the IBM PC and MS-DOS versions of XLISP,
+a 'Ctrl-g' key sequence has the same effect as doing a (clean-up). On a
+Macintosh, this can be accomplished by a pull-down menu or a
+'Command-g'. <nobr>[I haven't</nobr> tested this with Nyquist].</p>
+
+<p>See the
+<a href="../manual/xlisp-man-022.htm#clean-up">clean-up</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/close.htm b/docsrc/xlisp/xlisp-doc/reference/close.htm
new file mode 100644
index 0000000..1efb3cd
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/close.htm
@@ -0,0 +1,85 @@
+<html><head><title>XLISP close</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>close</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(close <i>file-ptr</i>)</dt>
+<dd><i>file-ptr</i> - a file pointer expression<br>
+returns - <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'close' function closes the file specified through 'file-ptr'. If
+the file close was successful, then a
+<a href="nil.htm">NIL</a> is returned as the result. For the
+file close to be successful, the 'file-ptr' has to point to a valid file.
+If the file close was not successful, an error is generated:</p>
+
+<pre class="example">
+<font color="#AA0000">error: file not open</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(close (open 'f :direction :output)) <font color="#008844">; returns NIL</font>
+(setq myfile (open 'mine :direction :output)) <font color="#008844">; create MYFILE</font>
+(print "hi" myfile) <font color="#008844">; returns "hi"</font>
+(close myfile) <font color="#008844">; returns NIL</font>
+ <font color="#008844">; file contains &lt;hi&gt; &lt;NEWLINE&gt;</font>
+(setq myfile (open 'mine :direction :input)) <font color="#008844">; open MYFILE for input</font>
+(read myfile) <font color="#008844">; returns "hi"</font>
+(close myfile) <font color="#008844">; returns NIL</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common LISP has an XLISP compatible 'close' function.
+Common LISP does support an ':abort' keyword, which is not supported in
+XLISP.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-029.htm#close">close</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/code-char.htm b/docsrc/xlisp/xlisp-doc/reference/code-char.htm
new file mode 100644
index 0000000..6497114
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/code-char.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP code-char</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>code-char</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(code-char <i>code</i>)</dt>
+<dd><i>code</i> - a numeric expression representing the
+<a href="../misc/ascii-table.htm">ASCII</a> code as an integer<br>
+returns - the character with that code or <a href="nil.htm">NIL</a> </dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'code-char' function returns a character which is the result of
+turning 'code' expression into a character. If a 'code' cannot be made into
+a character, <a href="nil.htm">NIL</a> is returned. The range
+that 'code' produces a valid character is <nobr>0 through 127.</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(code-char 48) <font color="#008844">; returns #\0</font>
+(code-char 65) <font color="#008844">; returns #\A</font>
+(code-char 97) <font color="#008844">; returns #\a</font>
+(code-char 91) <font color="#008844">; returns #\[</font>
+(code-char 10) <font color="#008844">; returns #\Newline</font>
+(code-char 128) <font color="#008844">; returns NIL</font>
+(code-char 999) <font color="#008844">; returns NIL</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp allows for some optional arguments in
+'code-char' because it supports the concept of a complex character that
+includes not only the ASCII code value, but also fonts and bits. The bits
+allow for more than <nobr>8 bits</nobr> per character <nobr>[16 bits</nobr>
+is especially useful in oriental languages]. The fonts allow for up to 128
+different fonts. XLISP does not support fonts and bits or the optional
+parameters associated with them.</p>
+
+<p><b>Note:</b> Unlike the <a href="char-code.htm">char-code</a> and
+<a href="char-int.htm">char-int</a> functions, 'code-char' and
+<a href="int-char.htm">int-char</a> are not identical in use.
+'code-char' accepts 0..127 for its range and then produces
+<a href="nil.htm">NIL</a> results.
+<a href="int-char.htm">int-char</a> accepts 0..255 for its range and
+then produces errors.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-026.htm#code-char">code-char</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/cond.htm b/docsrc/xlisp/xlisp-doc/reference/cond.htm
new file mode 100644
index 0000000..a86d487
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/cond.htm
@@ -0,0 +1,95 @@
+<html><head><title>XLISP cond</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>cond</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(cond [(<i>pred1 expr1</i>) [(<i>pred2 expr2</i>) ... ]])</dt>
+<dd><i>predN</i> - a predicate <nobr>(<a href="nil.htm">NIL</a> /
+non-<a href="nil.htm">NIL</a>)</nobr> expression<br>
+<i>exprN</i> - an expression<br>
+returns - the value of the first expression whose predicate is
+non-<a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'cond' special form evaluates a series of <nobr>predicate /</nobr>
+expression pairs. 'cond' will evaluate each predicate in sequential order
+until it finds one that returns a non-<a href="nil.htm">NIL</a>
+value. The expression that is associated with the
+non-<a href="nil.htm">NIL</a> value is evaluated. The resulting
+value of the evaluated expression is returned by 'cond'. If there are no
+predicates that return a non-<a href="nil.htm">NIL</a> value,
+<a href="nil.htm">NIL</a> is returned by 'cond'. Only one
+expression is evaluated, the first one with a
+non-<a href="nil.htm">NIL</a> predicate. Note that the predicate
+can be a symbol or expression.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(cond <font color="#008844">; sample CONDitional</font>
+ ((not T) (print "this won't print"))
+ ( NIL (print "neither will this"))
+ ( T (print "this will print"))
+ ( T (print "won't get here"))) <font color="#008844">; prints "this will print"</font>
+
+(defun print-what (parm)
+ (cond <font color="#008844">; start of COND</font>
+ ((numberp parm) (print "numeric")) <font color="#008844">; check for number</font>
+ ((consp parm) (print "list")) <font color="#008844">; check for list</font>
+ ((null parm) (print "nil")) <font color="#008844">; check for NIL</font>
+ (T (print "something")))) <font color="#008844">; catch-all</font>
+
+(print-what 'a) <font color="#008844">; prints "something"</font>
+(print-what 12) <font color="#008844">; prints "numeric"</font>
+(print-what NIL) <font color="#008844">; prints "nil"</font>
+(print-what '(a b)) <font color="#008844">; prints "list"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-019.htm#cond">cond</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/cons.htm b/docsrc/xlisp/xlisp-doc/reference/cons.htm
new file mode 100644
index 0000000..08edf55
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/cons.htm
@@ -0,0 +1,74 @@
+<html><head><title>XLISP cons</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>cons</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(cons <i>expr-car expr-cdr</i>)</dt>
+<dd><i>expr-car</i> - an expression<br>
+<i>expr-cdr</i> - an expression<br>
+returns - the new list</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'cons' function takes two expressions and constructs a new list from
+them. If the 'expr-cdr' is not a list, then the result will be a
+'dotted-pair'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(cons 'a 'b) <font color="#008844">; returns (A . B)</font>
+(cons 'a nil) <font color="#008844">; returns (A)</font>
+(cons 'a '(b)) <font color="#008844">; returns (A B)</font>
+(cons '(a b) '(c d)) <font color="#008844">; returns ((A B) C D)</font>
+(cons '(a b) 'c) <font color="#008844">; returns ((A B) . C)</font>
+(cons (- 4 3) '(2 3)) <font color="#008844">; returns (1 2 3)</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#cons">cons</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/consp.htm b/docsrc/xlisp/xlisp-doc/reference/consp.htm
new file mode 100644
index 0000000..9c2a8ef
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/consp.htm
@@ -0,0 +1,95 @@
+<html><head><title>XLISP consp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>consp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(consp <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the value is a
+cons, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p> The 'consp' predicate checks if the 'expr' is a non-empty list.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr' is a
+list, <a href="nil.htm">NIL</a> is returned otherwise. Note that
+if the 'expr' is <nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(consp '(a b)) <font color="#008844">; returns T - list</font>
+(consp '(a . b)) <font color="#008844">; returns T - dotted pair list</font>
+(consp #'defvar) <font color="#008844">; returns NIL - closure - macro</font>
+(consp (lambda (x) (print x))) <font color="#008844">; returns NIL - closure - lambda</font>
+(consp NIL) <font color="#008844">; returns NIL - NIL</font>
+(consp #(1 2 3)) <font color="#008844">; returns NIL - array</font>
+(consp *standard-output*) <font color="#008844">; returns NIL - stream</font>
+(consp 1.2) <font color="#008844">; returns NIL - float</font>
+(consp #'quote) <font color="#008844">; returns NIL - fsubr</font>
+(consp 1) <font color="#008844">; returns NIL - integer</font>
+(consp object) <font color="#008844">; returns NIL - object</font>
+(consp "str") <font color="#008844">; returns NIL - string</font>
+(consp #'car) <font color="#008844">; returns NIL - subr</font>
+(consp 'a) <font color="#008844">; returns NIL - symbol</font>
+</pre>
+
+<p><b>Note:</b> When applied to 'consp',
+<nobr><a href="nil.htm">NIL</a> ,</nobr> the empty list, returns
+a <a href="nil.htm">NIL</a>. <a href="global-obarray.html">NIL</a>
+or '() is used in many places as a list-class or atom-class expression. Both
+<a href="atom.htm">atom</a>
+and <nobr><a href="listp.htm">listp</a> ,</nobr> when applied to
+<nobr><a href="nil.htm">NIL</a> ,</nobr> return
+<a href="t.htm">&nbsp;T&nbsp;</a>. If you wish to check for a
+list where an empty list is still considered a valid list, use the
+<a href="listp.htm">listp</a> predicate.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#consp">consp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/continue.htm b/docsrc/xlisp/xlisp-doc/reference/continue.htm
new file mode 100644
index 0000000..44c620e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/continue.htm
@@ -0,0 +1,90 @@
+<html><head><title>XLISP continue</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>continue</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c, xldbug.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(continue)</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p> The 'continue' function attempts to continue from the
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a>.</nobr>
+This is valid only for <a href="cerror.htm">cerror</a>s [continuable
+errors]. If 'continue' is evaluated while not in a
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a> ,</nobr> an
+error is generated:</p>
+
+<pre class="example">
+<font color="#AA0000">error: not in a break loop</font>
+</pre>
+
+<p>In Nyquist, the error is:</p>
+
+<pre class="example">
+<font color="#AA0000">error: this error can't be continued</font>
+</pre>
+
+<p>This error does not cause XLISP to go into a break loop. 'continue' never
+actually returns a value.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(continue) <font color="#008844">; error: not in a break loop</font>
+(break "out") <font color="#008844">; break: out</font>
+(continue) <font color="#008844">; to continue from break loop</font>
+ <font color="#008844">; BREAK returns NIL</font>
+</pre>
+
+<p><b>Keystroke equivalent:</b> In the IBM PC and MS-DOS versions of XLISP,
+a 'Ctrl-p' key sequence has the same effect as doing a (continue). On a
+Macintosh, this can be accomplished by a pull-down menu or a 'Command-p'.
+<nobr>[I haven't</nobr> tested this with Nyquist.]</p>
+
+<p>See the
+<a href="../manual/xlisp-man-022.htm#continue">continue</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/cos.htm b/docsrc/xlisp/xlisp-doc/reference/cos.htm
new file mode 100644
index 0000000..26bd1f3
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/cos.htm
@@ -0,0 +1,71 @@
+<html><head><title>XLISP cos</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>cos</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(cos <i>expr</i>)</dt>
+<dd><i>expr</i> - floating point number/expression<br>
+returns - the cosine of the number</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'cos' function returns the cosine of the 'expr'. The 'expr' is
+in radians.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(cos 0.0) <font color="#008844">; returns 1</font>
+(cos (/ 3.14159 2)) <font color="#008844">; returns 1.32679e-06 (almost 0)</font>
+(cos .5) <font color="#008844">; returns 0.877583</font>
+(cos 0) <font color="#008844">; error: bad integer operation</font>
+(cos 1.) <font color="#008844">; error: bad integer operation</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#cos">cos</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/decf.htm b/docsrc/xlisp/xlisp-doc/reference/decf.htm
new file mode 100644
index 0000000..1714e3f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/decf.htm
@@ -0,0 +1,88 @@
+<html><head><title>XLISP decf</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>decf</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp macro (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>misc.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>decf</b> <i>symbol</i>)</nobr></dt>
+<dd><i>symbol</i> - a symbol with numerical value bound to it<br>
+returns - the new value of the symbol</dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, 'decf' is implemented as a Lisp macro:</p>
+
+<pre class="example">
+(defmacro <font color="#0000CC">decf</font> (symbol)
+ `(setf ,symbol (1- ,symbol)))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'decf' macro is used for decrementing a numerical value of a variable.
+<nobr>1 is</nobr> substracted to the number and the result is stored in the
+variable. <nobr>An error</nobr> is signalled if the variable doesn't hold a
+number.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq n 3) =&gt; 3
+(decf n) =&gt; 2
+n =&gt; 2
+(decf n) =&gt; 1
+
+(setq n 1.8) =&gt; 1.8
+(decf n) =&gt; 0.8
+(decf n) =&gt; -0.2
+(decf n) =&gt; -1.2
+n =&gt; -1.2
+
+(setq n #\a) =&gt; #\a
+(decf a) =&gt; <font color="#AA0000">error: bad argument type - #\a</font>
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/decrement.htm b/docsrc/xlisp/xlisp-doc/reference/decrement.htm
new file mode 100644
index 0000000..e41a3bd
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/decrement.htm
@@ -0,0 +1,75 @@
+<html><head><title>XLISP 1-</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>1&minus;</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(1- <i>expr</i>)</nobr></dt>
+<dd><i>expr</i> - integer or floating point number/expression<br>
+returns - the number minus one</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The <nobr>'1-' [decrement]</nobr> function subtracts one from a number
+and returns the result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(1- 1) =&gt; 0
+(1- 99.6) =&gt; 98.6
+(1- 1 2) =&gt; <font color="#AA0000">error: too many arguments</font>
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/defmacro.htm b/docsrc/xlisp/xlisp-doc/reference/defmacro.htm
new file mode 100644
index 0000000..c1dc67d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/defmacro.htm
@@ -0,0 +1,142 @@
+<html><head><title>XLISP defmacro</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>defmacro</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(defmacro <i>symbol arg-list body</i>)</dt>
+<dd><i>symbol</i> - the name of the macro being defined<br>
+<i>arg-list</i> - a list of the formal arguments to the macro of the form:<br>
+<dl>
+<dd>([<i>arg1</i> ... ]<br>
+&nbsp;[<a href="lambda-keyword-optional.htm">&amp;optional</a> <i>oarg1</i> ... ]<br>
+&nbsp;[<a href="lambda-keyword-rest.htm">&amp;rest</a> <i>rarg</i>]<br>
+&nbsp;[<a href="lambda-keyword-key.htm">&amp;key</a> ... ]<br>
+&nbsp;[<a href="lambda-keyword-aux.htm">&amp;aux</a> <i>aux1</i> ... ])<br></dd>
+</dl>
+<i>body</i> - a series of LISP forms (expressions) that are executed in order.<br>
+returns - the macro <i>symbol</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>'defmacro' defines a macro expansion. When the 'symbol' name of the macro
+expansion is encountered [similar to a function invocation], the 'body' of
+code that was defined in the 'defmacro' is expanded and replaces the macro
+invocation.</p>
+
+<p>All of the 'argN' formal arguments that are defined are required to
+appear in the invocation of the macro expansion.</p>
+
+<p>If there are any
+<a href="lambda-keyword-optional.htm">&amp;optional</a> arguments defined, they will
+be filled in order.</p>
+
+<p>If there is a <a href="lambda-keyword-rest.htm">&amp;rest</a>
+argument defined, and all the required formal arguments and
+<a href="lambda-keyword-optional.htm">&amp;optional</a> arguments are filled, any and
+all further parameters will be passed into the function via the 'rarg'
+argument. <b>Note</b> that there can be only one 'rarg' argument for
+<a href="lambda-keyword-rest.htm">&amp;rest</a>.</p>
+
+<p>If there are insufficient parameters for any of the
+<a href="lambda-keyword-optional.htm">&amp;optional</a> or
+<a href="lambda-keyword-rest.htm">&amp;rest</a> arguments, they will contain
+<a href="nil.htm">NIL</a>.</p>
+
+<p>The <a href="lambda-keyword-aux.htm">&amp;aux</a> variables are a mechanism
+for you to define variables local to the 'defmacro' execution. At the end of
+the function execution, these local symbols and their values are are
+removed.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defmacro plus (num1 num2) <font color="#008844">; define PLUS macro</font>
+ `(+ ,num1 ,num2)) <font color="#008844">; which is a 2 number add</font>
+
+(plus 1 2) <font color="#008844">; returns 3</font>
+(setq x 10) <font color="#008844">; set x to 10</font>
+(setq y 20) <font color="#008844">; set y to 20</font>
+(plus x y) <font color="#008844">; returns 30</font>
+
+(defmacro betterplus (num &amp;rest nlist) <font color="#008844">; define a BETTERPLUS macro</font>
+ `(+ ,num ,@nlist)) <font color="#008844">; which can take many numbers</font>
+
+(betterplus 1) <font color="#008844">; returns 1</font>
+(betterplus 1 2 3) <font color="#008844">; returns 6</font>
+(betterplus 1 2 3 4 5) <font color="#008844">; returns 15</font>
+
+(defmacro atest (x &amp;optional y &amp;rest z) <font color="#008844">; define ATEST macro</font>
+ (princ " x: ") (princ x) <font color="#008844">; \</font>
+ (princ " y: ") (princ y) <font color="#008844">; print out the parameters</font>
+ (princ " z: ") (princ z) (terpri) <font color="#008844">; / (un-evaluated)</font>
+ `(print (+ ,x ,y ,@z))) <font color="#008844">; add them together (eval'ed)</font>
+
+(atest 1) <font color="#008844">; prints - x: 1 y: NIL z: NIL</font>
+ <font color="#008844">; error: bad argument type</font>
+ <font color="#008844">; because (+ 1 NIL) isn't valid</font>
+(atest 1 2) <font color="#008844">; prints - x: 1 y: 2 z: NIL</font>
+ <font color="#008844">; returns 3</font>
+(atest 1 2 3) <font color="#008844">; prints - x: 1 y: 2 z: (3)</font>
+ <font color="#008844">; returns 6</font>
+(atest 1 2 3 4 5) <font color="#008844">; prints - x: 1 y: 2 z: (3 4 5)</font>
+ <font color="#008844">; returns 15</font>
+(setq a 99) <font color="#008844">; set A to 99</font>
+(setq b 101) <font color="#008844">; set B to 101</font>
+(atest a b) <font color="#008844">; prints - x: A y: B z: NIL</font>
+ <font color="#008844">; returns 200</font>
+(atest a b 9 10 11) <font color="#008844">; prints - x: A y: B z: (9 10 11)</font>
+ <font color="#008844">; returns 230</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp supports an optional documentation
+string as the first form in the 'body' of a 'defmacro' or
+<a href="defun.htm">defun</a>. XLISP will accept this string
+as a valid form, but it will not do anything special with it.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#defmacro">defmacro</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/defun.htm b/docsrc/xlisp/xlisp-doc/reference/defun.htm
new file mode 100644
index 0000000..aaa97c1
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/defun.htm
@@ -0,0 +1,134 @@
+<html><head><title>XLISP defun</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>defun</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(defun <i>symbol arg-list body</i>)</dt>
+<dd><i>symbol</i> - the name of the function being defined<br>
+<i>arg-list</i> - a list of the formal arguments to the function of the form:<br>
+<dl>
+<dd>([<i>arg1</i> ... ]<br>
+&nbsp;[<a href="lambda-keyword-optional.htm">&amp;optional</a> <i>oarg1</i> ... ]<br>
+&nbsp;[<a href="lambda-keyword-rest.htm">&amp;rest</a> <i>rarg</i>]<br>
+&nbsp;[<a href="lambda-keyword-key.htm">&amp;key</a> ... ]<br>
+&nbsp;[<a href="lambda-keyword-aux.htm">&amp;aux</a> <i>aux1</i> ... ])<br></dd>
+</dl>
+<i>body</i> - a series of LISP forms (expressions) that are executed in order.<br>
+returns - the function <i>symbol</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'defun' special form defines a new function or re-defines an
+exisiting function. The last form in 'body' that is evaluated is the value
+that is returned when the function is executed.</p>
+
+<p>All of the 'argN' formal arguments that are defined are required to
+appear in a call to the defined function.</p>
+
+<p>If there are any <a href="lambda-keyword-optional.htm">&amp;optional</a>
+arguments defined, they will be filled in order.</p>
+
+<p>If there is a <a href="lambda-keyword-rest.htm">&amp;rest</a> argument
+defined, and all the required formal arguments and
+<a href="lambda-keyword-optional.htm">&amp;optional</a> arguments are filled, any
+and all further parameters will be passed into the function via the 'rarg'
+argument. <b>Note</b> that there can be only one 'rarg' argument for
+<a href="lambda-keyword-rest.htm">&amp;rest</a>.</p>
+
+<p>If there are insufficient parameters for any of the
+<a href="lambda-keyword-optional.htm">&amp;optional</a> or
+<a href="lambda-keyword-rest.htm">&amp;rest</a> arguments, they will contain
+<a href="nil.htm">NIL</a>.</p>
+
+<p>The <a href="lambda-keyword-aux.htm">&amp;aux</a> variables are a mechanism
+for you to define variables local to the function definition. At the end of
+the function execution, these local symbols and their values are are
+removed.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun my-add <font color="#008844">; define function MY-ADD</font>
+ (num1 num2) <font color="#008844">; with 2 formal parameters</font>
+ (+ num1 num2)) <font color="#008844">; that adds the two paramters</font>
+
+(my-add 1 2) <font color="#008844">; returns 3</font>
+
+(defun foo <font color="#008844">; define function FOO</font>
+ (a b &amp;optional c d &amp;rest e) <font color="#008844">; with some of each argument</font>
+ (print a) (print b)
+ (print c) (print d) <font color="#008844">; print out each</font>
+ (print e))
+
+(foo) <font color="#008844">; error: too few arguments</font>
+(foo 1) <font color="#008844">; error: too few arguments</font>
+(foo 1 2) <font color="#008844">; prints 1 2 NIL NIL NIL</font>
+(foo 1 2 3) <font color="#008844">; prints 1 2 3 NIL NIL</font>
+(foo 1 2 3 4) <font color="#008844">; prints 1 2 3 4 NIL</font>
+(foo 1 2 3 4 5) <font color="#008844">; prints 1 2 3 4 (5)</font>
+(foo 1 2 3 4 5 6 7 8 9) <font color="#008844">; prints 1 2 3 4 (5 6 7 8 9)</font>
+
+(defun my-add <font color="#008844">; define function MY-ADD</font>
+ (num1 &amp;rest num-list &amp;aux sum) <font color="#008844">; with 1 arg, rest, 1 aux var</font>
+ (setq sum num1) <font color="#008844">; clear SUM</font>
+ (dotimes (i (length num-list) ) <font color="#008844">; loop through rest list</font>
+ (setq sum (+ sum (car num-list))) <font color="#008844">; add the number to sum</font>
+ (setq num-list (cdr num-list))) <font color="#008844">; and remove num from list</font>
+ sum) <font color="#008844">; return sum when finished</font>
+
+(my-add 1 2 3 4) <font color="#008844">; returns 10</font>
+(my-add 5 5 5 5 5) <font color="#008844">; returns 25</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp supports an optional documentation
+string as the first form in the 'body' of a
+<a href="defmacro.htm">defmacro</a> or 'defun'. XLISP will accept this
+string as a valid form, but it will not do anything special with it.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#defun">defun</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/delete-if-not.htm b/docsrc/xlisp/xlisp-doc/reference/delete-if-not.htm
new file mode 100644
index 0000000..7aed3a8
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/delete-if-not.htm
@@ -0,0 +1,107 @@
+<html><head><title>XLISP delete-if-not</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>delete-if-not</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(delete-if-not <i>test list</i>)</dt>
+<dd><i>test</i> - the test function to be performed<br>
+<i>list</i> - the list to delete from<br>
+returns - the list with non-matching elements deleted</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'delete-if-not' function destructively modifies the 'list' by
+removing the elements of the list that fail the 'test'. The destructive
+aspect of this operation means that the actual symbol value is used in the
+list-modifying operations, not a copy.</p>
+
+<p>'list' must evaluate to a valid list. An atom for 'list' will result in
+an error:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<p>Having <a href="nil.htm">NIL</a> for 'list' will return a
+<a href="nil.htm">NIL</a> as the result.</p>
+
+<h2>Examples</h2>
+
+<p><b>Caution:</b> there's a bug:</p>
+
+<pre class="example">
+(setq mylist '(1 2 3 4 5 6 7 8)) <font color="#008844">; set up a list of numbers</font>
+(delete-if-not 'evenp mylist) <font color="#008844">; returns (2 4 6 8)</font>
+(print mylist) <font color="#008844">; prints (1 2 4 6 8)</font> <font color="#AA0000">&lt;-BUG!</font>
+
+(setq mylist '(1 2 3 4 5 6 7 8)) <font color="#008844">; set up the same list again</font>
+(setq mylist (delete-if-not 'evenp mylist)) <font color="#008844">; returns (3 5 7)</font>
+(print mylist) <font color="#008844">; prints (3 5 7)</font> <font color="#009900">&lt;-OK</font>
+
+(setq mylist '(1 2 3 4 5 6 7 8)) <font color="#008844">; ... again ...</font>
+(delete-if-not 'oddp mylist) <font color="#008844">; returns (1 3 5 7)</font>
+(print mylist) <font color="#008844">; prints (1 3 5 7)</font> <font color="#009900">&lt;-OK</font>
+
+(setq mylist '(1 2 3 4 5 6 7 8)) <font color="#008844">; ... and again ...</font>
+(setq mylist (delete-if-not 'oddp mylist)) <font color="#008844">; returns (1 3 5 7)</font>
+(print mylist) <font color="#008844">; prints (1 3 5 7)</font> <font color="#009900">&lt;-OK</font>
+</pre>
+
+<p><b>Bug:</b> 'delete-if-not' will return the proper value, but it does not
+always properly modify the symbol containing the value. This seems to be
+true if the first element of the 'list' fails the test [and should be
+deleted]. It's always better to use 'delete-if-not' together with
+<a href="setq.htm">setq</a> or
+<a href="setf.htm">setf</a> as shown in <nobr>example 2</nobr>
+<nobr>and 4.</nobr></p>
+
+<p><b>Common Lisp:</b> XLISP does not support the ':from-end', ':start',
+':end', ':count' and ':key' keywords which Common Lisp does.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-017.htm#delete-if-not">delete-if-not</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/delete-if.htm b/docsrc/xlisp/xlisp-doc/reference/delete-if.htm
new file mode 100644
index 0000000..f0d0a1d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/delete-if.htm
@@ -0,0 +1,110 @@
+<html><head><title>XLISP delete-if</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>delete-if</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(delete-if <i>test list</i>)</dt>
+<dd><i>test</i> - the test function to be performed<br>
+<i>list</i> - the list to delete from<br>
+returns - the list with matching elements deleted</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'delete-if' function destructively modifies the 'list' by removing
+the elements of the list that pass the 'test'. The destructive aspect of
+this operation means that the actual symbol value is used in the
+list-modifying operations, not a copy.</p>
+
+<p>'list' must evaluate to a valid list. An atom for 'list' will result in
+an error:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<p>Having <a href="nil.htm">NIL</a> for 'list' will return a
+<a href="nil.htm">NIL</a> as the result.</p>
+
+<h2>Examples</h2>
+
+<p><b>Caution:</b> there's a bug:</p>
+
+<pre class="example">
+(setq mylist '(1 2 3 4 5 6 7 8)) <font color="#008844">; set up a list starting of numbers</font>
+(delete-if 'oddp mylist) <font color="#008844">; returns (2 4 6)</font>
+(print mylist) <font color="#008844">; prints (1 2 4 6)</font> <font color="#AA0000">&lt;-BUG!</font>
+
+(setq mylist '(1 2 3 4 5 6 7 8)) <font color="#008844">; set up the same list again</font>
+(setq mylist (delete-if 'oddp mylist)) <font color="#008844">; returns (2 4 6)</font>
+(print mylist) <font color="#008844">; prints (2 4 6)</font> <font color="#009900">&lt;-OK</font>
+
+(setq mylist '(1 2 3 4 5 6 7 8)) <font color="#008844">; ... again ...</font>
+(delete-if 'evenp mylist) <font color="#008844">; returns (1 3 5 7)</font>
+(print mylist) <font color="#008844">; prints (1 3 5 7)</font> <font color="#009900">&lt;-OK</font>
+
+(setq mylist '(1 2 3 4 5 6 7 8)) <font color="#008844">; ... and again ...</font>
+(setq mylist (delete-if 'evenp mylist)) <font color="#008844">; returns (1 3 5 7)</font>
+(print mylist) <font color="#008844">; prints (1 3 5 7)</font> <font color="#009900">&lt;-OK</font>
+</pre>
+
+<p><b>Bug:</b> 'delete-if' will return the proper value, but it does not
+always properly modify the symbol containing the value. This seems to be
+true if the first element of the 'list' passes the test [and should be
+deleted]. It's always better to use 'delete-if' together with
+<a href="setq.htm">setq</a> or
+<a href="setf.htm">setf</a> as shown in <nobr>example 2</nobr>
+<nobr>and 4.</nobr></p>
+
+<p><b>Note:</b> This bug can be reproduced with Nyquist 2.36 [in June 2007],
+so please take care.</p>
+
+<p><b>Common Lisp:</b> XLISP does not support the ':from-end', ':start',
+':end', ':count' and ':key' keywords which Common LISP does.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-017.htm#delete-if">delete-if</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/delete.htm b/docsrc/xlisp/xlisp-doc/reference/delete.htm
new file mode 100644
index 0000000..71baf5d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/delete.htm
@@ -0,0 +1,99 @@
+<html><head><title>XLISP delete</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>delete</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(delete <i>expr list</i> [{:test | :test-not} <i>test</i>])</dt>
+<dd><i>expr</i> - the expression to delete from <i>list</i><br>
+<i>list</i> - the list to destructively modify<br>
+<i>test</i> - optional test function (default is <a href="eql.htm">eql</a>)<br>
+returns - the list with the matching expressions deleted</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'delete' function destructively modifies the 'list' by removing the
+'expr'. The destructive aspect of this operation means that the actual
+symbol value is used in the list-modifying operations, not a copy. If 'expr'
+appears multiple times in the 'list', all occurances will be removed.</p>
+
+<p>'list' must evaluate to a valid list. An atom for 'list' will result in
+an error:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<p>Having <a href="nil.htm">NIL</a> for 'list' will return a
+<a href="nil.htm">NIL</a> as the result. You may specify your own
+test with the ':test' and ':test-not' keywords.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(delete 'b NIL) <font color="#008844">; returns NIL</font>
+(delete 'b '(a b b c b)) <font color="#008844">; returns (A C)</font>
+(setq a '(1 2 3)) (setq b a) <font color="#008844">; set up A and B</font>
+(delete '2 a) <font color="#008844">; returns (1 3)</font>
+(print a) <font color="#008844">; prints (1 3) A IS MODIFIED!</font>
+(print b) <font color="#008844">; prints (1 3) B IS MODIFIED!</font>
+(delete '(b) '((a)(b)(c))) <font color="#008844">; returns ((A) (B) (C))</font>
+ <font color="#008844">; EQL doesn't work on lists</font>
+(delete '(b) '((a)(b)(c)) :test 'equal) <font color="#008844">; returns ((A) (C))</font>
+</pre>
+
+<p><b>Note:</b> The 'delete' function can work with a list or string as the
+'expr'. However, the default <a href="eql.htm">eql</a> test does
+not work with lists or strings, only symbols and numbers. To make this work,
+you need to use the ':test' keyword along with
+<a href="equal.htm">equal</a> for 'test'.</p>
+
+<p><b>Common Lisp:</b> XLISP does not support the ':from-end', ':start',
+':end', ':count' and ':key' keywords which Common Lisp does.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-017.htm#delete">delete</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/digit-char-p.htm b/docsrc/xlisp/xlisp-doc/reference/digit-char-p.htm
new file mode 100644
index 0000000..99930d2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/digit-char-p.htm
@@ -0,0 +1,87 @@
+<html><head><title>XLISP digit-char-p</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>digit-char-p</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(digit-char-p <i>char</i>)</dt>
+<dd><i>char</i> - a character expression<br>
+returns - the digit weight if character is a digit,
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'digit-char-p' predicate function checks if the 'char' expression is
+a numeric digit. If 'char' is numeric digit, the equivalent integer value
+is returned, otherwise a <a href="nil.htm">NIL</a> is
+returned. Decimal digits are '0' [ASCII decimal <nobr>value 48]</nobr>
+through '9' [ASCII decimal <nobr>value 57].</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(digit-char-p #\0) <font color="#008844">; returns 0</font>
+(digit-char-p #\9) <font color="#008844">; returns 9</font>
+(digit-char-p #\A) <font color="#008844">; returns NIL</font>
+(digit-char-p #\a) <font color="#008844">; returns NIL</font>
+(digit-char-p #\.) <font color="#008844">; returns NIL</font>
+(digit-char-p #\-) <font color="#008844">; returns NIL</font>
+(digit-char-p #\+) <font color="#008844">; returns NIL</font>
+</pre>
+
+<p><b>Note:</b> Other non-digit characters used in numbers are NOT included:
+plus [+], minus [-], exponent <nobr>[e or E]</nobr> and decimal point
+[.].</p>
+
+<p><b>Common Lisp:</b> Common Lisp supports the use of an optional radix
+parameter. This option specifies numeric base. This allows the
+'digit-char-p' to function properly for hexadecimal digits [for example].
+Common LISP supports up to base 36 radix systems. XLISP does not support
+this radix parameter.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-026.htm#digit-char-p">digit-char-p</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/digit-char.htm b/docsrc/xlisp/xlisp-doc/reference/digit-char.htm
new file mode 100644
index 0000000..5d40c74
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/digit-char.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP digit-char</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>digit-char</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(digit-char <i>int</i>)</dt>
+<dd><i>int</i> - an integer expression<br>
+returns - the digit character or <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'digit-char' function takes an integer expression 'int' and converts
+it into a decimal digit character. So, an integer value of '0' produces the
+character '#\0'. An integer value of '1' produces the character '#\1' and so
+on. If a valid character can be produce it is returned, otherwise a
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(digit-char 0) <font color="#008844">; returns #\0</font>
+(digit-char 9) <font color="#008844">; returns #\9</font>
+(digit-char 10) <font color="#008844">; returns NIL</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp supports the use of an optional radix
+parameter. This option specifies numeric base. This allows the 'digit-char'
+to function properly for hexadecimal digits [for example]. Common Lisp
+supports up to <nobr>base 36</nobr> radix systems. XLISP does not support
+this radix parameter. Common Lisp also supports a font parameter which XLISP
+does not.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-026.htm#digit-char">digit-char</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/division.htm b/docsrc/xlisp/xlisp-doc/reference/division.htm
new file mode 100644
index 0000000..2fae40c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/division.htm
@@ -0,0 +1,101 @@
+<html><head><title>XLISP /</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>/</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(/ <i>expr1</i> ...)</nobr></dt>
+<dd><i>exprN</i> - integer or floating point number/expression<br>
+returns - the result of the division</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '/' function divides the first number given by the rest of the
+numbers and returns the result. If all the expressions are integers, the
+division is integer division. If any expression is a floating point number,
+then the division will be floating point division.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(/ 1) =&gt; 1
+(/ 1 2) =&gt; 0 <font color="#008844">; integer division</font>
+(float (/ 1 2)) =&gt; 0 <font color="#008844">; integer division</font>
+(/ (float 1) 2) =&gt; 0.5 <font color="#008844">; type contagion</font>
+(/ 1 1.0 2) =&gt; 0.5 <font color="#008844">; type contagion</font>
+(/ (float 1) 2 3) =&gt; 0.166667 <font color="#008844">; type contagion</font>
+(/ 1 1.0 2 3 4) =&gt; 0.0416667 <font color="#008844">; type contagion</font>
+</pre>
+
+<pre class="example">
+&gt; (print (+ 1 2 (* 3.5 (/ 3.9 1.45))))
+12.4138
+12.4138
+</pre>
+
+<p>See <a href="addition.htm">&nbsp;+&nbsp;</a>,
+<a href="multiplication.htm">&nbsp;*&nbsp;</a>,
+<a href="float.htm">float</a>, <a href="print.htm">print</a>.
+XLISP first prints the value on the screen, the second number is the
+return value.</p>
+
+<p>In XLISP, the type contagion depends on the order of
+occurrence:</p>
+
+<pre class="example">
+(/ 1 2 1.0) =&gt; 0 <font color="#008844">; because (/ 1 2) =&gt; 0 and (/ 0 1.0) =&gt; 0.0</font>
+(/ 1.0 2 1) =&gt; 0.5 <font color="#008844">; because (/ 1.0 2) =&gt; 0.5 and (/ 0.5 1) =&gt; 0.5</font>
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/do-star.htm b/docsrc/xlisp/xlisp-doc/reference/do-star.htm
new file mode 100644
index 0000000..7ff4415
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/do-star.htm
@@ -0,0 +1,144 @@
+<html><head><title>XLISP do*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>do*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(do* ([<i>binding</i> ... ]) (<i>test-expr</i> [<i>result</i>]) [<i>expr</i> ... ])</dt>
+<dd><i>binding</i> - a variable binding which is can take one of the following forms:<br>
+<dl><dd><i>symbol</i><br>
+(<i>symbol init-expr</i> [<i>step-expr</i>])
+<dl><dd><i>symbol</i> - a symbol<br>
+<i>init-expr</i> - an initialization expression for <i>symbol</i><br>
+<i>step-expr</i> - an expression with that <i>symbol</i> is updated
+at the end of each loop</dd></dl></dd></dl>
+<i>test-expr</i> - iteration ends when this expression returns a
+non-<a href="nil.htm">NIL</a> value<br>
+<i>result</i> - an optional expression for the returned result<br>
+<i>expr</i> - expressions comprising the body of the loop which may
+contain <a href="return.htm">return</a>s,
+<a href="go.htm">go</a>s or tags for
+<a href="go.htm">go</a><br>
+returns - the value of the last result expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p> The 'do*' special form is basically a 'while' looping construct that
+contains symbols [with optional initializations and updates], a loop test
+[with an optional return value] and a block of code [expressions] to
+evaluate. The 'do*' form evaluates its initializations and updates in
+sequential order [as opposed to <a href="do.htm">do</a> which
+doesn't]. The sequence of these events is:</p>
+
+<pre>
+ <i>init-expr</i> execution
+ while <i>test-expr</i> do
+ loop code execution
+ <i>step-expr</i> execution
+ end-while
+ return <i>result</i>
+</pre>
+
+<p>The first form after the 'do*' is the 'binding' form. It contains a
+series of 'symbols' or 'bindings'. The 'binding' is a 'symbol' followed by
+an initialization expression 'init-expr' and an optional 'step-expr'. If
+there is no 'init-expr', the 'symbol' will be initialized to
+<a href="nil.htm">NIL</a>. There is no specification as to the
+order of execution of the bindings or the step expressions, except that they
+happen all together.</p>
+
+<p> The 'do*' form will go through and create and initialize the symbols.
+This is followed by evaluating the 'test-expr'. If 'test-expr' returns a
+non-<a href="nil.htm">NIL</a> value, the loop will terminate. If
+'test-expr' returns a <a href="nil.htm">NIL</a> value then the
+'do*' will sequentially execute the 'exprs'. After execution of the loop
+'exprs', the 'symbols' are set to the step-exprs' [if the 'step-exprs'
+exist]. Then, the 'test-expr' is re-evaluated, and so on. The value of the
+'result' expression is evaluated and returned. If no 'result' is specified,
+<a href="nil.htm">NIL</a> is returned. When the 'do*' is finished
+execution, the 'symbols' that were defined will no longer exist or retain
+their values.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(do <font color="#008844">; DO example - won't work</font>
+ ((i 0) <font color="#008844">; var I=0</font>
+ (j i)) <font color="#008844">; var J=I (won't work)</font>
+ ((eql i j) "done") <font color="#008844">; test and result</font>
+ (print "looping")) <font color="#008844">; error: unbound variable - I</font>
+
+(do* <font color="#008844">; DO* example - will work</font>
+ ((i 0) <font color="#008844">; var I=0</font>
+ (j i)) <font color="#008844">; var J=I (proper exec. order)</font>
+ ((eql i j) "done") <font color="#008844">; test and result</font>
+ (print "looping")) <font color="#008844">; returns "done"</font>
+
+(do* (i) <font color="#008844">; DO* loop with var I</font>
+ ((eql i 0) "done") <font color="#008844">; test and result</font>
+ (print i) (setq i 0) (print i)) <font color="#008844">; prints NIL 0</font>
+ <font color="#008844">; returns "done"</font>
+
+(do* (i) <font color="#008844">; DO* loop with var I</font>
+ ((eql i 0)) <font color="#008844">; test but no result</font>
+ (print i) (setq i 0) (print i)) <font color="#008844">; prints NIL 0</font>
+ <font color="#008844">; returns NIL</font>
+
+(do* <font color="#008844">; DO* loop</font>
+ ((i 0 (setq i (1+ i))) <font color="#008844">; var I=0 increment by 1</font>
+ (j 10 (setq j (1- j)))) <font color="#008844">; var J=10 decrement by 1</font>
+ ((eql i j) "met in the middle") <font color="#008844">; test and result</font>
+ (princ i) (princ " ") <font color="#008844">; prints 0 10</font>
+ (princ j) (terpri)) <font color="#008844">; 1 9</font>
+ <font color="#008844">; 2 8</font>
+ <font color="#008844">; 3 7</font>
+ <font color="#008844">; 4 6</font>
+ <font color="#008844">; returns "met in the middle"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-020.htm#do*">do*</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/do.htm b/docsrc/xlisp/xlisp-doc/reference/do.htm
new file mode 100644
index 0000000..7b1258b
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/do.htm
@@ -0,0 +1,133 @@
+<html><head><title>XLISP do</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>do</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(do ([<i>binding</i> ... ]) (<i>test-expr</i> [<i>result</i>]) [<i>expr</i> ... ])</dt>
+<dd><i>binding</i> - a variable binding which is can take one of the following forms:<br>
+<dl><dd><i>symbol</i><br>
+(<i>symbol init-expr</i> [<i>step-expr</i>])
+<dl><dd><i>symbol</i> - a symbol<br>
+<i>init-expr</i> - an initialization expression for <i>symbol</i><br>
+<i>step-expr</i> - an expression with that <i>symbol</i> is updated
+at the end of each loop</dd></dl></dd></dl>
+<i>test-expr</i> - iteration ends when this expression returns a
+non-<a href="nil.htm">NIL</a> value<br>
+<i>result</i> - an optional expression for the returned result<br>
+<i>expr</i> - expressions comprising the body of the loop which may
+contain <a href="return.htm">return</a>s,
+<a href="go.htm">go</a>s or tags for
+<a href="go.htm">go</a><br>
+returns - the value of the last result expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'do' special form is basically a 'while' looping construct that
+contains symbols [with optional initializations and updates], a loop test
+[with an optional return value] and a block of code [expressions] to
+evaluate. The 'do' form evaluates its initializations and updates in no
+specified order [as opposed to <a href="do-star.htm">do*</a> which
+does it in sequential order]. The sequence of these events is:</p>
+
+<pre>
+ <i>init-expr</i> execution
+ while not <i>test-expr</i> do
+ loop code execution
+ <i>step-expr</i> execution
+ end-while
+ return <i>result</i>
+</pre>
+
+
+<p> The first form after the 'do' is the 'binding' form. It contains a
+series of 'symbols' or 'bindings'. The 'binding' is a 'symbol' followed by
+an initialization expression 'init-expr' and an optional 'step-expr'. If
+there is no 'init-expr', the 'symbol' will be initialized to
+<a href="nil.htm">NIL</a>. There is no specification as to the
+order of execution of the bindings or the step expressions, except that
+they happen all together.</p>
+
+<p>The 'do' form will go through and create and initialize the symbols.
+This is followed by evaluating the 'test-expr'. If 'test-expr' returns a
+non-<a href="nil.htm">NIL</a> value, the loop will terminate.
+If 'test-expr' returns a <a href="nil.htm">NIL</a> value then
+the 'do' will sequentially execute the 'exprs'. After execution of the loop
+'exprs', the 'symbols' are set to the 'step-exprs' [if the 'step-exprs'
+exist]. Then, the 'test-expr' is re-evaluated, and so on. The value of the
+'result' expression is evaluated and returned. If no 'result' is specified,
+<a href="nil.htm">NIL</a> is returned. When the 'do' is finished
+execution, the 'symbol's that were defined will no longer exist or retain
+their values.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(do (i) <font color="#008844">; DO loop with var I</font>
+ ((eql i 0) "done") <font color="#008844">; test and result</font>
+ (print i) (setq i 0) (print i)) <font color="#008844">; prints NIL 0</font>
+ <font color="#008844">; returns "done"</font>
+
+(do (i) <font color="#008844">; DO loop with var I</font>
+ ((eql i 0)) <font color="#008844">; test but no result</font>
+ (print i) (setq i 0) (print i)) <font color="#008844">; prints NIL 0</font>
+ <font color="#008844">; returns NIL</font>
+
+(do <font color="#008844">; DO loop</font>
+ ((i 0 (setq i (1+ i))) <font color="#008844">; var I=0 increment by 1</font>
+ (j 10 (setq j (1- j)))) <font color="#008844">; var J=10 decrement by 1</font>
+ ((eql i j) "met in the middle") <font color="#008844">; test and result</font>
+ (princ i) (princ " ") <font color="#008844">; prints 0 10</font>
+ (princ j) (terpri)) <font color="#008844">; 1 9</font>
+ <font color="#008844">; 2 8</font>
+ <font color="#008844">; 3 7</font>
+ <font color="#008844">; 4 6</font>
+ <font color="#008844">; returns "met in the middle"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-020.htm#do">do</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/dolist.htm b/docsrc/xlisp/xlisp-doc/reference/dolist.htm
new file mode 100644
index 0000000..ab6c637
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/dolist.htm
@@ -0,0 +1,111 @@
+<html><head><title>XLISP dolist</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>dolist</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(dolist (<i>symbol list-expr</i> [<i>result</i>]) [<i>expr</i> ... ])</dt>
+<dd><i>symbol</i> - a symbol<br>
+<i>list-expr</i> - a list expression<br>
+<i>result</i> - an optional expression for the returned result<br>
+<i>expr</i> - expressions comprising the body of the loop which may
+contain <a href="return.htm">return</a>s,
+<a href="go.htm">go</a>s or tags for
+<a href="go.htm">go</a><br>
+returns - the return value of the result expression or
+<a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p> The 'dolist' special form is basically a list-oriented 'for' looping
+construct that contains a loop 'symbol', a 'list-expr' to draw values from,
+an optional 'return' value and a block of code [expressions] to evaluate.
+The sequence of execution is:</p>
+
+<pre>
+ <i>symbol</i> := CAR of <i>list-expr</i>
+ temp-list := CDR of <i>list-expr</i>
+ while temp-list is not empty
+ loop code execution
+ <i>symbol</i> := CAR of temp-list
+ temp-list := CDR of temp-list
+ end-while
+ return <i>result</i>
+</pre>
+
+<p>The main loop 'symbol' will take on successive values from 'list-expr'.
+The 'dolist' form will go through and create and initialize the 'symbol'.
+After execution of the loop 'exprs', the 'symbol' is set to the next value
+in the 'list-expr'. This continues until the 'list-expr' has been exhausted.
+The value of the 'result' expression is evaluated and returned. If no
+'result' is specified, <a href="nil.htm">NIL</a> is returned.
+When the 'dolist' is finished execution, the 'symbol' that was defined will
+no longer exist or retain its value. If the 'list-expr' is an empty list,
+then no loop execution takes place and the 'result' is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+ (dolist (i () "done") <font color="#008844">; DOLIST with I loop variable</font>
+ (print "here")) <font color="#008844">; an empty list</font>
+ <font color="#008844">; and a return value</font>
+ <font color="#008844">; returns "done"</font>
+
+ (dolist (x '(a b c) "fini") <font color="#008844">; DOLIST with X loop variable</font>
+ (princ x)) <font color="#008844">; a list with (A B C)</font>
+ <font color="#008844">; and a return value</font>
+ <font color="#008844">; prints ABC returns "fini"</font>
+
+ (dolist (y '(1 2 3)) <font color="#008844">; DOLIST with Y loop variable</font>
+ (princ (* y y))) <font color="#008844">; a list with (1 2 3)</font>
+ <font color="#008844">; and no return value</font>
+ <font color="#008844">; prints 149 returns NIL</font>
+ <font color="#008844">; returns "met in the middle"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-020.htm#dolist">dolist</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/dotimes.htm b/docsrc/xlisp/xlisp-doc/reference/dotimes.htm
new file mode 100644
index 0000000..bcbaf82
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/dotimes.htm
@@ -0,0 +1,101 @@
+<html><head><title>XLISP dotimes</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>dotimes</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(dotimes (<i>symbol end-expr</i> [<i>result</i>]) [<i>expr</i> ... ])</dt>
+<dd><i>symbol</i> - a symbol<br>
+<i>end-expr</i> - an integer expression<br>
+<i>result</i> - an optional expression for the returned result<br>
+<i>expr</i> - expressions comprising the body of the loop which may
+contain <a href="return.htm">return</a>s,
+<a href="go.htm">go</a>s or tags for
+<a href="go.htm">go</a><br>
+returns - the return value of the result expression or
+<a href="nil.htm">NIL</a> </dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'dotimes' special form is basically a 'for' looping construct that
+contains a loop 'symbol', an 'end-expr' to specify the final value for
+'symbol', an optional 'return' value and a block of code [expressions] to
+evaluate. The sequence of execution is:</p>
+
+
+<pre>
+ <i>symbol</i> := 0
+ while <i>symbol</i> value is not equal to <i>end-expr</i> value
+ loop code execution
+ <i>symbol</i> := <i>symbol</i> + 1
+ end-while
+ return <i>result</i>
+</pre>
+
+<p>The main loop 'symbol' will take on successive values from zero to
+<nobr>('end-expr' - 1).</nobr> The 'dotimes' form will go through and create
+and initialize the 'symbol' to zero. After execution of the loop 'exprs',
+the 'symbol' value is incremented. This continues until the 'symbol' value
+is equal to 'end-expr'. The value of the 'result' expression is evaluated
+and returned. If no 'result' is specified,
+<a href="nil.htm">NIL</a> is returned. When the 'dotimes' is
+finished execution, the 'symbol' that was defined will no longer exist or
+retain its value. If the 'end-expr' is zero or less, then there will be no
+execution of the loop body's code.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(dotimes (i 4 "done") (princ i)) <font color="#008844">; prints 0123 returns "done"</font>
+(dotimes (i 4) (princ i)) <font color="#008844">; prints 0123 returns NIL</font>
+(dotimes (i 1) (princ i)) <font color="#008844">; prints 0 returns NIL</font>
+(dotimes (i 0) (princ i)) <font color="#008844">; returns NIL</font>
+(dotimes (i -9) (princ i)) <font color="#008844">; returns NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-020.htm#dotimes">dotimes</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/dribble.htm b/docsrc/xlisp/xlisp-doc/reference/dribble.htm
new file mode 100644
index 0000000..4fd0252
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/dribble.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP dribble</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>dribble</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlisp.c, xlsys.c, msstuff.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(dribble [<i>file-str</i>])</dt>
+<dd><i>file-str</i> - a string expression for a file name<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the transcript
+is opened, <a href="nil.htm">NIL</a> if it is closed</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'dribble' function, when called with a 'file-str' argument, opens the
+specified file and records a transcript of the XLISP session. When 'dribble'
+is called with no 'file-str' argument, it closes the current transcript file
+[if any]. 'dribble' will return
+<a href="t.htm">&nbsp;T&nbsp;</a> if the specified 'file-str'
+was successfully opened. It will return a
+<a href="nil.htm">NIL</a> if the 'file-str' was not opened
+successfully or if 'dribble' was evaluated to close a transcript.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(dribble "my-trans-file") <font color="#008844">; open file "my-trans-file"</font>
+ <font color="#008844">; for a session transcript</font>
+(+ 2 2)
+(dribble) <font color="#008844">; close the transcript</font>
+</pre>
+
+<p><b>Note:</b> It is also possible to start a transcript when invoking
+XLISP. To start XLISP with a transcript file of 'myfile' type in
+<nobr>'xlisp -tmyfile'.</nobr> <nobr>[I haven't</nobr> tested this with
+Nyquist.]</p>
+
+<p>See the
+<a href="../manual/xlisp-man-031.htm#dribble">dribble</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/echoenabled.htm b/docsrc/xlisp/xlisp-doc/reference/echoenabled.htm
new file mode 100644
index 0000000..08fa47e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/echoenabled.htm
@@ -0,0 +1,68 @@
+<html><head><title>XLISP echoenabled</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>echoenabled</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>sys/unix/osstuff.c, sys/win/wingui/winguistuff.c, sys/win/msvc/winstuff.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(echoenabled <i>flag</i>)</dt>
+<dd><i>flag</i> - <a href="t.htm">&nbsp;T&nbsp;</a> to enable echo, <a href="nil.htm">NIL</a> to disable<br>
+returns - <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'echoenabled' function turns console input echoing on or off.</p>
+
+<p><b>Note:</b> The 'echoenabled' function is only implemented under Linux
+and <nobr>Mac OS X.</nobr> <nobr>If Nyquist</nobr> I/O is redirected through
+pipes, the Windows version does not echo the input, but the Linux and Mac
+<nobr>versions do</nobr>. <nobr>You can</nobr> turn off echoing with this
+function. Under windows it is defined to do nothing.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/endp.htm b/docsrc/xlisp/xlisp-doc/reference/endp.htm
new file mode 100644
index 0000000..dd7587f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/endp.htm
@@ -0,0 +1,86 @@
+<html><head><title>XLISP endp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>endp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(endp <i>list</i>)</dt>
+<dd><i>list</i> - the list to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the list is
+empty, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'endp' predicate function checks to see if 'list' is an empty list.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if the list is
+empty, <a href="nil.htm">NIL</a> is returned if the list is
+not empty. The 'list' has to be a valid list. An error is returned if it
+is not a list:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(endp '()) <font color="#008844">; returns T - empty list</font>
+(endp ()) <font color="#008844">; returns T - still empty</font>
+(endp '(a b c)) <font color="#008844">; returns NIL</font>
+(setq a NIL) <font color="#008844">; set up a variable</font>
+(endp a) <font color="#008844">; returns T - value = empty list</font>
+(endp "a") <font color="#008844">; error: bad argument type - "a"</font>
+(endp 'a) <font color="#008844">; error: bad argument type - A</font>
+</pre>
+
+<p><b>Note:</b> The 'endp' predicate is different from the
+<a href="null.htm">null</a> and
+<a href="not.htm">not</a> predicates in that it requires a
+valid list.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#endp">endp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/eq.htm b/docsrc/xlisp/xlisp-doc/reference/eq.htm
new file mode 100644
index 0000000..48253ea
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/eq.htm
@@ -0,0 +1,93 @@
+<html><head><title>XLISP eq</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>eq</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c, xlsubr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>eq</b> <i>expr1 expr2</i>)</dt>
+<dd><i>exprN</i> - arbitrary Lisp expressions<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the expressions
+eveluate to the same internal value, <a href="nil.htm">NIL</a>
+otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>Two expressions are 'eq' if the expressions are identical. <nobr>The 'eq'
+function</nobr> tests if the results of the evaluated expressions point to
+the same memory location. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if
+both expressions evaluate to exactly the same internal value,
+<a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<p>Integer numbers being <a href="number-equal.htm">&nbsp;=&nbsp;</a> are
+'eq' as long as not stored in a CPU register, so the
+<a href="eql.htm">eql</a> function is recommended for testing integers. Also
+note that arrays, <nobr>floating-point</nobr> numbers, lists, and strings
+are only 'eq' if they are bound as variable values to the same symbol.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(eq 'a 'a) =&gt; T
+(eq 1 1) =&gt; T or NIL
+(eq 1 1.0) =&gt; NIL
+(eq 1.0 1.0) =&gt; NIL
+(eq "a" "a") =&gt; NIL
+(eq '(a b) '(a b)) =&gt; NIL
+(eq 'a 34) =&gt; NIL
+
+(setq a '(a b)) <font color="#008844">; set value of A to (A B)</font>
+(setq b a) <font color="#008844">; set B to point to A's value</font>
+(setq c '(a b)) <font color="#008844">; set value of C to different (A B)</font>
+(eq a b) =&gt; T
+(eq a c) =&gt; NIL
+</pre>
+
+<p>See also <a href="eql.htm">eql</a>, <a href="equal.htm">equal</a>,
+<nobr><a href="../examples/common-lisp/equalp.htm">cl:equalp</a></nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/eql.htm b/docsrc/xlisp/xlisp-doc/reference/eql.htm
new file mode 100644
index 0000000..8be4067
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/eql.htm
@@ -0,0 +1,99 @@
+<html><head><title>XLISP eql</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>eql</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c, xlsubr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(eql expr1 expr2)</dt>
+<dd><i>expr1</i> - the first expression to compare<br>
+<i>expr2</i> - the second expression to compare<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the expressions have the
+same symbolic or numerical value, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>Two expressions are 'eql':</p>
+
+<ul>
+
+<li><p>If the expressions <nobr>are <a href="eq.htm">eq</a></nobr>.</p></li>
+
+<li><p>If two numbers of the same type
+<nobr>are <a href="number-equal.htm">&nbsp;=&nbsp;</a></nobr>.</p></li>
+
+<li><p>If two characters
+<nobr>are <a href="char-equal-s.htm">char=</a></nobr>.</p></li>
+
+</ul>
+
+<p>In all other cases 'eql' <nobr>returns <a href="nil.htm">NIL</a></nobr>.
+Note that arrays, lists, and strings are only 'eql' if they
+<nobr>are <a href="eq.htm">eq</a></nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(eql 'a 'a) =&gt; T
+(eql 1 1) =&gt; T
+(eql 1 1.0) =&gt; NIL
+(eql 1.0 1.0) =&gt; T
+(eql "a" "a") =&gt; NIL
+(eql '(a b) '(a b)) =&gt; NIL
+(eql 'a 34) =&gt; NIL
+
+(setq a '(a b)) <font color="#008844">; set value of A to (A B)</font>
+(setq b a) <font color="#008844">; set B to point to A's value</font>
+(setq c '(a b)) <font color="#008844">; set value of C to different (A B)</font>
+(eql a b) =&gt; T
+(eql a c) =&gt; NIL
+</pre>
+
+<p>See also <a href="eq.htm">eq</a>, <a href="equal.htm">equal</a>,
+<nobr><a href="../examples/common-lisp/equalp.htm">cl:equalp</a></nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/equal.htm b/docsrc/xlisp/xlisp-doc/reference/equal.htm
new file mode 100644
index 0000000..8eceaad
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/equal.htm
@@ -0,0 +1,111 @@
+<html><head><title>XLISP equal</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>equal</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c, xlsubr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>equal</b> <i>expr1 expr2</i>)</dt>
+<dd><i>exprN</i> - arbitrary Lisp expressions<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the expressions
+are structurally equivalent, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>Two expressions <nobr>are 'equal'</nobr>:</p>
+
+<ul>
+
+<li><p>If the expressions
+<nobr>are <a href="eql.htm">eql</a></nobr>.</p></li>
+
+<li><p>If two strings
+<nobr>are <a href="string-equal-s.htm.htm">string=</a></nobr>.</p></li>
+
+<li><p>If the two <a href="../reference/car.htm">car</a>s in conses are
+'equal' and the two <a href="../reference/cdr.htm">cdr</a>s in
+conses <nobr>are 'equal'</nobr>.</p></li>
+
+</ul>
+
+<p>In all other cases 'equal'
+<nobr>returns <a href="nil.htm">NIL</a></nobr>. Note that arrays are only
+'equal' if they <nobr>are <a href="eq.htm">eq</a></nobr>.</p>
+
+<p>A way to view 'equal' is that if 'expr1' and 'expr2' were printed
+<nobr>[via <a href="print.htm">print</a></nobr> <nobr>or
+<a href="princ.htm">princ</a>]</nobr> <nobr>and they</nobr> look the same,
+then 'equal' will <nobr>return <a href="t.htm">&nbsp;T&nbsp;</a></nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(equal 'a 'a) =&gt; T
+(equal 1 1) =&gt; T
+(equal 1 1.0) =&gt; NIL <font color="#008844">; different number types</font>
+(equal 1.0 1.0) =&gt; T
+(equal "a" "a") =&gt; T
+(equal '(a b) '(a b)) =&gt; T
+(equal 'a 34) =&gt; NIL
+
+(setq a '(a b)) <font color="#008844">; set value of A to (A B)</font>
+(setq b a) <font color="#008844">; set B to point to A's value</font>
+(setq c '(a b)) <font color="#008844">; set value of C to different (A B)</font>
+(equal a b) =&gt; T
+(equal a c) =&gt; T
+
+(equal '(a b) '(A B)) =&gt; T
+(equal '(a b) '(c d)) =&gt; NIL
+
+(equal "a" "A") =&gt; NIL
+(equal "abc" "abcD") =&gt; NIL
+</pre>
+
+<p>See also <a href="eq.htm">eq</a>, <a href="eql.htm">eql</a>,
+<nobr><a href="../examples/common-lisp/equalp.htm">cl:equalp</a></nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/error.htm b/docsrc/xlisp/xlisp-doc/reference/error.htm
new file mode 100644
index 0000000..c96b663
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/error.htm
@@ -0,0 +1,161 @@
+<html><head><title>XLISP error</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>error, cerror</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c, xldbug.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>error</b> <i>err-msg</i> [<i>arg</i>])</dt>
+<dd><i>err-msg</i> - a string expression for the error message<br>
+<i>arg</i> - an optional argument expression, printed after the error message<br>
+returns - never returns</dd>
+</dl>
+
+<dl>
+<dt>(<b>cerror</b> <i>cont-msg err-msg</i> [<i>arg</i>])</dt>
+<dd><i>cont-msg</i> - a string expression for the <a href="continue.htm">continue</a> message<br>
+<i>err-msg</i> - a string expression for the error message<br>
+<i>arg</i> - an optional argument expression, printed after the error message<br>
+returns - <a href="nil.htm">NIL</a> when continued from the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr></dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'error' function allows the generation of a
+<nobr>non-correctable</nobr> error. <nobr>A non-correctable</nobr> error
+requires evaluation of a <nobr><a href="clean-up.htm">clean-up</a></nobr> or
+<nobr><a href="top-level.htm">top-level</a></nobr> function from within the
+XLISP <nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>
+to return to normal execution. <nobr>The form</nobr> of the message
+generated is:</p>
+
+<pre class="example">
+<font color="#AA0000">error:</font> <font color="#0000CC">err-msg</font> <font color="#AA0000">-</font> <font color="#0000CC">arg</font>
+</pre>
+
+<p>If a <a href="continue.htm">continue</a> function is evaluated within the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>, then a
+an error message is generated:</p>
+
+<pre class="example">
+<font color="#AA0000">error: this error can't be continued</font>
+</pre>
+
+<p>There is no return from the 'error' function.</p>
+
+<p>The 'cerror' function allows the generation of a correctable error.
+<nobr>A correctable</nobr> error can be corrected by some action
+within the XLISP <nobr><a href="../manual/xlisp.htm#break-loop">Break
+Loop</a></nobr>. <nobr>The form</nobr> of the message generated is:</p>
+
+<pre class="example">
+<font color="#AA0000">error:</font> <font color="#0000CC">err-msg</font> <font color="#AA0000">-</font> <font color="#0000CC">arg</font>
+<font color="#AA0000">if continued:</font> <font color="#0000CC">cont-msg</font>
+</pre>
+
+<p>In the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>,
+forms can be evaluated to correct the error. <nobr>If a</nobr>
+<a href="continue.htm">continue</a> function is evaluated within the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>, then
+<a href="nil.htm">NIL</a> is returned from 'cerror'. <nobr>If desired</nobr>, the
+<nobr><a href="clean-up.htm">clean-up</a></nobr> and
+<nobr><a href="top-level.htm">top-level</a></nobr> forms may be evaluated
+to abort out of the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>.</p>
+
+<p><div class="box">
+
+<p><b>Note:</b> The <a href="global-breakenable.htm">*breakenable*</a>
+variable needs to be <nobr>non-<a href="nil.htm">NIL</a></nobr> for 'error',
+'cerror' and system errors to be caught by the Nyquist/XLISP
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>.</p>
+
+</div></p>
+
+<h2>Examples</h2>
+
+<p>Example of a <nobr>non-correctable</nobr> error:</p>
+
+<pre class="example">
+&gt; (error "invalid argument" "arg")
+<font color="#AA0000">error: invalid argument - "arg"</font>
+
+1&gt; (continue) <font color="#008844">; the 1 before the &gt; indicates a break loop</font>
+<font color="#AA0000">error: this error can't be continued</font>
+
+1&gt; (clean-up)
+[ back to previous break level ]
+
+&gt; <font color="#008844">; no break loop any longer</font>
+</pre>
+
+<p>Example of system generated correctable error:</p>
+
+<pre class="example">
+&gt; (symbol-value 'f)
+<font color="#AA0000">error: unbound variable - F</font>
+<font color="#AA0000">if continued: try evaluating symbol again</font>
+
+1&gt; (setq f 123) <font color="#008844">; the 1 before the &gt; indicates a break loop</font>
+123 <font color="#008844">; return value of (setq f 123)</font>
+
+1&gt; (continue)
+123 <font color="#008844">; return value of (symbol-value 'f)</font>
+
+&gt; <font color="#008844">; no break loop any longer</font>
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#debugging-and-error-handling">Debugging and Error Handling</a></nobr></li>
+<li><nobr>XLISP 2.0 Manual &rarr; <a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr></li>
+<li><nobr>Tutorials &rarr; Nyquist &rarr; <a href="../tutorials/nyquist.htm#debugger-shortcuts">Debugger Shortcuts</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/errset.htm b/docsrc/xlisp/xlisp-doc/reference/errset.htm
new file mode 100644
index 0000000..b2094c8
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/errset.htm
@@ -0,0 +1,117 @@
+<html><head><title>XLISP errset</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>errset</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(errset <i>expr</i> [<i>print-flag</i>])</dt>
+<dd><i>expr</i> - an expression to be evaluated<br>
+<i>print-flag</i> - an optional expression
+[<a href="nil.htm">NIL</a> or
+non-<a href="nil.htm">NIL</a>]<br>
+returns - the value of the last expression
+<a href="cons.htm">cons</a>ed with
+<nobr><a href="nil.htm">NIL</a> ,</nobr> or
+<a href="nil.htm">NIL</a> on error</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'errset' special form is a mechanism that allows the trapping of
+errors within the execution of 'expr'.
+<a href="global-breakenable.htm">*breakenable*</a> must be set to
+<a href="nil.htm">NIL</a> for the 'errset' form to function. If
+<a href="global-breakenable.htm">*breakenable*</a> is
+<nobr>non-<a href="nil.htm">NIL</a> ,</nobr> the normal break
+loop will handle the error. For 'errset', if no error occurs within 'expr',
+the value of the last expression is <a href="cons.htm">cons</a>ed
+with <a href="nil.htm">NIL</a>. If an error occurs within 'expr',
+the error is caught by 'errset' and a <a href="nil.htm">NIL</a>
+is returned from 'errset'. If 'print-flag' is
+<nobr><a href="nil.htm">NIL</a> ,</nobr> the error message
+normally generated by 'expr' will not be printed. If 'print-flag' is
+non-<a href="nil.htm">NIL</a> or not present in the 'errset'
+form, the error message will be printed.</p>
+
+<p>Errors from <a href="error.htm">error</a> and
+<a href="cerror.htm">cerror</a> and system errors
+will be handled by 'errset'. Note that the
+<a href="cerror.htm">cerror</a> message will only include
+the error message portion, not the
+<a href="continue.htm">continue</a> message portion.
+<a href="break.htm">break</a> is not intercepted by 'errset'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq *breakenable* nil) <font color="#008844">; do not enter the break-loop on errors</font>
+(errset (error "hi" "ho")) <font color="#008844">; prints error: hi - "ho" returns NIL</font>
+(errset (cerror "hi" "ho" "he")) <font color="#008844">; prints error: ho - "he" returns NIL</font>
+(errset (error "hey" "ho") NIL) <font color="#008844">; returns NIL</font>
+(errset (break "hey")) <font color="#008844">; break: hey - if continued: return from BREAK</font>
+(continue) <font color="#008844">; [ continue from break loop ]</font>
+(errset (+ 1 5)) <font color="#008844">; returns (6)</font>
+(errset (+ 1 "a") NIL) <font color="#008844">; returns NIL</font>
+(setq *breakenable* t) <font color="#008844">; re-enable the break-loop on errors</font>
+</pre>
+
+<p>How to keep XLISP from signalling an error:</p>
+
+<pre class="example">
+(setq *breakenable* nil)
+(errset <font color="#0000CC">expression-causing-an-error</font> t) <font color="#008844">; print the error message</font>
+(errset <font color="#0000CC">expression-causing-an-error</font>) <font color="#008844">; do NOT print the error message</font>
+</pre>
+
+<p><b>Note:</b> Be sure to set
+<a href="global-breakenable.htm">*breakenable*</a> to
+<a href="nil.htm">NIL</a> before using 'errset' and to
+non-<a href="nil.htm">NIL</a> after using 'errset'. <nobr>If you</nobr> don't
+reset <nobr><a href="global-breakenable.htm">*breakenable*</a> ,</nobr> no
+errors will be reported.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-022.htm#errset">errset</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/eval.htm b/docsrc/xlisp/xlisp-doc/reference/eval.htm
new file mode 100644
index 0000000..9a5c69f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/eval.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP eval</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>eval</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c, xleval.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(eval <i>expression</i>)</dt>
+<dd><i>expression</i> - an arbitrary expression<br>
+returns - the result of evaluating the expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'eval' function evaluates the 'expression' and returns the resulting
+value.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(eval '(+ 2 2)) <font color="#008844">; returns 4</font>
+(eval (cons '+ '(2 2 2))) <font color="#008844">; returns 6</font>
+(eval (list '+ '2 '3 )) <font color="#008844">; returns 5</font>
+
+(setq a 10) <font color="#008844">; set up A with value 10</font>
+(setq b 220) <font color="#008844">; set up B with value 220</font>
+
+(eval (list '+ a b )) <font color="#008844">; returns 230 because</font>
+ <font color="#008844">; (list '+ a b) =&gt; '(+ 10 220)</font>
+
+(eval (list '+ 'a b)) <font color="#008844">; returns 230 because</font>
+ <font color="#008844">; (list '+ 'a b) =&gt; '(+ A 220)</font>
+ <font color="#008844">; and A has the value 10</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-012.htm#eval">eval</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/evalhook.htm b/docsrc/xlisp/xlisp-doc/reference/evalhook.htm
new file mode 100644
index 0000000..86588d0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/evalhook.htm
@@ -0,0 +1,142 @@
+<html><head><title>XLISP evalhook</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>evalhook</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c, xleval.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(evalhook<i> expr eval-expr apply-expr</i> [<i>env</i>])</dt>
+<dd><i>expr</i> - an expression to evaluate<br>
+<i>eval-expr</i> - an expression for the evaluation routine<br>
+<i>apply-expr</i> - an expression for
+<a href="apply.htm">apply</a> [not used]<br>
+<i>env</i> - an environment expression, default is
+<a href="nil.htm">NIL</a><br>
+returns - the result of evaluating the expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'evalhook' function is a function that performs evaluation.
+The routine specified by 'eval-expr' is called with the 'expr' and 'env'
+parameters. If 'eval-expr' is
+<nobr><a href="nil.htm">NIL</a> ,</nobr> then the normal system
+evaluator is called. The 'apply-hook' is a dummy parameter that is not used
+in the current XLISP system. The 'expr' contains the expression to be
+evaluated. If the 'env' argument to 'evalhook' is not specified,
+<a href="nil.htm">NIL</a> is used, which specifies to use the
+current global environment. The 'env', if specified, is a structure composed
+of dotted pairs constructed of the symbol and its value which have the
+form:</p>
+
+<pre class="example">
+(((<font color="#008844"><i>sym1</i></font> . <font color="#008844"><i>val1</i></font>) (<font color="#008844"><i>sym2</i></font> . <font color="#008844"><i>val2</i></font>) ... )))
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq a 100) <font color="#008844">; set up global values</font>
+(setq b 200)
+
+(evalhook '(+ a b) NIL NIL) <font color="#008844">; returns 300 - no 'env' was given</font>
+
+(evalhook '(+ a b) NIL NIL <font color="#008844">; eval with a=1 and b=2</font>
+ '((((a . 1)(b . 2))))) <font color="#008844">; returns 3</font>
+
+(defun myeval (exp env) <font color="#008844">; define MYEVAL routine</font>
+ (princ "exp: ") (print exp)
+ (princ "env: ") (print env)
+ (evalhook exp #'myeval NIL env))
+
+(defun foo (a) (+ a a)) <font color="#008844">; create simple function</font>
+(setq *evalhook* #'myeval) <font color="#008844">; and install MYEVAL as hook</font>
+
+(foo 1) <font color="#008844">; prints exp: (FOO 1) env:NIL</font>
+ <font color="#008844">; exp: 1 env:NIL</font>
+ <font color="#008844">; exp: (+ A A) env:((((A . 1))))</font>
+ <font color="#008844">; exp: A env:((((A . 1))))</font>
+ <font color="#008844">; exp: A env:((((A . 1))))</font>
+ <font color="#008844">; returns 2</font>
+
+(top-level) <font color="#008844">; to clean up *evalhook*</font>
+</pre>
+
+<p><b>Note:</b> The 'evalhook' function and
+<a href="global-evalhook.htm">*evalhook*</a> system variable are very useful
+in the construction of debugging facilities within XLISP. The
+<a href="trace.htm">trace</a> and
+<a href="untrace.htm">untrace</a> functions use 'evalhook' and
+<a href="global-evalhook.htm">*evalhook*</a> to implement their
+functionality. The other useful aspect of 'evalhook' and
+<a href="global-evalhook.htm">*evalhook*</a> is to help in understanding
+how XLISP works to see the expressions, their environment and how they
+are evaluated.</p>
+
+<p><b>Caution:</b> Be careful when using
+<a href="global-evalhook.htm">*evalhook*</a> and 'evalhook'.
+If you put in a bad definition into
+<nobr><a href="global-evalhook.htm">*evalhook*</a> ,</nobr> you might not
+be able to do anything and will need to exit XLISP.</p>
+
+<p><b>Unusual behaviour:</b> The 'evalhook' function and
+<a href="global-evalhook.htm">*evalhook*</a> system variable, by their
+nature, cause some unusual things to happen. After you have set
+<a href="global-evalhook.htm">*evalhook*</a> to some
+non-<a href="nil.htm">NIL</a> value, your function will be
+called. However, when you are all done and set
+<a href="global-evalhook.htm">*evalhook*</a> to
+<a href="nil.htm">NIL</a> or some other new routine, it will
+never be set. This is because the 'xevalhook' function [in the 'xlbfun.c'
+source file] saves the old value of
+<a href="global-evalhook.htm">*evalhook*</a> before calling your routine,
+and then restores it after the evaluation. The mechanism to reset
+<a href="global-evalhook.htm">*evalhook*</a> is to execute the
+<a href="top-level.htm">top-level</a> function, which sets
+<a href="global-evalhook.htm">*evalhook*</a> to
+<a href="nil.htm">NIL</a>.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-022.htm#evalhook">evalhook</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/evenp.htm b/docsrc/xlisp/xlisp-doc/reference/evenp.htm
new file mode 100644
index 0000000..3f85fd7
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/evenp.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP evenp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>evenp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(evenp <i>expr</i>)</dt>
+<dd><i>expr</i> - the integer numeric expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the integer
+is even, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'evenp' predicate function checks to see if the number 'expr' is
+even. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if the
+number is even, <a href="nil.htm">NIL</a> is returned
+otherwise.</p>
+
+<p>An error is generated if the 'expr' is not a numeric expression:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<p>An error is generated if the 'expr' is a floating point number:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad floating point operation</font>
+</pre>
+
+<p>Zero is an even number.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(evenp 0) <font color="#008844">; returns T</font>
+(evenp 1) <font color="#008844">; returns NIL</font>
+(evenp 2) <font color="#008844">; returns T</font>
+(evenp -1) <font color="#008844">; returns NIL</font>
+(evenp -2) <font color="#008844">; returns T</font>
+(evenp 14.0) <font color="#008844">; error: bad floating point operation</font>
+(evenp 'a) <font color="#008844">; error: bad argument type</font>
+(setq a 2) <font color="#008844">; set value of A to 2</font>
+(evenp a) <font color="#008844">; returns T</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#evenp">evenp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/exit.htm b/docsrc/xlisp/xlisp-doc/reference/exit.htm
new file mode 100644
index 0000000..a6a4124
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/exit.htm
@@ -0,0 +1,69 @@
+<html><head><title>XLISP exit</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>exit</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsys.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(exit)</dt>
+<dd>returns - never returns</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'exit' function causes the current XLISP session to be terminated.
+<nobr>It never</nobr> returns.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(exit) <font color="#008844">; never returns</font>
+</pre>
+
+<p><b>Note:</b> When XLISP is exited, any
+<a href="dribble.htm">dribble</a> transcript file is automatically
+closed. However, other open files are not closed, and so may lose some
+information.</p>
+
+<p>See also <a href="quit.htm">quit</a>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/exp.htm b/docsrc/xlisp/xlisp-doc/reference/exp.htm
new file mode 100644
index 0000000..8a56f40
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/exp.htm
@@ -0,0 +1,76 @@
+<html><head><title>XLISP exp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>exp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(exp <i>power</i>)</dt>
+<dd><i>power</i> - floating point number/expression<br>
+returns - e to the x power</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p> The 'exp' function calculates e [2.7128] raised to the specified
+'power' and returns the result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(exp 0.0) <font color="#008844">; returns 1</font>
+(exp 1.0) <font color="#008844">; returns 2.71828 - e</font>
+(exp 2.0) <font color="#008844">; returns 7.38906</font>
+(exp 10.0) <font color="#008844">; returns 22026.5</font>
+(exp 0) <font color="#008844">; error: bad integer operation</font>
+</pre>
+
+<p><b>Note:</b> 'exp' with a large 'power' like 1000.0 causes an incorrect
+value to be generated, with no error. The returned value will be a very
+large floating point number near the computer's limit [something like
+1.79000e+308].</p>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#exp">exp</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/expand.htm b/docsrc/xlisp/xlisp-doc/reference/expand.htm
new file mode 100644
index 0000000..5ed5a28
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/expand.htm
@@ -0,0 +1,91 @@
+<html><head><title>XLISP expand</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>expand</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsys.c, xldmem.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(expand <i>segments</i>)</dt>
+<dd><i>segments</i> - the number of segments to add as an integer expression<br>
+returns - the number of segments added</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'expand' function expands memory by the specified number of
+'segments'. The number of 'segments' added is returned as the result. The
+power up default is 1000 nodes per segment. Note that
+<a href="alloc.htm">alloc</a> allows you to change the number of
+nodes per segment.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(room) <font color="#008844">; prints Nodes: 8000</font>
+ <font color="#008844">; Free nodes: 5622</font>
+ <font color="#008844">; Segments: 6</font>
+ <font color="#008844">; Allocate: 1000</font>
+ <font color="#008844">; Total: 92586</font>
+ <font color="#008844">; Collections: 8</font>
+ <font color="#008844">; returns NIL</font>
+
+(expand 2) <font color="#008844">; add more nodes</font>
+
+(room) <font color="#008844">; prints Nodes: 10000</font>
+ <font color="#008844">; Free nodes: 7608</font>
+ <font color="#008844">; Segments: 8</font>
+ <font color="#008844">; Allocate: 1000</font>
+ <font color="#008844">; Total: 112602</font>
+ <font color="#008844">; Collections: 8</font>
+ <font color="#008844">; returns NIL</font>
+</pre>
+
+<p><b>Note:</b> When <a href="gc.htm">gc</a> is called or an
+automatic garbage collection occurs, if the amount of free memory is still
+low after the garbage collection, the system attempts to add more segments
+[an automatic 'expand'].</p>
+
+<p>See the
+<a href="../manual/xlisp-man-031.htm#expand">expand</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/expt.htm b/docsrc/xlisp/xlisp-doc/reference/expt.htm
new file mode 100644
index 0000000..7b9a4f6
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/expt.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP expt</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>expt</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(expt <i>expr</i> [<i>power</i> ... ])</dt>
+<dd><i>expr</i> - floating point number/expression<br>
+<i>power</i> - integer or floating point number/expression<br>
+returns - x to the y power</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'expt' function raises the 'expr' to the specified 'power' and
+returns the result. If there is no 'power' specified, the 'expr' is
+returned. If there are multiple 'powers', they will be applied sequentially
+to 'expr'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(expt 2.0 2) <font color="#008844">; returns 4</font>
+(expt 2.0 10) <font color="#008844">; returns 1024</font>
+(expt 2 2) <font color="#008844">; error: bad integer operation</font>
+(expt 99.9) <font color="#008844">; returns 99.9</font>
+(expt 2.0 2.0 2.0) <font color="#008844">; returns 16</font>
+</pre>
+
+<p><b>Note:</b> 'expt' with a large values like (expt 999.9 999.9) causes an
+incorrect value to be generated, with no error. The returned value will be a
+very large floating point number near the computer's limit [something like
+1.79000e+308].</p>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#expt">expt</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/fboundp.htm b/docsrc/xlisp/xlisp-doc/reference/fboundp.htm
new file mode 100644
index 0000000..cc014f8
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/fboundp.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP fboundp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>fboundp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(fboundp <i>symbol</i>)</dt>
+<dd><i>symbol</i> - the symbol expression to check for a value<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if a functional
+value is bound to the symbol, <a href="nil.htm">NIL</a>
+otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'fboundp' predicate function checks to see if 'symbol' is a symbol
+with a function definition bound to it.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'symbol' has a
+function value, <a href="nil.htm">NIL</a> is returned otherwise.
+Note that 'symbol' is a symbol expression, it is evaluated and the resulting
+expression is the one that is checked.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun foo (x) (print x)) <font color="#008844">; set up function FOO</font>
+(fboundp 'foo) <font color="#008844">; returns T - FOO is closure</font>
+(fboundp 'car) <font color="#008844">; returns T - CAR is subr</font>
+
+(setq myvar 'goo) <font color="#008844">; set up MYVAR to have value GOO</font>
+(fboundp myvar) <font color="#008844">; returns NIL - because GOO has no value yet</font>
+(defmacro goo () (print "hi")) <font color="#008844">; define GOO macro</font>
+(fboundp myvar) <font color="#008844">; returns T</font>
+
+(fboundp 'a) <font color="#008844">; returns NIL</font>
+(fboundp '1) <font color="#008844">; error: bad argument type - 1</font>
+(fboundp "hi") <font color="#008844">; error: bad argument type - "hi"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#fboundp">fboundp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/filep.htm b/docsrc/xlisp/xlisp-doc/reference/filep.htm
new file mode 100644
index 0000000..6db78bf
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/filep.htm
@@ -0,0 +1,75 @@
+<html><head><title>XLISP filep</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>filep</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>filep</b> <i>expr</i>)</nobr></dt>
+<dd><i>expr</i> - an Lisp expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if <i>expr</i> is of type FPTR,
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, 'filep' is implemented as a Lisp function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">filep</font> (x)
+ (eq (type-of x) 'FPTR))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'filep' function returns <a href="t.htm">&nbsp;T&nbsp;</a> if
+'expr' is of type FPTR, <a href="nil.htm">NIL</a> otherwise</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/find-in-xlisp-path.htm b/docsrc/xlisp/xlisp-doc/reference/find-in-xlisp-path.htm
new file mode 100644
index 0000000..ee671d1
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/find-in-xlisp-path.htm
@@ -0,0 +1,66 @@
+<html><head><title>XLISP find-in-xlisp-path</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>find-in-xlisp-path</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>path.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(find-in-xlisp-path <i>filename</i>)</dt>
+<dd><i>filename</i> - the name of the file to search for as string<br>
+returns - a full path name to the first occurrence found</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>find-in-xlisp-path</nobr>' function searches the XLISP search
+path <nobr>[e.g. XLISPPATH</nobr> from the environment] for 'filename'.
+<nobr>If 'filename'</nobr> is not found as is, and there is no file
+extension, '.lsp' is appended to filename and searched again. <nobr>The
+current</nobr> directory is not searched.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/first.htm b/docsrc/xlisp/xlisp-doc/reference/first.htm
new file mode 100644
index 0000000..054167a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/first.htm
@@ -0,0 +1,74 @@
+<html><head><title>XLISP first</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>first</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(first <i>expr</i>)</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - the first element of the expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'first' function returns the first element of the expression.
+If the first expression is itself a list, then the sublist is returned.
+If the list is <nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(first '(a b c)) <font color="#008844">; returns A</font>
+(first '((a b) c d)) <font color="#008844">; returns (A B)</font>
+(first NIL) <font color="#008844">; returns NIL</font>
+(first 'a) <font color="#008844">; error: bad argument type</font>
+(setq children '(amanda ben)) <font color="#008844">; set up variable CHILDREN</font>
+(first children) <font color="#008844">; returns AMANDA</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#first">first</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/flatc.htm b/docsrc/xlisp/xlisp-doc/reference/flatc.htm
new file mode 100644
index 0000000..0bf8f87
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/flatc.htm
@@ -0,0 +1,74 @@
+<html><head><title>XLISP flatc</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>flatc</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c, xlprin.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(flatc <i>expr</i>)</dt>
+<dd><i>expr</i> - an expression<br>
+returns - the length</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'flatc' function determines the character length that would be
+printed if the 'expr' were printed using
+<a href="princ.htm">princ</a>. This means that the 'expr' would be
+printed without a new-line. If 'expr' is a string, it would not be printed
+with quotes around the string. The print character length is returned as the
+result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(flatc 1234) <font color="#008844">; returns 4</font>
+(flatc '(a b c)) <font color="#008844">; returns 7</font>
+(flatc "abcd") <font color="#008844">; returns 4</font>
+(flatc 'mybigsymbol) <font color="#008844">; returns 11</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-027.htm#flatc">flatc</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/flatsize.htm b/docsrc/xlisp/xlisp-doc/reference/flatsize.htm
new file mode 100644
index 0000000..57da49c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/flatsize.htm
@@ -0,0 +1,74 @@
+<html><head><title>XLISP flatsize</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>flatsize</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c, xlprin.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(flatsize <i>expr</i>)</dt>
+<dd><i>expr</i> - an expression<br>
+returns - the length</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'flatsize' function determines the character length that would be
+printed if the 'expr' were printed using <a
+href="prin1.htm">prin1</a>. This means that the 'expr' would be
+printed without a new-line. If 'expr' is a string, it would be printed with
+quotes around the string. The print character length is returned as the
+result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(flatsize 1234) <font color="#008844">; returns 4</font>
+(flatsize '(a b c)) <font color="#008844">; returns 7</font>
+(flatsize "abcd") <font color="#008844">; returns 6</font>
+(flatsize 'mybigsymbol) <font color="#008844">; returns 11</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-027.htm#flatsize">flatsize</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/flet.htm b/docsrc/xlisp/xlisp-doc/reference/flet.htm
new file mode 100644
index 0000000..aa5cc5d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/flet.htm
@@ -0,0 +1,87 @@
+<html><head><title>XLISP flet</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>flet</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(flet ([<i>function</i> ... ]) <i>expr</i> ... )</dt>
+<dd><i>function</i> - a function definition binding which is of the form:
+<dl><dd>(<i>symbol arg-list body</i>)
+<dl><dd><i>symbol</i> - the symbol specifying the function name<br>
+<i>arg-list</i> - the argument list for the function <br>
+<i>body</i> - the body of the function</dd></dl></dd></dl>
+<i>expr</i> - an expression<br>
+returns - the value of the last expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'flet' special form is basically a local block construct that allows
+local 'function' definitions followed by a block of code to evaluate. The
+first form after the 'flet' is the 'binding' form. It contains a series of
+'functions'. The 'flet' form will go through and define the 'symbols' of the
+'functions' and then sequentially execute the 'exprs'. The value of the last
+'expr' evaluated is returned. When the 'flet' is finished execution, the
+'symbols' that were defined will no longer exist.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(flet ((fuzz (x) (+ x x))) <font color="#008844">; an FLET with FUZZ local function</font>
+ (fuzz 2)) <font color="#008844">; returns 4</font>
+ <font color="#008844">; FUZZ no longer exists</font>
+
+(fuzz 2) <font color="#008844">; error: unbound function - FUZZ</font>
+
+ <font color="#008844">; an empty flet</font>
+(flet () (print 'a)) <font color="#008844">; prints A</font>
+</pre>
+
+<p><b>Note:</b> 'flet' does not allow recursive definitions of functions.
+The <a href="labels.htm">labels</a> special form does allow this.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-019.htm#flet">flet</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/float.htm b/docsrc/xlisp/xlisp-doc/reference/float.htm
new file mode 100644
index 0000000..b20c35d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/float.htm
@@ -0,0 +1,71 @@
+<html><head><title>XLISP float</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>float</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(float <i>expr</i>)</dt>
+<dd><i>expr</i> - integer or floating point number/expression<br>
+returns - the result as a floating point number</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'float' function takes a numeric expression and returns the result
+as a floating point number.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(/ 1 2) <font color="#008844">; returns 0 (integer division)</font>
+(/ (float 1) 2) <font color="#008844">; returns 0.5</font>
+(float (/ 1 2)) <font color="#008844">; returns 0 (integer division)</font>
+(/ 1 2 3) <font color="#008844">; returns 0 (integer division)</font>
+(/ (float 1) 2 3) <font color="#008844">; returns 0.166667</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#float">float</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/floatp.htm b/docsrc/xlisp/xlisp-doc/reference/floatp.htm
new file mode 100644
index 0000000..ea4c1b8
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/floatp.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP floatp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>floatp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(floatp <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the value is a
+floating point number, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'floatp' predicate function checks if an 'expr' is a floating point
+number. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr'
+is a floating point number, <a href="nil.htm">NIL</a> is returned
+otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(floatp 1.2) <font color="#008844">; returns T - float</font>
+(floatp '1.2) <font color="#008844">; returns T - still a float</font>
+(setq a 1.234)
+(floatp a) <font color="#008844">; returns T - evaluates to float</font>
+(floatp 0.0) <font color="#008844">; returns T - float zero</font>
+(floatp 0) <font color="#008844">; returns NIL - integer zero</font>
+(floatp 1) <font color="#008844">; returns NIL - integer</font>
+(floatp #x034) <font color="#008844">; returns NIL - integer readmacro</font>
+(floatp 'a) <font color="#008844">; returns NIL - symbol</font>
+(floatp #\a) <font color="#008844">; returns NIL - character</font>
+(floatp NIL) <font color="#008844">; returns NIL - NIL</font>
+(floatp #(0 1 2)) <font color="#008844">; returns NIL - array</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#floatp">floatp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/format.htm b/docsrc/xlisp/xlisp-doc/reference/format.htm
new file mode 100644
index 0000000..8a8bdca
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/format.htm
@@ -0,0 +1,161 @@
+<html><head><title>XLISP format</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>format</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(format destination format [expr1 ... ])</dt>
+<dd><i>destination</i> - a required destination [see below]<br>
+<i>format</i> - a format string<br>
+<i>exprN</i> - an expression<br>
+returns - output string if stream is
+<nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<p>The 'destination' must be a file pointer, a stream,
+<a href="nil.htm">NIL</a> [to create a string] or
+<a href="t.htm">&nbsp;T&nbsp;</a> [to print to
+<a href="global-standard-output.htm">*standard-output*</a>].</p>
+
+<h2>Description</h2>
+
+<p>The 'format' function prints the specified expressions [if any] to the
+specified 'destination' using the 'format' string to control the print
+format. If the 'destination' is
+<nobr><a href="nil.htm">NIL</a> ,</nobr> a string is created and
+returned with the contents of the 'format'. If the 'destination' is
+<nobr><a href="t.htm">&nbsp;T&nbsp;</a> ,</nobr> the printing
+occurs to <a href="global-standard-output.htm">*standard-output*</a>. The 'format'
+function returns <nobr><a href="nil.htm">NIL</a> ,</nobr> if
+the 'destination' was non-<a href="nil.htm">NIL</a>. The 'format'
+string is a string [surrounded by double-quote characters]. This string
+contains ASCII text to be printed along with formatting directives
+[identified by a preceeding tilde '~' character]. The character following
+the tilde character is not case sensitive ['~a' and '~A' will function
+equivalently].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(format T "Now is the time for") <font color="#008844">; prints Now is the time for</font>
+(format T "all ~A ~S to" 'good 'men) <font color="#008844">; prints all GOOD MEN to</font>
+(format T "come to the") <font color="#008844">; prints come to the</font>
+(format T "~A of their ~S" <font color="#008844">; prints aid of their "party"</font>
+ "aid" "party")
+(format *standard-ouput* "Hello there") <font color="#008844">; prints Hello there</font>
+(format nil "ho ho ~S" 'ho) <font color="#008844">; returns "ho ho HO"</font>
+(format T "this is ~%a break") <font color="#008844">; prints this is</font>
+ <font color="#008844">; a break</font>
+(format T "this is a long ~
+ string") <font color="#008844">; prints this is a long string</font>
+</pre>
+
+<p><b>Supported format directives:</b> The 'format' string in XLISP supports
+the following format directives:</p>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr><code>~A</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%">ASCII, prints the 'expr'. If it is a string print it
+ without quotes. This is like the <a href="princ.htm">princ</a>
+ function.</td>
+</tr>
+<tr>
+ <td><nobr><font size="-2">&nbsp;</font></nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>~S</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%">s-expr, prints the 'expr'. If it is a string print it
+ with quotes. This is like the <a href="prin1.htm">prin1</a>
+ function.</td>
+</tr>
+<tr>
+ <td><nobr><font size="-2">&nbsp;</font></nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>~%</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%">prints a 'newline' control character.</td>
+</tr>
+<tr>
+ <td><nobr><font size="-2">&nbsp;</font></nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>~~</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%">prints a single tilde '~' character.</td>
+</tr>
+<tr>
+ <td><nobr><font size="-2">&nbsp;</font></nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>~&lt;newline&gt;</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%">continue the 'format' string on the next line. This
+ signals a line break in the format. The 'format' function will ignore
+ all white-space [blanks, tabs, newlines]. This is useful when the
+ 'format' string is longer than a program line. Note that the 'newline'
+ character must immediately follow the tilde character.</td>
+</tr>
+</tbody></table></p>
+
+<p><b>Common Lisp:</b> The 'format' function in Common Lisp is quite
+impressive. It includes 26 different formatting directives. XLISP, as shown
+above, does not include most of these. The more difficult ones that you
+might encounter are the decimal, octal, hexidecimal, fixed-format
+floating-point and exponential floating-point. It is possible to print in
+octal and hexadecimal notation by setting
+<a href="global-integer-format.htm">*integer-format*</a>. It is possible to print
+in fixed format and exponential by setting
+<a href="global-float-format.htm">*float-format*</a>. However, neither of these
+system variables are supported in Common Lisp and neither gives control over
+field size.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-028.htm#format">format</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/fourth.htm b/docsrc/xlisp/xlisp-doc/reference/fourth.htm
new file mode 100644
index 0000000..9cf0fbb
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/fourth.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP fourth</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>fourth</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(fourth <i>expr</i>)</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - the fourth element of the list</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'fourth' function returns the fourth element of a list or list
+expression. If the list is
+<nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(fourth '(1 2 3 4 5)) <font color="#008844">; returns 4</font>
+(fourth NIL) <font color="#008844">; returns NIL</font>
+(setq kids '(junie vickie cindy chris)) <font color="#008844">; set up variable KIDS</font>
+(first kids) <font color="#008844">; returns JUNIE</font>
+(second kids) <font color="#008844">; returns VICKIE</font>
+(third kids) <font color="#008844">; returns CINDY</font>
+(fourth kids) <font color="#008844">; returns CHRIS</font>
+(rest kids) <font color="#008844">; returns (VICKIE CINDY CHRIS)</font>
+</pre>
+
+<p><b>Note:</b> This function is set to the same code as
+<a href="caaaar.htm">cadddr</a>.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#fourth">fourth</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/funcall.htm b/docsrc/xlisp/xlisp-doc/reference/funcall.htm
new file mode 100644
index 0000000..6deefa3
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/funcall.htm
@@ -0,0 +1,102 @@
+<html><head><title>XLISP funcall</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>funcall</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(funcall <i>function</i> [<i>arg1</i> ... ])</dt>
+<dd><i>function</i> - the function or symbol to be called<br>
+<i>argN</i> - an argument to be passed to <i>function</i><br>
+returns - the result of calling the function with the arguments</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'funcall' function calls a function with a series of arguments.
+It returns the result from calling the function with the arguments.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(funcall '+ 1 2 3 4) <font color="#008844">; returns 10</font>
+(funcall #'+ 1 2 3 4) <font color="#008844">; returns 10</font>
+(funcall '+ '1 '2 '3) <font color="#008844">; returns 6</font>
+
+(setq sys-add (function +)) <font color="#008844">; returns #&lt;Subr-+: #22c32&gt;</font>
+(setq a 99)
+(funcall sys-add 1 a) <font color="#008844">; 100</font>
+(funcall sys-add 1 'a) <font color="#008844">; error: bad argument type</font>
+ <font color="#008844">; you can't add a symbol, only it's value</font>
+
+(setq a 2) <font color="#008844">; set A</font>
+(setq b 3) <font color="#008844">; and B values</font>
+(funcall (if (&lt; a b) (function +) <font color="#008844">; 'function' can be computed</font>
+ (function -))
+ a b) <font color="#008844">; returns 5</font>
+
+(defun add-to-list (arg list) <font color="#008844">; add a list or an atom</font>
+ (funcall (if (atom arg) 'cons <font color="#008844">; to the front of a list</font>
+ 'append)
+ arg list))
+(add-to-list 'a '(b c)) <font color="#008844">; returns (A B C)</font>
+(add-to-list '(a b) '(b c)) <font color="#008844">; returns (A B B C)</font>
+</pre>
+
+<h2>Notes</h2>
+
+<p>In XLISP, a '<nobr>special form</nobr>' of type FSUBR is not a function.
+This means that 'funcall' only works with functions of type SUBR
+<nobr>[built-in</nobr> function] or CLOSURE [function defined by
+<a href="defun.htm">defun</a>, <a href="flet.htm">flet</a>,
+<a href="labels.htm">labels</a>, or <a href="lambda.htm">lambda</a>], but
+with special forms of <nobr>type FSUBR</nobr> a 'bad function' error is
+signalled. Here is an example how to work around this behaviour:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">funcall*</font> (function &amp;rest args)
+ (if (eq (type-of function) 'fsubr)
+ (eval (cons function args))
+ (apply function args)))
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/function.htm b/docsrc/xlisp/xlisp-doc/reference/function.htm
new file mode 100644
index 0000000..4e173fc
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/function.htm
@@ -0,0 +1,87 @@
+<html><head><title>XLISP function</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>function</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(function <i>expr</i>)</dt>
+<dd><i>expr</i> - an expression that evaluates to a function<br>
+returns - the functional interpretation</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'function' special form returns the function definition of the
+'expr'. Execution of the 'expr' form does not occur. 'function' will operate
+on functions, special forms, lambda-expressions and macros.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(function car) <font color="#008844">; returns #&lt;Subr-CAR: #23ac4&gt;</font>
+(function quote) <font color="#008844">; returns #&lt;FSubr-QUOTE: #23d1c&gt;</font>
+#'quote <font color="#008844">; returns #&lt;FSubr-QUOTE: #23d1c&gt;</font>
+(function 'cdr) <font color="#008844">; error: not a function</font>
+
+(defun foo (x) (+ x x)) <font color="#008844">; define FOO function</font>
+(function foo) <font color="#008844">; returns #&lt;Closure-FOO: #2cfb6&gt;</font>
+
+(defmacro bar (x) (+ x x)) <font color="#008844">; define FOOMAC macro</font>
+(function bar) <font color="#008844">; returns #&lt;Closure-BAR: #2ceee&gt;</font>
+
+(setq my 99) <font color="#008844">; define a variable MY</font>
+(function my) <font color="#008844">; error: unbound function</font>
+
+(defun my (x) (print x)) <font color="#008844">; define a function MY</font>
+(function my) <font color="#008844">; returns #&lt;Closure-MY: #2cdd6&gt;</font>
+</pre>
+
+<p><b>Read macro:</b> XLISP supports the normal Lisp read macro of a hash
+and quote [#'] as a short-hand method of writing the 'function' special
+form.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-012.htm#function">function</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/gc.htm b/docsrc/xlisp/xlisp-doc/reference/gc.htm
new file mode 100644
index 0000000..1761b81
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/gc.htm
@@ -0,0 +1,74 @@
+<html><head><title>XLISP gc</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>gc</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xldmem.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(gc)</dt>
+<dd>returns - always returns <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'gc' function starts a garbage collection of the unused memory of
+XLISP. <a href="nil.htm">NIL</a> is always returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(gc) <font color="#008844">; start a garbage collection right now</font>
+</pre>
+
+<p><b>Note:</b> The system will cause an automatic garbage collection if it
+runs out of free memory.</p>
+
+<p><b>Note:</b> When 'gc' is called or an automatic garbage collection
+occurs, if the amount of free memory is still low after the garbage
+collection, the system attempts to add more segments [an automatic
+<a href="expand.htm">expand</a>].</p>
+
+<p>See the
+<a href="../manual/xlisp-man-031.htm#gc">gc</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/gcd.htm b/docsrc/xlisp/xlisp-doc/reference/gcd.htm
new file mode 100644
index 0000000..2dc7570
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/gcd.htm
@@ -0,0 +1,75 @@
+<html><head><title>XLISP gcd</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>gcd</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(gcd [<i>int</i> ... ])</dt>
+<dd><i>int</i> - an integer expression<br>
+returns - the greatest common divisor</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'gcd' function returns the greatest common divisor of a series of
+integers. If no arguments are given, a zero is returned. If only one
+argument is given, the absolute value of the argument is returned. The
+successful result is always a positive integer.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(gcd 51 34) <font color="#008844">; returns 17</font>
+(gcd 99 66 22) <font color="#008844">; returns 11</font>
+(gcd -99 66 -33) <font color="#008844">; returns 33</font>
+(gcd -14) <font color="#008844">; returns 14</font>
+(gcd 0) <font color="#008844">; returns 0</font>
+(gcd) <font color="#008844">; returns 0</font>
+(gcd .2) <font color="#008844">; error: bad argument type - 0.2</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#gcd">gcd</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/gensym.htm b/docsrc/xlisp/xlisp-doc/reference/gensym.htm
new file mode 100644
index 0000000..93b05d2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/gensym.htm
@@ -0,0 +1,89 @@
+<html><head><title>XLISP gensym</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>gensym</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(gensym [<i>tag</i>])</dt>
+<dd><i>tag</i> - an optional integer or string<br>
+returns - the new symbol</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'gensym' function generates and returns a symbol. The default symbol
+form is as a character 'G' followed by a number, 'Gn'. The default numbering
+starts at '1'. You can change what the generated symbol looks like. By
+calling 'gensym' with a string 'tag', the default string is set to the
+string parameter. If 'tag' is an integer number, the current number is
+set to the integer parameter.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(gensym) <font color="#008844">; first time =&gt; G1</font>
+(gensym 100) <font color="#008844">; returns G100</font>
+(gensym "MYGENSYM") <font color="#008844">; returns MYGENSYM101</font>
+(gensym 0) <font color="#008844">; returns MYGENSYM0</font>
+(gensym) <font color="#008844">; returns MYGENSYM1</font>
+(gensym "G") <font color="#008844">; \</font>
+(gensym 0) <font color="#008844">; / put it back to 'normal'</font>
+(gensym) <font color="#008844">; just like first time =&gt; G1</font>
+</pre>
+
+<p><b>Note:</b> It takes 2 calls to 'gensym' to set both portions of the
+'gensym' symbol.</p>
+
+<p><b>Note:</b> Although it is possible to call 'gensym' with numbers in the string
+like &quot;AB1&quot;, this does generate an odd sequence. What will happen is you will
+get a sequence of symbols like:</p>
+
+<pre class="example">
+... AB18 AB19 AB110 AB111 ...
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#gensym">gensym</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/get-env.htm b/docsrc/xlisp/xlisp-doc/reference/get-env.htm
new file mode 100644
index 0000000..4511afa
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/get-env.htm
@@ -0,0 +1,64 @@
+<html><head><title>XLISP get-env</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>get-env</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsys.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(get-env <i>string</i>)</dt>
+<dd><i>string</i> - environment variable name as string<br>
+returns - the value of the environment variable as string,
+<nobr>or <a href="nil.htm">NIL</a></nobr></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>get-user</nobr>' function returns the value of an environment
+variable, or <a href="nil.htm">NIL</a> if no variable had been found.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/get-key.htm b/docsrc/xlisp/xlisp-doc/reference/get-key.htm
new file mode 100644
index 0000000..b890899
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/get-key.htm
@@ -0,0 +1,66 @@
+<html><head><title>XLISP get-key</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>get-key</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>sys/unix/osstuff.c, sys/mac/macfun.c, sys/win/msvc/winfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(get-key)</dt>
+<dd>returns - the decimal ASCII value of the key pressed</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'get-key' function gets a single key stroke from the keyboard [as
+opposed to an entire line, as <a href="">read</a> does].</p>
+
+<p><b>Note:</b> In Nyquist, this function is only defined to work on Unix
+systems [including Linux and <nobr>Mac OS X]</nobr>. <nobr>On
+Windows</nobr> systems, <a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mychar (get-key)) <font color="#008844"> ; get a character</font>
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/get-lambda-expression.htm b/docsrc/xlisp/xlisp-doc/reference/get-lambda-expression.htm
new file mode 100644
index 0000000..a3bc5bb
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/get-lambda-expression.htm
@@ -0,0 +1,78 @@
+<html><head><title>XLISP get-lambda-expression</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>get-lambda-expression</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(get-lambda-expression <i>closure</i>)</dt>
+<dd><i>closure</i> - a closure object from a previously defined
+<a href="defun.htm">function</a> or
+<a href="defmacro.htm">macro</a><br>
+returns - the original lambda expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'get-lambda-expression' function takes the 'closure' object and
+returns a reconstruction of a
+<a href="lambda.htm">lambda</a> or
+<a href="defmacro.htm">macro</a> expression that defines the
+'closure'. The parameter must be a 'closure' expression.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun mine (a b) (print (+ a b))) <font color="#008844">; define MINE defun</font>
+(get-lambda-expression (function mine)) <font color="#008844">; returns (LAMBDA (A B) (PRINT (+ A B)))</font>
+
+(get-lambda-expression (lambda (a) (print a)) <font color="#008844">; returns (LAMBDA (A) (PRINT A))</font>
+
+(defmacro plus (n1 n2) `(+ ,n1 ,n2)) <font color="#008844">; define PLUS macro</font>
+(get-lambda-expression (function plus)) <font color="#008844">; returns (MACRO (N1 N2) (BACKQUOTE (+ (COMMA N1) (COMMA N2))))</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-012.htm#get-lambda-expression">get-lambda-expression</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/get-output-stream-list.htm b/docsrc/xlisp/xlisp-doc/reference/get-output-stream-list.htm
new file mode 100644
index 0000000..94c0c6d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/get-output-stream-list.htm
@@ -0,0 +1,75 @@
+<html><head><title>XLISP get-output-stream-list</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>get-output-stream-list</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(get-output-stream-list <i>stream</i>)</dt>
+<dd><i>stream</i> - an output stream expression<br>
+returns - the output so far as a list</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'get-output-stream-list' function empties the specified 'stream' and
+returns this data as a list. The output stream is emptied by this
+operation.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq out (make-string-output-stream)) <font color="#008844">; returns #&lt;Unnamed-Stream: #...&gt;</font>
+
+(format out "123") <font color="#008844">; add some data to output stream</font>
+(get-output-stream-list out) <font color="#008844">; returns (#\1 #\2 #\3)</font>
+
+(format out "123") <font color="#008844">; add some data to output stream</font>
+(read out) <font color="#008844">; returns 123</font>
+(get-output-stream-list out) <font color="#008844">; returns NIL, the string was emptied by 'read'</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-030.htm#get-output-stream-list">get-output-stream-list</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/get-output-stream-string.htm b/docsrc/xlisp/xlisp-doc/reference/get-output-stream-string.htm
new file mode 100644
index 0000000..4dbc02a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/get-output-stream-string.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP get-output-stream-string</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>get-output-stream-string</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(get-output-stream-string <i>stream</i>)</dt>
+<dd><i>stream</i> - an output stream expression<br>
+returns - the output so far as a string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'get-output-stream-string' function empties the specified 'stream'
+and returns this data as a single string. The output stream is emptied by
+this operation.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq out (make-string-output-stream)) <font color="#008844">; returns #&lt;Unnamed-Stream: #...&gt;</font>
+
+(format out "fee fi fo fum ") <font color="#008844">; \</font>
+(format out "I smell the blood of ") <font color="#008844">; fill up output stream</font>
+(format out "Elmer Fudd") <font color="#008844">; /</font>
+(get-output-stream-string out) <font color="#008844">; returns "fee fi fo fum I smell the blood of Elmer Fudd"</font>
+
+(format out "~%now what") <font color="#008844">; add more to output stream</font>
+(get-output-stream-string out) <font color="#008844">; returns "\nnow what"</font>
+(get-output-stream-string out) <font color="#008844">; returns ""</font>
+
+(format out "hello") <font color="#008844">; add more to output stream</font>
+(read out) <font color="#008844">; returns HELLO</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-030.htm#get-output-stream-string">get-output-stream-string</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/get-temp-path.htm b/docsrc/xlisp/xlisp-doc/reference/get-temp-path.htm
new file mode 100644
index 0000000..eb015f9
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/get-temp-path.htm
@@ -0,0 +1,68 @@
+<html><head><title>XLISP get-temp-path</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>get-temp-path</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>sys/unix/osstuff.c, sys/win/msvc/winfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(<b>get-temp-path</b>)</dt>
+<dd>returns - the resulting full path as a string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>get-temp-path</nobr>' function tries to get a path where a
+temporary file can be created.</p>
+
+<p><b>Note:</b> Under Windows, the '<nobr>get-temp-path</nobr>' function is
+based on environment variables. <nobr>If XLISP</nobr> is running as a
+<nobr>sub-process</nobr> to Java, the environment may not exist, in which
+case the default result is the unfortunate choice
+'<nobr>c:\windows\</nobr>'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/get-user.htm b/docsrc/xlisp/xlisp-doc/reference/get-user.htm
new file mode 100644
index 0000000..735a8e2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/get-user.htm
@@ -0,0 +1,67 @@
+<html><head><title>XLISP get-user</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>get-user</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>sys/unix/osstuff.c, sys/win/msvc/winstuff.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(get-user)</dt>
+<dd>returns - a string naming the user, or &quot;nyquist&quot;</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>get-user</nobr>' function returns the current user name.
+<nobr>In Unix</nobr> systems [including <nobr>OS X</nobr> and Linux], this
+is the value of the USER environment variable. <nobr>In Windows</nobr>, this
+is currently just &quot;nyquist&quot;, which is also returned if the
+environment variable cannot be accessed. This function is used to avoid the
+case of two users creating files of the same name in the same temp
+directory. </p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/get.htm b/docsrc/xlisp/xlisp-doc/reference/get.htm
new file mode 100644
index 0000000..e8cc487
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/get.htm
@@ -0,0 +1,97 @@
+<html><head><title>XLISP get</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>get</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(get <i>symbol property</i>)</dt>
+<dd><i>symbol</i> - the symbol with a property list<br>
+<i>property</i> - he property name being retrieved<br>
+returns - the property value or <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'get' function returns the value of the'property' from the 'symbol'.
+If the 'property' does not exist, a <a href="nil.htm">NIL</a> is
+returned. The 'symbol' must be an existing symbol. The returned value may be
+a single value or a list.</p>
+
+<p>Property lists are lists attached to any user defined variables. The
+lists are in the form of:</p>
+
+<pre class="example">
+(<font color="#008844"><i>name1 value1 name2 value2</i></font> ... )
+</pre>
+
+<p>Any number of properties may be attached to a single variable.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq person 'bobby) <font color="#008844">; create a variable with a value</font>
+(putprop person 'boogie 'last-name) <font color="#008844">; add a LAST-NAME property</font>
+(putprop person 'disc-jockey 'job) <font color="#008844">; add a JOB property</font>
+
+(get person 'last-name) <font color="#008844">; retrieve LAST-NAME - boogie</font>
+(get person 'job) <font color="#008844">; retrieve JOB - disc-jockey</font>
+(get person 'height) <font color="#008844">; non-existant - returns NIL</font>
+
+(putprop person '(10 20 30) 'stats) <font color="#008844">; add STATS - a list</font>
+(get person 'stats) <font color="#008844">; retrieve STATS - (10 20 30)</font>
+</pre>
+
+<p><b>Note:</b> You can set a property to the value
+<a href="nil.htm">NIL</a>. However, this
+<a href="nil.htm">NIL</a> value is indistinguishable from the
+<a href="nil.htm">NIL</a> returned when a property does not
+exist.</p>
+
+<p><b>Common Lisp:</b> Common Lisp allows for an optional default value,
+which XLISP does not support.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-014.htm#get">get</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-applyhook.htm b/docsrc/xlisp/xlisp-doc/reference/global-applyhook.htm
new file mode 100644
index 0000000..4bc2bbd
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-applyhook.htm
@@ -0,0 +1,78 @@
+<html><head><title>XLISP *applyhook*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*applyhook*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlglob.c (not implemented)</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>&nbsp;*applyhook*</dt>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p> *applyhook* is a system variable that exists and is initialized to
+<a href="nil.htm">NIL</a>. It is a hook that is intended to
+contain a user function that is to be called whenever a function is applied
+to a list of arguments. It is not, however, implemented in XLISP 2.0, it
+only exists as a dummy hook.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*applyhook* =&gt; NIL
+</pre>
+
+<p>*applyhook* is often used to implement function stepping functionality in
+a debugger.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr><a href="../manual/contents.htm#symbols">Symbols</a></nobr></li>
+<li><nobr><a href="../manual/contents.htm#evaluation-functions">Evaluation Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-breakenable.htm b/docsrc/xlisp/xlisp-doc/reference/global-breakenable.htm
new file mode 100644
index 0000000..9a22cf9
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-breakenable.htm
@@ -0,0 +1,106 @@
+<html><head><title>XLISP *breakenable*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*breakenable*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xldbug.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<a href="setq.htm">setq</a> <b>*breakenable*</b> <i>boolean</i>)</dt>
+<dd><i>boolean</i> - a generalized boolean value<br>
+returns - <nobr>non-<a href="nil.htm">NIL</a></nobr> if errors shall be handled by the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>, or <a href="nil.htm">NIL</a> if not</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The *breakenable* system variable controls entry to the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr> and
+the trapping of errors. <nobr>If *breakenable*</nobr> is set to
+<nobr><a href="nil.htm">NIL</a> ,</nobr> then no errors from the
+system or from the <a href="error.htm">error</a> or
+<a href="cerror.htm">cerror</a> functions will be trapped.
+<nobr>If *breakenable*</nobr> is <nobr>non-<a href="nil.htm">NIL</a></nobr>,
+the <nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>
+will handle these errors. <nobr>The <a href="break.htm">break</a></nobr>
+function is not affected by *breakenable* and will always force entry to the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>.
+<nobr>If the</nobr> '<nobr>init.lsp</nobr>' initialization file sets
+*breakenable* to <nobr><a href="t.htm">&nbsp;T&nbsp;</a></nobr>,
+errors will be trapped by the
+<nobr><a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+&gt; (defun foo (x) <font color="#008844">; define function FOO</font>
+ (+ x x))
+FOO
+
+&gt; (setq *breakenable* NIL) <font color="#008844">; disable break loop</font>
+NIL
+
+&gt; (foo "a")
+error: bad argument type <font color="#008844">; does NOT enter a break loop</font>
+
+&gt; (setq *breakenable* T) <font color="#008844">; enable break loop</font>
+T
+
+&gt; (foo "a")
+error: bad argument type
+
+1&gt; <font color="#008844">; entered a break loop</font>
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#symbols">Symbols</a></nobr></li>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#debugging-and-error-handling">Debugging and Error Handling</a></nobr></li>
+<li><nobr>XLISP 2.0 Manual &rarr; <a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr></li>
+<li><nobr>Tutorials &rarr; Nyquist &rarr; <a href="../tutorials/nyquist.htm#debugger-shortcuts">Debugger Shortcuts</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-debug-io.htm b/docsrc/xlisp/xlisp-doc/reference/global-debug-io.htm
new file mode 100644
index 0000000..97edafd
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-debug-io.htm
@@ -0,0 +1,72 @@
+<html><head><title>XLISP *debug-io*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*debug-io*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c, xlio.c, xldbug.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dd>
+<dt>*debug-io*</dt>
+</dd>
+
+<h2>Description</h2>
+
+<p>*debug-io* is a system variable that contains a file pointer pointing to
+the stream where all debug input and output goes to and from. The default
+file for *debug-io* is the system standard error device, normally the
+keyboard and screen.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*debug-io* <font color="#008844">; returns #&lt;File-Stream...&gt;</font>
+</pre>
+
+<p><b>Note:</b>
+<nobr><a href="global-trace-output.htm">*trace-output*</a> ,</nobr>
+*debug-io* and <a href="global-error-output.htm">*error-output*</a> are normally
+all set to the same file stream 'stderr'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#debug-io">*debug-io*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-error-output.htm b/docsrc/xlisp/xlisp-doc/reference/global-error-output.htm
new file mode 100644
index 0000000..604e60d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-error-output.htm
@@ -0,0 +1,71 @@
+<html><head><title>XLISP *error-output*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*error-output*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c, xlio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*error-output*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>*error-output* is a system variable that contains a file pointer that
+points to the file where all error output goes to. The default file for
+*error-output* is the system standard error device, normally the screen.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*error-output* <font color="#008844">; returns #&lt;File-Stream...&gt;</font>
+</pre>
+
+<p><b>Note:</b>
+<nobr><a href="global-trace-output.htm">*trace-output*</a> ,</nobr>
+<a href="global-debug-io.htm">*debug-io*</a> and *error-output* are normally
+all set to the same file stream 'stderr'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#error-output">*error-output*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-evalhook.htm b/docsrc/xlisp/xlisp-doc/reference/global-evalhook.htm
new file mode 100644
index 0000000..ad219d5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-evalhook.htm
@@ -0,0 +1,123 @@
+<html><head><title>XLISP *evalhook*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*evalhook*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xleval.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*evalhook*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>*evalhook* is a system variable whose value is user code that will
+intercept evaluations either through normal system evaluation or through
+calls to <a href="evalhook.htm">evalhook</a>. The default value for
+*evalhook* is <nobr><a href="nil.htm">NIL</a> ,</nobr> which
+specifies to use the built in system evaluator. If *evalhook* is
+<nobr>non-<a href="nil.htm">NIL</a> ,</nobr> the routine is
+called with expression and environment parameters. If the environment
+argument is <nobr><a href="nil.htm">NIL</a> ,</nobr> then the the
+current global environment is used. The environment, if
+<nobr>non-<a href="nil.htm">NIL</a> ,</nobr> is a structure
+composed of dotted pairs constructed of the symbol and its value which have
+the form:</p>
+
+<pre class="example">
+(((<font color="#008844"><i>sym1</i></font> . <font color="#008844"><i>val1</i></font>) (<font color="#008844"><i>sym2</i></font> . <font color="#008844"><i>val2</i></font>) ... )))
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun myeval (exp env) <font color="#008844">; define MYEVAL routine</font>
+ (princ "exp: ") (print exp)
+ (princ "env: ") (print env)
+ (evalhook exp #'myeval NIL env))
+
+(defun foo (a) (+ a a)) <font color="#008844">; create simple function</font>
+(setq *evalhook* #'myeval) <font color="#008844">; and install MYEVAL as hook</font>
+
+(foo 1) <font color="#008844">; prints exp: (FOO 1) env:NIL</font>
+ <font color="#008844">; exp: 1 env:NIL</font>
+ <font color="#008844">; exp: (+ A A) env:((((A . 1))))</font>
+ <font color="#008844">; exp: A env:((((A . 1))))</font>
+ <font color="#008844">; exp: A env:((((A . 1))))</font>
+ <font color="#008844">; returns 2</font>
+
+(top-level) <font color="#008844">; to clean up *evalhook*</font>
+</pre>
+
+<p><b>Note:</b> The <a href="evalhook.htm">evalhook</a> function and
+*evalhook* system variable are very useful in the construction of debugging
+facilities within XLISP. The <a href="trace.htm">trace</a> and
+<a href="untrace.htm">untrace</a> functions use
+<a href="evalhook.htm">evalhook</a> and *evalhook* to implement
+their functionality. The other useful aspect of
+<a href="evalhook.htm">evalhook</a> and *evalhook* is to help in
+understanding how XLISP works to see the expressions, their environment
+and how they are evaluated.</p>
+
+<p><b>Caution:</b> Be careful when using *evalhook* and
+<a href="evalhook.htm">evalhook</a>. If you put in a bad definition
+into *evalhook*, you might not be able to do anything and will need to
+exit XLISP.</p>
+
+<p><b>Unusual behaviour:</b> The <a href="evalhook.htm">evalhook</a>
+function and *evalhook* system variable, by their nature, cause some unusual
+things to happen. After you have set *evalhook* to some
+non-<a href="nil.htm">NIL</a> value, your function will be
+called. However, when you are all done and set *evalhook* to
+<a href="nil.htm">NIL</a> or some other new routine, it will
+never be set. This is because the
+<a href="evalhook.htm">evalhook</a> function [in the 'xlbfun.c'
+source file] saves the old value of *evalhook* before calling your routine,
+and then restores it after the evaluation. The mechanism to reset
+*evalhook* is to execute the
+<a href="top-level.htm">top-level</a> function, which sets
+*evalhook* to <a href="nil.htm">NIL</a>.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#evalhook">*evalhook*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-file-separator.htm b/docsrc/xlisp/xlisp-doc/reference/global-file-separator.htm
new file mode 100644
index 0000000..f30bb3b
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-file-separator.htm
@@ -0,0 +1,68 @@
+<html><head><title>XLISP *file-separator*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*file-separator*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>&nbsp;*file-separator*</dt>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The Nyquist *file-separator* variable is initialized to the operation
+system's file separator character. <nobr>It has</nobr> a value of #\\ on
+Windows and a value of #\/ on Unix [including Linux and <nobr>Mac OS
+X]</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*file-separator* =&gt; #\/ <font color="#008844">; on Unix, Linux, and Mac OS X</font>
+*file-separator* =&gt; #\\ <font color="#008844">; on Windows</font>
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-float-format.htm b/docsrc/xlisp/xlisp-doc/reference/global-float-format.htm
new file mode 100644
index 0000000..3665b7b
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-float-format.htm
@@ -0,0 +1,179 @@
+<html><head><title>XLISP *float-format*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*float-format*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlprin.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*float-format*</dt>
+<dd>returns - the print format for <nobr>floating-point</nobr> numbers</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p> *float-format* is a system variable that allows a user to specify how
+floating point numbers are to be printed by XLISP. The value of
+*float-format* should be set to one of the string expressions
+&quot;%e&quot;, &quot;%f&quot; or &quot;%g&quot;. These format strings are
+similar to C-language floating point specifications:</p>
+
+<p><table cellpadding="0" cellspacing="0"><tbody>
+<tr valign="top">
+ <td><nobr><code>&nbsp;&nbsp;&quot;%e&quot;</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-<code>&nbsp;</code></nobr></td>
+ <td width="100%">exponential. The number is converted to decimal notation
+ of the form:
+
+<pre class="example">
+[-]<font color="#0000CC"><i>m</i></font>.<font color="#0000CC"><i>nnnnnn</i></font>E[+-]<font color="#0000CC"><i>xx</i></font>
+</pre>
+
+ There is one leading digit. There are 6 digits after the decimal
+ point.</td>
+</tr>
+<tr>
+ <td><nobr><font size="-2">&nbsp;</font></nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>&nbsp;&nbsp;&quot;%f&quot;</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-<code>&nbsp;</code></nobr></td>
+ <td width="100%">decimal. The number is converted to decimal notation of
+ the form:
+
+<pre class="example">
+[-]<font color="#0000CC"><i>mmmmmm</i></font>.<font color="#0000CC"><i>nnnnnn</i></font>
+</pre>
+
+ There are as many digits before the decimal point as necessary. There
+ are 6 digits after the decimal point.</td>
+</tr>
+<tr>
+ <td><nobr><font size="-2">&nbsp;</font></nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>&nbsp;&nbsp;&quot;%g&quot;</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-<code>&nbsp;</code></nobr></td>
+ <td width="100%">shortest. The number is converted to either the form of
+ &quot;%e&quot; or &quot;%f&quot;, whichever produces the shortest output
+ string. Non-significant zeroes are not printed.</td>
+</tr>
+</tbody></table></p>
+
+<p> The default value for *float-format* is the string "%g".</p>
+
+<p>There are several additional flags and options available:</p>
+
+<p><table cellpadding="0" cellspacing="0"><tbody>
+<tr>
+ <td><nobr><code>&nbsp;&nbsp;</code></nobr></td>
+ <td><nobr><code>&nbsp;&nbsp;+</code></nobr></td>
+ <td><nobr>&nbsp;<code>&nbsp;</code>-<code>&nbsp;</code></nobr></td>
+ <td width="100%"><nobr>always print the sign</nobr></td>
+</tr>
+<tr>
+ <td><nobr><code>&nbsp;&nbsp;</code></nobr></td>
+ <td><nobr><code><i>space</i></code></nobr></td>
+ <td><nobr>&nbsp;<code>&nbsp;</code>-<code>&nbsp;</code></nobr></td>
+ <td width="100%"><nobr>print a space instead of a + sign</nobr></td>
+</tr>
+<tr>
+ <td><nobr><code>&nbsp;&nbsp;</code></nobr></td>
+ <td><nobr><code>&nbsp;&nbsp;#</code></nobr></td>
+ <td><nobr>&nbsp;<code>&nbsp;</code>-<code>&nbsp;</code></nobr></td>
+ <td width="100%"><nobr>always print the dot, do not remove zeros after the dot</nobr></td>
+</tr>
+<tr>
+ <td><nobr><code>&nbsp;&nbsp;</code></nobr></td>
+ <td><nobr><code>&nbsp;.<i>n</i></code></nobr></td>
+ <td><nobr>&nbsp;<code>&nbsp;</code>-<code>&nbsp;</code></nobr></td>
+ <td width="100%"><nobr>number of digits after the dot</nobr></td>
+</tr>
+</tbody></table></p>
+
+<p>The flags and options must be written between the &quot;%&quot; and the
+formatting letter, as shown in the examples below.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq *float-format* "%e") <font color="#008844">; exponential notation</font>
+(print 1.0) =&gt; 1.000000e+00
+(print -9e99) =&gt; -9.000000e+99
+
+(setq *float-format* "%f") <font color="#008844">; decimal notation</font>
+(print 1.0) =&gt; 1.000000
+(print 1.0e4) =&gt; 10000.000000
+(print -999.99e-99) =&gt; -0.000000</font>
+
+(setq *float-format* "%g") <font color="#008844">; shortest notation</font>
+(print 1.0) =&gt; 1
+(print 1.0e7) =&gt; 1e+07
+(print -999.999e99) =&gt; -9.99999e+101
+
+(setq *float-format* "%+g") <font color="#008844">; always print the sign</font>
+(print 1.1) =&gt; +1.1
+(print -1.1) =&gt; -1.1
+
+(setq *float-format* "% g") <font color="#008844">; print a space instead of the + sign</font>
+(print 1.1) =&gt; 1.1
+(print -1.1) =&gt; -1.1
+
+(setq *float-format* "%#.10g") <font color="#008844">; ten digits after the dot</font>
+(print 1.0) =&gt; 1.000000000
+(print 1.0e7) =&gt; 10000000.00
+(print -999.9999999e99) =&gt; -9.999999999e+101
+
+(setq *float-format* "%+#.10g") <font color="#008844">; ten digits after the dot plus sign</font>
+(print 1.2345) =&gt; +1.234500000
+(print -1.2345) =&gt; -1.234500000
+
+(setq *float-format* "%%") <font color="#008844">; bad format</font>
+(print 1.0) =&gt; %%
+
+(setq *float-format* "%g") <font color="#008844">; reset to shortest notation</font>
+</pre>
+
+<p><b>Note:</b> The string in the <nobr>*float-format*</nobr> variable is
+the format specifier for the the underlying 'sprintf'
+<nobr>C-function</nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-gc-flag.htm b/docsrc/xlisp/xlisp-doc/reference/global-gc-flag.htm
new file mode 100644
index 0000000..33e3834
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-gc-flag.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP *gc-flag*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*gc-flag*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xldmem.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*gc-flag*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>*gc-flag* is a system variable that controls the printing of a garbage
+collection message. If *gc-flag* is
+<nobr><a href="nil.htm">NIL</a> ,</nobr>
+no garbage collection messages will be printed. If *gc-flag* is
+non-<nobr><a href="nil.htm">NIL</a> ,</nobr> a garbage collection
+message will be printed whenever a <a href="gc.htm">gc</a> takes
+place. The default value for *gc-flag* is
+<a href="nil.htm">NIL</a>. The message will be of the form:</p>
+
+<pre class="example">
+[ gc: total 4000, 2497 free ]
+</pre>
+
+
+<h2>Examples</h2>
+
+<pre class="example">
+*gc-flag* <font color="#008844">; returns NIL</font>
+(gc) <font color="#008844">; returns NIL</font>
+(setq *gc-flag* T) <font color="#008844">; set up for message</font>
+(gc) <font color="#008844">; prints a gc message</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#gc-flag">*gc-flag*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-gc-hook.htm b/docsrc/xlisp/xlisp-doc/reference/global-gc-hook.htm
new file mode 100644
index 0000000..df39b55
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-gc-hook.htm
@@ -0,0 +1,125 @@
+<html><head><title>XLISP *gc-hook*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*gc-hook*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xldmem.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*gc-hook*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>*gc-hook* is a system variable that allows a user function to be
+performed everytime garbage is collected [either explicitly with
+<a href="gc.htm">gc</a> or automatically]. The default value for
+*gc-hook* is <a href="nil.htm">NIL</a>. When *gc-hook* is set to
+a non-<a href="nil.htm">NIL</a> symbol, it is enabled to execute
+the specified user routine. The user routine can be a quoted symbol or a
+closure. There are two parameters to the user routine, the total number of
+nodes and current free nodes after the garbage collection.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*gc-hook* <font color="#008844">; returns NIL</font>
+(gc) <font color="#008844">; returns NIL</font>
+
+(defun mygchook (&amp;rest stuff) <font color="#008844">; define the hook</font>
+ (print stuff)
+ (print "my hook"))
+
+(setq *gc-hook* 'mygchook) <font color="#008844">; set up *GC-HOOK*</font>
+
+(gc) <font color="#008844">; prints (2640 232)</font>
+ <font color="#008844">; "my hook"</font>
+ <font color="#008844">; returns NIL</font>
+
+(setq *gc-flag* T) <font color="#008844">; turn on the system GC message</font>
+
+(gc) <font color="#008844">; prints</font>
+ <font color="#008844">; [ gc: total 2640, (2640 241)</font>
+ <font color="#008844">; "my hook"</font>
+ <font color="#008844">; 236 free ]</font>
+ <font color="#008844">; returns NIL</font>
+
+(setq *gc-flag* NIL) <font color="#008844">; turn off GC message</font>
+
+(setq *gc-hook* (lambda (x y) <font color="#008844">; enable user routine</font>
+ (princ "\007"))) <font color="#008844">; that beeps at every GC</font>
+
+(gc) <font color="#008844">; beeps</font>
+
+(defun expand-on-gc (total free) <font color="#008844">; define EXPAND-ON-GC</font>
+ (if (&lt; (/ free 1.0 total) .1) <font color="#008844">; IF free/total &lt; .10</font>
+ (progn (expand 2) <font color="#008844">; THEN expand memory</font>
+ (princ "\007")))) <font color="#008844">; and beep</font>
+
+ <font color="#008844">; NOTE: XLISP already gets more nodes</font>
+ <font color="#008844">; automatically, this is just an example.</font>
+
+(setq *gc-hook* 'expand-on-gc) <font color="#008844">; enable EXPAND-ON-GC</font>
+(gc) <font color="#008844">; beeps when low on nodes</font>
+</pre>
+
+<p><b>Note:</b> The *gc-hook* and <a href="global-gc-flag.htm">*gc-flag*</a>
+facilities can interact. If you do printing in the *gc-hook* user form and
+enable <nobr><a href="global-gc-flag.htm">*gc-flag*</a> ,</nobr> the
+*gc-hook* printing will come out in the middle of the
+<a href="global-gc-flag.htm">*gc-flag*</a> message.</p>
+
+<p><b>Note:</b> The *gc-hook* user form is evaluated after the execution of
+the actual garbage collection code. This means that if the user form causes
+an error, it does not prevent a garbage collection.</p>
+
+<p><b>Note:</b> Since *gc-hook* is set to a symbol, the user defined form
+can be changed by doing another <a href="defun.htm">defun</a> [or
+whatever] to the symbol in *gc-hook*. Note also that you should define the
+symbol first and then set *gc-hook* to the symbol. If you don't, an
+automatic garbage collection might occur before you set *gc-hook*,
+generating an error and stopping your program.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#gc-hook">*gc-hook*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-integer-format.htm b/docsrc/xlisp/xlisp-doc/reference/global-integer-format.htm
new file mode 100644
index 0000000..40cb06f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-integer-format.htm
@@ -0,0 +1,129 @@
+<html><head><title>XLISP *integer-format*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*integer-format*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlprin.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*integer-format*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>*integer-format* is a system variable that allows a user to specify how
+integer numbers are to be printed by XLISP. The value of *integer-format*
+should be set to one of the string expressions &quot;%ld&quot;,
+&quot;%lo&quot; or &quot;%lx&quot; [the character after the percent
+character is the lower-case 'L' character]. These format strings are similar
+to C-language floating point specifications:</p>
+
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr><code>&quot;%ld&quot;</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>decimal</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>&quot;%lu&quot;</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>unsigned decimal</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>&quot;%lo&quot;</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>unsigned octal</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>&quot;%lx&quot;</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>unsigned hexadecimal</nobr></td>
+</tr>
+</tbody></table></p>
+
+<p>The default value for *integer-format* is the string "%ld".</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*integer-format* <font color="#008844">; returns "%ld"</font>
+
+(setq *integer-format* "%ld") <font color="#008844">; signed decimal</font>
+(print 1) <font color="#008844">; prints 1</font>
+(print 1234) <font color="#008844">; prints 1234</font>
+(print -1) <font color="#008844">; prints -1</font>
+(print -1234) <font color="#008844">; prints -1234</font>
+
+(setq *integer-format* "%lo") <font color="#008844">; octal notation</font>
+(print 1) <font color="#008844">; prints 1</font>
+(print 1234) <font color="#008844">; prints 2322</font>
+(print -1) <font color="#008844">; prints 37777777777</font>
+(print -1234) <font color="#008844">; prints 37777775456</font>
+
+(setq *integer-format* "%lx") <font color="#008844">; hexadecimal notation</font>
+(print 1) <font color="#008844">; prints 1</font>
+(print -1) <font color="#008844">; prints ffffffff</font>
+(print 1234) <font color="#008844">; prints 4d2</font>
+(print -1234) <font color="#008844">; prints fffffb2e</font>
+
+(setq *integer-format* "%u") <font color="#008844">; unsigned decimal</font>
+(print 1) <font color="#008844">; prints 1</font>
+(print 1234) <font color="#008844">; prints 1234</font>
+(print -1) <font color="#008844">; prints 4294967295</font>
+(print -1234) <font color="#008844">; prints 4294966062</font>
+
+(setq *integer-format* "hi") <font color="#008844">; a bad notation</font>
+(print 1) <font color="#008844">; prints hi</font>
+(print 9999) <font color="#008844">; prints hi</font>
+
+(setq *integer-format* "%ld") <font color="#008844">; reset to original "%ld"</font>
+</pre>
+
+<p><b>Note:</b> There can be other characters put in the string, but in
+general, this will not produce particularly desirable behaviour. There is no
+error checking performed on the format string.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#integer-format">*integer-format*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-obarray.htm b/docsrc/xlisp/xlisp-doc/reference/global-obarray.htm
new file mode 100644
index 0000000..5014f40
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-obarray.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP *obarray*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*obarray*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsym.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*obarray*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The *obarray* system variable contains the system symbol table.
+This symbol table is an XLISP array that is constructed out of lists.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun lookin (sym) <font color="#008844">; create a function to</font>
+ (aref *obarray* <font color="#008844">; look inside *OBARRAY*</font>
+ (hash sym (length *obarray*)))) <font color="#008844">; and look for a specific</font>
+ <font color="#008844">; symbol - returns a list</font>
+
+(lookin "CAR") <font color="#008844">; returns (TEST PEEK CAR)</font>
+(lookin "car") <font color="#008844">; returns NIL</font>
+</pre>
+
+<p><b>Note:</b> When looking into *obarray* or
+<a href="intern.htm">intern</a>ing symbols, remember that
+&quot;car&quot; and &quot;CAR&quot; written as strings [with quotation marks
+in front and behind] are two different symbols in *obarray*. Remember also
+that normal symbols created by XLISP are upper case names. So, if you type
+in 'car as a normal symbol [with a single quote in front of it], it will be
+the symbol CAR after this normal upper-casing operation.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#obarray">*obarray*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-print-case.htm b/docsrc/xlisp/xlisp-doc/reference/global-print-case.htm
new file mode 100644
index 0000000..34b84a2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-print-case.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP *print-case*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*print-case*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlprin.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*print-case*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>*print-case* is a system variable that allows a user to specify how
+symbols are to be printed by XLISP. If *print-case* is set to ':downcase',
+all symbols will be printed in lower case characters. If *print-case* is set
+to ':upcase', all symbols will be printed in upper case characters. If
+*print-case* is set to anything other than ':upcase' or ':downcase', all
+symbols will be printed in upper case characters. The default value for
+*print-case* is ':upcase'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq *print-case* :downcase) <font color="#008844">; returns :downcase</font>
+(setq a 'b) <font color="#008844">; returns b</font>
+
+(setq *print-case* 'foo) <font color="#008844">; returns FOO</font>
+(setq a 'b) <font color="#008844">; returns B</font>
+
+(setq *print-case* :upcase) <font color="#008844">; returns :UPCASE</font>
+(setq a 'b) <font color="#008844">; returns B</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common LISP supports a third keyword ':capitalize' to
+print the first character of symbol names in upper-case. XLISP does not
+support this. In XLISP, if *print-case* is set to ':capitalize', all
+characters in symbols names will be printed in upper-case characters.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#print-case">*print-case*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-readtable.htm b/docsrc/xlisp/xlisp-doc/reference/global-readtable.htm
new file mode 100644
index 0000000..caa3d70
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-readtable.htm
@@ -0,0 +1,166 @@
+<html><head><title>XLISP *readtable*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*readtable*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*readtable*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p> The *readtable* is a system variable that contains XLISP's data
+structures relating to the processing of characters from the user (or files)
+and read-macro expansions. The table is 128 entries [0..127] for each of the
+7-bit <a href="../misc/ascii-table.htm">ASCII</a> characters that
+XLISP can read. Each entry in the *readtable* array must be one of
+<nobr><a href="nil.htm">NIL</a> ,</nobr>
+<nobr><a href="keyword-constituent.htm">:constituent</a> ,</nobr>
+<nobr><a href="keyword-white-space.htm">:white-space</a> ,</nobr>
+<nobr><a href="keyword-sescape.htm">:sescape</a> ,</nobr>
+<nobr><a href="keyword-mescape.htm">:mescape</a> ,</nobr> a
+<a href="keyword-tmacro.htm">:tmacro</a> dotted pair or a
+<a href="keyword-nmacro.htm">:nmacro</a> dotted pair with the meaning
+of:</p>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr><code>&nbsp;NIL</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td><nobr>the character is invalid</nobr></td>
+ <td width="100%"><nobr>&nbsp;&nbsp; [see
+ <a href="nil.htm">nil</a>]</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>:CONSTITUENT</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td><nobr>the character is valid, as is</nobr></td>
+ <td width="100%"><nobr>&nbsp;&nbsp; [see
+ <a href="keyword-constituent.htm">:constituent</a>]</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>:WHITE-SPACE</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td><nobr>the character may be skipped over</nobr></td>
+ <td width="100%"><nobr>&nbsp;&nbsp; [see
+ <a href="keyword-white-space.htm">:white-space</a>]</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>:SESCAPE</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td><nobr>the single escape character '\'</nobr></td>
+ <td width="100%"><nobr>&nbsp;&nbsp; [see
+ <a href="keyword-sescape.htm">:sescape</a>]</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>:MESCAPE</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td><nobr>the multiple escape character '|'</nobr></td>
+ <td width="100%"><nobr>&nbsp;&nbsp; [see
+ <a href="keyword-mescape.htm">:mescape</a>]</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>(:TMACRO . <i>fun</i>)</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td><nobr>a terminating readmacro</nobr></td>
+ <td width="100%"><nobr>&nbsp;&nbsp; [see
+ <a href="keyword-tmacro.htm">:tmacro</a>]</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr><code>(:NMACRO . <i>fun</i>)</code></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td><nobr>a non-terminating readmacro</nobr></td>
+ <td width="100%"><nobr>&nbsp;&nbsp; [see
+ <a href="keyword-nmacro.htm">:nmacro</a>]</nobr></td>
+</tr>
+</tbody></table></p>
+
+
+<p>In the case of <a href="keyword-nmacro.htm">:nmacro</a> and
+<nobr><a href="keyword-tmacro.htm">:tmacro</a> ,</nobr> the form of the
+*readtable* entry is a list like:</p>
+
+<pre class="example">
+(:tmacro . <font color="#008844"><i>function</i></font>)
+(:nmacro . <font color="#008844"><i>function</i></font>)
+</pre>
+
+<p>The 'function' can be a built-in read-macro function or a user defined
+<a href="lambda.htm">lambda</a> expression. The 'function' takes two
+parameters, an input stream specification, and an integer that is the
+character value. The 'function' should return
+<a href="nil.htm">NIL</a> if the character is 'white-space' or a
+value <a href="cons.htm">cons</a>ed with
+<a href="nil.htm">NIL</a> to return the value.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*readtable* <font color="#008844">; returns the current table</font>
+
+<font color="#008844">;; define a function to look in a table and</font>
+<font color="#008844">;; print out any entries with a function</font>
+
+(defun look-at (table)
+ (dotimes (ch 127)
+ (prog ((entry (aref table ch)))
+ (case entry
+ (nil nil)
+ (:constituent nil)
+ (:white-space nil)
+ (:sescape nil)
+ (:mescape nil)
+ (t (princ (int-char ch))))))
+ (terpri))
+
+(look-at *readtable*) <font color="#008844">; prints "#'(),;`</font>
+</pre>
+
+<p><b>Caution:</b> If you experiment with *readtable*, it is useful to save
+the old value in a variable, so that you can restore the system state.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#readtable">*readtable*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-rslt.htm b/docsrc/xlisp/xlisp-doc/reference/global-rslt.htm
new file mode 100644
index 0000000..84e2254
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-rslt.htm
@@ -0,0 +1,83 @@
+<html><head><title>XLISP *rslt*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*rslt*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>not explicitely defined</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>*rslt*</dt>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>When a function returns more than one value, the global Nyquist *rslt*
+variable is set to a list of the 'extra' values. This provides a
+<nobr>make-shift</nobr> version of the '<nobr>multiple-value-return</nobr>'
+facility in <nobr>Common Lisp</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun cl:values (&amp;rest args)
+ (setq *rslt* args)
+ (first args))
+
+(values 1 2 3) =&gt; 1
+*rslt* =&gt; (1 2 3)
+</pre>
+
+<p>See <a href="defun.htm">defun</a>, <a href="first.htm">first</a>,
+<a href="rest.htm">rest</a>,
+<a href="lambda-keyword-rest.htm">&amp;rest</a>,
+<a href="setq.htm">setq</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr><a href="../examples/values.htm">Multiple Values</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-standard-input.htm b/docsrc/xlisp/xlisp-doc/reference/global-standard-input.htm
new file mode 100644
index 0000000..37cdcbc
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-standard-input.htm
@@ -0,0 +1,73 @@
+<html><head><title>XLISP *standard-input*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*standard-input*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*standard-input*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The *standard-input* system variable contains a file pointer that points
+to the file where all normal input from the programmer or user comes from.
+The default file for *standard-input* is the system standard input device,
+normally the system keyboard.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*standard-input* <font color="#008844">; returns #&lt;File-Stream: #2442e&gt;</font>
+</pre>
+
+<p><b>Note:</b> Be careful when modifying the *standard-input*. If you do
+not save the old file pointer, you will not be able to return to normal
+operation and will need to exit XLISP. If the file or source that you have
+set *standard-input* to does not reset *standard-input* to its previous
+value, you will never get control back to the keyboard.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#standard-input">*standard-input*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-standard-output.htm b/docsrc/xlisp/xlisp-doc/reference/global-standard-output.htm
new file mode 100644
index 0000000..65c0d73
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-standard-output.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP *standard-output*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*standard-output*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*standard-output*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The *standard-output* system variable contains a file pointer that points
+to the file where all normal printing and messages from XLISP will go. The
+default file for *standard-output* is the system standard output device,
+normally the screen display.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*standard-output* <font color="#008844">; returns #&lt;File-Stream: #24406&gt;</font>
+(setq old-so *standard-output*) <font color="#008844">; save the file pointer</font>
+(setq fp (open "f" :direction :output)) <font color="#008844">; open a new output file</font>
+(setq *standard-output* fp) <font color="#008844">; change where output goes</font>
+
+(+ 2 2) <font color="#008844">; you won't see any messages</font>
+ <font color="#008844">; just the echo of input line</font>
+
+(setq *standard-output* old-so) <font color="#008844">; restore standard output</font>
+(close fp) <font color="#008844">; close file</font>
+</pre>
+
+<p><b>Note:</b> Be careful when modifying the *standard-output*, you will
+not be able to see what you are doing. If you do not save the old file
+pointer, you will not be able to return to normal operation and will need to
+exit XLISP.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#standard-output">*standard-output*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-trace-output.htm b/docsrc/xlisp/xlisp-doc/reference/global-trace-output.htm
new file mode 100644
index 0000000..697a70f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-trace-output.htm
@@ -0,0 +1,71 @@
+<html><head><title>XLISP *trace-output*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*trace-output*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c, xlio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*trace-output*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The *trace-output* system variable contains a file pointer that points to
+the file where all trace output goes to. The default file for *trace-output*
+is the system standard error device, normally the screen.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*trace-output* <font color="#008844">; returns #&lt;File-Stream...&gt;</font>
+</pre>
+
+<p><b>Note:</b> *trace-output*,
+<a href="global-debug-io.htm">*debug-io*</a> and
+<a href="global-error-output.htm">*error-output*</a> are normally all set to
+the same file stream 'stderr'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#trace-output">*trace-output*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-tracelimit.htm b/docsrc/xlisp/xlisp-doc/reference/global-tracelimit.htm
new file mode 100644
index 0000000..7af1f15
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-tracelimit.htm
@@ -0,0 +1,103 @@
+<html><head><title>XLISP *tracelimit*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*tracelimit*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c, xldbug.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*tracelimit*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The *tracelimit* system variable controls the number of forms printed on
+entry to the <nobr><a href="../manual/xlisp-man-004.htm">break
+loop</a></nobr>. If *tracelimit* is an integer, then the integer is the
+maximum number of forms that will be printed. If *tracelimit* is <a
+href="nil.htm">NIL</a> or a non-integer, then all of the forms
+will be printed. Note that <a href="global-tracenable.htm">*tracenable*</a>
+needs to be set to a non-<a href="nil.htm">NIL</a> value to
+enable the printing of back-trace information on entry to the <nobr><a
+href="../manual/xlisp-man-004.htm">break loop</a></nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun foo (x) (fee x)) <font color="#008844">; define FOO</font>
+(defun fee (y) (break)) <font color="#008844">; define FEE</font>
+(setq *tracenable* T) <font color="#008844">; enable the back trace</font>
+(setq *tracelimit* NIL) <font color="#008844">; show all the entries</font>
+
+(foo 5) <font color="#008844">; break: **BREAK**</font>
+ <font color="#008844">; prints Function:#&lt;Subr-BREAK...&gt;</font>
+ <font color="#008844">; Function:#&lt;Closure-FEE...&gt;</font>
+ <font color="#008844">; Arguments:</font>
+ <font color="#008844">; 5</font>
+ <font color="#008844">; Function:#&lt;Closure-FOO...&gt;</font>
+ <font color="#008844">; Arguments:</font>
+ <font color="#008844">; 5</font>
+
+(clean-up) <font color="#008844">; from break loop</font>
+(setq *tracelimit* 2) <font color="#008844">; show only 2 entries</font>
+
+(foo 5) <font color="#008844">; break: **BREAK**</font>
+ <font color="#008844">; prints Function:#&lt;Subr-BREAK...&gt;</font>
+ <font color="#008844">; Function:#&lt;Closure-FEE...&gt;</font>
+ <font color="#008844">; Arguments:</font>
+ <font color="#008844">; 5</font>
+
+(clean-up) <font color="#008844">; from break loop</font>
+</pre>
+
+<p><b>Note:</b> <a href="global-tracenable.htm">*tracenable*</a> and
+*tracelimit* system variables have to do with back trace information at
+entry to a
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a></nobr>
+and are not related to the
+<a href="trace.htm">trace</a> and
+<a href="untrace.htm">untrace</a> functions.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#tracelimit">*tracelimit*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-tracelist.htm b/docsrc/xlisp/xlisp-doc/reference/global-tracelist.htm
new file mode 100644
index 0000000..3c84faa
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-tracelist.htm
@@ -0,0 +1,74 @@
+<html><head><title>XLISP *tracelist*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*tracelist*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c, xleval.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*tracelist*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The *tracelist* system variable contains a list of the current
+functions being <a href="trace.htm">trace</a>d.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun foo (x) (print (car x))) <font color="#008844">; define FOO</font>
+(trace foo) <font color="#008844">; returns (FOO)</font>
+(trace car) <font color="#008844">; returns (CAR FOO)</font>
+
+(print *tracelist*) <font color="#008844">; prints (CAR FOO)</font>
+
+(untrace foo) <font color="#008844">; returns (CAR)</font>
+(untrace car) <font color="#008844">; returns NIL</font>
+
+(print *tracelist*) <font color="#008844">; prints NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#tracelist">*tracelist*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-tracenable.htm b/docsrc/xlisp/xlisp-doc/reference/global-tracenable.htm
new file mode 100644
index 0000000..8863e96
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-tracenable.htm
@@ -0,0 +1,105 @@
+<html><head><title>XLISP *tracenable*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*tracenable*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c, xldbug.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*tracenable*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The *tracenable* system variable controls whether or not the
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a></nobr>
+prints any back trace information on entry to the
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a></nobr>. If
+*tracenable* is <nobr><a href="nil.htm">NIL</a> ,</nobr> then
+there will be no information printed on entry to the
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a>.</nobr>
+If *tracenable* is <nobr>non-<a href="nil.htm">NIL</a> ,</nobr>
+then information will be printed. The 'init.lsp' initialization file sets
+*tracenable* usually to <nobr><a href="nil.htm">NIL</a> ,</nobr>
+which suppresses the printing.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun foo (x) (fee x)) <font color="#008844">; define FOO</font>
+(defun fee (y) (break)) <font color="#008844">; define FEE</font>
+(setq *tracenable* T) <font color="#008844">; enable the back trace</font>
+(setq *tracelimit* NIL) <font color="#008844">; show all the entries</font>
+
+(foo 5) <font color="#008844">; break: **BREAK**</font>
+ <font color="#008844">; prints Function:#&lt;Subr-BREAK...&gt;</font>
+ <font color="#008844">; Function:#&lt;Closure-FEE...&gt;</font>
+ <font color="#008844">; Arguments:</font>
+ <font color="#008844">; 5</font>
+ <font color="#008844">; Function:#&lt;Closure-FOO...&gt;</font>
+ <font color="#008844">; Arguments:</font>
+ <font color="#008844">; 5</font>
+
+(clean-up) <font color="#008844">; from break loop</font>
+(setq *tracelimit* 2) <font color="#008844">; show only 2 entries</font>
+
+(foo 5) <font color="#008844">; break: **BREAK**</font>
+ <font color="#008844">; prints Function:#&lt;Subr-BREAK...&gt;</font>
+ <font color="#008844">; Function:#&lt;Closure-FEE...&gt;</font>
+ <font color="#008844">; Arguments:</font>
+ <font color="#008844">; 5</font>
+
+(clean-up) <font color="#008844">; from break loop</font>
+</pre>
+
+<p><b>Note:</b> *tracenable* and
+<a href="global-tracelimit.htm">*tracelimit*</a> system variables have to do
+with back trace information at entry to a
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a></nobr>
+and are not related to the
+<a href="trace.htm">trace</a> and
+<a href="untrace.htm">untrace</a> functions.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#tracenable">*tracenable*</a>
+system variable in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/global-unbound.htm b/docsrc/xlisp/xlisp-doc/reference/global-unbound.htm
new file mode 100644
index 0000000..424b603
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/global-unbound.htm
@@ -0,0 +1,70 @@
+<html><head><title>XLISP *unbound*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*unbound*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system constant</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c, xlsym.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;*unbound*</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The *unbound* system constant is used to indicate when a symbol has no
+value. *unbound* is set to the value *unbound*. This means that the system
+thinks the symbol *unbound* has no value.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+*unbound* <font color="#008844">; error: unbound variable</font>
+(setq a 5) <font color="#008844">; returns 5</font>
+a <font color="#008844">; returns 5</font>
+(setq a '*unbound*) <font color="#008844">; returns *UNBOUND*</font>
+a <font color="#008844">; error: unbound variable</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-011.htm#unbound">*unbound*</a>
+system constant in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/go.htm b/docsrc/xlisp/xlisp-doc/reference/go.htm
new file mode 100644
index 0000000..3c3715f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/go.htm
@@ -0,0 +1,106 @@
+<html><head><title>XLISP go</title></head>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>go</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(go <i>tag-symbol</i>)</dt>
+<dd><i>tag-symbol</i> - a symbol<br>
+returns - never returns a value</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'go' special form allows 'goto' style branching within 'block' constructs
+<nobr>[<a href="do.htm">do</a> ,</nobr>
+<nobr><a href="do-star.htm">do*</a> ,</nobr>
+<nobr><a href="dolist.htm">dolist</a> ,</nobr>
+<nobr><a href="dotimes.htm">dotimes</a> ,</nobr>
+<nobr><a href="tagbody.htm">tagbody</a> ,</nobr>
+<nobr><a href="loop.htm">loop</a> ,</nobr>
+<a href="prog.htm">prog</a> and
+<a href="prog-star.htm">prog*</a>]. The
+'tag-symbol' is the 'label' and must exist somewhere within the 'block'
+that the 'go' occurs within. Otherwise an error will be generated:</p>
+
+<pre class="example">
+<font color="#AA0000">error: no target for GO</font>
+</pre>
+
+<p>'go' never returns a value. If the 'tag-symbol' exists, then
+the execution will continue immediately after the'tag-symbol'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun foo (i j) <font color="#008844">; define FOO</font>
+ (prog () <font color="#008844">; with a PROG</font>
+ (print "begin")
+ start (print j) <font color="#008844">; tag - START</font>
+ (setq j (1- j))
+ (if (eql i j) (GO start) <font color="#008844">; 2-way branch</font>
+ (GO end))
+ (print "hello") <font color="#008844">; won't ever be reached</font>
+ end (print "done") <font color="#008844">; tag - END</font>
+ (return 42)))
+
+(foo 1 2) <font color="#008844">; prints "begin" 2 1 "done"</font>
+ <font color="#008844">; returns 42</font>
+
+(foo 2 1) <font color="#008844">; prints "begin" 1 "done"</font>
+ <font color="#008844">; returns 42</font>
+</pre>
+
+<p><b>Note:</b> Although 'go' will accept a 'tag-symbol' that is not a
+symbol, it will not find this improper 'tag-symbol'. An error will be
+generated:</p>
+
+<pre class="example">
+<font color="#AA0000">error: no target for GO</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-021.htm#go">go</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/hash.htm b/docsrc/xlisp/xlisp-doc/reference/hash.htm
new file mode 100644
index 0000000..03abbe7
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/hash.htm
@@ -0,0 +1,90 @@
+<html><head><title>XLISP hash</title></head>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>hash</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c, xlsym.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(hash <i>name table-size</i>)</dt>
+<dd><i>name</i> - a symbol or string expression<br>
+<i>table-size</i> - an integer expression<br>
+returns - the hash index as an integer value</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'hash' function computes and returns an integer index for a given
+symbol 'name' and a given size of hash table 'table-size'. The intention is
+for 'hash' to be used with tables made by
+<a href="make-array.htm">make-array</a> and accessed by
+<a href="aref.htm">aref</a>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(hash "zzzz" 1000) <font color="#008844">; returns index 322</font>
+(hash "ZZZZ" 1000) <font color="#008844">; returns index 626</font>
+(hash 'ZZZZ 1000) <font color="#008844">; returns index 626</font>
+(hash "hiho" 1000) <font color="#008844">; returns index 519</font>
+(hash 'hiho 1000) <font color="#008844">; returns index 143</font>
+(hash "abcd" 1000) <font color="#008844">; returns index 72</font>
+
+<font color="#008844">;; create a function to look inside *OBARRAY* and</font>
+<font color="#008844">;; look for a specific symbol - returns a list</font>
+
+(defun lookin (sym)
+ (aref *obarray*
+ (hash sym (length *obarray*))))
+
+(lookin 'caar) <font color="#008844">; returns the hash table entry</font>
+ <font color="#008844">; (ZEROP CDDDDR CAAR HASH)</font>
+</pre>
+
+<p><b>Note:</b> This is a useful function for creating and accessing tables.
+It is also useful for looking inside of XLISP's own symbol table
+<a href="global-obarray.htm">*obarray*</a>.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#hash">hash</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/if.htm b/docsrc/xlisp/xlisp-doc/reference/if.htm
new file mode 100644
index 0000000..423e5bf
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/if.htm
@@ -0,0 +1,83 @@
+<html><head><title>XLISP if</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>if</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(if <i>test-expr then-expr</i> [<i>else-expr</i>])</dt>
+<dd><i>test-expr</i> - an expression<br>
+<i>then-expr</i> - the THEN clause, an expression<br>
+<i>else-expr</i> - the ELSE clause, an optional expression<br>
+returns - the value of the selected expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'if' special form evaluates the 'test-expr'. If 'test-expr' evaluates
+to a non-<a href="nil.htm">NIL</a> value, then 'then-expr' is
+evaluated and returned as the result. If 'test-expr' evaluates to
+<a href="nil.htm">NIL</a> and there is an 'else-expr', then the
+'else-expr' is evaluated and its result is returned. If there is no
+'else-expr' and 'test-expr' evaluates to
+<nobr><a href="nil.htm">NIL</a> ,</nobr> then
+<a href="nil.htm">NIL</a> is returned as a result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(if T (print "will print") <font color="#008844">; prints "will print"</font>
+ (print "won't print"))
+
+(if NIL (print "won't print")
+ (print "will print")) <font color="#008844">; prints "will print"</font>
+
+(if 'a T NIL) <font color="#008844">; returns T</font>
+
+(if NIL 'nope 'yep) <font color="#008844">; returns YEP</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-019.htm#if">&nbsp;if&nbsp;</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/incf.htm b/docsrc/xlisp/xlisp-doc/reference/incf.htm
new file mode 100644
index 0000000..bcf70f2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/incf.htm
@@ -0,0 +1,88 @@
+<html><head><title>XLISP incf</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>incf</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp macro (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>misc.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>incf</b> <i>symbol</i>)</nobr></dt>
+<dd><i>symbol</i> - a symbol with numerical value bound to it<br>
+returns - the new value of the symbol</dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, 'incf' is implemented as a Lisp macro:</p>
+
+<pre class="example">
+(defmacro <font color="#0000CC">incf</font> (symbol)
+ `(setf ,symbol (1+ ,symbol)))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'incf' macro is used for incrementing a numerical value of a variable.
+<nobr>1 is</nobr> added to the number and the result is stored in the
+variable. <nobr>An error</nobr> is signalled if the variable doesn't hold a
+number.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq n 1) =&gt; 1
+(incf n) =&gt; 2
+n =&gt; 2
+(incf n) =&gt; 3
+
+(setq n -1.8) =&gt; -1.8
+(incf n) =&gt; -0.8
+(incf n) =&gt; 0.2
+(incf n) =&gt; 1.2
+n =&gt; 1.2
+
+(setq n #\a) =&gt; #\a
+(incf a) =&gt; <font color="#AA0000">error: bad argument type - #\a</font>
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/increment.htm b/docsrc/xlisp/xlisp-doc/reference/increment.htm
new file mode 100644
index 0000000..06f3c57
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/increment.htm
@@ -0,0 +1,75 @@
+<html><head><title>XLISP 1+</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>1+</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(1+ <i>expr</i>)</nobr></dt>
+<dd><i>expr</i> - integer or floating point number/expression<br>
+returns - the number plus one</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The <nobr>'1+' [increment]</nobr> function adds one to a number and
+returns the result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(1+ 1) =&gt; 2
+(1+ 99.1) =&gt; 100.1
+(1+ 1 2) =&gt; <font color="#AA0000">error: too many arguments</font>
+</pre>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/info.htm b/docsrc/xlisp/xlisp-doc/reference/info.htm
new file mode 100644
index 0000000..d76b33c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/info.htm
@@ -0,0 +1,63 @@
+<html><head><title>XLISP info</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>info</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xldmem.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(info)</dt>
+<dd>returns - <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>info</nobr>' function shows information about memory usage.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+&gt; (info)
+[ Free: 5689, GC calls: 17, Total: 675111; samples 1KB, 0KB free]
+NIL
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/int-char.htm b/docsrc/xlisp/xlisp-doc/reference/int-char.htm
new file mode 100644
index 0000000..8bdd97e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/int-char.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP int-char</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>int-char</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(int-char <i>int</i>)</dt>
+<dd><i>int</i> - an integer numeric expression<br>
+returns - the character with that code</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'int-char' function returns a character which is the result of turning the
+'int' expression into a character. If a 'int' cannot be made into a
+character, an error is signalled:</p>
+
+<pre class="example">
+<font color="#AA0000">error: character code out of range</font>
+</pre>
+
+<p>The range that 'int' produces a valid character is 0 through 255.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(int-char 48) <font color="#008844">; returns #\0</font>
+(int-char 65) <font color="#008844">; returns #\A</font>
+(int-char 97) <font color="#008844">; returns #\a</font>
+(int-char 91) <font color="#008844">; returns #\[</font>
+(int-char 10) <font color="#008844">; returns #\Newline</font>
+(int-char 999) <font color="#008844">; error - character code out of range</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that 'int-char' should return a
+<a href="nil.htm">NIL</a> when there is no valid character for
+the integer value being passed in while XLISP generates an error in these cases.
+In some cases it is possible to substitue the
+<a href="code-char.htm">code-char</a> function for 'int-char'.</p>
+
+<p><b>Note:</b> Unlike the <a href="char-code.htm">char-code</a> and
+<a href="char-int.htm">char-int</a> functions,
+<a href="code-char.htm">code-char</a> and 'int-char' are not identical
+in use. <a href="code-char.htm">code-char</a> accepts 0..127 for its
+range and then produces <a href="nil.htm">NIL</a> results while
+'int-char' accepts 0..255 for its range and then produces errors.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-026.htm#int-char">int-char</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/integerp.htm b/docsrc/xlisp/xlisp-doc/reference/integerp.htm
new file mode 100644
index 0000000..9bce615
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/integerp.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP integerp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>integerp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(integerp <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the value is an
+integer, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'integerp' predicate function checks if an 'expr' is a integer
+number. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if
+'expr' is a integer number,
+<a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(integerp 1) <font color="#008844">; returns T - integer</font>
+(integerp #x034) <font color="#008844">; returns T - integer readmacro</font>
+(integerp '1) <font color="#008844">; returns T - still an integer</font>
+(setq a 14)
+(integerp a) <font color="#008844">; returns T - evaluates to int.</font>
+(integerp 0) <font color="#008844">; returns T - integer zero</font>
+
+(integerp 1.2) <font color="#008844">; returns NIL - float</font>
+(integerp 0.0) <font color="#008844">; returns NIL - float zero</font>
+(integerp 'a) <font color="#008844">; returns NIL - symbol</font>
+(integerp #\a) <font color="#008844">; returns NIL - character</font>
+(integerp NIL) <font color="#008844">; returns NIL - NIL</font>
+(integerp #(0 1 2)) <font color="#008844">; returns NIL - array</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#integerp">integerp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/intern.htm b/docsrc/xlisp/xlisp-doc/reference/intern.htm
new file mode 100644
index 0000000..3b23ac5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/intern.htm
@@ -0,0 +1,117 @@
+<html><head><title>XLISP intern</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>intern</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(intern <i>name-str</i>)</dt>
+<dd><i>name-str</i> - a string expression<br>
+returns - the new symbol</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'intern' function takes a string name 'name-str' and creates a new
+interned symbol. What this means is that the symbol 'name-str' will be
+placed into the symbol hash table
+<a href="global-obarray.htm">*obarray*</a>. It's value will be unbound. It's
+property list will be <a href="nil.htm">NIL</a> [empty]. If the
+symbol already exists, no error or action is taken and the old values and
+property lists remain intact. The 'intern' function returns the symbol as
+its result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun lookin (sym) <font color="#008844">; create a function to</font>
+ (aref *obarray* <font color="#008844">; look inside *OBARRAY* and</font>
+ (hash sym (length *obarray*)))) <font color="#008844">; look for a specific symbol</font>
+ <font color="#008844">; returns a list</font>
+
+(lookin "FINGERS") <font color="#008844">; see if "FINGERS" is a symbol</font>
+ <font color="#008844">; returns (:START1) - it isn't</font>
+
+(intern "FINGERS") <font color="#008844">; intern "FINGERS" as a symbol</font>
+ <font color="#008844">; returns FINGERS</font>
+
+(lookin "FINGERS") <font color="#008844">; returns (FINGERS :START1)</font>
+
+(print fingers) <font color="#008844">; error: unbound variable</font>
+ <font color="#008844">; it exists, but has no value</font>
+
+(lookin "TOES") <font color="#008844">; returns NIL - doesn't exist</font>
+toes <font color="#008844">; error: unbound variable</font>
+
+(lookin "TOES") <font color="#008844">; returns (TOES)</font>
+ <font color="#008844">; the act of looking for a</font>
+ <font color="#008844">; value or using a symbol</font>
+ <font color="#008844">; causes it to be INTERNed</font>
+
+(lookin "KNEECAPS") <font color="#008844">; returns (MAX MAPLIST)</font>
+ <font color="#008844">; KNEECAPS doesn't exist</font>
+
+(setq kneecaps 'a-bone) <font color="#008844">; create symbol with a value</font>
+(lookin "KNEECAPS") <font color="#008844">; returns (KNEECAPS MAX MAPLIST)</font>
+</pre>
+
+<p><b>Note:</b> When you 'intern' a string symbol like &quot;fingers&quot;
+in lower case letters, this gets placed in the
+<a href="global-obarray.htm">*obarray*</a> symbol table as a lower case
+symbol. Note that this is different from doing an 'intern' on a string
+symbol &quot;FINGERS&quot; in upper case letters which will get placed in
+the <a href="global-obarray.htm">*obarray*</a> as a upper case symbol.
+&quot;fingers&quot; and &quot;FINGERS&quot; then are two different symbols
+in <a href="global-obarray.htm">*obarray*</a>. Remember also that normal
+symbols created by XLISP are automatically converted to upper case names.
+So, an intern of the lower case symbol name 'fingers and the upper case
+symbol name 'FINGERS will result in the effect that both symbol names get
+interned as the same upper-case symbol FINGERS.</p>
+
+<p><b>Common Lisp:</b> Common LISP allows an optional package
+specification, which XLISP does not support.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#intern">intern</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/interpolate.htm b/docsrc/xlisp/xlisp-doc/reference/interpolate.htm
new file mode 100644
index 0000000..72cee34
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/interpolate.htm
@@ -0,0 +1,76 @@
+<html><head><title>XLISP interpolate</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>interpolate</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xm.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(interpolate <i>x x1 y1 x2 y2</i>)</nobr></dt>
+<dd><i>x</i>, <i>x1</i>, <i>y1</i>, <i>x2</i>, <i>y2</i> - integer or floating point numbers<br>
+returns - the 'y' value corresponding to 'x'</dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, 'interpolate' is implemented as a Lisp function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">interpolate</font> (x x1 y1 x2 y2)
+ (cond ((= x1 x2) x1)
+ (t (+ y1 (* (- x x1) (/ (- y2 y1) (- x2 (float x1))))))))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'interpolate' function linearly interpolates [or extrapolates]
+between points <nobr>(x1, y1)</nobr> and <nobr>(x2, y2)</nobr> to compute
+the <nobr>'y' value</nobr> corresponding <nobr>to 'x'</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/intersection.htm b/docsrc/xlisp/xlisp-doc/reference/intersection.htm
new file mode 100644
index 0000000..80af5f7
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/intersection.htm
@@ -0,0 +1,76 @@
+<html><head><title>XLISP intersection</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>intersection</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xm.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(intersection <i>list1 list2</i>)</nobr></dt>
+<dd><i>listN</i> - a list of symbols or numbers<br>
+returns - the intersection of <i>list1</i> and <i>list2</i></dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, 'intersection' is implemented as a Lisp function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">intersection</font> (a b)
+ (let (result)
+ (dolist (elem a)
+ (if (member elem b) (push elem result)))
+ result))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'intersection' function computes the intersection of two lists.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-answer.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-answer.htm
new file mode 100644
index 0000000..d17b39b
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-answer.htm
@@ -0,0 +1,107 @@
+<html><head><title>XLISP :answer</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:answer</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>message selector</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<a href="send.htm">send</a> <i>class</i> <b>:answer</b> <i>selector fargs body</i>)</nobr></dt>
+<dd><i>class</i> - an existing <a href="class.htm">class</a><br>
+<i>selector</i> - the message selector symbol<br>
+<i>fargs</i> - formal argument list of the same form as a <a href="lambda.htm">lambda</a> argument list<br>
+<i>body</i> - a list containing the method code<br>
+returns - the <a href="class.htm">class</a> object</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The ':answer' message selector adds or changes a method in the specified
+<a href="class.htm">class</a>. <nobr>This method</nobr> consists of the
+message selector symbol, the formal argument list and the executable code
+associated with the message.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq myclass (send class :new '(var))) <font color="#008844">; create MYCLASS with VAR</font>
+
+(send myclass :answer :isnew '() <font color="#008844">; set up initialization</font>
+ '((setq var nil) self))
+
+(send myclass :answer :set-it '(value) <font color="#008844">; create :SET-IT message</font>
+ '((setq var value)))
+
+(send myclass :answer :mine '() <font color="#008844">; create :MINE message</font>
+ '((print "hi there")))
+
+(setq my-obj (send myclass :new)) <font color="#008844">; create MY-OBJ of MYCLASS</font>
+(send my-obj :set-it 5) <font color="#008844">; VAR is set to 5</font>
+(send my-obj :mine) <font color="#008844">; prints "hi there"</font>
+</pre>
+
+<p><b>Note:</b> When you define a message in a
+
+<a href="class.htm">class</a>, the message is only valid for
+<b>instances</b> of the <a href="class.htm">class</a> or its
+<nobr>sub-classes</nobr>. <nobr>You will</nobr> get an error if you try to
+send the message to the <a href="class.htm">class</a> where it was first
+defined. <nobr>If you</nobr> want to add a message to a
+<a href="class.htm">class</a>, you need to define it in the
+<nobr>super-class</nobr> of the class.</p>
+
+<p><b>Message structure:</b> The normal XLISP convention for a message is to
+have a valid symbol preceeded by a colon like
+<a href="keyword-isnew.htm">:isnew</a> or ':my-message'. However, it is
+possible to define a message that is a symbol without a colon, but this
+pollutes the global namespace and also makes the code less readable.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr><a href="../manual/objects.htm">XLISP Object System</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-class.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-class.htm
new file mode 100644
index 0000000..75b1ef5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-class.htm
@@ -0,0 +1,83 @@
+<html><head><title>XLISP :class</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:class</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>message selector</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(send <i>object</i> :class)</dt>
+<dd><i>object</i> - an existing <a href="object.htm">object</a><br>
+returns the <a href="class.htm">class</a> object</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The ':class' message selector will cause a method to run that will return the
+object which is the class of the specified 'object'. Note that the
+returned value is an object which will look like:</p>
+
+<pre class="example">
+#&lt;Object: #18d8c&gt;
+</pre>
+
+<p>The 'object' must exist or an error will be generated:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(send object :class) <font color="#008844">; returns the CLASS object</font>
+(send class :class) <font color="#008844">; returns the CLASS object</font>
+(setq new-cls (send class :new '(var))) <font color="#008844">; create NEW-CLS</font>
+(setq new-obj (send new-cls :new)) <font color="#008844">; create NEW-OBJ of NEW-CLS</font>
+(send new-obj :class) <font color="#008844">; returns the NEW-CLS object</font>
+(send new-cls :class) <font color="#008844">; returns the CLASS object</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-010.htm#object-class">:class</a>
+message selector in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-constituent.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-constituent.htm
new file mode 100644
index 0000000..f9eca40
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-constituent.htm
@@ -0,0 +1,95 @@
+<html><head><title>XLISP :constituent</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:constituent</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>keyword</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;:constituent</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>':constituent' is an entry that is used in the
+<a href="global-readtable.htm">*readtable*</a> system variable that
+contains XLISP's data structures relating to the processing of characters
+from the user [or files] and read-macro expansions. The existance of the
+':constituent' keyword means that the specified character is to be used, as
+is, with no further processing. The system defines that the following
+characters are ':constituent' characters:</p>
+
+<pre class="example">
+0123456789
+!$%&amp;*+-./:&lt;=&gt;?@[]^_{}~
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+abcdefghijklmnopqrstuvwxyz
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun look-at (table) <font color="#008844">; define a function to</font>
+ (dotimes (ch 127) <font color="#008844">; look in a table</font>
+ (prog ((entry (aref table ch))) <font color="#008844">; and print out any</font>
+ (case entry <font color="#008844">; entries with a function</font>
+ (:CONSTITUENT
+ (princ (int-char ch)))
+ (T NIL))))
+ (terpri))
+
+(look-at *readtable*) <font color="#008844">; prints !$%&amp;*+-./0123456789</font>
+ <font color="#008844">; :&lt;=&gt;?@ABCDEFGHIJKLM</font>
+ <font color="#008844">; NOPQRSTUVWXYZ[]^_ab</font>
+ <font color="#008844">; cdefghijklmnopqrstu</font>
+ <font color="#008844">; vwxyz{}~</font>
+</pre>
+
+<p><b>Caution:</b> If you experiment with
+<nobr><a href="global-readtable.htm">*readtable*</a> ,</nobr> it is useful to
+save the old value in a variable, so that you can restore the system
+state.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-008.htm#constituent">:constituent</a>
+keyword in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-isa.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-isa.htm
new file mode 100644
index 0000000..e1b3e5c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-isa.htm
@@ -0,0 +1,83 @@
+<html><head><title>XLISP :isnew</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:isa</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>message selector</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<a href="send.htm">send</a> <i>object</i> :isa <i>class</i>) - test if object inherits from class</dt>
+<dd>returns - <a href="../reference/t.htm">&nbsp;T&nbsp;</a> if object
+is an instance of class or a subclass of class, otherwise
+<a href="../reference/nil.htm">NIL</a><br><br></dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The ':isa' message selector tests if an object inherits from a class.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq a-class (send class :new '(state))) <font color="#008844">; create a new class A-CLASS with STATE</font>
+
+(send a-class :answer :isnew '() <font color="#008844">; set up initialization</font>
+ '((setq state nil) self))
+
+(send a-class :answer :set-it '(value) <font color="#008844">; create :SET-IT message</font>
+ '((setq state value)))
+
+(setq an-obj (send a-class :new)) <font color="#008844">; create AN-OBJ out of A-CLASS</font>
+
+(send an-obj :show) <font color="#008844">; returns object - STATE = NIL</font>
+
+(send an-obj :set-it 5) <font color="#008844">; STATE is set to 5</font>
+(send an-obj :show) <font color="#008844">; returns object - STATE = 5</font>
+
+(SEND an-obj :ISNEW) <font color="#008844">; re-initialize AN-OBJ</font>
+(send an-obj :show) <font color="#008844">; returns object - STATE = NIL</font>
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-isnew.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-isnew.htm
new file mode 100644
index 0000000..eb595bc
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-isnew.htm
@@ -0,0 +1,96 @@
+<html><head><title>XLISP :isnew</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:isnew</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>message selector</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(send <i>object</i> :isnew <i>args</i>)</dt>
+<dd><i>object</i> - an existing object<br>
+<i>args</i> - the arguments to be passed to the init code<br>
+returns - the object</dd>
+</dl>
+
+<dl>
+<dt>(send <i>class</i> :isnew <i>ivars</i> [<i>cvars</i> [<i>superclass</i>]])</dt>
+<dd><i>class</i> - an existing XLISP class<br>
+<i>ivars</i> - list of instance variables for the new class<br>
+<i>cvars</i> - list of class variable symbols for the new class<br>
+<i>superclass</i> - superclass for the new object, default is
+<a href="object.htm">object</a><br>
+returns - the new class object</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The ':isnew' message selector causes an instance to run its
+initialization method. If an ':isnew' message is sent to a class, the class
+definition and state will be reset as specified in the arguments of the
+message.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq a-class (send class :new '(state))) <font color="#008844">; create a new class A-CLASS with STATE</font>
+
+(send a-class :answer :isnew '() <font color="#008844">; set up initialization</font>
+ '((setq state nil) self))
+
+(send a-class :answer :set-it '(value) <font color="#008844">; create :SET-IT message</font>
+ '((setq state value)))
+
+(setq an-obj (send a-class :new)) <font color="#008844">; create AN-OBJ out of A-CLASS</font>
+
+(send an-obj :show) <font color="#008844">; returns object - STATE = NIL</font>
+
+(send an-obj :set-it 5) <font color="#008844">; STATE is set to 5</font>
+(send an-obj :show) <font color="#008844">; returns object - STATE = 5</font>
+
+(SEND an-obj :ISNEW) <font color="#008844">; re-initialize AN-OBJ</font>
+(send an-obj :show) <font color="#008844">; returns object - STATE = NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-010.htm#object-isnew">:isnew</a>
+message selector in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-mescape.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-mescape.htm
new file mode 100644
index 0000000..a0210f5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-mescape.htm
@@ -0,0 +1,86 @@
+<html><head><title>XLISP :mescape</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:mescape</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>keyword</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;:mescape</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The ':mescape' keyword is an entry used in the
+<a href="global-readtable.htm">*readtable*</a> system variable that
+contains XLISP's data structures relating to the processing of characters
+from the user (or files) and read-macro expansions. The existance of the
+':mescape' keyword means that the specified character is to be used as a
+multiple escape character. The system defines that the the vertical bar
+character '|' is the only ':mescape' character.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+<font color="#008844">;; define a function to look in a table</font>
+<font color="#008844">;; and print out any :mescape character</font>
+
+(defun look-at (table)
+ (dotimes (ch 127)
+ (prog ((entry (aref table ch)))
+ (case entry
+ (:mescape (princ (int-char ch)))
+ (t nil))))
+ (terpri))
+
+(look-at *readtable*) <font color="#008844">; prints |</font>
+</pre>
+
+<p><b>Caution:</b> If you experiment with
+<nobr><a href="global-readtable.htm">*readtable*</a> ,</nobr> it is useful
+to save the old value in a variable, so that you can restore the system
+state.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-008.htm#mescape">:mescape</a>
+keyword in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-new.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-new.htm
new file mode 100644
index 0000000..deee953
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-new.htm
@@ -0,0 +1,86 @@
+<html><head><title>XLISP :new</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:new</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>message selector</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(send <i>class</i> :new <i>args</i>)</dt>
+<dd><i>class</i> - an existing XLISP class except for <a href="class.htm">class</a><br>
+<i>args</i> - the initializing arguments for the new instance<br>
+returns - the new class object</dd>
+</dl>
+
+<dl>
+<dt>(send class :new <i>ivars</i> [<i>cvars</i> [<i>superclass</i>]])</dt>
+<dd><i>ivars</i> - list of instance variables for new class<br>
+<i>cvars</i> - list of class variable symbols for new class<br>
+<i>superclass</i> - superclass for new object, the default is <a href="object.htm">object</a><br>
+returns - the new class object</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The ':new' message selector exhibits two different behaviors. When you
+are creating an instance of a <a href="class.htm">class</a> you
+only need the ':new' message [consisting of the message selector and any
+data]. When you are creating a new <a href="class.htm">class</a>
+with ':new', you need to specify instance variables and optionally the
+<a href="class.htm">class</a> variables and superclass.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq new-class (send class :new '(state))) <font color="#008844">; create NEW-CLASS with STATE</font>
+(setq new-obj (send new-class :new)) <font color="#008844">; create NEW-OBJ of NEW-CLASS</font>
+(send new-obj :show) <font color="#008844">; shows the object</font>
+
+(setq sub-class (send class :new '(sub-state) <font color="#008844">; create SUB-CLASS of NEW-CLASS</font>
+ '() new-class))
+(send sub-class :show) <font color="#008844">; show the SUB-CLASS</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-010.htm#class-new">:new</a>
+message selector in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-nmacro.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-nmacro.htm
new file mode 100644
index 0000000..17732a2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-nmacro.htm
@@ -0,0 +1,103 @@
+<html><head><title>XLISP :nmacro</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:nmacro</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>keyword</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(:nmacro . <i>function</i>)</dt>
+<dd><i>function</i> - a function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>':nmacro' is an entry that is used in the
+<a href="global-readtable.htm">*readtable*</a> system variable that contains
+XLISP's data structures relating to the processing of characters from the
+user [or files] and read-macro expansions. The existance of the ':nmacro'
+keyword means that the specified character is the start of a non-terminal
+read macro. For ':nmacro', the form of the
+<a href="global-readtable.htm">*readtable*</a> entry is a dotted pair
+like:</p>
+
+<pre class="example">
+(:nmacro . <font color="#008844"><i>function</i></font>)
+</pre>
+
+<p>The 'function' can be a built-in read-macro function or a user defined
+lambda expression. The 'function' takes two parameters, an input stream
+specification, and an integer that is the character value. The 'function'
+should return <a href="nil.htm">NIL</a> if the character is
+'white-space' or a value <a href="cons.htm">cons</a>ed with
+<a href="nil.htm">NIL</a> to return the value. The 'function'
+will probably read additional characters from the input stream.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun look-at (table) <font color="#008844">; define a function to</font>
+ (dotimes (ch 127) <font color="#008844">; look in a table</font>
+ (prog ((entry (aref table ch))) <font color="#008844">; and print out any</font>
+ (if (and (consp entry) <font color="#008844">; :NMACRO entries</font>
+ (equal (car entry)
+ ':nmacro))
+ (princ (int-char ch)))))
+ (terpri))
+(look-at *readtable*) <font color="#008844">; prints #</font>
+</pre>
+
+<p><b>Note:</b> The system defines that the hash [#] character is a
+non-terminal. This is because the hash is used for a variety of 'read macro
+expansions' including <a href="function.htm">function</a>, an
+<a href="../misc/ascii-table.htm">ASCII</a> code, and hexadecimal
+numbers.</p>
+
+<p><b>Caution:</b> If you experiment with
+<nobr><a href="global-readtable.htm">*readtable*</a> ,</nobr> it is useful
+to save the old value in a variable, so that you can restore the system
+state.</p>
+
+<p>See the
+<a href="../manual/manual/xlisp-man-008.htm#nmacro">:nmacro</a>
+keyword in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-sescape.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-sescape.htm
new file mode 100644
index 0000000..44d98f9
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-sescape.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP :sescape</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:sescape</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>keyword</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;:sescape</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The ':sescape' keyword is an entry used in the
+<a href="global-readtable.htm">*readtable*</a> system variable that contains
+XLISP's data structures relating to the processing of characters from the
+user [or files] and read-macro expansions. The existance of the ':sescape'
+keyword means that the specified character is to be used as a single escape
+character. The system defines that the the backslash character '\' is the
+only defined ':sescape' character.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+<font color="#008844">;; define a function to look in a table</font>
+<font color="#008844">;; and print out any :SESCAPE character</font>
+
+(defun look-at (table)
+ (dotimes (ch 127)
+ (prog ((entry (aref table ch)))
+ (case entry
+ (:SESCAPE (princ (int-char ch)))
+ (t nil))))
+ (terpri))
+
+(look-at *readtable*) <font color="#008844">; prints \</font>
+</pre>
+
+<p><b>Caution:</b> If you experiment with *readtable*, it is useful to save
+the old value in a variable, so that you can restore the system state.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-008.htm#sescape">:sescape</a>
+keyword in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-show.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-show.htm
new file mode 100644
index 0000000..0700e31
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-show.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP :show</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:show</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>message selector</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(send <i>object</i> :show)</dt>
+<dd><i>object</i> - an existing <a href="object.htm">object</a><br>
+returns - the <i>object</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The ':show' message selector attempts to find the 'show' method in the
+specified <a href="object.htm">object</a>s class. Since the ':show'
+message selector is built-in in the root
+<a href="class.htm">class</a>, this is always a valid message
+selector. The <a href="object.htm">object</a> must already
+exist.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq my-class (send class :new '(state))) <font color="#008844">; create MY-CLASS with STATE</font>
+
+(send my-class :answer :isnew '() <font color="#008844">; set up initialization</font>
+ '((setq state nil) self))
+
+(send my-class :answer :set-it '(value) <font color="#008844">; create :SET-IT message</font>
+ '((setq state value)))
+
+(setq my-obj (send my-class :new)) <font color="#008844">; create MY-OBJ of MY-CLASS</font>
+(send my-obj :show) <font color="#008844">; returns object state including STATE = NIL</font>
+(send my-obj :set-it 5) <font color="#008844">; STATE is set to 5</font>
+(send new-obj :show) <font color="#008844">; error: unbound variable</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-010.htm#object-show">:show</a>
+message selector in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-tmacro.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-tmacro.htm
new file mode 100644
index 0000000..d290d9d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-tmacro.htm
@@ -0,0 +1,107 @@
+<html><head><title>XLISP :tmacro</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:tmacro</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>keyword</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(:tmacro . <i>function</i>)</dt>
+<dd><i>function</i> - a function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>':tmacro' is an entry that is used in the
+<a href="global-readtable.htm">*readtable*</a> system variable that contains
+XLISP's data structures relating to the processing of characters from the
+user [or files] and read-macro expansions. The existance of the ':tmacro'
+keyword means that the specified character is the start of a terminal read
+macro. For ':tmacro', the form of the
+<a href="global-readtable.htm">*readtable*</a> entry is a dotted pair
+like:</p>
+
+<pre class="example">
+(:tmacro . <font color="#008844"><i>function</i></font>)
+</pre>
+
+<p>The 'function' can be a built-in read-macro function or a user defined
+lambda expression. The 'function' takes two parameters, an input stream
+specification, and an integer that is the character value. The 'function'
+should return <a href="nil.htm">NIL</a> if the character is
+'white-space' or a value <a href="cons.htm">cons</a>ed with
+<a href="nil.htm">NIL</a> to return the value. The 'function'
+will probably read additional characters from the input stream.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun look-at (table) <font color="#008844">; define a function to look in a table</font>
+ (dotimes (ch 127) <font color="#008844">; and print out any :TMACRO entries</font>
+ (prog ((entry (aref table ch)))
+ (if (and (consp entry)
+ (equal (car entry) ':TMACRO))
+ (princ (int-char ch)))))
+ (terpri))
+
+(look-at *readtable*) <font color="#008844">; prints "'(),;`</font>
+</pre>
+
+<p><b>Note:</b> The system defines that the following are ':tmacro'
+characters:</p>
+
+<pre>
+ \ " ` , ( ) ;
+</pre>
+
+<p>[backslash, double quote, backquote, comma, opening parenthesis, closing
+parenthesis, semicolon.]</p>
+
+<p><b>Caution:</b> If you experiment with
+<nobr><a href="global-readtable.htm">*readtable*</a> ,</nobr> it is useful
+to save the old value in a variable, so that you can restore the system
+state.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-008.htm#tmacro">:tmacro</a>
+keyword in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keyword-white-space.htm b/docsrc/xlisp/xlisp-doc/reference/keyword-white-space.htm
new file mode 100644
index 0000000..be3fed0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keyword-white-space.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP :white-space</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>:white-space</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>keyword</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;:white-space</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The ':white-space' keyword is an entry that is used in the <a
+href="global-readtable.htm">*readtable*</a> system variable that contains
+XLISP's data structures relating to the processing of characters from the
+user [or files] and read-macro expansions. The existance of the
+':white-space' keyword means that the specified character may be skipped
+over. The system defines that 'tab', 'space', 'return' and 'line-feed' are
+':white-space' characters.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+<font color="#008844">;; define a function to look in a table</font>
+<font color="#008844">;; and print out any white-space characters</font>
+
+(defun look-at (table)
+ (dotimes (ch 127)
+ (prog ((entry (aref table ch)))
+ (case entry
+ (nil nil)
+ (:constituent nil)
+ (:white-space (print ch))
+ (t nil))))
+ (terpri))
+
+(look-at *readtable*) <font color="#008844">; prints 9 - tab</font>
+ <font color="#008844">; 10 - newline</font>
+ <font color="#008844">; 12 - formfeed</font>
+ <font color="#008844">; 13 - return</font>
+ <font color="#008844">; 32 - space</font>
+</pre>
+
+<p><b>Caution:</b> If you experiment with
+<nobr><a href="global-readtable.htm">*readtable*</a> ,</nobr> it is useful
+to save the old value in a variable, so that you can restore the system
+state.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-008.htm#white-space">:white-space</a>
+keyword in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/keywordp.htm b/docsrc/xlisp/xlisp-doc/reference/keywordp.htm
new file mode 100644
index 0000000..dc49926
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/keywordp.htm
@@ -0,0 +1,78 @@
+<html><head><title>XLISP keywordp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>keywordp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>sal-parse.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(keywordp <i>expr</i>)</nobr></dt>
+<dd><i>expr</i> - an arbitrary Lisp expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the expression is a keyword symbol, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<pre class="example">
+(defun <font color="#0000CC">keywordp</font> (s)
+ (and (symbolp s)
+ (eq (type-of (symbol-name s)) 'string)
+ (equal (char (symbol-name s) 0) #\:)))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'keywordp' function tests if a lisp expression is a keyword symbol.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(keywordp :a) =&gt; T
+(keywordp :B) =&gt; T
+(keywordp 'c) =&gt; NIL
+(keywordp "d") =&gt; NIL
+(keywordp #\e) =&gt; NIL
+(keywordp 123) =&gt; NIL
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/labels.htm b/docsrc/xlisp/xlisp-doc/reference/labels.htm
new file mode 100644
index 0000000..16fbc3c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/labels.htm
@@ -0,0 +1,101 @@
+<html><head><title>XLISP labels</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>labels</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(labels ([<i>function</i> ... ]) <i>expr</i> ... )</dt>
+<dd><i>function</i> - a function definition binding which is of the form:<br>
+<dl><dd>(<i>symbol arg-list body</i>)</dd>
+<dl><dd><i>symbol</i> - the symbol specifying the function name<br>
+<i>arg-list</i> - the argument list for the function<br>
+<i>body</i> - the body of the function</dd></dl></dl>
+<i>expr</i> - an expression<br>
+returns - the value of the last expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'labels' special form is basically a local block construct that
+allows local 'function' definitions followed by a block of code to evaluate.
+The first form after the labels is the 'binding' form. It contains a series
+of 'functions'. 'labels' allows the'functions' to be defined in a mutually
+recursive manner. [The similar <a href="flet.htm">flet</a> form
+does not allow this.] The 'labels' form will go through and define the
+'symbols' of the 'functions' and then sequentially execute the 'exprs'. The
+value of the last 'expr' evaluated is returned. When the 'labels' is
+finished execution, the 'symbols' that were defined will no longer
+exist.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(labels ((fuzz (x) (+ x x))) <font color="#008844">; a LABELS with a local function FUZZ</font>
+ (fuzz 2)) <font color="#008844">; returns 4</font>
+
+ <font color="#008844">; FUZZ no longer exists</font>
+(fuzz 2) <font color="#008844">; error: unbound function - FUZZ</font>
+
+ <font color="#008844">; an empty LABELS</font>
+(labels () (print 'a)) <font color="#008844">; prints A</font>
+
+ <font color="#008844">; LABELS form including</font>
+(labels ((inc (arg) (est arg)) <font color="#008844">; INC definition using EST</font>
+ (est (var) (* .1 var))) <font color="#008844">; EST definition</font>
+ (inc 99) ) <font color="#008844">; returns 9.9</font>
+
+ <font color="#008844">; FLET form including</font>
+(flet ((inc (arg) (est arg)) <font color="#008844">; INC definition using EST</font>
+ (est (var) (* .1 var))) <font color="#008844">; EST definition</font>
+ (inc 99) <font color="#008844">; error: unbound function - EST</font>
+</pre>
+
+<p><b>Note:</b> <a href="flet.htm">flet</a> does not allow
+recursive definitions of functions. The 'label' special form does allow
+this.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-019.htm#labels">labels</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-aux.htm b/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-aux.htm
new file mode 100644
index 0000000..b3c5324
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-aux.htm
@@ -0,0 +1,116 @@
+<html><head><title>XLISP &amp;aux</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>&amp;aux</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>keyword</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xleval.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><b>&amp;aux</b> [<i>aux-var</i> | (<i>aux-var aux-value</i>)] ...</dt>
+<dd><i>aux-var</i> - auxiliary variable<br>
+<i>aux-value</i> - auxiliary variable initialization</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p> In XLISP, there are several times that you define a formal argument list
+for a body of code [like <a href="defun.htm">defun</a>,
+<a href="defmacro.htm">defmacro</a>,
+<a href="keyword-answer.htm">:answer</a> and <a
+href="lambda.htm">lambda</a>]. <nobr>The 'aux-var'</nobr> variables are a
+mechanism for you to define variables local to the function or operation
+definition. <nobr>If there</nobr> is an optional <nobr>'aux-value'</nobr>,
+they will be set to that value on entry to the body of code. Otherwise, they
+are initialized <nobr>to <a href="nil.htm">NIL</a></nobr>. <nobr>At
+the</nobr> end of the function or operation execution, these local symbols
+and their values are removed.</p>
+
+<h2>Examples</h2>
+
+<p>A function '<nobr>my-add</nobr>' with <nobr>one required</nobr> argument
+'num1', <nobr>one <a href="lambda-keyword-rest.htm">&amp;rest</a></nobr>
+argument <nobr>'num-list'</nobr>, and <nobr>one &amp;aux</nobr>
+<nobr>variable 'sum'</nobr>:</p>
+
+<pre class="example">
+(defun my-add (num1 &amp;rest num-list &amp;aux sum)
+ (setq sum num1) <font color="#008844">; initialize SUM</font>
+ (dolist (i num-list) <font color="#008844">; loop through the num-list</font>
+ (setq sum (+ sum i))) <font color="#008844">; add each number to SUM</font>
+ sum) <font color="#008844">; return SUM when finished</font>
+
+(my-add 1 2 3 4) =&gt; 10
+(my-add 5 5 5 5 5) =&gt; 25
+</pre>
+
+<p>See <nobr><a href="addition.htm">&nbsp;+&nbsp;</a></nobr>,
+<a href="defun.htm">defun</a>, <a href="dolist.htm">dolist</a>,
+<a href="lambda-keyword-rest.htm">&amp;rest</a>,
+<a href="setq.htm">setq</a>.</p>
+
+<p>A function '<nobr>more-keys</nobr>' with <nobr>one required</nobr>
+<nobr>argument 'a'</nobr> and <nobr>three &amp;aux</nobr> variables <nobr>'b'
+[initialized</nobr> <nobr>to <a href="nil.htm">NIL</a>]</nobr>, <nobr>'c'
+[initialized</nobr> <nobr>to 99]</nobr>, and <nobr>'d' [initialized</nobr>
+<nobr>to <a href="t.htm">&nbsp;T&nbsp;</a>]</nobr>:</p>
+
+<pre class="example">
+(defun more-keys (a &amp;aux b (c 99) (d t))
+ (format t "a=~a b=~a c=~a d=~a~%" a b c d))
+
+&gt; (more-keys "hi")
+a=hi b=NIL c=99 d=T
+NIL
+</pre>
+
+<p>See <a href="defun.htm">defun</a>, <a href="format.htm">format</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr><a href="../manual/xlisp.htm#auxiliary-variables">Auxiliary Variables</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-key.htm b/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-key.htm
new file mode 100644
index 0000000..b9062d2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-key.htm
@@ -0,0 +1,132 @@
+<html><head><title>XLISP &amp;key</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>&amp;key</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>keyword</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xleval.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&amp;key <i>key-arg</i> ...<br>
+&amp;key (<i>key-arg</i> [<i>key-value</i> [<i>supplied-p-var</i>]]) ...<br>
+&amp;key ((<i>key-symbol key-arg</i>) [<i>key-value</i> [<i>supplied-p-var</i>]]) ...</dt>
+<dd><i>key-arg</i> - keyword argument<br>
+<i>key-symbol</i> - keyword argument symbol<br>
+<i>key-value</i> - keyword argument initialization<br>
+<i>supplied-p-var</i> - argument existence variable</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>In XLISP, there are several times that you define a formal argument list
+for a body of code [like
+<nobr><a href="defun.htm">defun</a> ,</nobr>
+<nobr><a href="defmacro.htm">defmacro</a> ,</nobr>
+<a href="keyword-answer.htm">:answer</a> and
+<a href="lambda.htm">lambda</a>].
+All of the formal arguments that are defined are required to appear in the
+invocation of the defined function or operation. If there are any
+<a href="lambda-keyword-optional.htm">&amp;optional</a> arguments defined, they will
+be filled in order.</p>
+
+<p>There are other optional arguments called 'keyword' arguments. These
+arguments are not position dependent but can be specified in any order by a
+preceding keyword [a symbol with a leading colon ':']. If there is no
+'key-symbol' specified in the argument list, the keyword will be constructed
+from the 'key-arg' name by adding a leading colon ':'. For example a
+'key-arg' of 'furter' will generate a keyword symbol of ':furter'.</p>
+
+<p>Like the <a href="lambda-keyword-optional.htm">&amp;optional</a> arguments, there
+can be initialization values provided via the 'key-value' argument. If there
+is no 'key-value' argument and no value is provided by the function call,
+the 'key-arg' value will be <a href="nil.htm">NIL</a>.</p>
+
+<p>The 'supplied-p-var', if it is specified, will contain a
+<a href="t.htm">&nbsp;T&nbsp;</a> if the 'key-arg' value was
+supplied by the function call and a <a href="nil.htm">NIL</a> if
+it was not supplied by the function call. This 'supplied-p-var' allows the
+programmer to test for an argument's existence. At the end of the function
+or operation execution, these local symbols and their values are are
+removed.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun foo (a &amp;key b c)
+ (print a) (print b) (print c))
+
+(foo) <font color="#008844">; error: too few arguments</font>
+(foo 1) <font color="#008844">; prints 1 NIL NIL</font>
+(foo 1 2) <font color="#008844">; prints 1 NIL NIL</font>
+(foo 1 :b 2 :c 3) <font color="#008844">; prints 1 2 3</font>
+(foo 1 :c 3 :b 2) <font color="#008844">; prints 1 2 3</font>
+(foo 1 :b 3 :b 2) <font color="#008844">; prints 1 3 NIL</font>
+
+(defun fee (a &amp;key (b 9 b-passed))
+ (print a) (print b)
+ (if b-passed (print "b was passed")
+ (print "b not passed")))
+
+(fee) <font color="#008844">; error: too few arguments</font>
+(fee 1) <font color="#008844">; prints 1 9 "b not passed"</font>
+(fee 1 2) <font color="#008844">; prints 1 9 "b not passed"</font>
+(fee 1 :b 2) <font color="#008844">; prints 1 2 "b was passed"</font>
+
+(defun fi (a &amp;key ((:mykey b) 9 b-passed))
+ (print a) (print b)
+ (if b-passed (print "b was passed")
+ (print "b not passed")))
+
+(fi) <font color="#008844">; error: too few arguments</font>
+(fi 1) <font color="#008844">; prints 1 9 "b not passed"</font>
+(fi 1 2) <font color="#008844">; prints 1 9 "b not passed"</font>
+(fi 1 :b 2) <font color="#008844">; prints 1 9 "b not passed"</font>
+(fi 1 :mykey 2) <font color="#008844">; prints 1 2 "b was passed"</font>
+</pre>
+
+<p><b>Note:</b> There is a '&amp;allow-other-keys' keyword in XLISP and
+Common Lisp. In the case of XLISP, this keyword is extraneous since the
+default for keyword arguments is to allow other keys (without errors).</p>
+
+<p>See the
+<a href="../manual/xlisp-man-009.htm#9-1-4">&amp;key</a>
+keyword in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-optional.htm b/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-optional.htm
new file mode 100644
index 0000000..1b746d0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-optional.htm
@@ -0,0 +1,98 @@
+<html><head><title>XLISP &amp;optional</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>&amp;optional</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>keyword</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xleval.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&amp;optional [<i>opt-arg</i> | (<i>opt-arg</i> [<i>opt-value</i> [<i>supplied-p</i>]])] ...</dt>
+<dd><i>opt-arg</i> - optional argument<br>
+<i>opt-value</i> - optional argument initialization value<br>
+<i>supplied-p</i> - optional argument existence variable</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>In XLISP, there are several times that you define a formal argument list
+for a body of code like
+<nobr><a href="defun.htm">defun</a> ,</nobr>
+<nobr><a href="defmacro.htm">defmacro</a> ,</nobr>
+<a href="keyword-answer.htm">:answer</a> and
+<a href="lambda.htm">lambda</a>. All of the formal arguments
+that are defined are required to appear in the invocation of the defined
+function or operation. If there are any '&amp;optional' arguments defined,
+they will be filled in order. If there are insufficient parameters for the
+'&amp;optional' arguments, they will contain
+<nobr><a href="nil.htm">NIL</a> ,</nobr> unless the arguments
+have an 'opt-value' initial value specified. The 'supplied-p' variable, if
+specified, will contain <a href="t.htm">&nbsp;T&nbsp;</a> if
+the 'opt-arg' was supplied by the function call and
+<a href="nil.htm">NIL</a> if it was not supplied by the function
+call. This 'supplied-p' variable allows the programmer to test for an
+arguments existence. At the end of the function or operation execution,
+these local symbols and their values are are removed.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun foo <font color="#008844">; define function FOO</font>
+ (a &amp;optional b (c 1) ) <font color="#008844">; with some optional args</font>
+ (print a) (print b) (print c))
+(foo) <font color="#008844">; error: too few arguments</font>
+(foo 1) <font color="#008844">; prints 1 NIL 1</font>
+(foo 1 2) <font color="#008844">; prints 1 2 1</font>
+(foo 1 2 3) <font color="#008844">; prints 1 2 3</font>
+
+(defun fee <font color="#008844">; define function FEE</font>
+ (a &amp;optional (b 9 b-passed) ) <font color="#008844">; with some optional args</font>
+ (print a) (print b)
+ (if b-passed (print "b was passed")
+ (print "b not passed")))
+(fee 1) <font color="#008844">; prints 1 9 "b not passed"</font>
+(fee 1 2) <font color="#008844">; prints 1 2 "b was passed"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-009.htm#9-1-2">&amp;optional</a>
+keyword in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-rest.htm b/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-rest.htm
new file mode 100644
index 0000000..639465d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/lambda-keyword-rest.htm
@@ -0,0 +1,104 @@
+<html><head><title>XLISP &amp;rest</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>&amp;rest</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>keyword</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xleval.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&amp;rest [<i>rest-arg</i>]</dt>
+<dd><i>rest-arg</i> - rest argument symbol</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>In XLISP, there are several times that you define a formal argument list
+for a body of code like
+<nobr><a href="defun.htm">defun</a> ,</nobr>
+<nobr><a href="defmacro.htm">defmacro</a> ,</nobr>
+<a href="keyword-answer.htm">:answer</a> and
+<a href="lambda.htm">lambda</a>. All of the formal arguments that
+are defined are required to appear in the invocation of the defined function
+or operation. If there are any
+<a href="lambda-keyword-optional.htm">&amp;optional</a> arguments defined, they will
+be filled in order. If there is a '&amp;rest' argument defined, and all
+the required formal arguments and
+<a href="lambda-keyword-optional.htm">&amp;optional</a> arguments are filled, any and
+all further parameters will be passed into the function via the 'rarg'
+argument. There can be only one 'rest-arg' argument for '&amp;rest'. If
+there are insufficient parameters for any of the
+<a href="lambda-keyword-optional.htm">&amp;optional</a> or '&amp;rest' arguments,
+they will contain <a href="nil.htm">NIL</a>. At the end of the
+function or operation execution, these local symbols and their values are
+removed.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun foo <font color="#008844">; define function FOO</font>
+ (a b &amp;optional c d &amp;rest e) <font color="#008844">; with some of each argument</font>
+ (print a) (print b)
+ (print c) (print d) <font color="#008844">; print out each</font>
+ (print e))
+(foo) <font color="#008844">; error: too few arguments</font>
+(foo 1) <font color="#008844">; error: too few arguments</font>
+(foo 1 2) <font color="#008844">; prints 1 2 NIL NIL NIL</font>
+(foo 1 2 3) <font color="#008844">; prints 1 2 3 NIL NIL</font>
+(foo 1 2 3 4) <font color="#008844">; prints 1 2 3 4 NIL</font>
+(foo 1 2 3 4 5) <font color="#008844">; prints 1 2 3 4 (5)</font>
+(foo 1 2 3 4 5 6 7 8 9) <font color="#008844">; prints 1 2 3 4 (5 6 7 8 9)</font>
+
+(defun my-add <font color="#008844">; define function MY-ADD</font>
+ (num1 &amp;rest num-list &amp;aux sum) <font color="#008844">; with 1 arg, rest, 1 aux var</font>
+ (setq sum num1) <font color="#008844">; clear SUM</font>
+ (dotimes (i (length num-list) ) <font color="#008844">; loop through rest list</font>
+ (setq sum (+ sum (car num-list))) <font color="#008844">; add the number to sum</font>
+ (setq num-list (cdr num-list))) <font color="#008844">; and remove num from list</font>
+ sum) <font color="#008844">; return sum when finished</font>
+(my-add 1 2 3 4) <font color="#008844">; returns 10</font>
+(my-add 5 5 5 5 5) <font color="#008844">; returns 25</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-009.htm#9-1-3">&amp;rest</a>
+keyword in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/lambda.htm b/docsrc/xlisp/xlisp-doc/reference/lambda.htm
new file mode 100644
index 0000000..6f656a2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/lambda.htm
@@ -0,0 +1,109 @@
+<html><head><title>XLISP lambda</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>lambda</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(lambda <i>arg-list</i> [<i>body</i>])</dt>
+<dd><i>arg-list</i> - a list of the formal arguments to the function of the form:<br>
+<dl>
+<dd>([<i>arg1</i> ... ]<br>
+&nbsp;[<a href="lambda-keyword-optional.htm">&amp;optional</a> <i>oarg1</i> ... ]<br>
+&nbsp;[<a href="lambda-keyword-rest.htm">&amp;rest</a> <i>rarg</i>]<br>
+&nbsp;[<a href="lambda-keyword-key.htm">&amp;key</a> ... ]<br>
+&nbsp;[<a href="lambda-keyword-aux.htm">&amp;aux</a> <i>aux1</i> ... ])</dd>
+</dl>
+<i>body</i> - a series of LISP forms (expressions) that are executed in order<br>
+returns - the function closure</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The LAMBDA special form returns a function definition [an executable
+function] that has no name. All of the 'argN' formal arguments that are
+defined are required to appear in a call to the defined function. If there
+are any <a href="lambda-keyword-optional.htm">&amp;optional</a> arguments defined,
+they will be filled in order. If there is a
+<a href="lambda-keyword-rest.htm">&amp;rest</a> argument defined, and all the
+required formal arguments and <a href="lambda-keyword-optional.htm">&amp;optional</a>
+arguments are filled, any and all further parameters will be passed into the
+function via the 'rarg' argument. Note that there can be only one 'rarg'
+argument for <a href="lambda-keyword-rest.htm">&amp;rest</a>. If there are
+insufficient parameters for any of the
+<a href="lambda-keyword-optional.htm">&amp;optional</a> or
+<a href="lambda-keyword-rest.htm">&amp;rest</a> arguments, they will contain
+<a href="nil.htm">NIL</a>. The
+<a href="lambda-keyword-aux.htm">&amp;aux</a> variables are a mechanism for you
+to define variables local to the function definition. At the end of the
+function execution, these local symbols and their values are are
+removed.</p>
+
+<p>Read also the chapter about
+<nobr><a href="../manual/xlisp-man-009.htm">lambda lists</a></nobr>
+in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(funcall (lambda (a b) (* a b)) 4 8 ) <font color="#008844">; evaluate a lambda function</font>
+ <font color="#008844">; returns 32</font>
+
+(funcall (lambda '(a b) (+ a b)) 1 2) <font color="#008844">; evaluate another function</font>
+ <font color="#008844">; returns 3</font>
+
+(funcall (lambda (a b) <font color="#008844">; evaluate a more complex function</font>
+ (print "a no-name fnc") <font color="#008844">; prints "a no-name fnc"</font>
+ (* a b)) 3 8) <font color="#008844">; and returns 24</font>
+</pre>
+
+<p><b>Note:</b> Using a <a href="setq.htm">setq</a> on a 'lambda'
+expression is not the same as a <a href="defun.htm">defun</a>. A
+<a href="setq.htm">setq</a> on a 'lambda' will give the
+variable the value of the 'lambda' closure. This does not mean that the
+variable name can be used as a function.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-012.htm#lambda">lambda</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/last.htm b/docsrc/xlisp/xlisp-doc/reference/last.htm
new file mode 100644
index 0000000..6abb312
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/last.htm
@@ -0,0 +1,75 @@
+<html><head><title>XLISP last</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>last</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(last <i>list-expr</i>)</dt>
+<dd><i>list-expr</i> - a list or list expression<br>
+returns - the last list node in the list</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'last' function returns a list containing the last node or element of
+a list. If the last node is a sub-list, this is returned unaffected.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(last NIL) <font color="#008844">; returns NIL</font>
+(last 'a) <font color="#008844">; error: bad argument type</font>
+(last '(A)) <font color="#008844">; returns (A)</font>
+(last '(A B C D E)) <font color="#008844">; returns (E)</font>
+(last '( A (B C) (D E (F)))) <font color="#008844">; returns ((D E (F)))</font>
+
+(setq children '(junie vicki cindy chris))
+
+(last children) <font color="#008844">; returns (CHRIS)</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#last">last</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/length.htm b/docsrc/xlisp/xlisp-doc/reference/length.htm
new file mode 100644
index 0000000..119d838
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/length.htm
@@ -0,0 +1,74 @@
+<html><head><title>XLISP length</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>length</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(length <i>expr</i>)</dt>
+<dd><i>expr</i> - a list expression or string expression<br>
+returns - the length of the list, array or string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'length' function returns the length of the 'expr'. If the 'expr' is
+a string, the number of characters is returned. If the 'expr' is a list, the
+number of top level elements [atoms or sublists] is returned. If the list is
+<nobr><a href="nil.htm">NIL</a> ,</nobr> a '0' is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(length NIL) <font color="#008844">; returns 0</font>
+(length 'a) <font color="#008844">; error: bad argument type</font>
+(length '(a)) <font color="#008844">; returns 1</font>
+(length '(1 2 3 4 5 6)) <font color="#008844">; returns 6</font>
+(length '(a (b c) (d (e) f) g)) <font color="#008844">; returns 4</font>
+(length "12345") <font color="#008844">; returns 5</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#length">length</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/let-star.htm b/docsrc/xlisp/xlisp-doc/reference/let-star.htm
new file mode 100644
index 0000000..f6ac98a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/let-star.htm
@@ -0,0 +1,106 @@
+<html><head><title>XLISP let*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>let*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(let* ([<i>binding</i> ... ]) <i>expr</i> ... )</dt>
+<dd><i>binding</i> - a variable binding which is one of the forms:
+<dl>
+<dd><i>symbol</i><br>
+(<i>symbol init-expr</i>)
+<dl>
+<dd><i>symbol</i> - a symbol<br>
+<i>init-expr</i> - an initialization expression for <i>symbol</i></dd>
+</dl></dd></dl>
+<i>expr</i> - an expression<br>
+returns - the value of the last expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'let*' special form is basically a local block construct that
+contains symbols [with optional initializations] and a block of code
+[expressions] to evaluate. The first form after the 'let*' is the 'binding'
+form. It contains a series of 'symbols' or 'bindings'. The 'binding' is a
+'symbol' followed by an initialization expression 'init-expr'. If there is
+no 'init-expr', the 'symbol' will be initialized to
+<a href="nil.htm">NIL</a>. The execution of the bindings will
+occur from the first to the last binding. The 'let*' form will go through
+and create and initialize the symbols and then sequentially execute the
+'exprs'. The value of the last 'expr' evaluated is returned. When the 'let*'
+is finished execution, the 'symbols' that were defined will no longer exist
+or retain their values.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(let* (x y z) <font color="#008844">; LET* with local vars</font>
+ (print x) (print y) (print z)) <font color="#008844">; prints NIL NIL NIL</font>
+
+(let* ((a 1) (b 2) (c 3)) <font color="#008844">; LET* with local vars &amp; init</font>
+ (print (+ a b c))) <font color="#008844">; prints and returns 6</font>
+
+(let* ((a 1) (b 2) (c (+ a b))) <font color="#008844">; LET* with local vars &amp; init</font>
+ (print (+ a b c))) <font color="#008844">; prints and returns 6</font>
+</pre>
+
+<p><b>Note:</b></p>
+
+<pre class="example">
+(let* (a b) ... )
+</pre>
+
+<p>can be understood as:</p>
+
+<pre class="example">
+(let (a)
+ (let (b)
+ ... ))
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-019.htm#let*">let*</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/let.htm b/docsrc/xlisp/xlisp-doc/reference/let.htm
new file mode 100644
index 0000000..442fecf
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/let.htm
@@ -0,0 +1,94 @@
+<html><head><title>XLISP let</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>let</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(let ([<i>binding</i> ... ]) <i>expr</i> ... )</dt>
+<dd><i>binding</i> - a variable binding which is one of the forms:
+<dl>
+<dd><i>symbol</i><br>
+(<i>symbol init-expr</i>)
+<dl>
+<dd><i>symbol</i> - a symbol<br>
+<i>init-expr</i> - an initialization expression for <i>symbol</i></dd>
+</dl></dd></dl>
+<i>expr</i> - an expression<br>
+returns - the value of the last expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'let' special form is basically a local block construct that contains
+symbols [with optional initializations] and a block of code [expressions] to
+evaluate. The first form after the 'let' is the 'binding' form. It contains
+a series of 'symbols' or 'bindings'. The 'binding' is a 'symbol' followed by
+an initialization expression 'init-expr'. If there is no 'init-expr', the
+'symbol' will be initialized to <a href="nil.htm">NIL</a>. There
+is no specification as to the order of execution of the bindings. The 'let'
+form will go through and create and initialize the symbols and then
+sequentially execute the 'exprs'. The value of the last 'expr' evaluated is
+returned. When the 'let' is finished execution, the 'symbols' that were
+defined will no longer exist or retain their values.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(let (x y z) <font color="#008844">; LET with local vars</font>
+ (print x) (print y) (print z)) <font color="#008844">; prints NIL NIL NIL</font>
+
+(let ((a 1) (b 2) (c 3)) <font color="#008844">; LET with local vars &amp; init</font>
+ (print (+ a b c))) <font color="#008844">; prints and returns 6</font>
+
+(let ((a 1) (b 2) (c (+ a b))) <font color="#008844">; LET with local vars &amp; init</font>
+ (print (+ a b c))) <font color="#008844">; error: unbound variable - A</font>
+</pre>
+
+<p><b>Note:</b> to make the last example work you need the
+<a href="let-star.htm">let*</a> special form.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-019.htm#let">let</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/list.htm b/docsrc/xlisp/xlisp-doc/reference/list.htm
new file mode 100644
index 0000000..c62588d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/list.htm
@@ -0,0 +1,74 @@
+<html><head><title>XLISP list</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>list</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(list [<i>expr1</i> ... ])</dt>
+<dd><i>exprN</i> - an expression<br>
+returns - the new list</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'list' function takes the expressions and constructs a list out of
+them. This constructed list is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(list) <font color="#008844">; returns NIL</font>
+(list nil) <font color="#008844">; returns (NIL)</font>
+(list 'a) <font color="#008844">; returns (A)</font>
+(list 'a 'b) <font color="#008844">; returns (A B)</font>
+(list 'a 'b 'c) <font color="#008844">; returns (A B C)</font>
+(list 'a 'b nil) <font color="#008844">; returns (A B NIL)</font>
+(list '(a b) '(c d) '( (e f) )) <font color="#008844">; returns ((A B) (C D) ((E F)))</font>
+(list (+ 1 2) (+ 3 4)) <font color="#008844">; returns (3 7)</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#list">list</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/listdir.htm b/docsrc/xlisp/xlisp-doc/reference/listdir.htm
new file mode 100644
index 0000000..c155abe
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/listdir.htm
@@ -0,0 +1,67 @@
+<html><head><title>XLISP listdir</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>listdir</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(<b>listdir</b> <i>path</i>)</dt>
+<dd><i>path</i> - the path of the directory to be listed<br>
+returns - list of filenames in the directory</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'listdir' function returns a list with all filenames in the directory
+or <a href="nil.htm">NIL</a> if the directory could not be found.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(let ((filenames (sort (listdir ".") #'string-lessp)))
+ (dolist (filename filenames)
+ (print filename)))
+</pre>
+
+<p>See also <a href="setdir.htm">setdir</a>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/listp.htm b/docsrc/xlisp/xlisp-doc/reference/listp.htm
new file mode 100644
index 0000000..21fd92c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/listp.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP listp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>listp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(listp <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the value is a
+list or <nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'listp' predicate function checks if the 'expr' is a list.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr' is a
+list or an empty list [the <a href="nil.htm">NIL</a> value],
+<a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(listp '(a b)) <font color="#008844">; returns T - list</font>
+(listp nil) <font color="#008844">; returns T - NIL</font>
+(listp '(a . b)) <font color="#008844">; returns T - dotted pair list</font>
+
+(listp (lambda (x) (print x))) <font color="#008844">; returns NIL - closure - lambda</font>
+(listp #(1 2 3)) <font color="#008844">; returns NIL - array</font>
+(listp *standard-output*) <font color="#008844">; returns NIL - stream</font>
+(listp 1.2) <font color="#008844">; returns NIL - float</font>
+(listp #'quote) <font color="#008844">; returns NIL - fsubr</font>
+(listp 1) <font color="#008844">; returns NIL - integer</font>
+(listp object) <font color="#008844">; returns NIL - object</font>
+(listp "str") <font color="#008844">; returns NIL - string</font>
+(listp #'car) <font color="#008844">; returns NIL - subr</font>
+(listp 'a) <font color="#008844">; returns NIL - symbol</font>
+</pre>
+
+<p><b>Note:</b> <a href="nil.htm">NIL</a> or '() is used in many
+places as a list-class or atom-class expression. Both
+<a href="atom.htm">atom</a> and 'listp', when applied to
+<nobr><a href="nil.htm">NIL</a> ,</nobr> return
+<a href="t.htm">&nbsp;T&nbsp;</a>. If you wish to check
+for a non-empty list, use the <a href="consp.htm">consp</a>
+predicate function.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#listp">listp</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/load.htm b/docsrc/xlisp/xlisp-doc/reference/load.htm
new file mode 100644
index 0000000..627dccd
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/load.htm
@@ -0,0 +1,162 @@
+<html><head><title>XLISP load</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>load</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsys.c, xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(load <i>file</i> [:verbose <i>v-flag</i>] [:print <i>p-flag</i>]))</dt>
+<dd><i>file</i> - a string expression or symbol<br>
+<i>v-flag</i> - an optional key-word expression, default is
+<a href="t.htm">&nbsp;T&nbsp;</a><br>
+<i>p-flag</i> - an optional key-word expression, default is
+<a href="nil.htm">NIL</a><br>
+returns - the filename</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'load' function opens the 'file', reads and evaluates all the forms
+within the 'file'. 'file' may be a string expression or a symbol. When
+'file' is a string, you may specify a complete file location or extensions
+like &quot;/usr/local/bin/myfile.lsp&quot; or &quot;A:\LISP\TIM.LSP&quot;.
+If 'file' is a string and includes a file type or an extension [like
+&quot;.lsp&quot;], then 'load' accesses the specified file. If there is no
+extension on 'file', it will add &quot;.lsp&quot;. If the ':verbose' keyword
+is present and 'v-flag' is
+<nobr>non-<a href="nil.htm">NIL</a> ,</nobr> a load message of
+the form:</p>
+
+<pre class="example">
+; loading "xxxx.lsp"
+</pre>
+
+<p>will be printed to <a href="global-standard-output.htm">*standard-output*</a>.
+If the ':print' keyword is present and 'p-flag' is
+<nobr>non-<a href="nil.htm">NIL</a> ,</nobr> the resulting value
+of each top-level form in 'file' will be printed to
+<a href="global-standard-output.htm">*standard-output*</a>. If the file load was
+successful, then <a href="t.htm">&nbsp;T&nbsp;</a> is returned
+as the result. If the file load was not successful, a
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<p><b>Note:</b> in Nyquist, the XLISP 'load' function first tries to load a
+file from the current directory. <nobr>A '.lsp'</nobr> extension is added if
+there is not already an alphanumeric extension following a period. <nobr>If
+that</nobr> fails, XLISP searches the path, which is obtained from the
+XLISPPATH environment variable in Unix and
+HKEY_LOCAL_MACHINE\SOFTWARE\CMU\Nyquist\XLISPPATH under Win32.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(load 'gloop) <font color="#008844">; prints ; loading "GLOOP.lsp"</font>
+ <font color="#008844">; returns NIL there is no file</font>
+
+(defun foo (x) (print x)) <font color="#008844">; create a function</font>
+(savefun foo) <font color="#008844">; create a file FOO.lsp</font>
+
+(load 'foo) <font color="#008844">; prints ; loading "FOO.lsp"</font>
+ <font color="#008844">; returns T</font>
+
+(load 'foo :verbose NIL) <font color="#008844">; no printing returns T</font>
+
+(load 'foo :print T) <font color="#008844">; prints FOO returns T</font>
+
+(load 'save :verbose T :print T) <font color="#008844">; prints ; loading "FOO.lsp"</font>
+ <font color="#008844">; prints FOO returns T</font>
+
+(load "foo") <font color="#008844">; prints ; loading "foo.lsp"</font>
+ <font color="#008844">; returns NIL - didn't work</font>
+ <font color="#008844">; because the file is "FOO.lsp"</font>
+
+(load "FOO") <font color="#008844">; prints ; loading "FOO.lsp"</font>
+ <font color="#008844">; returns T - did work</font>
+
+(load "FOO.lsp") <font color="#008844">; prints ; loading "FOO.lsp"</font>
+ <font color="#008844">; returns T - did work</font>
+</pre>
+
+<p><b>File names:</b> In the PC and DOS world, all file names and extensions
+[&quot;foo.bat&quot;] are automatically made uppercase. In using XLISP, this
+means you don't have to worry about whether the name is &quot;foo.bat&quot;,
+&quot;FOO.BAT&quot; or even &quot;FoO.bAt&quot;, they will all work.
+However, in other file systems [UNIX in particular], uppercase and lowercase
+do make a difference:</p>
+
+<p>This will create a file named FOO-FILE in UNIX, because XLISP uppercases
+its symbols:</p>
+
+<pre class="example">
+(open 'foo-file :direction :output)
+</pre>
+
+<p>This will create a file named 'foo-file' because UNIX doesn't
+uppercase its file names:</p>
+
+<pre class="example">
+(open "foo-file" :direction :output)
+</pre>
+
+<p>So, if you are having trouble with opening and accessing files, check to
+make sure the file name is in the proper case.</p>
+
+<p><b>Common Lisp:</b> Common Lisp has a 'load' function that is similar
+to XLISP's 'load'. The only difference is that Common Lisp uses an optional
+keyword parameter ':if-does-not-exist' which XLISP does not support.</p>
+
+<p><b>Nyquist:</b> in Nyquist, the XLISP 'load' function first tries to load
+a file from the current directory. A '.lsp' extension is added if there is
+not already an alphanumeric extension following a period. If that fails,
+XLISP searches the path, which is obtained from the XLISPPATH environment
+variable in Unix and HKEY_LOCAL_MACHINE\SOFTWARE\CMU\Nyquist\XLISPPATH under
+Win32. [The Macintosh version has no search path.]</p>
+
+<p><b>Note:</b> In XLISP, the keyword parameters are order sensitive. If
+both ':verbose' and ':print' keywords are used, ':verbose' must come
+first.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-031.htm#load">load</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/log.htm b/docsrc/xlisp/xlisp-doc/reference/log.htm
new file mode 100644
index 0000000..98bfe25
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/log.htm
@@ -0,0 +1,67 @@
+<html><head><title>XLISP log</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>log</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>sndfnint.c, sound.h</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>log</b> <i>number</i>)</dt>
+<dd><i>number</i> - a floating-point number<br>
+returns - the natural logarithm of <i>number</i></dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'log' function computes the natural logarithm of a
+<nobr>floating-point</nobr> number and returns the result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/logand.htm b/docsrc/xlisp/xlisp-doc/reference/logand.htm
new file mode 100644
index 0000000..959f918
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/logand.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP logand</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>logand</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(logand <i>expr1</i> ... )</dt>
+<dd><i>expr</i> - an integer expression<br>
+returns - the result of the AND operation</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'logand' function returns the logical bitwise 'and' of the list of
+expressions. If there is only one argument, it is returned unaltered. If
+there are two or more arguments, the 'logand' function performs the logical
+and operation successively applying the bitwise operation.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(logand 0 0) <font color="#008844">; returns 0</font>
+(logand 0 1) <font color="#008844">; returns 0</font>
+(logand 1 0) <font color="#008844">; returns 0</font>
+(logand 1 1) <font color="#008844">; returns 1</font>
+(logand 55 #x0F) <font color="#008844">; returns 7</font>
+(logand 7 #b0011) <font color="#008844">; returns 3</font>
+(logand 1 2 4 8 16) <font color="#008844">; returns 0</font>
+(logand 15 7 3) <font color="#008844">; returns 3</font>
+</pre>
+
+<p><b>Note:</b> XLISP does not check when read-macro expansions like '#x0FF'
+are out of bounds. It gives no error message and will just truncate the
+number to the low-order bits that it can deal with [usually 32 bits or 8 hex
+digits].</p>
+
+<p>See the
+<a href="../manual/xlisp-man-024.htm#logand">logand</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/logior.htm b/docsrc/xlisp/xlisp-doc/reference/logior.htm
new file mode 100644
index 0000000..d0e004a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/logior.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP logior</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>logior</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(logior <i>expr1</i> ... )</dt>
+<dd><i>exprN</i> - an integer expression<br>
+returns - the result of the Inclusive OR operation</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'logior' function returns the logical bitwise 'inclusive-or' of the
+list of expressions. If there is only one argument, it is returned
+unaltered. If there are two or more arguments, the 'logior' function
+performs the 'inclusive-or' successively applying the bitwise operation.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(logior 0 0) <font color="#008844">; returns 0</font>
+(logior 0 1) <font color="#008844">; returns 1</font>
+(logior 1 0) <font color="#008844">; returns 1</font>
+(logior 1 1) <font color="#008844">; returns 1</font>
+
+(logior 1 2 4 8 16 32 64) <font color="#008844">; returns 127</font>
+(logior 5 #b010) <font color="#008844">; returns 7</font>
+(logior 99 #x1FF) <font color="#008844">; returns 511</font>
+(logior 99 #x400) <font color="#008844">; returns 1123</font>
+</pre>
+
+<p><b>Note:</b> XLISP does not check when read-macro expansions like '#x0FF'
+are out of bounds. It gives no error message and will just truncate the
+number to the low-order bits that it can deal with [usually 32 bits or 8 hex
+digits].</p>
+
+<p>See the
+<a href="../manual/xlisp-man-024.htm#logior">logior</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/lognot.htm b/docsrc/xlisp/xlisp-doc/reference/lognot.htm
new file mode 100644
index 0000000..3ca21b4
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/lognot.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP lognot</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>lognot</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(lognot <i>expr</i>)</dt>
+<dd><i>expr</i> - an integer expression<br>
+returns - the bitwise inversion of number</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p> The 'lognot' function returns the logical bitwise inversion of the
+expression.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(lognot 255) <font color="#008844">; returns -256</font>
+(lognot #xffff0000) <font color="#008844">; returns 65535</font>
+(lognot #x00000000) <font color="#008844">; returns -1</font>
+(lognot 1) <font color="#008844">; returns -2</font>
+
+(logand (lognot 256) 65535) <font color="#008844">; returns 65279</font>
+(lognot #xFFFFFFFE) <font color="#008844">; returns 1</font>
+(lognot #xFFFFFFFC) <font color="#008844">; returns 3</font>
+</pre>
+
+<p><b>Note:</b> XLISP does not check when read-macro expansions like '#x0FF'
+are out of bounds. It gives no error message and will just truncate the
+number to the low-order bits that it can deal with [usually 32 bits or 8 hex
+digits].</p>
+
+<p>See the
+<a href="../manual/xlisp-man-024.htm#lognot">lognot</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/logxor.htm b/docsrc/xlisp/xlisp-doc/reference/logxor.htm
new file mode 100644
index 0000000..2cf8b11
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/logxor.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP logxor</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>logxor</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(logxor <i>expr1</i> ... )</dt>
+<dd>exprN - an integer expression<br>
+returns - the result of the eXclusive OR operation</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'logxor' function returns the logical bitwise 'exclusive-or' of the
+list of expressions. If there is only one argument, it is returned
+unaltered. If there are two or more arguments, the 'logxor' function
+performs the 'exclusive-or' successively applying the bitwise operation.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(logxor 0 0) <font color="#008844">; returns 0</font>
+(logxor 0 1) <font color="#008844">; returns 1</font>
+(logxor 1 0) <font color="#008844">; returns 1</font>
+(logxor 1 1) <font color="#008844">; returns 0</font>
+
+(logxor #b0011 #b0101) <font color="#008844">; returns 6</font>
+(logxor 255 #xF0) <font color="#008844">; returns 15</font>
+(logxor 255 #x0F) <font color="#008844">; returns 240</font>
+(logxor 255 (logxor 255 99)) <font color="#008844">; returns 99</font>
+</pre>
+
+<p><b>Note:</b> XLISP does not check when read-macro expansions like '#x0FF'
+are out of bounds. It gives no error message and will just truncate the
+number to the low-order bits that it can deal with [usually 32 bits or 8 hex
+digits].</p>
+
+<p>See the
+<a href="../manual/xlisp-man-024.htm#logxor">logxor</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/loop.htm b/docsrc/xlisp/xlisp-doc/reference/loop.htm
new file mode 100644
index 0000000..85c3170
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/loop.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP loop</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>loop</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(loop <i>body</i> ... )</dt>
+<dd><i>body</i> - a series of expressions<br>
+returns - never returns [must use non-local exit]</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'loop' special form specifies a 'repeat-forever' construct. The
+expressions in'body' will be evaluated. When the last expression is
+evaluated in 'body', 'loop' will then repeat the 'body'. When a
+<a href="return.htm">return</a> is evaluated within a 'loop', the
+specified value will be returned. 'loop' itself does not generate a return
+value. Other exit mechanisms include
+<nobr><a href="go.htm">go</a> ,</nobr>
+<nobr><a href="throw.htm">throw</a> ,</nobr>
+<nobr><a href="return-from.htm">return-from</a> and errors.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq i 65) <font color="#008844">; initial value</font>
+
+(loop <font color="#008844">; LOOP</font>
+ (princ (int-char i)) <font color="#008844">; print the character</font>
+ (if (= i 90) (return "done")) <font color="#008844">; test for limit</font>
+ (setq i (1+ i))) <font color="#008844">; increment and repeat</font>
+ <font color="#008844">; prints ABCDEFGHIJKLMNOPQRSTUVWXYZ</font>
+ <font color="#008844">; returns "done"</font>
+</pre>
+
+<p><b>Note:</b> If you create a 'loop' with no exit mechanism, you will
+probably have to abort your XLISP session.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-020.htm#loop">loop</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/lower-case-p.htm b/docsrc/xlisp/xlisp-doc/reference/lower-case-p.htm
new file mode 100644
index 0000000..e683614
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/lower-case-p.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP lower-case-p</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>lower-case-p</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(lower-case-p <i>char</i>)</dt>
+<dd><i>char</i> - a character expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a>
+if the character is lower case,
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'lower-case-p' predicate function checks if the 'char' expression
+is a lower case character. If 'char' is lower case a
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned,
+otherwise a
+<a href="nil.htm">NIL</a> is returned.
+Lower case characters are 'a'
+[<a href="../misc/ascii-table.htm">ASCII</a> decimal value 97]
+through 'z'
+[<a href="../misc/ascii-table.htm">ASCII</a> decimal value 122].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(lower-case-p #\a) <font color="#008844">; returns T</font>
+(lower-case-p #\A) <font color="#008844">; returns NIL</font>
+(lower-case-p #\1) <font color="#008844">; returns NIL</font>
+(lower-case-p #\[) <font color="#008844">; returns NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-026.htm#lower-case-p">lower-case-p</a>
+predicate function form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/macroexpand-1.htm b/docsrc/xlisp/xlisp-doc/reference/macroexpand-1.htm
new file mode 100644
index 0000000..5c43a44
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/macroexpand-1.htm
@@ -0,0 +1,85 @@
+<html><head><title>XLISP macroexpand-1</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>macroexpand-1</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(macroexpand-1 <i>form</i>)</dt>
+<dd><i>form</i> - a macro form<br>
+returns - the macro expansion</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'macroexpand-1' function takes a 'form' and expands the first level
+of the macro definition used in the 'form'. The function returns the
+expansion. If the 'form' does not contain a macro, the form is returned
+unaltered.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defmacro plus (n1 n2) `(+ ,n1 ,n2)) <font color="#008844">; define PLUS macro</font>
+(plus 1 2) <font color="#008844">; returns 3</font>
+(macroexpand '(plus 3 4)) <font color="#008844">; returns (+ 3 4)</font>
+(macroexpand-1 '(plus 3 4)) <font color="#008844">; returns (+ 3 4)</font>
+
+(defmacro pl (p1 p2) `(plus ,p1 ,p2)) <font color="#008844">; define PL macro using PLUS</font>
+(pl 3 4) <font color="#008844">; returns 7</font>
+(macroexpand '(pl 3 4)) <font color="#008844">; returns (+ 3 4)</font>
+(macroexpand-1 '(pl 3 4)) <font color="#008844">; returns (PLUS 3 4)</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp returns 2 values for its result of
+'macroexpand-1', the expanded form and a
+<a href="t.htm">&nbsp;T&nbsp;</a> or
+<a href="nil.htm">NIL</a> value that indicates if the form was a
+macro. XLISP returns only the expanded form. Common Lisp also supports an
+optional argument in 'macroexpand-1' for the environment of the expansion.
+XLISP does not support this optional argument.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-012.htm#macroexpand-1">macroexpand-1</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/macroexpand.htm b/docsrc/xlisp/xlisp-doc/reference/macroexpand.htm
new file mode 100644
index 0000000..771f752
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/macroexpand.htm
@@ -0,0 +1,83 @@
+<html><head><title>XLISP macroexpand</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>macroexpand</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(macroexpand <i>form</i>)</dt>
+<dd><i>form</i> - a macro form<br>
+returns - the macro expansion</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'macroexpand' function takes a 'form' and recursively expands the
+macro definitions used in the 'form'. The function returns the expansion. If
+the 'form' does not contain a macro, the form is returned unaltered.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defmacro plus (n1 n2) `(+ ,n1 ,n2)) <font color="#008844">; define PLUS macro</font>
+(plus 1 2) <font color="#008844">; returns 3</font>
+(macroexpand '(plus 3 4)) <font color="#008844">; returns (+ 3 4)</font>
+
+(defmacro pl (p1 p2) `(plus ,p1 ,p2)) <font color="#008844">; define PL macro using PLUS</font>
+(pl 3 4) <font color="#008844">; returns 7</font>
+(macroexpand '(pl 3 4)) <font color="#008844">; returns (+ 3 4)</font>
+(macroexpand-1 '(pl 3 4)) <font color="#008844">; returns (PLUS 3 4)</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp returns 2 values for its result of
+'macroexpand', the expanded form and a
+<a href="t.htm">&nbsp;T&nbsp;</a> or
+<a href="nil.htm">NIL</a> value that indicates if the form was a
+macro. XLISP returns only the expanded form. Common Lisp also supports an
+optional argument in 'macroexpand' for the environment of the expansion.
+XLISP does not support this optional argument.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-012.htm#macroexpand">macroexpand</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/macrolet.htm b/docsrc/xlisp/xlisp-doc/reference/macrolet.htm
new file mode 100644
index 0000000..39de0f2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/macrolet.htm
@@ -0,0 +1,146 @@
+<html><head><title>XLISP macrolet</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>macrolet</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>macrolet</b> ([<i>macro</i> ... ]) <i>expr</i> ... )</dt>
+<dd><i>macro</i> - a macro definition binding which is of the form:<br>
+<dl><dd>(<i>symbol arg-list body</i>)</dd>
+<dl><dd><i>symbol</i> - the symbol specifying the macro name<br>
+<i>arg-list</i> - the argument list for the macro<br>
+<i>body</i> - the body of the macro</dd></dl></dl>
+<i>expr</i> - an expression<br>
+returns - the value of the last expression</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'macrolet' special form is basically a local <a
+href="block.htm">block</a> construct that allows local 'macro' definitions
+followed by a block of code to evaluate. <nobr>The first</nobr> form after
+the macrolet is the 'binding' form. <nobr>It contains</nobr> a series of
+'macros'. <nobr>The 'macrolet'</nobr> form will sequentially execute the
+'exprs' after defining the 'macros'. <nobr>The value</nobr> of the last
+'expr' evaluated is returned. When the 'macrolet' is finished execution, the
+'symbols' that were defined will no longer exist.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+&gt; (macrolet ((pls (n1 n2) <font color="#008844">; MACROLET defining a PLS macro</font>
+ `(+ ,n1 ,n2)))
+ (pls 4 5))
+9
+
+&gt; (pls 4 5) <font color="#008844">; the PLS macro no longer exists</font>
+<font color="#AA0000">error: unbound function - PLS</font>
+
+&gt; (macrolet () <font color="#008844">; an empty MACROLET</font>
+ (print 'a))
+A <font color="#008844">; screen output of PRINT</font>
+A <font color="#008844">; return value</font>
+</pre>
+
+<h2>Known Problems</h2>
+
+<p><b>1.</b> In XLISP, only macros defined by
+
+<a href="defmacro.htm">defmacro</a> [interned in the
+<a href="global-obarray.htm">*obarray*</a>] can be used with
+<a href="setf.htm">setf</a>:</p>
+
+<pre class="example">
+(setq a #(1 2 3))
+
+(defmacro second-array-element (array)
+ `(aref ,array 1))
+
+(second-array-element a) =&gt; 2
+(setf (second-array-element a) 'x) =&gt; X
+a =&gt; #(1 X 3)
+</pre>
+
+<p>With macros defined by 'macrolet' [stored in the lexical environment],
+<a href="setf.htm">setf</a> signals a '<nobr>bad place form</nobr>' error:</p>
+
+<pre class="example">
+(macrolet ((second-element (array)
+ `(aref ,array 1)))
+ (second-element a)) =&gt; X
+
+(macrolet ((second-element (array)
+ `(aref ,array 1)))
+ (setf (second-element a) 'y)) =&gt; <font color="#AA0000">error: bad place form</font>
+</pre>
+
+<p><b>2.</b> In XLISP, the <a href="macroexpand.htm">macroexpand</a> and
+<nobr><a href="macroexpand-1.htm">macroexpand-1</a></nobr> functions can
+only expand macros defined
+<nobr>by <a href="defmacro.htm">defmacro</a>:</nobr></p>
+
+<pre class="example">
+&gt; (macroexpand-1 '(second-array-element a))
+(AREF A 1)
+</pre>
+
+<p>With macros defined by 'macrolet', the macro form is returned
+unexpanded:</p>
+
+<pre class="example">
+&gt; (macrolet ((second-element (array)
+ `(aref ,array 1)))
+ (macroexpand-1 '(second-element a)))
+(SECOND-ELEMENT A)
+</pre>
+
+<p>In XLISP, the <a href="macroexpand.htm">macroexpand</a> and
+<nobr><a href="macroexpand-1.htm">macroexpand-1</a></nobr> functions only
+search in the <a href="global-obarray.htm">*obarray*</a> for defined macros,
+but not in the lexical environment.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/make-array.htm b/docsrc/xlisp/xlisp-doc/reference/make-array.htm
new file mode 100644
index 0000000..47b576e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/make-array.htm
@@ -0,0 +1,95 @@
+<html><head><title>XLISP make-array</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>make-array</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(make-array <i>size</i>)</dt>
+<dd><i>size</i> - the size [integer] of the array to be created<br>
+returns - the new array</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'make-array' function creates an array of the specified size and
+returns the array. Array elements may be any valid lisp data type, including
+lists or arrays. Arrays made by 'make-array' and accessed by
+<a href="aref.htm">aref</a> are <nobr>base 0.</nobr> This means
+the first element is accessed by element number '0' and the last element is
+accessed by element number 'n-1', where 'n' is the array size. Array
+elements are initialized to <a href="nil.htm">NIL</a>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq my-array (make-array 16)) <font color="#008844">; make the array</font>
+(aref my-array 0) <font color="#008844">; return 0th (first) element</font>
+(aref my-array 15) <font color="#008844">; return 15th (last) element</font>
+(aref my-array 16) <font color="#008844">; error: non existant element</font>
+
+(dotimes (i 16) <font color="#008844">; set each element to its index</font>
+ (setf (aref my-array i) i)) <font color="#008844">; by the setf function</font>
+
+(setq new (make-array 4)) <font color="#008844">; make another array</font>
+(setf (aref new 0) (make-array 4)) <font color="#008844">; make new[0] an array of 4</font>
+(setf (aref (aref new 0) 1) 'a) <font color="#008844">; set new[0,1] = 'a</font>
+(setf (aref new 2) '(a b c)) <font color="#008844">; set new[2] = '(a b c)</font>
+my-array <font color="#008844">; look at array</font>
+</pre>
+
+<p><b>Read macro:</b> There is a built-in read-macro for arrays, '#(...)'
+[the hash symbol with an opening and a closing parenthesis]. This allows you
+to create arbitrary arrays with initial values without going through a
+'make-array' function. There is also the XLISP <a
+href="vector.htm">vector</a> function to create initialized arrays.</p>
+
+<p><b>Common Lisp:</b> Common Lisp supports multi-dimensional arrays, XLISP
+only supports one-dimensional arrays. In XLISP, multi-dimenstional arrays
+can be created by using 'arrays within arrays'. Common Lisp supports various
+keyword parameters that are not supported in XLISP.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-015.htm#make-array">make-array</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/make-string-input-stream.htm b/docsrc/xlisp/xlisp-doc/reference/make-string-input-stream.htm
new file mode 100644
index 0000000..0dd3fe9
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/make-string-input-stream.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP make-string-input-stream</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>make-string-input-stream</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(make-string-input-stream <i>string</i> [<i>start-pos</i> [<i>end-pos</i>]])</dt>
+<dd><i>string</i> - a string expression<br>
+<i>start-pos</i> - an optional numeric expression, default value is '0' [the first character of the string]<br>
+<i>end-pos</i> - an optional numeric expression, default value is the length of the string<br>
+returns - an unnamed stream that reads from the string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'make-string-input-stream' function creates an unnamed stream from
+the 'string' expression. The stream can then be used as any other stream
+object. The optional 'start-pos' expression specifies the starting offset of
+the 'string' expression. A 'start-pos' of '0' will start with the beginning
+of the 'string'. The optional 'end-pos' expression specifies the ending
+offset of the 'string' expression. A 'end-pos' of 4 will make the fourth
+character the last in the stream. If the function is successful, it returns
+the unnamed stream object. If the string is empty, an unnamed stream is
+still returned. Error conditions include 'start-pos' and 'end-pos' being out
+of bounds.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(make-string-input-stream "abcdefgh") <font color="#008844">; returns #&lt;Unnamed-Stream: #277e2&gt;</font>
+(read (make-string-input-stream "123456")) <font color="#008844">; returns 123456</font>
+(read (make-string-input-stream "123456" 1)) <font color="#008844">; returns 23456</font>
+(read (make-string-input-stream "123456" 1 3)) <font color="#008844">; returns 23</font>
+(read (make-string-input-stream "123" 0)) <font color="#008844">; returns 123</font>
+(read (make-string-input-stream "123" 0 3)) <font color="#008844">; returns 123</font>
+(read (make-string-input-stream "123" 2 1)) <font color="#008844">; returns NIL</font>
+(read (make-string-input-stream "123" 0 4)) <font color="#008844">; error: string index out of bounds - 4</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-030.htm#make-string-input-stream">make-string-input-stream</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/make-string-output-stream.htm b/docsrc/xlisp/xlisp-doc/reference/make-string-output-stream.htm
new file mode 100644
index 0000000..ae2cfe2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/make-string-output-stream.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP make-string-output-stream</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>make-string-output-stream</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(make-string-output-stream)</dt>
+<dd>returns - an unnamed output stream</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'make-string-output-stream' function creates and returns an unnamed
+output stream. The stream can then be used as any other stream object.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(make-string-output-stream) <font color="#008844">; returns #&lt;Unnamed-Stream: #2d9c0&gt;</font>
+
+(setq out (make-string-output-stream)) <font color="#008844">; returns #&lt;Unnamed-Stream: #2d95c&gt;</font>
+
+(format out "fee fi fo fum ") <font color="#008844">; \</font>
+(format out "I smell the blood of ") <font color="#008844">; fill up output stream</font>
+(format out "Elmer Fudd") <font color="#008844">; /</font>
+(get-output-stream-string out) <font color="#008844">; returns "fee fi fo fum I smell the blood of Elmer Fudd"</font>
+
+(format out "~%now what") <font color="#008844">; add more to output stream</font>
+(get-output-stream-string out) <font color="#008844">; returns "\nnow what"</font>
+
+(format out "hello") <font color="#008844">; add more to output stream</font>
+(read out) <font color="#008844">; returns HELLO</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-030.htm#make-string-output-stream">make-string-output-stream</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/make-symbol.htm b/docsrc/xlisp/xlisp-doc/reference/make-symbol.htm
new file mode 100644
index 0000000..f0d0a7b
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/make-symbol.htm
@@ -0,0 +1,93 @@
+<html><head><title>XLISP make-symbol</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>make-symbol</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(make-symbol <i>symbol-str</i>)</dt>
+<dd><i>symbol-str</i> - a string expression<br>
+returns - the new symbol</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'make-symbol' function takes a string name 'symbol-str' and creates a
+new symbol. This symbol is temporary and is not
+<a href="intern.htm">intern</a>ed [placed] into the symbol hash
+table <a href="global-obarray.htm">*obarray*</a>. If the symbol already
+exists, no error or action is taken and the old values and property lists
+remain intact. The 'make-symbol' function returns the symbol as its
+result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun lookin (sym) <font color="#008844">; create a function to</font>
+ (aref *obarray* <font color="#008844">; look inside *OBARRAY*</font>
+ (hash sym (length *obarray*)))) <font color="#008844">; and look for a specific</font>
+ <font color="#008844">; symbol - returns a list</font>
+
+(lookin "FEE") <font color="#008844">; returns (CHAR-INT NTH ++)</font>
+ <font color="#008844">; FEE symbol doesn't exist</font>
+
+(make-symbol "FEE") <font color="#008844">; returns FEE symbol</font>
+(lookin "FEE") <font color="#008844">; returns (CHAR-INT NTH ++)</font>
+ <font color="#008844">; FEE still doesn't exist</font>
+
+(intern "FEE") <font color="#008844">; intern FEE symbol</font>
+(lookin "FEE") <font color="#008844">; returns (FEE CHAR-INT NTH ++)</font>
+ <font color="#008844">; FEE does now exist</font>
+</pre>
+
+<p><b>Note:</b> When you 'make-symbol' a string type symbol like
+&quot;fingers&quot;, this is a lower case symbol. This is different from
+doing a 'make-symbol' on a string type symbol &quot;FINGERS&quot;, which is
+an upper case symbol. With string type symbols, &quot;fingers&quot; and
+&quot;FINGERS&quot; are two different symbols. Remember also that normal
+symbols created by XLISP are automatically converted to upper case.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#make-symbol">make-symbol</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/mapc.htm b/docsrc/xlisp/xlisp-doc/reference/mapc.htm
new file mode 100644
index 0000000..83fe3fc
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/mapc.htm
@@ -0,0 +1,87 @@
+<html><head><title>XLISP mapc</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>mapc</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(mapc <i>function list1</i> [<i>list2</i> ... ])</dt>
+<dd><i>function</i> - a function definition like a
+<a href="lambda.htm">lambda</a> form or a function name<br>
+<i>listN</i> - a list or list expression<br>
+returns - the first list of arguments</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'mapc' function applies the 'function' to the succesive
+<a href="car.htm">car</a>s of each of the lists 'listN'. Each of
+the lists supplies one of the arguments to 'function'. The 'mapc' function
+returns a list that is equivalent to the first list 'list1'. It's purpose is
+to perform operations that have side-effects. If the lists are of different
+lengths, the shortest list will determine the number of applications of
+'function'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(mapc 'princ '(hi there bob)) <font color="#008844">; prints HITHEREBOB</font>
+ <font color="#008844">; returns (HI THERE BOB)</font>
+
+(mapc '+ '(1 2 3) '(1 2 3)) <font color="#008844">; returns (1 2 3)</font>
+ <font color="#008844">; there were no side effects</font>
+
+(mapc (lambda (x y) (print (+ x y))) <font color="#008844">; define a function with side effects</font>
+ '(1 2 3) '(1 2 3)) <font color="#008844">; prints 2 4 6 </font>
+ <font color="#008844">; returns (1 2 3)</font>
+</pre>
+
+<p><b>Note:</b> The use of the 'function' will work properly when it is a
+quoted symbol [the name of the function], an unquoted symbol, whose value is
+a function, or a closure object like a
+<a href="lambda.htm">lambda</a> form.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#mapc">mapc</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/mapcar.htm b/docsrc/xlisp/xlisp-doc/reference/mapcar.htm
new file mode 100644
index 0000000..8112cba
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/mapcar.htm
@@ -0,0 +1,151 @@
+<html><head><title>XLISP mapcar</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>mapcar</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(mapcar <i>function list1</i> [<i>list2</i> ... ])</dt>
+<dd><i>function</i> - a function definition like a
+<a href="lambda.htm">lambda</a> or a function name<br>
+<i>listN</i> - a list or list expression<br>
+returns - a list that is constructed from the results of the <i>function</i> applications</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The mapcan function 'mapcar' applies the 'function' to the succesive
+<a href="car.htm">car</a>s of each of the lists 'listN'. Each of
+the lists supplies one of the arguments to 'function'. The 'mapcar' function
+returns a list that is constructed from the results of the 'function'
+applications. If the lists are of different lengths, the shortest list will
+determine the number of applications of 'function'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+&gt; (mapcar #'+ '(1 2 3) '(1 2 3))
+(2 4 6)
+
+&gt; (mapcar #'princ '(1 2 3))
+123 <font color="#008844">; screen output</font>
+(1 2 3) <font color="#008844">; return value</font>
+
+&gt; (mapcar #'+ '(1 2 3) '(1 2 3 4 5 6) <font color="#008844">; different length lists</font>
+(2 4 6)
+</pre>
+
+<p><b>Note:</b> The use of the 'function' will work properly when it is a
+<nobr>sharp-quoted</nobr> symbol, <nobr>a quoted</nobr> symbol [must be the
+name of a function], <nobr>an unquoted</nobr> symbol whose value is a
+function, or a closure object like a <a href="lambda.htm">lambda</a>
+form.</p>
+
+<p><div class="box">
+
+<p><b>Bug:</b> The proper syntax for 'function' when 'function' is a
+<a href="lambda.htm">lambda</a> expression is, for example:</p>
+
+<pre class="example">
+(mapcar #'(lambda (arg1 arg2) (+ arg1 arg2)) '(1 2))
+</pre>
+
+<p>and not:</p>
+
+<pre class="example">
+(mapcar '(lambda (arg1 arg2) (+ arg1 arg2)) '(1 2))
+</pre>
+
+<p>That is, the #' [<a href="function.htm">function</a>] read macro must be
+present. This error should be caught by the XLISP interpreter, but it is
+not, with the result that very obscure garbage collection bugs occur.
+<nobr>[I still</nobr> haven't tested Nyquist for possible garbage collection
+bugs caused by this.]</p>
+
+</div></p>
+
+<h2>Notes</h2>
+
+<p>In XLISP, a '<nobr>special form</nobr>' of type FSUBR is not a function.
+This means that 'mapcar' only works with functions of type SUBR
+<nobr>[built-in</nobr> function] or CLOSURE [function defined by
+<a href="defun.htm">defun</a>, <a href="flet.htm">flet</a>,
+<a href="labels.htm">labels</a>, or <a href="lambda.htm">lambda</a>], but
+with special forms of <nobr>type FSUBR</nobr> a 'bad function' error is
+signalled. Here is an example how to work around this behaviour:</p>
+
+<pre class="example">
+(defmacro <font color="#0000CC">mapcar*</font> (function &amp;rest args)
+ (if (eq (type-of (symbol-function (second function))) 'fsubr)
+ (let ((rest (gensym)))
+ `(mapcar #'(lambda (&rest ,rest)
+ (eval (cons ,function ,rest)))
+ ,@args))
+ `(mapcar ,function ,@args)))
+</pre>
+
+<p>Examples:</p>
+
+<pre class="example">
+(type-of #'eql) =&gt; SUBR <font color="#008844">; built-in function</font>
+(type-of #'and) =&gt; FSUBR <font color="#008844">; built-in special form</font>
+
+&gt; (macroexpand-1 '(mapcar* #'eql '(1 2 3) '(t nil 3)))
+(MAPCAR (FUNCTION EQL)
+ (QUOTE (1 2 3))
+ (QUOTE (T NIL 3)))
+
+&gt; (macroexpand-1 '(mapcar* #'and '(1 2 3) '(t nil 3)))
+(MAPCAR (FUNCTION (LAMBDA (&amp;REST G7)
+ (EVAL (CONS (FUNCTION AND) G7))))
+ (QUOTE (1 2 3))
+ (QUOTE (T NIL 3)))
+
+(mapcar #'eql '(1 2 3) '(t nil 3))) =&gt; (NIL NIL T)
+(mapcar* #'eql '(1 2 3) '(t nil 3))) =&gt; (NIL NIL T)
+
+(mapcar #'and '(1 2 3) '(t nil 3))) =&gt; <font color="#AA0000">error: bad function</font>
+(mapcar* #'and '(1 2 3) '(t nil 3))) =&gt; (T NIL 3)
+</pre>
+
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/mapl.htm b/docsrc/xlisp/xlisp-doc/reference/mapl.htm
new file mode 100644
index 0000000..fb65045
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/mapl.htm
@@ -0,0 +1,89 @@
+<html><head><title>XLISP mapl</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>mapl</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(mapl <i>function list1</i> [<i>list2</i> ... ])</dt>
+<dd><i>function</i> - a function definition like a
+<a href="lambda.htm">lambda</a> form or a function name<br>
+<i>listN</i> - a list or list expression<br>
+returns - a list that is equivalent to <i>list1</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>Tha 'mapl' function applies the 'function' to the successive
+<a href="cdr.htm">cdr</a>s of each of the lists 'listN'. Each of
+the lists supplies one of the arguments to 'function'. The 'mapl' function
+returns a list that is equivalent to the first list 'list1'. It's purpose is
+to perform operations that have side-effects. If the lists are of different
+lengths, the shortest list will determine the number of applications of
+'function'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(mapl 'print '(a b c)) <font color="#008844">; prints (A B C)</font>
+ <font color="#008844">; (B C)</font>
+ <font color="#008844">; (C)</font>
+ <font color="#008844">; returns (A B C)</font>
+
+<font color="#008844">;; apply a lambda function to a list</font>
+(mapl (lambda (x y) (princ x) (princ y) (terpri))
+ '(a b c) '(1 2 3)) <font color="#008844">; prints (A B C)(1 2 3)</font>
+ <font color="#008844">; (B C)(2 3)</font>
+ <font color="#008844">; (C)(3)</font>
+ <font color="#008844">; returns (A B C)</font>
+</pre>
+
+<p><b>Note:</b> The use of the 'function' will work properly when it is a
+quoted symbol [the name of the function], an unquoted symbol whose value is
+a function or a closure object like a
+<a href="lambda.htm">lambda</a> form.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#mapl">mapl</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/maplist.htm b/docsrc/xlisp/xlisp-doc/reference/maplist.htm
new file mode 100644
index 0000000..a0abe69
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/maplist.htm
@@ -0,0 +1,86 @@
+<html><head><title>XLISP maplist</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>maplist</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(maplist <i>function list1</i> [<i>list2</i> ... ])</dt>
+<dd><i>function</i> - a function definition like a
+<a href="lambda.htm">lambda</a> or a function name<br>
+<i>listN</i> - a list or list expression<br>
+returns - a list that is constructed from the results of the
+<i>function</i> applications</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'maplist' function applies the 'function' to the successive
+<a href="cdr.htm">cdr</a>s of each of the lists 'listN'. Each of
+the lists supplies one of the arguments to 'function'. The 'maplist'
+function returns a list that is constructed from the results of the
+'function' applications. If the lists are of different lengths, the shortest
+list will determine the number of applications of 'function'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(maplist 'print '(a b c)) <font color="#008844">; prints (A B C)</font>
+ <font color="#008844">; (B C)</font>
+ <font color="#008844">; (C)</font>
+ <font color="#008844">; returns ((A B C) (B C) (C))</font>
+
+<font color="#008844">;; append the lists into one list and find it's length</font>
+(maplist (lambda (x y) (length (append x y)))
+ '(a b c d) '(1 2 3 4)) <font color="#008844">; returns (8 6 4 2)</font>
+</pre>
+
+<p><b>Note:</b> The use of the 'function' will work properly when it is a
+quoted symbol [the name of the function], an unquoted symbol whose value is
+a function or a closure object like a
+<a href="lambda.htm">lambda</a> form.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#maplist">maplist</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/max.htm b/docsrc/xlisp/xlisp-doc/reference/max.htm
new file mode 100644
index 0000000..bdac974
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/max.htm
@@ -0,0 +1,73 @@
+<html><head><title>XLISP max</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>max</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(max <i>expr1</i> ... )</dt>
+<dd><i>exprN</i> - integer or floating point number/expression<br>
+returns - the largest number in the list of numbers/expressions</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'max' function returns the largest numeric expression from the list
+of arguments.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(max 1) <font color="#008844">; returns 1</font>
+(max 1 -5 9) <font color="#008844">; returns 9</font>
+
+(setq a '( 9 3 5 2)) <font color="#008844">; set up a list - (9 3 5 2)</font>
+(apply 'max a) <font color="#008844">; returns 9</font>
+(apply #'max a) <font color="#008844">; returns 9</font>
+(apply 'min a) <font color="#008844">; returns 2</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#max">max</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/member.htm b/docsrc/xlisp/xlisp-doc/reference/member.htm
new file mode 100644
index 0000000..3dfbebf
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/member.htm
@@ -0,0 +1,93 @@
+<html><head><title>XLISP member</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>member</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(member <i>expr list-expr</i> [{:test | :test-not} <i>test</i>])</dt>
+<dd><i>expr</i> - the expression to find [an atom or a list]<br>
+<i>list-expr</i> - the list to search<br>
+<i>test</i> - optional test function, default is
+<a href="eql.htm">eql</a><br>
+returns - the remainder of the list starting with <i>expr</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'member' function searches through 'list-expr' for 'expr'. If found,
+'member' returns the remainder of the 'list-expr' starting with 'expr'. If
+'expr' is not found, a <a href="nil.htm">NIL</a> is returned. You
+may specify your own test with the ':test' and ':test-not' keywords followed
+by the test you which to perform.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(member 'a '(1 2 3 4)) <font color="#008844">; returns NIL</font>
+(member '2 '(1 2 3 4)) <font color="#008844">; returns (2 3 4)</font>
+
+(setq mylist '(2 4 8 16 32 64 128 256)) <font color="#008844">; make a numeric list</font>
+(member 6 mylist :test '&lt;) <font color="#008844">; returns (8 16 32 64 128 256)</font>
+(member 6 (reverse mylist) :test-not '&lt;) <font color="#008844">; returns (4 2)</font>
+(member '20 '(60 40 20 10) :test '&gt; ) <font color="#008844">; returns (10)</font>
+
+(member '(a) '((see) (a) (cat)) :test 'equal) <font color="#008844">; returns ((A) (CAT)) with EQUAL as test</font>
+(member "hi" '("a" "hi" "c") :test 'string= ) <font color="#008844">; returns ("hi" "c") with STRING= as test</font>
+
+</pre>
+
+<p><b>Note:</b> The 'member' function can work with a list or string as the
+'expr'. However, the default <a href="eql.htm">eql</a> test does
+not work with lists or strings, only symbols and numbers. To make this work,
+you need to use the ':test' keyword along with
+<a href="equal.htm">equal</a> for 'test'.</p>
+
+<p><b>Common Lisp:</b> Common Lisp supports the use of the ':key' keyword
+which specifies a function that is applied to each element of 'list-expr'
+before it is tested. XLISP does not support this.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#member">member</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/min.htm b/docsrc/xlisp/xlisp-doc/reference/min.htm
new file mode 100644
index 0000000..287c85a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/min.htm
@@ -0,0 +1,73 @@
+<html><head><title>XLISP min</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>min</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(min <i>expr1</i> ... )</dt>
+<dd><i>exprN</i> - integer or floating point number/expression<br>
+returns - the smallest number in the list of numbers/expressions</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'min' function returns the minimum [most negative or most nearly
+negative] numeric expression from the list of arguments.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(min 1) <font color="#008844">; returns 1</font>
+(min 8 7 4 2) <font color="#008844">; returns 2</font>
+(min 2 3 -1 -99) <font color="#008844">; returns -99</font>
+(setq a '( 9 3 5 2)) <font color="#008844">; make a numeric list - (9 3 5 2)</font>
+(apply 'min a) <font color="#008844">; returns 2</font>
+(apply #'min a) <font color="#008844">; returns 2</font>
+(apply 'max a) <font color="#008844">; returns 9</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#min">min</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/minusp.htm b/docsrc/xlisp/xlisp-doc/reference/minusp.htm
new file mode 100644
index 0000000..e01376e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/minusp.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP minusp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>minusp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+(minusp <i>expr</i>)
+<dd><i>expr</i> - the numeric expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the number is
+negative, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'minusp' predicate function checks to see if the number 'expr' is
+negative. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if the
+number is negative [less than zero], <a href="nil.htm">NIL</a> is
+returned otherwise. An error is generated if the
+'expr' is not a numeric expression:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(minusp 1) <font color="#008844">; returns NIL</font>
+(minusp 0) <font color="#008844">; returns NIL</font>
+(minusp -1) <font color="#008844">; returns T</font>
+(minusp -.000000005) <font color="#008844">; returns T</font>
+(minusp #xFFFFFFFF) <font color="#008844">; returns T</font>
+(minusp #x01) <font color="#008844">; returns NIL</font>
+
+(minusp 'a) <font color="#008844">; error: bad argument type</font>
+(setq a -3.5) <font color="#008844">; set A to -3.5</font>
+(minusp a) <font color="#008844">; returns T</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#minusp">minusp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/multiplication.htm b/docsrc/xlisp/xlisp-doc/reference/multiplication.htm
new file mode 100644
index 0000000..07b6b6e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/multiplication.htm
@@ -0,0 +1,87 @@
+<html><head><title>XLISP *</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(* <i>expr1</i> ...)</nobr></dt>
+<dd><i>exprN</i> - integer or floating point number/expression<br>
+returns - the result of the multiplication</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '*' function multiplies one or more numbers together and
+returns the result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(* 1) =&gt; 1
+(* 1 2) =&gt; 2
+(* 1 2 3) =&gt; 6
+(* 1 2 3 4) =&gt; 24
+</pre>
+
+<pre class="example">
+&gt; (print (+ 1 2 (* 3.5 (/ 3.9 1.45))))
+12.4138
+12.4138
+</pre>
+
+<p>See <a href="addition.htm">&nbsp;+&nbsp;</a>,
+<a href="division.htm">&nbsp;/&nbsp;</a>, <a href="print.htm">print</a>.
+XLISP first prints the value on the screen, the second number is the
+return value.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/nconc.htm b/docsrc/xlisp/xlisp-doc/reference/nconc.htm
new file mode 100644
index 0000000..20e3b91
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/nconc.htm
@@ -0,0 +1,89 @@
+<html><head><title>XLISP nconc</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>nconc</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(nconc [<i>list1</i> ... ])</dt>
+<dd><i>listN</i> - a list to destructively concatenate<br>
+returns - the result of concatenating the lists</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'nconc' function destructively concatenates a sequence of lists and
+returns the result of this concatentation. The destructive aspect of this
+operation means that the actual symbol values are used in the list-modifying
+operations, not copies. This means, for 'nconc', that the lists are spliced
+together. 'listN' must evaluate to a valid list. An atom for 'listN' will
+result in an error. <a href="nil.htm">NIL</a> is a valid
+'listN'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq a '(1 2 3)) <font color="#008844">; set up A with (1 2 3)</font>
+(setq b '(4 5 6)) <font color="#008844">; set up B with (4 5 6)</font>
+(setq c '(7 8 9)) <font color="#008844">; set up C with (7 8 9)</font>
+(NCONC a b c) <font color="#008844">; returns (1 2 3 4 5 6 7 8 9)</font>
+(setf (nth 8 a) 'end) <font color="#008844">; change last element of A</font>
+(print a) <font color="#008844">; prints (1 2 3 4 5 6 7 8 END)</font>
+(print b) <font color="#008844">; prints (4 5 6 7 8 END)</font>
+(print c) <font color="#008844">; prints (7 8 END)</font>
+</pre>
+
+<p><b>Note:</b> with Nyquist, no error is raised if 'listN' is an atom.
+Instead, all atoms given to the 'nconc' function, if not given as the last
+argument, just disappear:</p>
+
+<pre class="example">
+(nconc 'a 'b 'c 'd) <font color="#008844">; returns D</font>
+(nconc 'a '(b) 'c '(d)) <font color="#008844">; returns (B D)</font>
+(nconc '(a) 'b '(c) 'd) <font color="#008844">; returns (A C . D)</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-017.htm#nconc">nconc</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/nil.htm b/docsrc/xlisp/xlisp-doc/reference/nil.htm
new file mode 100644
index 0000000..b8265e9
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/nil.htm
@@ -0,0 +1,70 @@
+<html><head><title>XLISP nil</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>nil</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system constant</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsym.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;nil</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'nil' constant represents the empty list or the false value, as
+oppossed to the true value [the symbol
+<a href="t.htm">&nbsp;T&nbsp;</a>]. 'nil' can be written as
+the three character symbol 'nil' or as the empty list ().</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq myvar nil) <font color="#008844">; set MYVAR to False</font>
+(setq myvar 'nil) <font color="#008844">; NIL and 'NIL evaluate to NIL</font>
+(setq myvar ()) <font color="#008844">; () is the empty list = NIL</font>
+(setq myvar '()) <font color="#008844">; () and '() evaluate to NIL</font>
+(if nil (print "this won't print") <font color="#008844">; if/then/else</font>
+ (print "this will print"))
+</pre>
+
+<p><b>Note:</b> You can not change the value of NIL.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/not.htm b/docsrc/xlisp/xlisp-doc/reference/not.htm
new file mode 100644
index 0000000..a6ba8d0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/not.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP not</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>not</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(not <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+return - <a href="t.htm">&nbsp;T&nbsp;</a> if the value is
+<nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'not' predicate function checks to see if the 'expr' is false.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if the
+expression is <nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(not '()) <font color="#008844">; returns T - empty list</font>
+(not ()) <font color="#008844">; returns T - still empty</font>
+(setq a NIL) <font color="#008844">; set up a variable</font>
+(not a) <font color="#008844">; returns T - value = empty list</font>
+
+(not "a") <font color="#008844">; returns NIL - not a list</font>
+(not 'a) <font color="#008844">; returns NIL - not a list</font>
+</pre>
+
+<p><b>Note:</b> The 'not' predicate is the same function as the
+<a href="null.htm">null</a> predicate.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#not">not</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/nstring-downcase.htm b/docsrc/xlisp/xlisp-doc/reference/nstring-downcase.htm
new file mode 100644
index 0000000..4d30642
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/nstring-downcase.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP nstring-downcase</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>nstring-downcase</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(nstring-downcase <i>string</i> [{:start | :end} <i>offset</i>] ... )</dt>
+<dd><i>string</i> - a string expression<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - the converted string, not a copy</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'nstring-downcase' function takes a string argument and makes it
+lower case. This function modifies the string or string variable itself, it
+does not just make a copy. The lower case string is returned.</p>
+
+<p> The keyword arguments allow for accessing substrings within 'string'.
+The keyword arguments require a keyword [':start' or ':end'] first and a
+single integer expression second. The ':start' keyword specifies the
+starting offset for the 'nstring-downcase' operation on 'string'. A value of
+0 starts the string at the beginning [no offset]. The ':end' keyword
+specifies the end offset for the operation on 'string'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(nstring-downcase "ABcd+-12&amp;[") <font color="#008844">; returns "abcd+-&amp;["</font>
+(nstring-downcase "ABCDEFGH" :start 2 :end 4) <font color="#008844">; returns "ABcdEFGH"</font>
+
+(setq mystr "ABcdEFgh") <font color="#008844">; set up variable</font>
+(nstring-downcase mystr) <font color="#008844">; returns "abcdefgh"</font>
+(print mystr) <font color="#008844">; prints "abcdefgh"</font>
+ <font color="#008844">; note that MYSTR is modified</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#nstring-downcase">nstring-downcase</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/nstring-upcase.htm b/docsrc/xlisp/xlisp-doc/reference/nstring-upcase.htm
new file mode 100644
index 0000000..98b2b33
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/nstring-upcase.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP nstring-upcase</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>nstring-upcase</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(nstring-upcase <i>string</i> [{:start | :end} <i>offset</i>] ... )</dt>
+<dd><i>string</i> - a string expression<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - the converted string, not a copy</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'nstring-upcase' function takes a string argument and makes it upper
+case. This function modifies the string or string variable itself, it does
+not just make a copy. The upper case string is returned.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string'. The
+keyword arguments require a keyword (':start' or ':end') first and a single
+integer expression second. The ':start' keyword specifies the starting
+offset for the 'nstring-upcase' operation on 'string'. A value of 0 starts
+the string at the beginning [no offset]. The ':end' keyword specifies the
+end offset for the operation on 'string'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(nstring-upcase "ABcd+-12&amp;[") <font color="#008844">; returns "ABCD+-&amp;["</font>
+(nstring-upcase "abcdefgh" :start 2 :end 4) <font color="#008844">; returns "abCDefgh"</font>
+
+(setq mystr "ABcdEFgh") <font color="#008844">; set up variable</font>
+(nstring-upcase mystr) <font color="#008844">; returns "ABCDEFGH"</font>
+(print mystr) <font color="#008844">; prints "ABCDEFGH"</font>
+ <font color="#008844">; note that MYSTR is modified</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#nstring-upcase">nstring-upcase</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/nth.htm b/docsrc/xlisp/xlisp-doc/reference/nth.htm
new file mode 100644
index 0000000..fee31f5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/nth.htm
@@ -0,0 +1,74 @@
+<html><head><title>XLISP nth</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>nth</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(nth <i>expr list-expr</i>)</dt>
+<dd><i>expr</i> - an integer expression<br>
+<i>list-expr</i> - a list or list expression<br>
+returns - the nth element or <a href="nil.htm">NIL</a> if the
+list isn't that long</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>'nth' returns the 'expr'-th element of 'list-expr'. If the 'list-expr' is
+shorter than 'expr', a <a href="nil.htm">NIL</a> is returned. The
+counting sequence is base zero, the first element is the 0th element.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(nth 4 '(0 1 2 3 4 5 6)) <font color="#008844">; returns 4</font>
+(nth 3 '(a b)) <font color="#008844">; returns NIL</font>
+
+(nth 4 'a) <font color="#008844">; error: bad argument type</font>
+(nth 3 "abcdefg") <font color="#008844">; error: bad argument type</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#nth">nth</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/nthcdr.htm b/docsrc/xlisp/xlisp-doc/reference/nthcdr.htm
new file mode 100644
index 0000000..fa41dac
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/nthcdr.htm
@@ -0,0 +1,75 @@
+<html><head><title>XLISP nthcdr</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>nthcdr</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(nthcdr <i>expr list-expr</i>)</dt>
+<dd><i>expr</i> - an integer expression<br>
+<i>list-expr</i> - a list or list expression<br>
+returns - the <a href="nth.htm">nth</a>
+<a href="cdr.htm">cdr</a> or
+<a href="nil.htm">NIL</a> if the list isn't that long</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>'nthcdr' returns the 'expr'-th <a href="cdr.htm">cdr</a>
+of 'list-expr'. If the 'list-expr' is shorter than 'exp',
+a <a href="nil.htm">NIL</a> is returned. The counting sequence
+is base zero, the first element is the 0th element.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(nthcdr 4 '(0 1 2 3 4 5 6)) <font color="#008844">; returns (4 5 6)</font>
+(nthcdr 3 '(a b)) <font color="#008844">; returns NIL</font>
+
+(nthcdr 4 'a) <font color="#008844">; error: bad argument type</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#nthcdr">nthcdr</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/null.htm b/docsrc/xlisp/xlisp-doc/reference/null.htm
new file mode 100644
index 0000000..e683053
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/null.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP null</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>null</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(null <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the list is
+empty, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'null' predicate function checks 'expr' for an empty list.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if the list is
+empty, <a href="nil.htm">NIL</a> is returned otherwise. The
+'expr' does not have to be a valid list, but if it is not a list then
+<a href="nil.htm">NIL</a> is returned as the result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(null '()) <font color="#008844">; returns T - empty list</font>
+(null ()) <font color="#008844">; returns T - still empty</font>
+(setq a NIL) <font color="#008844">; set up a variable</font>
+(null a) <font color="#008844">; returns T - value = empty list</font>
+
+(null "a") <font color="#008844">; returns NIL - not a list</font>
+(null 'a) <font color="#008844">; returns NIL - not a list</font>
+</pre>
+
+<p><b>Note:</b> The 'null' predicate function is the same function as the
+<a href="not.htm">not</a> predicate function.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#null">null</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/number-equal.htm b/docsrc/xlisp/xlisp-doc/reference/number-equal.htm
new file mode 100644
index 0000000..7316d17
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/number-equal.htm
@@ -0,0 +1,87 @@
+<html><head><title>XLISP =</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(= <i>expr1 expr2</i> ...)</nobr></dt>
+<dd><i>exprN</i> - a numeric expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the results of
+comparing the expressions are all true,
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The <nobr>'=' [equality]</nobr> function takes an arbitrary number of
+numeric arguments. <nobr>It checks</nobr> to see if all the numbers are
+equal. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if all of the arguments
+are numerically equal to each other, <a href="nil.htm">NIL</a> is returned
+otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(= 1 1) =&gt; T
+(= 1 2) =&gt; NIL
+(= 1 1.0) =&gt; T
+(= 1 1.0 1 (+ 0 1)) =&gt; T
+(= 1 1.0 1.00001) =&gt; NIL
+(= "a" "b") =&gt; <font color="#AA0000">error: bad argument type</font>
+(setq a 1 b 1.0) =&gt; 1.0 <font color="#008844">; set up A and B with values</font>
+(= a b) =&gt; T
+</pre>
+
+<p>See <a href="setq.htm">setq</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/number-greaterp.htm b/docsrc/xlisp/xlisp-doc/reference/number-greaterp.htm
new file mode 100644
index 0000000..a4cfe28
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/number-greaterp.htm
@@ -0,0 +1,90 @@
+<html><head><title>XLISP &gt;</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>&gt;</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(&gt; <i>expr1 expr2</i> ...)</nobr></dt>
+<dd><i>exprN</i> - a numeric expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the results of
+comparing the expressions are all true,
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The <nobr>'&gt;' [greater-than]</nobr> function takes an arbitrary number
+of numeric arguments. <nobr>It checks</nobr> to see if all the numbers are
+monotonically decreasing. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if
+the arguments are numerically, and monotonically decreasing,
+<a href="nil.htm">NIL</a> is returned otherwise. <nobr>For two</nobr>
+arguments, this has the effect of testing if 'expr1' is greater than
+'expr2'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(&gt; 1 1) =&gt; NIL
+(&gt; 1 2) =&gt; NIL
+(&gt; 2.0 1.99) =&gt; T
+(&gt; 3 2 1) =&gt; T
+(&gt; 3 2 2) =&gt; NIL
+(&gt; "aa" "aa") =&gt; <font color="#AA0000">error: bad argument type</font>
+(setq a 12 b 99.9) =&gt; 99.9 <font color="#008844">; set up A and B with values</font>
+(&gt; a b) =&gt; NIL
+(&gt; b a) =&gt; T
+</pre>
+
+<p>See <a href="setq.htm">setq</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/number-lessp.htm b/docsrc/xlisp/xlisp-doc/reference/number-lessp.htm
new file mode 100644
index 0000000..d1ba84a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/number-lessp.htm
@@ -0,0 +1,90 @@
+<html><head><title>XLISP &lt;</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>&lt;</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(&lt; <i>expr1 expr2</i> ...)</nobr></dt>
+<dd><i>exprN</i> - a numeric expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the results of
+comparing the expressions are all true,
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The <nobr>'&lt;' [less-than]</nobr> function takes an arbitrary number
+of numeric arguments. It checks to see if all the numbers are monotonically
+increasing. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if
+the arguments are numerically, and monotonically increasing,
+<a href="nil.htm">NIL</a> is returned otherwise. In the case of
+two arguments, this has the effect of testing if 'expr1' is less than
+'expr2'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(&lt; 1 2) =&gt; T
+(&lt; 1 1) =&gt; NIL
+(&lt; -1.5 -1.4) =&gt; T
+(&lt; 1 2 3 4) =&gt; T
+(&lt; 1 2 3 2) =&gt; NIL
+(&lt; "a" "b") =&gt; <font color="#AA0000">error: bad argument type</font>
+(setq a 12 b 13.99) =&gt; 13.99 <font color="#008844">; set up A and B with values</font>
+(&lt; a b) =&gt; T
+(&lt; b a) =&gt; NIL
+</pre>
+
+<p>See <a href="setq.htm">setq</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/number-not-equal.htm b/docsrc/xlisp/xlisp-doc/reference/number-not-equal.htm
new file mode 100644
index 0000000..595836b
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/number-not-equal.htm
@@ -0,0 +1,101 @@
+<html><head><title>XLISP /=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>/=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(/= <i>expr1</i> <i>expr2</i> ...)</nobr></dt>
+<dd><i>exprN </i> - a numeric expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the results of
+comparing the expressions are all true,
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The <nobr>'/=' [not-equal]</nobr> function takes an arbitrary number of
+numeric arguments. It checks to see if all the numeric arguments are
+different. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if
+the arguments are numerically not equivalent,
+<a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(/= 1 1) =&gt; NIL
+(/= 1 2) =&gt; T
+(/= 1 1.0) =&gt; NIL
+(/= 1 2 3) =&gt; T
+(/= 1 2 2) =&gt; NIL
+(/= "a" "b") =&gt; <font color="#AA0000">error: bad argument type</font>
+(setq a 1 b 12.4) =&gt; 12.4 <font color="#008844">; set up A and B with values</font>
+(/= a b) =&gt; NIL
+</pre>
+
+<p>See <a href="setq.htm">setq</a>.</p>
+
+<p><div class="box">
+
+<p><b>XLISP Bug</b></p>
+
+<pre class="example">
+(/= 1 2 3) =&gt; T <font color="#008844">; OK</font>
+(/= 1 2 3 2 1) =&gt; T <font color="#AA0000">; wrong</font>
+</pre>
+
+<p>This is only a problem for the '/=' function. <nobr>The bug</nobr> can be
+reproduced with <nobr>Nyquist 3.03</nobr> <nobr>in November 2010</nobr>.</p>
+
+</div></p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/number-not-greaterp.htm b/docsrc/xlisp/xlisp-doc/reference/number-not-greaterp.htm
new file mode 100644
index 0000000..c9401a4
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/number-not-greaterp.htm
@@ -0,0 +1,91 @@
+<html><head><title>XLISP &lt;=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>&lt;=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(&lt;= <i>expr1 expr2</i> ...)</nobr></dt>
+<dd><i>exprN</i> - a numeric expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the results of
+comparing the expressions are all true,
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The <nobr>'&lt;=' [less-than-or-equal]</nobr> function takes an arbitrary
+number of numeric arguments. <nobr>It checks</nobr> to see if all the
+numbers are monotonically <nobr>non-decreasing</nobr>.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if the arguments
+are numerically, and monotonically <nobr>non-decreasing</nobr>,
+<a href="nil.htm">NIL</a> is returned otherwise. <nobr>For two</nobr>
+arguments, this has the effect of testing if 'expr1' is less than or equal
+<nobr>to 'expr2'</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(&lt;= 1 1) =&gt; T
+(&lt;= 1 2) =&gt; T
+(&lt;= 2.0 1.99) =&gt; NIL
+(&lt;= 1 2 3 3) =&gt; T
+(&lt;= 1 2 3 3 2) =&gt; NIL
+(&lt;= "aa" "aa") =&gt; <font color="#AA0000">error: bad argument type</font>
+(setq a 12 b 99.9) =&gt; 99.9 <font color="#008844">; set up A and B with values</font>
+(&lt;= a b) =&gt; T
+(&lt;= b a) =&gt; NIL
+</pre>
+
+<p>See <a href="setq.htm">setq</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/number-not-lessp.htm b/docsrc/xlisp/xlisp-doc/reference/number-not-lessp.htm
new file mode 100644
index 0000000..c9626d8
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/number-not-lessp.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP &gt;=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>&gt;=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(&gt;= <i>expr1 expr2</i> ...)</nobr></dt>
+<dd><i>exprN</i> - a numeric expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the results of
+comparing the expressions are all true,
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The <nobr>'&gt;=' [greater-than-or-equal]</nobr> function takes an
+arbitrary number of numeric arguments. <nobr>It checks</nobr> to see if all
+the numbers are monotonically <nobr>non-increasing</nobr>.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr1' is the arguments
+are numerically, and monotonically <nobr>non-increasing</nobr>,
+<a href="nil.htm">NIL</a> is returned otherwise. <nobr>For two</nobr>
+arguments, this has the effect of testing if 'expr1' is greater than or
+equal <nobr>to 'expr2'</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(&gt;= 1 2) =&gt; NIL
+(&gt;= 1 1) =&gt; T
+(&gt;= -1.5 -1.4) =&gt; NIL
+(&gt;= 3 2 1) =&gt; T
+(&gt;= 3 2 2) =&gt; T
+(&gt;= 3 2 3) =&gt; NIL
+(&gt;= "aa" "abc") =&gt; <font color="#AA0000">error: bad argument type</font>
+(setq a 12 b 13.9) =&gt; 13.9 <font color="#008844">; set up A and B with values</font>
+(&gt;= a b) =&gt; NIL
+(&gt;= b a) =&gt; T
+</pre>
+
+<p>See <a href="setq.htm">setq</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/numberp.htm b/docsrc/xlisp/xlisp-doc/reference/numberp.htm
new file mode 100644
index 0000000..37e994f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/numberp.htm
@@ -0,0 +1,78 @@
+<html><head><title>XLISP numberp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>numberp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(numberp <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the expression
+is a number, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'numberp' predicate function checks if an 'expr' is a number.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr' is an
+integer or floating point number, <a href="nil.htm">NIL</a> is
+returned otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(numberp 1) <font color="#008844">; returns T - integer</font>
+(numberp 1.2) <font color="#008844">; returns T - float</font>
+(numberp '1) <font color="#008844">; returns T - still an integer</font>
+(numberp #x034) <font color="#008844">; returns T - the readmacro produces an integer</font>
+
+(numberp 'a) <font color="#008844">; returns NIL - symbol</font>
+(numberp #\a) <font color="#008844">; returns NIL - character</font>
+(numberp NIL) <font color="#008844">; returns NIL - NIL</font>
+(numberp #(0 1 2)) <font color="#008844">; returns NIL - array</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#numberp">numberp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/object.htm b/docsrc/xlisp/xlisp-doc/reference/object.htm
new file mode 100644
index 0000000..5c6ede3
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/object.htm
@@ -0,0 +1,120 @@
+<html><head><title>XLISP object</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>object</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>object</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;object</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>'object' is an object <a href="class.htm">class</a>. An object
+is a composite structure that contains internal state information, methods
+[which respond to messages], a pointer to the object's
+<a href="class.htm">class</a> and a pointer to the object's
+super-class. XLISP contains two built in objects: 'object' and
+<a href="class.htm">class</a>. 'object' is the superclass for the
+<a href="class.htm">class</a> object.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(send object :show) <font color="#008844">; look at the object definition</font>
+
+ <font color="#008844">; example use of objects</font>
+(setq my-class (send class :new '(state))) <font color="#008844">; new class MY-CLASS with STATE</font>
+
+(send my-class :answer :isnew '() <font color="#008844">; set up initialization</font>
+ '((setq state nil) self))
+
+(send my-class :answer :set-it '(value) <font color="#008844">; create :SET-IT message</font>
+ '((setq state value)))
+
+(setq my-obj (send my-class :new)) <font color="#008844">; create MY-OBJ out of MY-CLASS</font>
+(send my-obj :set-it 5) <font color="#008844">; STATE is set to 5</font>
+</pre>
+
+<p><b>Object definition:</b> The internal definition of the 'object' object
+instance is:</p>
+
+<pre class="example">
+Object is #&lt;Object: #23fd8&gt;, Class is #&lt;Object: #23fe2&gt;
+ MESSAGES = ((:SHOW . #&lt;Subr-: #23db2&gt;)
+ (:CLASS . #&lt;Subr-: #23dee&gt;)
+ (:ISNEW . #&lt;Subr-: #23e2a&gt;))
+ IVARS = NIL
+ CVARS = NIL
+ CVALS = NIL
+ SUPERCLASS = NIL
+ IVARCNT = 0
+ IVARTOTAL = 0
+#&lt;Object: #23fd8&gt;
+</pre>
+
+<p>The <a href="class.htm">class</a> of 'object' is
+<a href="class.htm">class</a>. There is no superclass of 'object'.
+Remember that the location information [like #23fd8] varies from system to
+system, yours will probably look different.</p>
+
+<p><b>Built-in methods:</b> The built in methods in XLISP include:</p>
+
+<ul>
+<li><nobr><a href="keyword-answer.htm">:answer</a> - add a method to an object</nobr></li>
+<li><nobr><a href="keyword-class.htm">:class</a> - return the object's <a href="class.htm">class</a></nobr></li>
+<li><nobr><a href="keyword-isnew.htm">:isnew</a> - run initialization code on object</nobr></li>
+<li><nobr><a href="keyword-new.htm">:new</a> - create a new object [instance or <a href="class.htm">class</a>]</nobr></li>
+<li><nobr><a href="keyword-show.htm">:show</a> - show the internal state of the object</nobr></li>
+</ul>
+
+<p><b>Message structure:</b> The normal XLISP convention for a 'message' is
+to have a valid symbol preceeded by a colon like
+<a href="keyword-isnew.htm">:isnew</a> or ':my-message'. However, it is
+possible to define a 'message' that is a symbol without a colon, but this
+makes the code less readable.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-010.htm#object">object</a>
+class in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/objectp.htm b/docsrc/xlisp/xlisp-doc/reference/objectp.htm
new file mode 100644
index 0000000..22ea9b9
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/objectp.htm
@@ -0,0 +1,72 @@
+<html><head><title>XLISP objectp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>objectp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(objectp expr)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the expression
+is an object, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'objectp' predicate function checks if the 'expr' is an object.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr' is
+an object, <a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(objectp object) <font color="#008844">; returns T</font>
+(objectp class) <font color="#008844">; returns T</font>
+(objectp NIL) <font color="#008844">; returns NIL</font>
+(objectp '(a b)) <font color="#008844">; returns NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#objectp">objectp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/oddp.htm b/docsrc/xlisp/xlisp-doc/reference/oddp.htm
new file mode 100644
index 0000000..fa71431
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/oddp.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP oddp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>oddp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(oddp <i>expr</i>)</dt>
+<dd><i>expr</i> - the integer numeric expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the integer is
+odd, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'oddp' predicate function checks to see if the number 'expr' is odd.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if the number is
+odd, <a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<p>An error is generated if the 'expr' is not a numeric expression:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<p>An error is generated if the 'expr' is a floating point number:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad floating point operation</font>
+</pre>
+
+<p>Zero is an even number.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(oddp 0) <font color="#008844">; returns NIL</font>
+(oddp 1) <font color="#008844">; returns T</font>
+(oddp 2) <font color="#008844">; returns NIL</font>
+(oddp -1) <font color="#008844">; returns T</font>
+(oddp -2) <font color="#008844">; returns NIL</font>
+
+(oddp 13.0) <font color="#008844">; error: bad floating point operation</font>
+(oddp 'a) <font color="#008844">; error: bad argument type</font>
+(setq a 3) <font color="#008844">; set value of A to 3</font>
+(oddp a) <font color="#008844">; returns T</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#oddp">oddp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/open-binary.htm b/docsrc/xlisp/xlisp-doc/reference/open-binary.htm
new file mode 100644
index 0000000..1707407
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/open-binary.htm
@@ -0,0 +1,103 @@
+<html><head><title>XLISP open-binary</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>open-binary</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(open-binary <i>file</i> [:direction <i>in-out</i>])</dt>
+<dd><i>file</i> - a string expression or symbol<br>
+<i>in-out</i> - an optional keyword symbol that must be either ':input' or
+':output'. The default is ':input'.<br>
+returns - a stream</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>open-binary</nobr>' function opens the 'file' for binary input
+or output. The 'file' may be a string expression or a symbol. Following the
+'file', there is an optional keyword, ':direction'. The argument following
+this is either ':input' or ':output' which specifies the direction of the
+file. <nobr>If no</nobr> ':direction' is specified, the default is ':input'.
+When 'file' is a string, you may specify a complete file location or
+extensions like &quot;/usr/local/bin/myfile.lsp&quot; or
+&quot;A:\LISP\TIM.BAT&quot;. <nobr>If the</nobr> file open was successful,
+then a file pointer of the following form is returned as the result:</p>
+
+<pre class="example">
+#&lt;File: #99999&gt;
+</pre>
+
+<p>If the file open was not successful, a <a href="nil.htm">NIL</a> is
+returned. <nobr>For an</nobr> input file, the file has to exist, or an error
+will be signaled.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p>This will create a file named FOO-FILE, because XLISP uppercases its
+symbols:</p>
+
+<pre class="example">
+(open-binary 'foo-file :direction :output)
+</pre>
+
+<p>This will create a file named 'foo-file' because UNIX doesn't
+uppercase its file names:</p>
+
+<pre class="example">
+(open-binary "foo-file" :direction :output)
+</pre>
+
+<p>So, if you are having trouble with opening and accessing files, check to
+make sure the file name is in the proper case.</p>
+
+<p>See also <a href="bigendianp.htm">bigendianp</a>,
+<nobr><a href="read-int.htm">read-int</a></nobr>,
+<nobr><a href="write-int.htm">write-int</a></nobr>,
+<nobr><a href="read-float.htm">read-float</a></nobr>,
+<nobr><a href="write-float.htm">write-float</a></nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/open.htm b/docsrc/xlisp/xlisp-doc/reference/open.htm
new file mode 100644
index 0000000..fe2a925
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/open.htm
@@ -0,0 +1,117 @@
+<html><head><title>XLISP open</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>open</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(open <i>file</i> [:direction <i>in-out</i>])</dt>
+<dd><i>file</i> - a string expression or symbol<br>
+<i>in-out</i> - an optional keyword symbol that must be either ':input' or
+':output'. The default is ':input'.<br>
+returns - a stream</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'open' function opens the 'file' for input or output. The 'file' may
+be a string expression or a symbol. Following the 'file', there is an
+optional keyword, ':direction'. The argument following this is either
+':input' or ':output' which specifies the direction of the file. If no
+':direction' is specified, the default is ':input'. When 'file' is a string,
+you may specify a complete file location or extensions like
+&quot;/usr/local/bin/myfile.lsp&quot; or &quot;A:\LISP\TIM.BAT&quot;. If
+the file open was successful, then a file pointer of the following form is
+returned as the result:</p>
+
+<pre class="example">
+#&lt;File: #99999&gt;
+</pre>
+
+<p>If the file open was not successful, a
+<a href="nil.htm">NIL</a> is returned. For an input file, the
+file has to exist, or an error will be signaled.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq f (open 'mine :direction :output)) <font color="#008844">; create file named MINE</font>
+(print "hi" f) <font color="#008844">; returns "hi"</font>
+(close f) <font color="#008844">; file contains "hi" &lt;newline&gt;</font>
+(setq f (open 'mine :direction :input)) <font color="#008844">; open MYFILE for input</font>
+(read f) <font color="#008844">; returns "hi"</font>
+(close f) <font color="#008844">; close it</font>
+</pre>
+
+<p><b>File names:</b> In the PC and DOS world, all file names and extensions
+[&quot;foo.bat&quot;] are automatically made uppercase. In using XLISP, this
+means you don't have to worry about whether the name is &quot;foo.bat&quot;,
+&quot;FOO.BAT&quot; or even &quot;FoO.bAt&quot;, they will all work.
+However, in other file systems [UNIX in particular], uppercase and lowercase
+do make a difference:</p>
+
+<p>This will create a file named FOO-FILE in UNIX, because XLISP uppercases
+its symbols:</p>
+
+<pre class="example">
+(open 'foo-file :direction :output)
+</pre>
+
+<p>This will create a file named 'foo-file' because UNIX doesn't
+uppercase its file names:</p>
+
+<pre class="example">
+(open "foo-file" :direction :output)
+</pre>
+
+<p>So, if you are having trouble with opening and accessing files, check to
+make sure the file name is in the proper case.</p>
+
+<p><b>Common Lisp:</b> Common Lisp supports bidirectional files. So, porting
+Common Lisp code may be difficult to port if it uses these other file
+types.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-029.htm#open">open</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/or.htm b/docsrc/xlisp/xlisp-doc/reference/or.htm
new file mode 100644
index 0000000..9900bdd
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/or.htm
@@ -0,0 +1,87 @@
+<html><head><title>XLISP or</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>or</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(or [<i>expr1</i> ... ])</dt>
+<dd><i>exprN</i> - an expression<br>
+returns - <a href="nil.htm">NIL</a> if all expressions evaluate
+to <nobr><a href="nil.htm">NIL</a> ,</nobr> otherwise the value
+of the first non-<a href="nil.htm">NIL</a> expression<br>
+<b>Note:</b> evaluation of expressions stops after the first expression
+that does not evaluate to <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'or' special form evaluates a sequence of expressions and returns the
+effect of a logical 'inclusive-or' operation on the expressions. If all of
+the expressions are <nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> is returned as the result. Evaluation
+of the expressions will stop when an expression evaluates to something other
+than <nobr><a href="nil.htm">NIL</a> ,</nobr> none of the
+subsequent expressions will be evaluated. If there are no expressions, 'or'
+returns <a href="nil.htm">NIL</a> as its result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(or NIL NIL NIL) <font color="#008844">; returns NIL</font>
+(or NIL T NIL) <font color="#008844">; returns T</font>
+(or NIL (princ "hi") (princ "ho")) <font color="#008844">; prints hi and returns "hi"</font>
+(or T T T) <font color="#008844">; returns T</font>
+(or) <font color="#008844">; returns NIL</font>
+
+(setq a 5) (setq b 6) <font color="#008844">; set up A and B</font>
+(if (or (&lt; a b) (&lt; b a)) <font color="#008844">; if</font>
+ (print "not equal") <font color="#008844">; then</font>
+ (print "equal")) <font color="#008844">; else</font>
+ <font color="#008844">; prints "not equal"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-019.htm#or">or</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/peek-char.htm b/docsrc/xlisp/xlisp-doc/reference/peek-char.htm
new file mode 100644
index 0000000..8111cf4
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/peek-char.htm
@@ -0,0 +1,105 @@
+<html><head><title>XLISP peek-char</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>peek-char</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(peek-char [<i>skip-flag</i> [<i>source</i>]])</dt>
+<dd><i>skip-flag</i> - an optional expression, default is
+<a href="nil.htm">NIL</a><br>
+<i>source</i> - an optional source, must be a file pointer or stream, default
+is <a href="global-standard-input.htm">*standard-input*</a><br>
+returns - the character</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'peek-char' function looks at a single character from the specified
+'source'. The character looked-at is returned as an integer value for the
+result. If the 'skip-flag' expression is
+<nobr><a href="nil.htm">NIL</a> ,</nobr> then the next character
+will be looked-at, without advancing the position within the file. If the
+'skip-flag' expression is <nobr>non-<a href="nil.htm">NIL</a>
+,</nobr> then the next non-white-space character will be looked-at. This
+skipping does advance the position within the file. White-space characters
+include 'blank', 'tab' and 'new-line' characters. If 'skip-flag' is not
+used, no skipping will occur. The 'source' may be a file pointer or a
+stream. If there is no 'source',
+<a href="global-standard-input.htm">*standard-input*</a> is the default. If an
+end-of-file is encountered in the 'source', then
+<a href="nil.htm">NIL</a> will be returned as the result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq fp (open "f" :direction :output)) <font color="#008844">; create file "f"</font>
+(print 12 fp)
+(princ " 34" fp)
+(terpri fp)
+(close fp)
+
+(setq fp (open "f" :direction :input)) <font color="#008844">; open "f" for reading</font>
+(peek-char NIL fp) <font color="#008844">; returns #\1</font>
+(peek-char NIL fp) <font color="#008844">; returns #\1 - didn't advance</font>
+(read-char fp) <font color="#008844">; returns #\1 - force advance</font>
+(peek-char NIL fp) <font color="#008844">; returns #\2</font>
+(read-char fp) <font color="#008844">; returns #\2 - force advance</font>
+(peek-char NIL fp) <font color="#008844">; returns #\Newline</font>
+(peek-char T fp) <font color="#008844">; returns #\3 - skipped blanks</font>
+(read-line fp) <font color="#008844">; returns "34"</font>
+(close fp)
+</pre>
+
+<p><b>Common Lisp:</b> The XLISP and Common Lisp 'peek-char' functions are
+compatible for simple cases. They both allow for the optional 'skip-flag'
+and 'source'. However, in Common Lisp, there are additional parameters which
+occur right after 'source' that support various end-of-file operations and
+recursive calls. So, when porting from Common Lisp to XLISP, remember there
+are additional arguments in Common Lisp's 'peek-char' that are not supported
+in XLISP.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-029.htm#peek-char">peek-char</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/peek.htm b/docsrc/xlisp/xlisp-doc/reference/peek.htm
new file mode 100644
index 0000000..58e2cec
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/peek.htm
@@ -0,0 +1,86 @@
+<html><head><title>XLISP peek</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>peek</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsys.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(peek <i>address</i>)</dt>
+<dd><i>address</i> - an integer expression<br>
+returns - the value at the specified address as an integer</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'peek' function returns the internal memory value at the 'address'.
+The returned value is an integer.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq var 0) <font color="#008844">; set up VAR with 0</font>
+(address-of var) <font color="#008844">; returns 123224</font>
+(address-of 'var) <font color="#008844">; returns 161922</font>
+(peek (address-of var)) <font color="#008844">; returns 83951616</font>
+(peek (1+ (address-of var))) <font color="#008844">; returns 16777216</font>
+(peek (+ 2 (address-of var))) <font color="#008844">; returns 0 &lt;-- value of VAR</font>
+(setq var 14) <font color="#008844">; change the value to 14</font>
+(peek (+ 2 (address-of var))) <font color="#008844">; returns 14</font>
+(setq var 99) <font color="#008844">; change the value to 99</font>
+(peek (+ 2 (address-of var))) <font color="#008844">; returns 99</font>
+</pre>
+
+<p><b>Caution:</b> Be careful when modifying the internal state of XLISP. If
+you have modified it, it would be a good idea to exit XLISP and re-enter
+before doing any work you really want to retain.</p>
+
+<p><b>Caution:</b> It is possible to 'peek' and
+<a href="poke.htm">poke</a> not just XLISP's memory put other
+parts of your computer's memory. Be very careful when doing this. Also, in
+some computers, just looking at a memory location can cause things to
+happen, I/O locations fall in this category.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-031.htm#peek">peek</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/pi.htm b/docsrc/xlisp/xlisp-doc/reference/pi.htm
new file mode 100644
index 0000000..9be3a2a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/pi.htm
@@ -0,0 +1,66 @@
+<html><head><title>XLISP rrandom</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>rrandom</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>dspprims.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><b>pi</b></dt>
+<dd>returns - a floating point value of 3.14159265358979</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'pi' variable returns a floating point approximation of the
+<nobr>number 'pi'</nobr>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+pi =&gt; 3.14159265358979
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/plus.htm b/docsrc/xlisp/xlisp-doc/reference/plus.htm
new file mode 100644
index 0000000..b5e3984
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/plus.htm
@@ -0,0 +1,75 @@
+<html><head><title>XLISP + (variable)</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>+&nbsp; <font color="#444444">(variable)</font></h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>variable</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c, xlisp.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>&nbsp;+</dt>
+<dd>returns - the most recent input expression</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '+' variable is set to the most recent input expression.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq hi 'there) =&gt; THERE
++ =&gt; (SETQ HI (QUOTE THERE))
++ =&gt; +
+</pre>
+
+<p>See <a href="setq.htm">setq</a>.</p>
+
+<p><b>Note:</b> The '+' variable is for interactive programming. <nobr>It
+is</nobr> not recommended to use the '+' variable in program code.</p>
+
+<p>See also the
+<nobr><a href="../manual/xlisp.htm#command-loop">XLISP Command Loop</a></nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/poke.htm b/docsrc/xlisp/xlisp-doc/reference/poke.htm
new file mode 100644
index 0000000..336ca39
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/poke.htm
@@ -0,0 +1,88 @@
+<html><head><title>XLISP poke</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>poke</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsys.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(poke <i>address expr</i>)</dt>
+<dd><i>address</i> - an integer expression<br>
+<i>expr</i> - an integer expression<br>
+returns - the value</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'poke' function writes the 'expr' at the internal memory value at the
+specified 'address'. The returned value is 'expr'. Be very careful with this
+function.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq var 0) <font color="#008844">; set up VAR with 0</font>
+(address-of var) <font color="#008844">; returns 123224</font>
+(address-of 'var) <font color="#008844">; returns 161922</font>
+(peek (address-of var)) <font color="#008844">; returns 83951616</font>
+(peek (1+ (address-of var))) <font color="#008844">; returns 16777216</font>
+(peek (+ 2 (address-of var))) <font color="#008844">; returns 0 &lt;-- value of VAR</font>
+(setq var 14) <font color="#008844">; change the value to 14</font>
+(peek (+ 2 (address-of var))) <font color="#008844">; returns 14</font>
+(poke (+ 2 (address-of var)) 1023) <font color="#008844">; POKE the value to 1023</font>
+(print var) <font color="#008844">; prints 1023</font>
+</pre>
+
+<p><b>Caution:</b> Be careful when modifying the internal state of XLISP. If
+you have modified it, it would be a good idea to exit XLISP and re-enter
+before doing any work you really want to retain.</p>
+
+<p><b>Caution:</b> It is possible to <a href="peek.htm">peek</a>
+and 'poke' not just XLISP's memory put other parts of your computer's
+memory. Be very careful when doing this. Also, in some computers, just
+looking at a memory location can cause things to happen, I/O locations fall
+in this category.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-031.htm#poke">poke</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/pop.htm b/docsrc/xlisp/xlisp-doc/reference/pop.htm
new file mode 100644
index 0000000..73165ca
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/pop.htm
@@ -0,0 +1,85 @@
+<html><head><title>XLISP pop</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>pop</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp macro</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>misc.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>pop</b> <i>list</i>)</dt>
+<dd><i>list</i> - a list<br>
+returns - the first element from the list</dd>
+</dl>
+
+</div></p>
+
+<p>'pop' is implemented as a Lisp macro:</p>
+
+<pre class="example">
+(defmacro <font color="#0000CC">pop</font> (lis)
+ `(prog1 (car ,lis)
+ (setf ,lis (cdr ,lis))))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'pop' macro reads, removes and returns the first element from the
+list.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq stack '(a b c)) =&gt; (A B C)
+(pop stack) =&gt; A
+stack =&gt; (B C)
+(pop stack) =&gt; B
+stack =&gt; (C)
+(pop stack) =&gt; C
+stack =&gt; NIL
+(pop stack) =&gt; NIL
+stack =&gt; NIL
+</pre>
+
+<p>See <a href="setq.htm">setq</a>. See also the <a href="push.htm">push</a> macro.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/power.htm b/docsrc/xlisp/xlisp-doc/reference/power.htm
new file mode 100644
index 0000000..6df1216
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/power.htm
@@ -0,0 +1,77 @@
+<html><head><title>XLISP power</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>power</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>misc.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>power</b> <i>x y</i>)</nobr></dt>
+<dd><i>x</i>, <i>y</i> - two integer or floating point numbers<br>
+returns - <i>x</i> raised to the <i>y</i> power as a floating point number</dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, 'power' is implemented as a Lisp function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">power</font> (x y)
+ (exp (* (log (float x)) y)))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'power' function returns 'x' raised to the 'y' power as a floating
+point number.</nobr>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(power 2 8) =&gt; 256
+(power 4 .5) =&gt; 2.0
+</pre>
+
+<p>See also <a href="expt.htm">expt</a>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/pprint.htm b/docsrc/xlisp/xlisp-doc/reference/pprint.htm
new file mode 100644
index 0000000..7ab7021
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/pprint.htm
@@ -0,0 +1,94 @@
+<html><head><title>XLISP pprint</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>pprint</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlpp.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(pprint <i>expr</i> [<i>dest</i>])</dt>
+<dd><i>expr</i> - an expression to be pretty printed<br>
+<i>dest</i> - an optional destination, must be a file pointer or
+stream, default is <a href="global-standard-output.htm">*standard-output*</a><br>
+returns - always returns <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'pprint' function produces a pretty looking version of the 'expr' and
+prints it to the specified 'destination'. If 'expr' is an atom like a
+string, a symbol, a number, etc., 'pprint' will print it like
+<a href="print.htm">print</a>. If 'expr' is a list, it will perform
+indenting, as necessary. <a href="nil.htm">NIL</a> is always
+returned as the result of 'pprint'. The 'destination' may be a file pointer
+or a stream. If there is no 'destination' or it is
+<nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="global-standard-output.htm">*standard-output*</a> is the default.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(pprint 'a) <font color="#008844">; prints A returns NIL</font>
+(pprint "abcd") <font color="#008844">; prints "abcd" returns NIL</font>
+
+(pprint '(a-very-long-name (first list) (second list)))
+
+ <font color="#008844">; prints (A-VERY-LONG-NAME (FIRST LIST)</font>
+ <font color="#008844">; (SECOND LIST))</font>
+ <font color="#008844">; returns NIL</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that 'pprint' with a
+'destination' of <a href="nil.htm">NIL</a> will go to
+<a href="global-standard-output.htm">*standard-output*</a>. XLISP does not send the
+output to <a href="global-standard-output.htm">*standard-output*</a> with a
+'destination' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'destination' of
+<a href="t.htm">&nbsp;T&nbsp;</a> will be sent to
+*terminal-io*, which is not defined in XLISP by default. XLISP does not
+allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid argument
+for 'destination'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-027.htm#pprint">pprint</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/prin1.htm b/docsrc/xlisp/xlisp-doc/reference/prin1.htm
new file mode 100644
index 0000000..c0b8a7c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/prin1.htm
@@ -0,0 +1,94 @@
+<html><head><title>XLISP prin1</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>prin1</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c, xlprin.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(prin1 <i>expr</i> [<i>dest</i>])</dt>
+<dd><i>expr</i> - an expression<br>
+<i>dest</i> - an optional destination, must be a file pointer or
+stream, default is <a href="global-standard-output.htm">*standard-output*</a><br>
+returns - the expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'prin1' function prints the 'expr' to the specified 'destination'.
+The 'expr' is printed without a 'newline' character. If 'expr' is a string,
+it will be printed with quotes around the string. The 'expr' is returned as
+the result. The 'destination' may be a file pointer or a stream. If there is
+no 'destination', <a href="global-standard-output.htm">*standard-output*</a> is the
+default. The <a href="terpri.htm">terpri</a> function is used to
+terminate the print lines produced.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(prin1 'a) <font color="#008844">; prints A without #\Newline</font>
+(prin1 '(a b)) <font color="#008844">; prints (A B) without #\Newline</font>
+(prin1 2.5) <font color="#008844">; prints 2.5 without #\Newline</font>
+(prin1 "hi") <font color="#008844">; prints "hi" without #\Newline</font>
+
+(setq f (open "f" :direction :output)) <font color="#008844">; create file</font>
+(prin1 "hi" f) <font color="#008844">; returns "hi"</font>
+(prin1 1234 f) <font color="#008844">; returns 1234</font>
+(prin1 "he" f) <font color="#008844">; returns "he"</font>
+(close f) <font color="#008844">; file contains "hi"1234"he"</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that 'pprint' with a
+'destination' of <a href="nil.htm">NIL</a> will go to
+<a href="global-standard-output.htm">*standard-output*</a>. XLISP does not send the
+output to <a href="global-standard-output.htm">*standard-output*</a> with a
+'destination' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'destination' of
+<a href="t.htm">&nbsp;T&nbsp;</a> will be sent to
+*terminal-io*, which is not defined in XLISP by default. XLISP does not
+allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid argument
+for 'destination'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-027.htm#prin1">prin1</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/princ.htm b/docsrc/xlisp/xlisp-doc/reference/princ.htm
new file mode 100644
index 0000000..a3a095f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/princ.htm
@@ -0,0 +1,94 @@
+<html><head><title>XLISP princ</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>princ</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c, xlprin.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(princ <i>expr</i> [<i>dest</i>])</dt>
+<dd><i>expr</i> - an expression<br>
+<i>dest</i> - an optional destination, must be a file pointer or
+stream, default is <a href="global-standard-output.htm">*standard-output*</a><br>
+returns - the expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'princ' function prints the 'expr' to the specified 'destination'.
+The 'expr' is printed without a 'newline' character. If 'expr' is a string,
+it will not be printed with quotes around the string. The 'expr' is returned
+as the result. The 'destination' may be a file pointer or a stream. If there
+is no 'destination', <a href="global-standard-output.htm">*standard-output*</a> is
+the default. The <a href="terpri.htm">terpri</a> function is used to
+terminate the print lines produced.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(princ 'a) <font color="#008844">; prints A without #\Newline</font>
+(princ '(a b)) <font color="#008844">; prints (A B) without #\Newline</font>
+(princ 99) <font color="#008844">; prints 99 without #\Newline</font>
+(princ "hi") <font color="#008844">; prints hi without #\Newline</font>
+
+(setq f (open "f" :direction :output)) <font color="#008844">; create file</font>
+(princ "hi" f) <font color="#008844">; returns "hi"</font>
+(princ 727 f) <font color="#008844">; returns 727</font>
+(princ "ho" f) <font color="#008844">; returns "ho"</font>
+(close f) <font color="#008844">; file contains hi727ho</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that 'pprint' with a
+'destination' of <a href="nil.htm">NIL</a> will go to
+<a href="global-standard-output.htm">*standard-output*</a>. XLISP does not send the
+output to <a href="global-standard-output.htm">*standard-output*</a> with a
+'destination' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'destination' of
+<a href="t.htm">&nbsp;T&nbsp;</a> will be sent to
+*terminal-io*, which is not defined in XLISP by default. XLISP does not
+allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid argument
+for 'destination'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-027.htm#princ">princ</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/print.htm b/docsrc/xlisp/xlisp-doc/reference/print.htm
new file mode 100644
index 0000000..d714844
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/print.htm
@@ -0,0 +1,95 @@
+<html><head><title>XLISP print</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>print</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c, xlprin.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(print <i>expr</i> [<i>dest</i>])</dt>
+<dd><i>expr</i> - an expression<br>
+<i>dest</i> - an optional destination, must be a file pointer or
+stream, default is <a href="global-standard-output.htm">*standard-output*</a><br>
+returns - the expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'print' function prints the 'expr' to the specified 'destination'.
+The 'expr' is printed followed by a 'newline' character. If 'expr' is a
+string, it will be printed with quotes around the string. The 'expr' is
+returned as the result. The 'destination' may be a file pointer or a stream.
+If there is no 'destination',
+<a href="global-standard-output.htm">*standard-output*</a> is the default.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(print 'a) <font color="#008844">; prints A with #\Newline</font>
+(print '(a b)) <font color="#008844">; prints (A B) with #\Newline</font>
+(print 99) <font color="#008844">; prints 99 with #\Newline</font>
+(print "hi") <font color="#008844">; prints "hi" with #\Newline</font>
+
+(setq f (open "f" :direction :output)) <font color="#008844">; create file</font>
+(print "hi" f) <font color="#008844">; returns "hi"</font>
+(print 727 f) <font color="#008844">; returns 727</font>
+(print "ho" f) <font color="#008844">; returns "ho"</font>
+(close f) <font color="#008844">; file contains "hi"#\Newline</font>
+ <font color="#008844">; 727#\Newline</font>
+ <font color="#008844">; "ho"#\Newline</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that 'pprint' with a
+'destination' of <a href="nil.htm">NIL</a> will go to
+<a href="global-standard-output.htm">*standard-output*</a>. XLISP does not send the
+output to <a href="global-standard-output.htm">*standard-output*</a> with a
+'destination' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'destination' of
+<a href="t.htm">&nbsp;T&nbsp;</a> will be sent to
+*terminal-io*, which is not defined in XLISP by default. XLISP does not
+allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid argument
+for 'destination'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-027.htm#print">print</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/profile.htm b/docsrc/xlisp/xlisp-doc/reference/profile.htm
new file mode 100644
index 0000000..0c3cf6a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/profile.htm
@@ -0,0 +1,85 @@
+<html><head>
+
+<title>Profiling</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>profile</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsys.c, xleval.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<a name="profile"></a>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>profile</b> <i>flag</i>) - turn profiling on or off</dt>
+<dd><i>flag</i> - NIL turns profiling off, otherwise on<br>
+returns - the previous state of profiling</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The <nobr>Xlisp 2.0</nobr> release has been extended with a profiling
+facility, which counts how many times and where <a href="eval.htm">eval</a>
+is executed. <nobr>A separate</nobr> count is maintained for each named
+function, closure, or macro, and a count indicates an
+<a href="eval.htm">eval</a> in the immediately [lexically] enclosing named
+function, closure, or macro. Thus, the count gives an indication of the
+amount of time spent in a function, not counting nested function calls.</p>
+
+<p>The list of all functions executed is maintained on the global *profile*
+variable. These functions in turn have *profile* properties, which maintain
+the counts. The profile system merely increments counters and puts symbols
+on the *profile* list. <nobr>It is</nobr> up to the user to initialize data
+and gather results. Profiling is turned on or off with the 'profile'
+function.</p>
+
+<p>Unfortunately, methods cannot be profiled with this facility.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to top</a></nobr></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html>
diff --git a/docsrc/xlisp/xlisp-doc/reference/prog-star.htm b/docsrc/xlisp/xlisp-doc/reference/prog-star.htm
new file mode 100644
index 0000000..98ba7b1
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/prog-star.htm
@@ -0,0 +1,101 @@
+<html><head><title>XLISP prog*</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>prog*</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(prog* ([<i>binding</i> ... ]) [<i>expr</i> ... ])</dt>
+<dd><i>binding</i> - a variable binding which is can take one of
+<dl><dd><i>symbol</i><br>
+(<i>symbol init-expr</i>)</dd>
+<dl><dd><i>symbol</i> - a symbol<br>
+<i>init-expr</i> - an initialization expression for <i>symbol</i></dd></dl></dl>
+<i>expr</i> - expressions comprising the body of the loop which may contain
+<a href="return.htm">return</a>s,
+<a href="go.htm">go</a>s or tags for
+<a href="go.htm">go</a><br>
+returns - <a href="nil.htm">NIL</a> or the argument passed to
+the <a href="return.htm">return</a> function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'prog*' special form is basically a 'block' construct that contains
+symbols with optional initializations and a block of code [expressions] to
+evaluate. The 'prog*' special form evaluates its initializations in
+sequential order as opposed to <a href="">prog</a> which does it in no
+specified order. The first form after the 'prog*' is the 'binding' form. It
+contains a series of 'symbols' or 'bindings'. The 'binding' is a 'symbol'
+followed by an initialization expression 'init-expr'. If there is no
+'init-expr', the 'symbol' will be initialized to
+<a href="nil.htm">NIL</a>. The order of execution of the bindings
+is sequential. If a <a href="return.htm">return</a> form is
+evaluated, its value will be returned. Otherwise,
+<a href="nil.htm">NIL</a> is returned. When the 'prog*' is
+finished execution, the 'symbols' that were defined will no longer exist or
+retain their values.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(prog* (i j) <font color="#008844">; PROG* with vars I and J</font>
+ (print i) (print j)) <font color="#008844">; prints NIL NIL returns NIL</font>
+
+(prog* ((i 1) (j 2)) <font color="#008844">; PROG* with vars I and J</font>
+ (print i) (print j)
+ (return (+ i j))) <font color="#008844">; prints 1 2 returns 3</font>
+
+(prog* () (print "hello")) <font color="#008844">; prints "hello" returns NIL</font>
+
+(prog ((i 1) (j (+ i 1))) <font color="#008844">; PROG won't work due to order</font>
+ (print (+ i j)) ) <font color="#008844">; error: unbound variable - I</font>
+
+(prog* ((i 1) (j (+ i 1))) <font color="#008844">; PROG* will work due to order</font>
+ (print (+ i j)) ) <font color="#008844">; prints 3 returns NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-021.htm#prog*">prog*</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/prog.htm b/docsrc/xlisp/xlisp-doc/reference/prog.htm
new file mode 100644
index 0000000..ea1d29c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/prog.htm
@@ -0,0 +1,96 @@
+<html><head><title>XLISP prog</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>prog</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(prog ([<i>binding</i> ... ]) [<i>expr</i> ... ])</dt>
+<dd><i>binding</i> - a variable binding which is can take one of
+<dl><dd><i>symbol</i><br>
+(<i>symbol init-expr</i>)</dd>
+<dl><dd><i>symbol</i> - a symbol<br>
+<i>init-expr</i> - an initialization expression for <i>symbol</i></dd></dl></dl>
+<i>expr</i> - expressions comprising the body of the loop which may contain
+<a href="return.htm">return</a>s,
+<a href="go.htm">go</a>s or tags for
+<a href="go.htm">go</a><br>
+returns - <a href="nil.htm">NIL</a> or the argument passed to
+the <a href="return.htm">return</a> function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'prog' special form is basically a 'block' construct that contains
+symbols with optional initializations and a block of code [expressions] to
+evaluate. The 'prog' special form evaluates its initializations in no
+specified order, as opposed to <a href="prog-star.htm">prog*</a> which
+does it sequential order. The first form after the 'prog' is the 'binding'
+form. It contains a series of 'symbols' or 'bindings'. The 'binding' is a
+'symbol' followed by an initialization expression 'init-expr'. If there is
+no 'init-expr', the 'symbol' will be initialized to
+<a href="nil.htm">NIL</a>. There is no specification as to the
+order of execution of the bindings or the step expressions, except that they
+happen all together. If a <a href="return.htm">return</a> form is
+evaluated, its value will be returned. Otherwise,
+<a href="nil.htm">NIL</a> is returned. When 'prog' is finished
+execution, the 'symbols' that were defined will no longer exist or retain
+their values.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(prog () (print "hello")) <font color="#008844">; prints "hello" returns NIL</font>
+
+(prog (i j) <font color="#008844">; PROG with vars I and J</font>
+ (print i) (print j)) <font color="#008844">; prints NIL NIL returns NIL</font>
+
+(prog ((i 1) (j 2)) <font color="#008844">; PROG with vars I and J</font>
+ (print i) (print j)
+ (return (+ i j))) <font color="#008844">; prints 1 2 returns 3</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-021.htm#prog">prog</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/prog1.htm b/docsrc/xlisp/xlisp-doc/reference/prog1.htm
new file mode 100644
index 0000000..d56a1f0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/prog1.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP prog1</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>prog1</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(<i>prog1</i> [<i>expr1 expr2</i> ... ])</dt>
+<dd><i>exprN</i> - expressions comprising the body of the loop<br>
+returns - the value of the first expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'prog1' special form is basically a 'block' construct that contains a
+block of code [expressions] to evaluate. The value of the first expression
+'expr1' will be returned as the result of 'prog1'. If there is no 'expr1',
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(prog1 (print "hi") (print "ho")) <font color="#008844">; prints "hi" "ho" returns "hi"</font>
+(prog1) <font color="#008844">; returns NIL</font>
+(prog1 'a) <font color="#008844">; returns A</font>
+(prog1 "hey" (print "ho")) <font color="#008844">; prints "ho" returns "hey"</font>
+</pre>
+
+<p><b>Note:</b> 'prog1',
+<nobr><a href="prog2.htm">prog2</a> ,</nobr>
+<a href="progn.htm">progn</a> and
+<a href="progv.htm">progv</a> do not allow the use of
+<a href="return.htm">return</a> or
+<a href="go.htm">go</a> or tags for
+<a href="go.htm">go</a>.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-021.htm#prog1">prog1</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/prog2.htm b/docsrc/xlisp/xlisp-doc/reference/prog2.htm
new file mode 100644
index 0000000..8ed5592
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/prog2.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP prog2</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>prog2</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(<i>prog2</i> [<i>expr1 expr2</i> ... ])</dt>
+<dd><i>exprN</i> - expressions comprising the body of the loop<br>
+returns - the value of the second expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'prog2' special form is basically a 'block' construct that contains a
+block of code [expressions] to evaluate. The value of the second expression
+'expr2' will be returned as the result of 'prog2'. If there is no 'expr2',
+'expr1' is returned. If there is no 'expr1',
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(prog2 (print "hi") (print "ho")) <font color="#008844">; prints "hi" "ho" returns "ho"</font>
+(prog2) <font color="#008844">; returns NIL</font>
+(prog2 (print "hi")) <font color="#008844">; prints "hi" returns "hi"</font>
+(prog2 (print "ho") "hey") <font color="#008844">; prints "ho" returns "hey"</font>
+(prog2 'a 'b 'c) <font color="#008844">; returns B</font>
+</pre>
+
+<p><b>Note:</b> <nobr><a href="prog1.htm">prog1</a> ,</nobr>
+'prog2',
+<a href="progn.htm">progn</a> and
+<a href="progv.htm">progv</a> do not allow the use of
+<a href="return.htm">return</a> or
+<a href="go.htm">go</a> or tags for
+<a href="go.htm">go</a>.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-021.htm#prog2">prog2</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/progn.htm b/docsrc/xlisp/xlisp-doc/reference/progn.htm
new file mode 100644
index 0000000..9cb28a3
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/progn.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP progn</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>progn</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c, xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(progn [expr1 expr2 ... ])</dt>
+<dd><i>exprN</i> - expressions comprising the body of the loop<br>
+returns - the value of the last expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'progn' special form is basically a 'block' construct that contains a
+block of code [expressions] to evaluate. The value of the last expression
+'exprN' will be returned as the result of 'progn'. If there are no 'exprs',
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(progn (print "hi") (print "ho")) <font color="#008844">; prints "hi" "ho" returns "ho"</font>
+(progn) <font color="#008844">; returns NIL</font>
+(progn "hey" (print "ho")) <font color="#008844">; prints "ho" returns "ho"</font>
+(progn 'a) <font color="#008844">; returns A</font>
+(progn 'a 'b 'c) <font color="#008844">; returns C</font>
+</pre>
+
+<p><b>Note:</b> <nobr><a href="prog1.htm">prog1</a> ,</nobr>
+<nobr><a href="prog2.htm">prog2</a> ,</nobr>
+'progn' and
+<a href="progv.htm">progv</a> do not allow the use of
+<a href="return.htm">return</a> or
+<a href="go.htm">go</a> or tags for
+<a href="go.htm">go</a>.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-021.htm#progn">progn</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/progv.htm b/docsrc/xlisp/xlisp-doc/reference/progv.htm
new file mode 100644
index 0000000..47ccd84
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/progv.htm
@@ -0,0 +1,133 @@
+<html><head><title>XLISP progv</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>progv</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>progv</b> <i>symbols values</i> [<i>expr1 expr2</i> ... ])</dt>
+<dd><i>symbols</i> - a list of symbols to be bound<br>
+<i>values</i> - a list of values to be bound to symbols<br>
+<i>exprN</i> - expressions for the body of the loop<br>
+returns - the value of the last expression</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'progv' special form is basically a 'block' construct that contains a
+block of code [expressions] to evaluate. 'progv' is different from
+<nobr><a href="prog1.htm">prog1</a></nobr>, <a href="prog2.htm">prog2</a>
+and <a href="progn.htm">progn</a> in that it contains a pair of lists,
+'symbols' and 'values'. Before evaluating the expressions, 'progv'
+will dynamically bind the 'values' to the corresponding 'symbols'.
+<nobr>If there</nobr> are too many 'symbols' for the 'values', the 'symbols'
+with no corresponding 'values' will be bound to <a href="nil.htm">NIL</a>.
+<nobr>The variables</nobr> will be unbound after the execution of 'progv'.
+<nobr>The value</nobr> of the last 'expr' will be returned as the result of
+'progv'. <nobr>If there</nobr> are no 'exprs',
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+&gt; (progv '(var) '(2)
+ (print var)
+ (print "two"))
+2 <font color="#008844">; output of PRINT</font>
+"two" <font color="#008844">; output of PRINT</font>
+"two" <font color="#008844">; return value</font>
+
+&gt; (setq a "beginning") <font color="#008844">; initialize A</font>
+"beginning"
+
+&gt; (progv '(a) '(during) <font color="#008844">; bind A to a new value</font>
+ (print a))
+DURING <font color="#008844">; output of PRINT</font>
+DURING <font color="#008844">; return value restore A the original value</font>
+
+&gt; (print a)
+"beginning" <font color="#008844">; prints the original value</font>
+"beginning"
+
+&gt; (progv '(no-way) '(no-how))
+NIL
+
+&gt; (progv)
+<font color="#AA0000">error: too few arguments</font>
+</pre>
+
+<p><b>Note:</b> 'progv' is different from
+<nobr><a href="prog.htm">prog</a></nobr>, which allows symbols and
+initialization forms, in that 'progv' allows its 'symbols' and 'values' to
+be evaluated. This allows you to pass in forms that generate the 'symbols'
+and their 'values'.</p>
+
+<p><b>Note:</b> <nobr><a href="prog1.htm">prog1</a></nobr>,
+<nobr><a href="prog2.htm">prog2</a></nobr>, <a href="progn.htm">progn</a>
+and 'progv' do not allow the use of <a href="return.htm">return</a> or
+<a href="go.htm">go</a> or tags for <a href="go.htm">go</a>.</p>
+
+<p><b>Important:</b> In contrast to all other binding constructs, 'progv'
+binds global variables and not lexical variables, so 'progv' behaves
+like:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">progv</font> (symbols values &amp;rest body) <font color="#008844">; this function does</font>
+ (push symbol-values <font color="#AA5500">*internal-stack*</font>) <font color="#008844">; not really work,</font>
+ (setq symbols values) <font color="#008844">; it only demonstates</font>
+ (prog1 <font color="#008844">; the principle</font>
+ (eval body)
+ (setq symbol-values (pop <font color="#AA5500">*internal-stack*</font>))))
+</pre>
+
+<p>Variables bound by 'progv' can be manipulated by global functions
+including <nobr><a href="symbol-value.htm">symbol-value</a></nobr>.
+<nobr>All changes</nobr> to the 'progv' variables by other functions, called
+in the 'progv' body, will be lost after 'progv' is finished, because the
+original value from the beginning of 'progv' will be restored. This can be
+good or bad, depending on the situation.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/psetq.htm b/docsrc/xlisp/xlisp-doc/reference/psetq.htm
new file mode 100644
index 0000000..dea8f74
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/psetq.htm
@@ -0,0 +1,78 @@
+<html><head><title>XLISP psetq</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>psetq</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(psetq [symbol expr] ... )</dt>
+<dd><i>symbol</i> - un-evaluated symbol<br>
+<i>expr</i> - value for <i>symbol</i><br>
+returns - the value from the last <i>expr</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>'psetq' sets 'expr' as the value of 'symbol'. There can be several pairs
+of assignment. 'psetq' performs these assignments in parallel, the 'symbols'
+are not assigned new values until all the 'exprs' have been evaluated.
+'psetq' returns the value from the last 'expr' as it's result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(psetq a 1) <font color="#008844">; symbol A gets value 1</font>
+(psetq b '(a b c)) <font color="#008844">; symbol B gets value (A B C)</font>
+(psetq mynum (+ 3 4)) <font color="#008844">; symbol MYNUM gets value 7</font>
+
+(setq goo 'ber) <font color="#008844">; returns BER</font>
+(setq num 1) <font color="#008844">; returns 1</font>
+(psetq goo num num goo) <font color="#008844">; returns BER</font>
+(print goo) <font color="#008844">; returns 1</font>
+(print num) <font color="#008844">; returns BER</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#psetq">psetq</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/push.htm b/docsrc/xlisp/xlisp-doc/reference/push.htm
new file mode 100644
index 0000000..d649432
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/push.htm
@@ -0,0 +1,83 @@
+<html><head><title>XLISP push</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>push</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp macro</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>misc.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>push</b> <i>expr list</i>)</dt>
+<dd><i>expr</i> - an expression<br>
+<i>list</i> - a list<br>
+returns - the new value of <i>list</i></dd>
+</dl>
+
+</div></p>
+
+<p>'push' is implemented as a Lisp macro:</p>
+
+<pre class="example">
+(defmacro <font color="#0000CC">push</font> (val lis)
+ `(setf ,lis (cons ,val ,lis)))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'push' macro stores the value of the expression to the front of the
+list and returns the list.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq lst nil) =&gt; NIL
+(push 1 lst) =&gt; (1)
+lst =&gt; (1)
+(push 2 lst) =&gt; (2 1)
+lst =&gt; (2 1)
+(push 3 lst) =&gt; (3 2 1)
+lst =&gt; (3 2 1)
+</pre>
+
+<p>See <a href="setq.htm">setq</a>. See also the <a href="pop.htm">pop</a> macro.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/putprop.htm b/docsrc/xlisp/xlisp-doc/reference/putprop.htm
new file mode 100644
index 0000000..7711bf2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/putprop.htm
@@ -0,0 +1,108 @@
+<html><head><title>XLISP putprop</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>putprop</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(putprop <i>symbol value property</i>)</dt>
+<dd><i>symbol</i> - the symbol with a property list<br>
+<i>value</i> - the value to be assigned to the property<br>
+<i>property</i> - the property name being changed or added<br>
+returns - the property value</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'putprop' function sets the value of the 'property' in the 'symbol'.
+If the 'property' does not exist, the 'property' is added to the property
+list. The 'symbol' must be an existing symbol. The 'value' may be a single
+value or a list.</p>
+
+<p>Property lists are lists attached to any user defined variables. The
+lists are in the form of:</p>
+
+<pre class="example">
+(<font color="#008844"><i>name1 val1 name2 val2</i></font> ... )
+</pre>
+
+<p>Any number of properties may be attached to a single variable.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq person 'bobby) <font color="#008844">; create a var with a value</font>
+(putprop person 'boogie 'last-name) <font color="#008844">; add a LAST-NAME property</font>
+(putprop person 'disc-jockey 'job) <font color="#008844">; add a JOB property</font>
+
+(get person 'last-name) <font color="#008844">; retrieve LAST-NAME - boogie</font>
+(get person 'job) <font color="#008844">; retrieve JOB - disc-jockey</font>
+(get person 'height) <font color="#008844">; non-existant - returns NIL</font>
+
+(putprop person '(10 20 30) 'stats) <font color="#008844">; add STATS - a list</font>
+(get person 'stats) <font color="#008844">; retrieve STATS - (10 20 30)</font>
+</pre>
+
+<p><b>Note:</b> You can set a property to the value
+<a href="nil.htm">NIL</a>. However, this
+<a href="nil.htm">NIL</a> value is indistinguishable from the
+<a href="nil.htm">NIL</a> returned when a property does not
+exist.</p>
+
+<p><b>Common Lisp:</b> Common LISP does not have a 'putprop' function. It
+uses <a href="setf.htm">setf</a> to achieve this functionality.
+Porting from Common Lisp to XLISP will work fine since XLISP supports the <a
+href="setf.htm">setf</a> modifications of property lists as well
+as the <a href="get.htm">get</a> function to retrieve property
+values from symbol names. Porting from XLISP to Common Lisp will require
+translating 'putprop' into <a href="setf.htm">setf</a> forms.</p>
+
+<p><b>Caution:</b> In XLISP, the order of 'putprop' arguments is 'symbol',
+'value', 'property'. This is different from many other Lisps which normally
+use 'symbol', 'property', 'value'. Be careful when porting existing Lisp
+code.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-014.htm#putprop">putprop</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/quit.htm b/docsrc/xlisp/xlisp-doc/reference/quit.htm
new file mode 100644
index 0000000..1710d92
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/quit.htm
@@ -0,0 +1,69 @@
+<html><head><title>XLISP quit</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>quit</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsys.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(quit)</dt>
+<dd>returns - never returns</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'quit' function causes the current XLISP session to be terminated.
+<nobr>It never</nobr> returns.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(quit) <font color="#008844">; never returns</font>
+</pre>
+
+<p><b>Note:</b> When XLISP is exited, any
+<a href="dribble.htm">dribble</a> transcript file is automatically
+closed. However, other open files are not closed, and so may lose some
+information.</p>
+
+<p>See also <a href="quit.htm">exit</a>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/quote.htm b/docsrc/xlisp/xlisp-doc/reference/quote.htm
new file mode 100644
index 0000000..8a84180
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/quote.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP quote</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>quote</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(quote <i>expr</i>)</dt>
+<dl><i>expr</i> - an expression<br>
+returns - the unevaluated expression</dl>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'quote' function returns the 'expr' unevaluated.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+my-var <font color="#008844">; error: unbound variable</font>
+(quote my-var) <font color="#008844">; returns MY-VAR</font>
+my-var <font color="#008844">; still error: unbound variable</font>
+(set (quote my-var) 111) <font color="#008844">; give MY-VAR a value, make it exist</font>
+my-var <font color="#008844">; returns 111</font>
+(quote my-var) <font color="#008844">; returns MY-VAR</font>
+
+<font color="#008844">;; Same as above but using the ' read macro for quote</font>
+
+new-var <font color="#008844">; error: unbound variable</font>
+'new-var <font color="#008844">; returns NEW-VAR</font>
+new-var <font color="#008844">; still error: unbound variable</font>
+(setq new-var 222) <font color="#008844">; give NEW-VAR a value, make it exist</font>
+new-var <font color="#008844">; returns 222</font>
+'new-var <font color="#008844">; returns NEW-VAR</font>
+</pre>
+
+<p><b>Read macro:</b> XLISP supports the
+<nobr><a href="../manual/xlisp-man-008.htm#quote">read macro</a></nobr>
+of a single quote as a short-hand method of writing the 'quote' function.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-012.htm#quote">quote</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/random.htm b/docsrc/xlisp/xlisp-doc/reference/random.htm
new file mode 100644
index 0000000..d697135
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/random.htm
@@ -0,0 +1,86 @@
+<html><head><title>XLISP random</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>random</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(random <i>expr</i>)</dt>
+<dd><i>expr</i> - integer number or expression<br>
+returns - a random number between 0 and <nobr><i>expr</i> - 1.</nobr></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'random' function generates and returns a random number between 0 and
+<nobr>'expr' - 1.</nobr> If 'expr' is negative, the number range is forced
+to be positive.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(random 100) <font color="#008844">; returns 7</font>
+(random 100) <font color="#008844">; returns 49</font>
+(random 100) <font color="#008844">; returns 73</font>
+(random -100) <font color="#008844">; returns 58</font>
+(random 100.01) <font color="#008844">; error: bad floating point operation</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp allows an optional 'state' parameter,
+which is not supported in XLISP. Also, Common LISP allows floating point
+numbers, which XLISP does not support.</p>
+
+<p><b>Note:</b> This function is an extension of the XLISP system. It is
+provided in the 'msstuff.c' source code file. If your XLISP system is built
+for an IBM PC and compatibles, this function will work. If your system is
+built on UNIX or some other operating system, it will need the code in the
+corresponding 'stuff.c' file.</p>
+
+<p><b>Nyquist:</b> As far as I know the Nyquist 'random' function works on
+all systems. See also the Nyquist
+<a href="xlisp-man-033.htm#rrandom">rrandom</a> function.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#random">random</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/read-byte.htm b/docsrc/xlisp/xlisp-doc/reference/read-byte.htm
new file mode 100644
index 0000000..4047ae6
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/read-byte.htm
@@ -0,0 +1,100 @@
+<html><head><title>XLISP read-byte</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>read-byte</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(read-byte [<i>source</i>])</dt>
+<dd><i>source</i> - an optional source, must be a file pointer or stream,
+default is <a href="global-standard-input.htm">*standard-input*</a><br>
+returns - the byte as an integer</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'read-byte' function reads a single character from the specified
+'source'. The character read is returned as an integer value for the result.
+The 'source' may be a file pointer or a stream. If there is no 'source',
+<a href="global-standard-input.htm">*standard-input*</a> is the default. If an
+end-of-file is encountered in the 'source', then
+<a href="nil.htm">NIL</a> will be returned as the result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq fp (open "f" :direction :output)) <font color="#008844">; set up file</font>
+(print 12.34 fp)
+(close fp)
+
+(setq fp (open "f" :direction :input)) <font color="#008844">; now read the file</font>
+(read-byte fp) <font color="#008844">; returns 49 - equals "1"</font>
+(read-byte fp) <font color="#008844">; returns 50 - equals "2"</font>
+(read-byte fp) <font color="#008844">; returns 46 - equals "."</font>
+(read-byte fp) <font color="#008844">; returns 51 - equals "3"</font>
+(read-byte fp) <font color="#008844">; returns 52 - equals "4"</font>
+(read-byte fp) <font color="#008844">; returns 10 - equals "\n"</font>
+(read-byte fp) <font color="#008844">; returns NIL - empty</font>
+(close fp)
+</pre>
+
+<p><b>Common Lisp:</b> The XLISP and Common Lisp 'read-byte' functions are
+compatible for simple cases. They both allow for the optional 'source'.
+However, in Common Lisp, there are additional parameters which occur right
+after 'source'. So, when porting from Common Lisp to XLISP, remember there
+are additional arguments in Common Lisp's 'read-byte' function.</p>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that 'read' operations with a
+'source' of <a href="nil.htm">NIL</a> will come from
+<a href="global-standard-input.htm">*standard-input*</a>. XLISP does not read the
+input from <a href="global-standard-input.htm">*standard-input*</a> with a
+'source' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'source' of <a href="t.htm">&nbsp;T&nbsp;</a>
+will read from *terminal-io* which is not defined in XLISP by default. XLISP
+does not allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid
+argument for 'source'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-029.htm#read-byte">read-byte</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/read-char.htm b/docsrc/xlisp/xlisp-doc/reference/read-char.htm
new file mode 100644
index 0000000..476763b
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/read-char.htm
@@ -0,0 +1,100 @@
+<html><head><title>XLISP read-char</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>read-char</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(read-char [<i>source</i>])</dt>
+<dd><i>source</i> - an optional source, must be a file pointer or stream,
+default is <a href="global-standard-input.htm">*standard-input*</a><br>
+returns - the character</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'read-char' function reads a single character from the specified
+'source'. The character read is returned as a single character value for
+the result. The 'source' may be a file pointer or a stream. If there is no
+'source', <a href="global-standard-input.htm">*standard-input*</a> is the default.
+If an end-of-file is encountered in the 'source', then
+<a href="nil.htm">NIL</a> will be returned as the result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq fp (open "f" :direction :output)) <font color="#008844">; set up file</font>
+(print 12.34 fp)
+(close fp)
+
+(setq fp (open "f" :direction :input)) <font color="#008844">; now read the file</font>
+(read-char fp) <font color="#008844">; returns #\1</font>
+(read-char fp) <font color="#008844">; returns #\2</font>
+(read-char fp) <font color="#008844">; returns #\.</font>
+(read-char fp) <font color="#008844">; returns #\3</font>
+(read-char fp) <font color="#008844">; returns #\4</font>
+(read-char fp) <font color="#008844">; returns #\Newline</font>
+(read-char fp) <font color="#008844">; returns NIL - empty</font>
+(close fp)
+</pre>
+
+<p><b>Common Lisp:</b> The XLISP and Common Lisp 'read-char' functions are
+compatible for simple cases. They both allow for the optional 'source'.
+However, in Common Lisp, there are addition parameters which occur right
+after 'source'. So, when porting from Common Lisp to XLISP, remember there
+are additional arguments in Common Lisp's 'read-char' function.</p>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that 'read' operations with a
+'source' of <a href="nil.htm">NIL</a> will come from
+<a href="global-standard-input.htm">*standard-input*</a>. XLISP does not read the
+input from <a href="global-standard-input.htm">*standard-input*</a> with a
+'source' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'source' of <a href="t.htm">&nbsp;T&nbsp;</a>
+will read from *terminal-io* which is not defined in XLISP by default. XLISP
+does not allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid
+argument for 'source'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-029.htm#read-char">read-char</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/read-float.htm b/docsrc/xlisp/xlisp-doc/reference/read-float.htm
new file mode 100644
index 0000000..44b52e7
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/read-float.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP read-float</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>read-float</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(read-float [<i>stream</i> [<i>length</i>]])</dt>
+<dd><i>stream</i> - the input stream (default is standard input)<br>
+<i>length</i> - the length of the float in bytes [default is 4,
+legal values are -4, -8, 4, and 8]<br>
+returns - the float</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>read-float</nobr>' function reads a binary floating point
+number from an input stream, created by the
+<nobr><a href="open-binary.htm">open-binary</a></nobr> function.</p>
+
+<p><b>Note:</b> Integers and floats are assumed to be
+<nobr>big-endian</nobr> [<nobr>high-order</nobr> byte first] and signed,
+regardless of the platform. <nobr>To read</nobr> <nobr>little-endian</nobr>
+format, use a negative number for the length, e.g. '-4' indicates a
+<nobr>4-bytes</nobr>, <nobr>low-order</nobr> byte first. The file should be
+opened in binary mode.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p>See also <nobr><a href="read-int.htm">read-int</a></nobr>,
+<nobr><a href="write-int.htm">write-int</a></nobr>,
+<nobr><a href="write-float.htm">write-float</a></nobr>,
+<nobr><a href="bigendianp.htm">bigendianp</a></nobr>,
+<nobr><a href="open-binary.htm">open-binary</a></nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/read-int.htm b/docsrc/xlisp/xlisp-doc/reference/read-int.htm
new file mode 100644
index 0000000..15aa9d5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/read-int.htm
@@ -0,0 +1,78 @@
+<html><head><title>XLISP read-int</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>read-int</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(<b>read-int</b> [<i>stream</i> [<i>length</i>]])</dt>
+<dd><i>stream</i> - the input stream [default is standard input]<br>
+<i>length</i> - the length of the integer in bytes [default is 4]<br>
+returns - the integer</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>read-int</nobr>' function reads an integer from a binary input
+stream, created by the
+<nobr><a href="open-binary.htm">open-binary</a></nobr> function.</p>
+
+<p><b>Note:</b> Integers and floats are assumed to be
+<nobr>big-endian</nobr> [<nobr>high-order</nobr> byte first] and signed,
+regardless of the platform. <nobr>To read</nobr> <nobr>little-endian</nobr>
+format, use a negative number for the length, e.g. '-4' indicates a
+<nobr>4-bytes</nobr>, <nobr>low-order</nobr> byte first. The file should be
+opened in binary mode.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p>See also <nobr><a href="write-int.htm">write-int</a></nobr>,
+<nobr><a href="read-float.htm">read-float</a></nobr>,
+<nobr><a href="write-float.htm">write-float</a></nobr>,
+<nobr><a href="bigendianp.htm">bigendianp</a></nobr>,
+<nobr><a href="open-binary.htm">open-binary</a></nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/read-line.htm b/docsrc/xlisp/xlisp-doc/reference/read-line.htm
new file mode 100644
index 0000000..e6860d4
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/read-line.htm
@@ -0,0 +1,97 @@
+<html><head><title>XLISP read-line</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>read-line</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(read-line [<i>source</i>])</dt>
+<dd><i>source</i> - an optional source, must be a file pointer or stream,
+default is <a href="global-standard-input.htm">*standard-input*</a><br>
+returns - the line as a string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'read-line' function reads a single line from the specified 'source'.
+The line read is returned as a string value for the result. The 'source' may
+be a file pointer or a stream. If there is no 'source',
+<a href="global-standard-input.htm">*standard-input*</a> is the default. If an
+end-of-file is encountered in the 'source', then
+<a href="nil.htm">NIL</a> will be returned as the result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq fp (open "f" :direction :output)) <font color="#008844">; set up file</font>
+(print "fe fi" fp)
+(print 12.34 fp)
+(close fp)
+
+(setq fp (open "f" :direction :input)) <font color="#008844">; now read the file</font>
+(read-line fp) <font color="#008844">; returns ""fe fi""</font>
+(read-line fp) <font color="#008844">; returns "12.34"</font>
+(read-line fp) <font color="#008844">; returns NIL</font>
+(close fp)
+</pre>
+
+<p><b>Common Lisp:</b> The XLISP and Common Lisp 'read-line' functions are
+compatible for simple cases. They both allow for the optional 'source'.
+However, in Common Lisp, there are additional parameters which occur right
+after 'source'. So, when porting from Common Lisp to XLISP, remember there
+are additional arguments in Common Lisp's 'read-line' function.</p>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that 'read' operations with a
+'source' of <a href="nil.htm">NIL</a> will come from
+<a href="global-standard-input.htm">*standard-input*</a>. XLISP does not read the
+input from <a href="global-standard-input.htm">*standard-input*</a> with a
+'source' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'source' of <a href="t.htm">&nbsp;T&nbsp;</a>
+will read from *terminal-io* which is not defined in XLISP by default. XLISP
+does not allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid
+argument for 'source'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-029.htm#read-line">read-line</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/read.htm b/docsrc/xlisp/xlisp-doc/reference/read.htm
new file mode 100644
index 0000000..7e7e339
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/read.htm
@@ -0,0 +1,125 @@
+<html><head><title>XLISP read</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>read</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c, xlread.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(<i>read</i> [<i>source</i> [<i>eof-result</i> [<i>recursive-flag</i>]]])</dt>
+<dd><i>source</i> - an optional source, must be a file pointer or stream, the
+default is <a href="global-standard-input.htm">*standard-input*</a><br>
+<i>eof-result</i> - an optional expression, default is
+<a href="nil.htm">NIL</a><br>
+<i>recursive-flag</i> - an optional expression,
+<a href="nil.htm">NIL</a> or
+non-<a href="nil.htm">NIL</a><br>
+returns - the expression read</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'read' function reads an expression from the specified 'source'. The
+expression read is a normal XLISP expression, not necessarily a line. This
+means that white space is removed, where 'white space' is blanks, empty
+lines and comment lines. Read-macro expansions will occur. The expression
+needs to be an atom [numeric, string or symbol] or a valid list. It can span
+several lines. The expression read is returned as the result. The 'source'
+may be a file pointer or a stream. If there is no 'source',
+<a href="global-standard-input.htm">*standard-input*</a> is the default. If an
+end-of-file is encountered in the 'source', then the 'eof-result' value will
+be returned as the result.</p>
+
+<p>If you wish to read just lines or characters, refer to the
+<a href="read-line.htm">read-line</a> or
+<a href="read-char.htm">read-char</a> functions.</p>
+
+<p>The 'recursive-flag' is intended for use with embedded calls to 'read'.
+This is useful in read-macro and read-table uses. If 'recursive-flag' is
+<nobr>non-<a href="nil.htm">NIL</a> ,</nobr> 'read' does not
+expect itself to be at a 'top-level', but recursively executing within
+another 'read' that is in progress.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq fp (open "f" :direction :output)) <font color="#008844">; set up file</font>
+(print "hello" fp) <font color="#008844">; and fill it with stuff</font>
+(print 12.34 fp)
+(princ "'(a b" fp) (terpri fp)
+(princ "; comment" fp) (terpri fp)
+(princ " c d)" fp )
+(close fp)
+
+(setq fp (open "f" :direction :input)) <font color="#008844">; now read the file</font>
+(read fp "done") <font color="#008844">; returns "hello"</font>
+(read fp "done") <font color="#008844">; returns 12.34</font>
+(read fp "done") <font color="#008844">; returns (QUOTE (A B C D))</font>
+ <font color="#008844">; note the macro expansion of QUOTE</font>
+ <font color="#008844">; note that "; comment" is gone</font>
+(read fp "done") <font color="#008844">; returns "done"</font>
+(close fp)
+</pre>
+
+<p><b>Common Lisp:</b> The XLISP and Common Lisp 'read' functions are
+similar. They both allow for 'source', 'eof-result' and 'recursive-flag'.
+However, in Common LISP, there is an additional end-of-file error parameter.
+This parameter occurs right after 'source' and specifies whether or not to
+flag an error on end-of-file. So, when porting, remember there is one
+additional argument in Common Lisp's 'read' function. You need to be
+concerned about this if you use more than just a 'source' argument, going
+either from XLISP to Common LISP or vice versa.</p>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that 'read' operations with a
+'source' of <a href="nil.htm">NIL</a> will come from
+<a href="global-standard-input.htm">*standard-input*</a>. XLISP does not read the
+input from <a href="global-standard-input.htm">*standard-input*</a> with a
+'source' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'source' of <a href="t.htm">&nbsp;T&nbsp;</a>
+will read from *terminal-io* which is not defined in XLISP by default. XLISP
+does not allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid
+argument for 'source'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-027.htm#read">read</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/real-random.htm b/docsrc/xlisp/xlisp-doc/reference/real-random.htm
new file mode 100644
index 0000000..d3438a8
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/real-random.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP real-random</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>real-random</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>misc.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>real-random</b> <i>from to</i>)</nobr></dt>
+<dd><i>from</i>, <i>to</i> - the limits as integer or floating point numbers<br>
+returns - a random floating point number between <i>from</i> and <i>to</i></dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, '<nobr>real-random</nobr>' is implemented as a Lisp
+function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">real-random</font> (from to)
+ (+ (* (rrandom) (- to from)) from))
+</pre>
+
+<h2>Description</h2>
+
+<p>The '<nobr>real-random</nobr>' function returns a random floating point
+number between 'from' and 'to'. <nobr>See also</nobr> <a
+href="rrandom.htm">rrandom</a>, which is <nobr>equivalent to:</nobr>
+
+<pre class="example">
+(real-random 0 1))
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p>See also <a href="rrandom.htm">rrandom</a>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/reference-copyright.htm b/docsrc/xlisp/xlisp-doc/reference/reference-copyright.htm
new file mode 100644
index 0000000..854f384
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/reference-copyright.htm
@@ -0,0 +1,50 @@
+<html><head><title>Copyright</title></head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>Copyright</h1>
+
+<hr>
+
+<p>This XLISP language reference is a re-work of a 'XLISPREF.DOC' document
+with the following copyright:</p>
+
+<p>XLISP 2.0 Language Reference by Tim I Mikkelsen - December 11, 1989</p>
+
+<blockquote>
+<p>Copyright (c) 1989 by Tim I. Mikkelsen. All Rights Reserved. No part of this
+document may be copied, reproduced or translated for commercial use without
+prior written consent of the author. Permission is granted for non-commercial
+use as long as this notice is left intact.</p>
+
+<p>This document is intended to serve as a reference for the XLISP 2.0 dialect
+of LISP. It includes a description of each symbol, function, special form and
+keyword available in XLISP. This reference is not a complete and extensive
+introduction to LISP programming.</p>
+
+<p>If you find problems with the reference or find that I have left something
+out, drop me a line. If you find this useful, I would be interested in hearing
+that as well. If you are into 'pretty' looking documents (as opposed to plain
+ASCII text), I have a TeX version of the reference.</p>
+</blockquote>
+
+<p>Tim Mikkelsen, 4316 Picadilly Drive, Fort Collins, Colorado 80526</p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html>
+
diff --git a/docsrc/xlisp/xlisp-doc/reference/reference-format.htm b/docsrc/xlisp/xlisp-doc/reference/reference-format.htm
new file mode 100644
index 0000000..140d2c0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/reference-format.htm
@@ -0,0 +1,83 @@
+<html><head><title>Entry Format</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>Entry Format</h1>
+
+<hr>
+
+<p>Each entry is a symbol of some variety that the XLISP system will
+recognize. The parts of each reference entry include:</p>
+
+<ol>
+
+<li><p>The <b>Headline</b> of the page gives the name or symbol of the
+entry.</p></li>
+
+<li><p>The <b>Reference</b> section below the headline gives infomations in
+the following order:</p></li>
+
+<ul>
+
+<li><p><b>Type</b> may be one of the following:</p></li>
+
+<ul>
+<li><nobr>function (subr)</nobr></li>
+<li><nobr>predicate function (subr)</nobr></li>
+<li><nobr>special form (fsubr)</nobr></li>
+<li><nobr>reader expansion</nobr></li>
+<li><nobr>system variable</nobr></li>
+<li><nobr>system constant</nobr></li>
+<li><nobr>keyword</nobr></li>
+<li><nobr>object</nobr></li>
+<li><nobr>message selector</nobr></li>
+</ul>
+
+<li><p><b>Source</b> specifies the source file where the routine or code
+associated with the entry resides. [Please not that I have copied the
+source file locations out of the Tim I Mikkelsen manual without checking,
+so some of them may be wrong.]</p></li>
+
+</ul>
+
+<li><p><b>Syntax</b> defines the syntax or usage of the entry. It is also
+used to specify the arguments. Items written in <i>italics</i> are
+arguments. Items enclosed between square brackets like '[' and ']' are
+optional entries. Items that have '...' [ellipses] indicate that there can
+be one or many of the item. Items enclosed between '{' and '}' which are
+separated by '|' indicate that one of the items should be included.</p></li>
+
+<li><p><b>Description</b> defines the entry, necessary conditions, results,
+defaults, etc.</p></li>
+
+<li><p><b>Examples</b> shows example uses of the entry.</p></li>
+
+<li><p>The <b>Comments</b> section after the examples includes additional
+information such as compatibility notes, bugs, usage notes, potential
+problems, keystroke equivalences, etc.</p></li>
+
+</ol>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</a></nobr></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/reference-index.htm b/docsrc/xlisp/xlisp-doc/reference/reference-index.htm
new file mode 100644
index 0000000..a50ea90
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/reference-index.htm
@@ -0,0 +1,2468 @@
+<html><head><title>Language Reference</title></head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+Reference
+
+<hr>
+
+<h1>Nyquist / XLISP 2.0 Language Reference</h1>
+
+<hr>
+
+<p><nobr>&nbsp;
+<a href="#num">&nbsp;<i>#</i>&nbsp;</a> |
+<a href="#a">&nbsp;<i>a</i>&nbsp;</a> |
+<a href="#b">&nbsp;<i>b</i>&nbsp;</a> |
+<a href="#c">&nbsp;<i>c</i>&nbsp;</a> |
+<a href="#d">&nbsp;<i>d</i>&nbsp;</a> |
+<a href="#e">&nbsp;<i>e</i>&nbsp;</a> |
+<a href="#f">&nbsp;<i>f</i>&nbsp;</a> |
+<a href="#g">&nbsp;<i>g</i>&nbsp;</a> |
+<a href="#h">&nbsp;<i>h</i>&nbsp;</a> |
+<a href="#i">&nbsp;<i>i</i>&nbsp;</a> |
+<a href="#k">&nbsp;<i>k</i>&nbsp;</a> |
+<a href="#l">&nbsp;<i>l</i>&nbsp;</a> |
+<a href="#m">&nbsp;<i>m</i>&nbsp;</a> |
+<a href="#n">&nbsp;<i>n</i>&nbsp;</a> |
+<a href="#o">&nbsp;<i>o</i>&nbsp;</a> |
+<a href="#p">&nbsp;<i>p</i>&nbsp;</a> |
+<a href="#q">&nbsp;<i>q</i>&nbsp;</a> |
+<a href="#r">&nbsp;<i>r</i>&nbsp;</a> |
+<a href="#s">&nbsp;<i>s</i>&nbsp;</a> |
+<a href="#t">&nbsp;<i>t</i>&nbsp;</a> |
+<a href="#u">&nbsp;<i>u</i>&nbsp;</a> |
+<a href="#v">&nbsp;<i>v</i>&nbsp;</a> |
+<a href="#w">&nbsp;<i>w</i>&nbsp;</a> |
+<a href="#z">&nbsp;<i>z</i>&nbsp;</a>
+</nobr></p>
+
+<ul>
+<li><nobr><a href="reference-copyright.htm">Copyright</a></nobr></li>
+<li><nobr><a href="reference-format.htm">Entry Format</a></nobr></li>
+</ul>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td><nobr><a href="../manual/xlisp.htm#command-loop">&nbsp;*&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">variable</font>
+ - most recent result</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="../manual/xlisp.htm#command-loop">&nbsp;**&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">variable</font>
+ - second recent result</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="../manual/xlisp.htm#command-loop">&nbsp;***&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">variable</font>
+ - third recent result</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="../manual/xlisp.htm#command-loop">&nbsp;+&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">variable</font>
+ - most recent input expression</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="../manual/xlisp.htm#command-loop">&nbsp;++&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">variable</font>
+ - second recent input expression</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="../manual/xlisp.htm#command-loop">&nbsp;+++&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">variable</font>
+ - third recent input expression</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="../manual/xlisp.htm#command-loop">&nbsp;&minus;&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">variable</font>
+ - the expression currently being evaluated</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="num"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="addition.htm">&nbsp;+&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - add one or several numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="subtraction.htm">&nbsp;&minus;&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - negate one number or subtract several numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="multiplication.htm">&nbsp;*&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - multiply one or several numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="division.htm">&nbsp;/&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - divide one or several numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="number-lessp.htm">&nbsp;&lt;&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if numbers are monotonically increasing</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="number-not-greaterp.htm">&nbsp;&lt;=&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if numbers are monotonically non-decreasing</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="number-equal.htm">&nbsp;=&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test numbers for equality</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="number-not-equal.htm">&nbsp;/=&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test numbers for non-equality</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="number-greaterp.htm">&nbsp;&gt;&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if numbers are monotonically decreasing</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="number-not-lessp.htm">&nbsp;&gt;=&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if numbers are monotonically non-increasing</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="increment.htm">&nbsp;1+&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - increment a number by one</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="decrement.htm">&nbsp;1&minus;&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - decrement a number by one</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="a"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="abs.htm">abs</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the absolute value of a number</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="acos.htm">acos</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the arccosine of a floating point number</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="address-of.htm">address-of</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get the address of an xlisp node</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="alloc.htm">alloc</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - change the number of nodes to allocate in each segment</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="alphanumericp.htm">alphanumericp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - is this an alphabetic or a digit character?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="and.htm">and</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - the logical 'and' of an arbitrary number of expressions</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-answer.htm">:answer</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">message selector</font>
+ - add a message to a class</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="append.htm">append</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - append lists</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="apply.htm">apply</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - apply a function to a list of arguments</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-applyhook.htm">*applyhook*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - returns <a href="nil.htm">NIL</a> [hook not implemented]</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="aref.htm">aref</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - array accessor for the nth element of an array</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="arrayp.htm">arrayp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this an array?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="asin.htm">asin</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the arcsine of a floating point number</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="assoc.htm">assoc</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - find an expression in an association list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="atan.htm">atan</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the arctangent of a floating point number</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="atom.htm">atom</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this an atom?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="lambda-keyword-aux.htm">&amp;aux</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">keyword</font>
+ - define auxiliary variables</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="b"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="backquote.htm">backquote</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - fill in a template</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="baktrace.htm">baktrace</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - print n levels of trace back information</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="bigendianp.htm">bigendianp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - is this a bigendian machine?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="block.htm">block</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - define a named block</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="both-case-p.htm">both-case-p</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this an uppercase or lowercase alphabetic character?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="boundp.htm">boundp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is a variable value bound to this symbol in the <a href="global-obarray.htm">*obarray*</a>?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="break.htm">break</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - enter a <a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-breakenable.htm">*breakenable*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - define if the <a href="../manual/xlisp.htm#break-loop">Break Loop</a> shall be entered on errors</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="c"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="car.htm">car</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for the <a href="first.htm">first</a> element of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="caar.htm">caar cadr</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessors for a sequence of <a href="car.htm">car</a> and
+ <a href="cdr.htm">cdr</a> operations</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="caaar.htm">caaar...caddr</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessors for a sequence of <a href="car.htm">car</a> and
+ <a href="cdr.htm">cdr</a> operations</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="caaaar.htm">caaaar...cadddr</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessors for a sequence of <a href="car.htm">car</a> and
+ <a href="cdr.htm">cdr</a> operations</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="case.htm">case</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - select by case</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="catch.htm">catch</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - evaluate expressions and catch <a href="throw.htm">throw</a>s</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="cdr.htm">cdr</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for the tail of a list with the
+ <a href="first.htm">first</a> element removed</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="cddr.htm">cdar cddr</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessors for a sequence of <a href="car.htm">car</a> and
+ <a href="cdr.htm">cdr</a> operations</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="cdddr.htm">cdaar...cdddr</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessors for a sequence of <a href="car.htm">car</a> and
+ <a href="cdr.htm">cdr</a> operations</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="cddddr.htm">cdaaar...cddddr</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessors for a sequence of <a href="car.htm">car</a> and
+ <a href="cdr.htm">cdr</a> operations</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="cerror.htm">cerror</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - signal a correctable error</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char.htm">char</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - extract a character from a string</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-not-equal-s.htm">char/=</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if characters are not equal, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-lessp-s.htm">char&lt;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if characters are monotonically increasing, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-not-greaterp-s.htm">char&lt;=</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if characters are monotonically non-decreasing, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-equal-s.htm">char=</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if characters are equivalent, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-greaterp-s.htm">char&gt;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if characters are monotonically decreasing, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-not-lessp-s.htm">char&gt;=</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if characters are monotonically non-increasing, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="characterp.htm">characterp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this a character?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-code.htm">char-code</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get the ASCII code of a character</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-downcase.htm">char-downcase</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - convert a character to lower case</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-equal-i.htm">char-equal</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if characters are equivalent, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-greaterp-i.htm">char-greaterp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - test if characters are monotonically decreasing, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-int.htm">char-int</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - convert a character to an integer</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-lessp-i.htm">char-lessp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - test if characters are monotonically increasing, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-not-equal-i.htm">char-not-equal</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if characters are different values, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-not-greaterp-i.htm">char-not-greaterp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - test if characters are monotonically non-decreasing, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-not-lessp-i.htm">char-not-lessp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - test if characters are monotonically non-increasing, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="char-upcase.htm">char-upcase</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - convert a character to upper case</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="class.htm">class</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">object</font>
+ - the built-in object class</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-class.htm">:class</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">message selector</font>
+ - return the class of an object</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="clean-up.htm">clean-up</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - clean-up after an error</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="close.htm">close</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - close a file stream</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="code-char.htm">code-char</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get the character with a specified ASCII code</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="backquote.htm">comma</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">reader expansion</font>
+ - comma evaluates expressions in a <a href="backquote.htm">backquote</a> form</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="backquote.htm">comma-at</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">reader expansion</font>
+ - splices a list into a expression in a <a href="backquote.htm">backquote</a> form</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="cond.htm">cond</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - evaluate conditionally</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="cons.htm">cons</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - construct a new list node</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="consp.htm">consp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this a non-empty list?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-constituent.htm">:constituent</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">keyword</font>
+ - readtable entry to specify a character to be used as is</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="continue.htm">continue</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - continue from a correctable error</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="cos.htm">cos</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the cosine of a floating point number</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="d"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-debug-io.htm">*debug-io*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - file pointer for debug input and output</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="decf.htm">decf</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">macro</font>
+ - decrement a variable</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="defmacro.htm">defmacro</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - define a Lisp macro</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="defun.htm">defun</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - define a Lisp function</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="delete.htm">delete</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - delete elements from a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="delete-if.htm">delete-if</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - delete elements from a list that pass a test</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="delete-if-not.htm">delete-if-not</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - delete elements from a list that fail a test</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="digit-char.htm">digit-char</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - convert a decimal digit to a character</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="digit-char-p.htm">digit-char-p</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - convert a character to a decimal digit, if possible</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="do.htm">do</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - loop with local 'let' bindings</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="do-star.htm">do*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - loop with local 'let*' bindings</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="dolist.htm">dolist</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - loop through a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="dotimes.htm">dotimes</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - loop a given number of times</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="dribble.htm">dribble</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - create a file with a transcript of a Nyquist/ XLISP session</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="e"></a></td>
+</tr>
+</tr>
+<tr>
+ <td><nobr><a href="echoenabled.htm">echoenabled</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - turn the console input echo on or off</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="endp.htm">endp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this the end of a list?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="eq.htm">eq</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - equality test comparing memory pointers, may fail on numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="eql.htm">eql</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - same as 'eq', but works with all symbols and numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="equal.htm">equal</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - equality test by comparing printed values</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="error.htm">error</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - signal a non-correctable error</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-error-output.htm">*error-output*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - file pointer for error input and output</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="errset.htm">errset</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - trapping errors</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="eval.htm">eval</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - evaluate a Lisp expression</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="evalhook.htm">evalhook</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - evaluate with hooks</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-evalhook.htm">*evalhook*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - user substitute for the evaluator function</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="evenp.htm">evenp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this integer even?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="exit.htm">exit</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - exit XLISP</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="exp.htm">exp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute 'e' to the 'x' power</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="expand.htm">expand</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - expand memory by adding segments</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="expt.htm">expt</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute 'x' to the 'y' power</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="f"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="fboundp.htm">fboundp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is a function value bound to this symbol in the <a href="global-obarray.htm">*obarray*</a>??</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="filep.htm">filep</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - is this a file?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="find-in-xlisp-path.htm">find-in-xlisp-path</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - searches the XLISP path for a filename</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-file-separator.htm">*file-separator*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">variable</font>
+ - the operating system's file separator character</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="first.htm">first</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for the first element of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="flatc.htm">flatc</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - length of printed representation using <a href="princ.htm">princ</a></nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="flatsize.htm">flatsize</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - length of printed representation using <a href="prin1.htm">prin1</a></nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="flet.htm">flet</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - define local Lisp functions</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="float.htm">float</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - convert an integer to a floating point number</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-float-format.htm">*float-format*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - format for printing floating point numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="floatp.htm">floatp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this number a floating point number?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="format.htm">format</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - do formatted output</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="fourth.htm">fourth</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for the fourth element of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="funcall.htm">funcall</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - call a function with arguments</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="function.htm">function</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - get the functional value of a symbol or lambda expression</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="g"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="gc.htm">gc</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - call the garbage collector</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="gcd.htm">gcd</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the greatest common divisor</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-gc-flag.htm">*gc-flag*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - controls the printing of 'gc' messages</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-gc-hook.htm">*gc-hook*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - function to call after garbage collection</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="gensym.htm">gensym</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - generate an unique Lisp symbol</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="get.htm">get</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for property lists</nobr></td>
+</tr>
+ <tr>
+ <td><nobr><a href="get-env.htm">get-env</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get the value of an environment variable</nobr></td>
+ </tr>
+<tr>
+ <td colspan="4" width="100%">
+ <table cellpadding="0" cellspacing="0"><tbody>
+ <tr>
+ <td><nobr><a href="get-lambda-keyword-key.htm">get-key</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get a single key stroke from the keyboard</nobr></td>
+ </tr>
+ <tr>
+ <td><nobr><a href="get-lambda-expression.htm">get-lambda-expression</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get the Lisp code of a lambda or macro expression as a list</nobr></td>
+ </tr>
+ <tr>
+ <td><nobr><a href="get-output-stream-list.htm">get-output-stream-list</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - empty a stream and return it's data as a list</nobr></td>
+ </tr>
+ <tr>
+ <td><nobr><a href="get-output-stream-string.htm">get-output-stream-string</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - empty a stream and return it's data as a single string</nobr></td>
+ </tr>
+ <tr>
+ <td><nobr><a href="get-temp-path.htm">get-temp-path</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get a path where a temporary file can be created</nobr></td>
+ </tr>
+ </tbody></table>
+ </td>
+</tr>
+<tr>
+ <td><nobr><a href="get-user.htm">get-user</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get the current user name</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="go.htm">go</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - go to a tag within a 'tagbody' or 'prog'</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="h"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="hash.htm">hash</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the hash index for a symbol</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="i"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="if.htm">&nbsp;if&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - evaluate expressions conditionally</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="incf.htm">incf</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">macro</font>
+ - increment a variable</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="info.htm">info</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - show information about memory usage</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="int-char.htm">int-char</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - convert an integer to a character</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-integer-format.htm">*integer-format*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - format for printing integer numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="integerp.htm">integerp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this number an integer?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="intern.htm">intern</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - create a new interned symbol</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="interpolate.htm">interpolate</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the 'y' coordinate value corresponding to 'x'</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="intersection.htm">intersection</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the intersection of two lists</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-isa.htm">:isa</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">message selector</font>
+ - test if object inherits from class</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-isnew.htm">:isnew</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">message selector</font>
+ - cause an instance to run its initialization method</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="k"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="keywordp.htm">keywordp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - is this a keyword?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="lambda-keyword-key.htm">&amp;key</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">lambda list keyword</font>
+ - define keyword arguments</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="l"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="labels.htm">labels</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - define local Lisp functions in a mutually recursive manner</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="lambda.htm">lambda</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - define a unnamed function</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="last.htm">last</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for the last element of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="length.htm">length</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - returns the length of a list, vector or string</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="let.htm">let</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - define local bindings, evaluated in no specific order</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="let-star.htm">let*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - define local bindings, evaluated in sequencial order</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="list.htm">list</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - create a list of values</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="listdir.htm">listdir</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get a list of all filenames in a directory</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="listp.htm">listp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this a list?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="load.htm">load</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - load a source file</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="log.htm">log</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - the natural logarithm of a floating-point number</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="logand.htm">logand</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - the bitwise 'and' of one or several numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="logior.htm">logior</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - the bitwise 'inclusive or' of one or several numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="lognot.htm">lognot</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - the bitwise 'exclusive or' of one or several numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="logxor.htm">logxor</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - the bitwise 'not' of a number</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="loop.htm">loop</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - basic looping form</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="lower-case-p.htm">lower-case-p</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this a lowercase character?</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="m"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="macroexpand.htm">macroexpand</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - expand macro definitions recursively</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="macroexpand-1.htm">macroexpand-1</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - expand the first level of a macro definition</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="macrolet.htm">macrolet</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - define a local macro</nobr></td>
+</tr>
+<tr>
+ <td colspan="4" width="100%">
+ <table cellpadding="0" cellspacing="0"><tbody>
+ <tr>
+ <td><nobr><a href="make-array.htm">make-array</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - create an array of specified size</nobr></td>
+ </tr>
+ <tr>
+ <td><nobr><a href="make-string-input-stream.htm">make-string-input-stream</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - create an unnamed stream from a string expression</nobr></td>
+ </tr>
+ <tr>
+ <td><nobr><a href="make-string-output-stream.htm">make-string-output-stream</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - create and return an unnamed output stream</nobr></td>
+ </tr>
+ <tr>
+ <td><nobr><a href="make-symbol.htm">make-symbol</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - create a temporary, uninterned symbol</nobr></td>
+ </tr>
+ </tbody></table>
+ </td>
+</tr>
+<tr>
+ <td><nobr><a href="mapc.htm">mapc</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - apply a function to successive 'car's, return the first list of arguments</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="mapcar.htm">mapcar</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - apply a function to successive 'car's, return a list of the values</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="mapl.htm">mapl</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - apply a function to successive 'cdr's, return the first list of arguments</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="maplist.htm">maplist</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - apply a function to successive 'cdr's, return a list of the values</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="max.htm">max</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - return the largest of one or several numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="member.htm">member</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if an expression is contained in a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-mescape.htm">:mescape</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">keyword</font>
+ - readtable entry specifying a character to be used as a multiple escape character</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="min.htm">min</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - return the smallest of one or several numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="minusp.htm">minusp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this number negative?</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="n"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="nconc.htm">nconc</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - destructively concatenate lists</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-new.htm">:new</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">message selector</font>
+ - create a new instance of a class</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="nil.htm">nil</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system constant</font>
+ - representing the empty list as well as the false value</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-nmacro.htm">:nmacro</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">keyword</font>
+ - readtable entry to specify a character to be used as the start of a non-terminating read macro</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="not.htm">not</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this expression false?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="nstring-downcase.htm">nstring-downcase</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - destructively convert a string or a part of it to lower case</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="nstring-upcase.htm">nstring-upcase</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - destructively convert a string or a part of it to upper case</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="nth.htm">nth</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for the nth element of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="nthcdr.htm">nthcdr</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for the nth tail of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="null.htm">null</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this an empty list?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="numberp.htm">numberp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this a number?</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="o"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-obarray.htm">*obarray*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - the system symbol table</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="object.htm">object</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">object</font>
+ - the build-in object class</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="objectp.htm">objectp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this an object?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="oddp.htm">oddp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this integer number odd?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="open.htm">open</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - open a file for character or byte i/o</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="open-binary.htm">open-binary</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - open a file for multi-byte i/o</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="lambda-keyword-optional.htm">&amp;optional</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">lambda list keyword</font>
+ - define optional arguments</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="or.htm">or</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - the logical 'or' of an arbitrary number of expressions</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="p"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="peek.htm">peek</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - accessor for an internal computer memory value</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="peek-char.htm">peek-char</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - look at a single character from a specified source</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="pi.htm">pi</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">variable</font>
+ - floating point approximation of the number 'pi'</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="plusp.htm">plusp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this number positive?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="poke.htm">poke</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - write a value to the internal computer memory</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="pop.htm">pop</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">macro</font>
+ - pop a value from a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="power.htm">power</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute 'x' raised to the 'y' power</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="pprint.htm">pprint</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - print a pretty looking version of an expression</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="prin1.htm">prin1</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - print an expression without a newline</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="princ.htm">princ</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - print an expression without quoting and without a newline</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="print.htm">print</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - print an expression on a new line</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-print-case.htm">*print-case*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - specifies how symbols are printed</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="profile.htm">profile</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - turn profiling on or off</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="prog.htm">prog</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - a 'block' with local 'let' bindings</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="prog-star.htm">prog*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - a 'block' with local 'let*' bindings</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="prog1.htm">prog1</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - a 'block' returning the value of the first expression</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="prog2.htm">prog2</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - a 'block' returning the value of the second expression</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="progn.htm">progn</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - a 'block' returning the value of the last expression</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="progv.htm">progv</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - a 'block' with local bindings, created out of two lists</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="psetq.htm">psetq</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - perform 'setq' assignments in parallel</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="push.htm">push</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">macro</font>
+ - push a value to the front of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="putprop.htm">putprop</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - put a property onto a symbol's property list</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="q"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="quit.htm">quit</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - quit XLISP</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="quote.htm">quote</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - return an expression unevaluated</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="r"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="random.htm">random</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute an integer random number between 0 and n-1 inclusive</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="read.htm">read</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - read a Lisp expression</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="read-byte.htm">read-byte</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - read a byte from a stream</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="read-char.htm">read-char</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - read a character from a stream</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="read-float.htm">read-float</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - read a binary floating point number from a stream</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="read-int.htm">read-int</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - read a binary integer number from a stream</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="read-line.htm">read-line</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - read a line from a stream, returned as a string</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-readtable.htm">*readtable*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - contains data structures relating to the processing of characters</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="real-random.htm">real-random</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute a floating point random number in an arbitrary range</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="rem.htm">rem</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the remainder of one or several numbers</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="remove.htm">remove</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - remove elements from a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="remove-if.htm">remove-if</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - remove elements from a list that pass a test</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="remove-if-not.htm">remove-if-not</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - remove elements from a list that fail a test</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="remprop.htm">remprop</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - remove a property from a symbol's property list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="rest.htm">rest</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for the tail of a list, identical to 'cdr'</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="lambda-keyword-rest.htm">&amp;rest</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">lambda list keyword</font>
+ - define 'rest' arguments, to be collected in a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="restore.htm">restore</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - restore a XLISP workspace from a file</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="return.htm">return</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - return from a 'block' construct</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="return-from.htm">return-from</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - return from a named block</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="reverse.htm">reverse</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - reverse a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="room.htm">room</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - show memory allocation statistics</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="round.htm">round</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - round a number to the next integer value</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="rplaca.htm">rplaca</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - replace the first element of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="rplacd.htm">rplacd</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - replace the tail of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="rrandom.htm">rrandom</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute a random floating point number between 0 and 1 inclusive</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-rslt.htm">*rslt*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - used to store multiple return values</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="s"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="save.htm">save</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - save a XLISP workspace to a file</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="second.htm">second</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for the second element of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="self.htm">self</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">symbol</font>
+ - evaluates to the current object when used within a message context</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="send.htm">send</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - send a message to an object</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="send-super.htm">send-super</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - send a message to the superclass of an object</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-sescape.htm">:sescape</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">keyword</font>
+ - readtable entry specifying a character to be used as a single escape character</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="set.htm">set</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - set the value of a symbol</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="set-difference.htm">set-difference</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the set-difference of two lists</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="setdir.htm">setdir</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - set a new working directory</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="setf.htm">setf</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - set the value of a place</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="setq.htm">setq</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - set the value of a quoted symbol</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="setup-console.htm">setup-console</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - set default console attributes</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-show.htm">:show</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">message selector</font>
+ - show an object's instance variables</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="sin.htm">sin</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the sine of a floating point number</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="sort.htm">sort</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - destructively sort a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="soundp.htm">soundp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - is this a sound?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="sqrt.htm">sqrt</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the square root of a floating point number</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-standard-input.htm">*standard-input*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - file pointer for standard input</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-standard-output.htm">*standard-output*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - file pointer for standard output</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="strcat.htm">strcat</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - concatenate strings</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="streamp.htm">streamp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this a stream?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string.htm">string</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - make a string from a symbol, character or string</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-not-equal-s.htm">string/=</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if string1 is not equal to string2, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-lessp-s.htm">string&lt;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if string1 is less than string2, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-not-greaterp-s.htm">string&lt;=</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if string1 is less than or equal to string2, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-equal-s.htm">string=</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if the string arguments have the same values, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-greaterp-s.htm">string&gt;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if string1 is greater than string2, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-not-lessp-s.htm">string&gt;=</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if string1 is greater than or equal to string2, case is significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="stringp.htm">stringp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this a string?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-downcase.htm">string-downcase</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - convert a string to lower case</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-equal-i.htm">string-equal</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if string1 equal to string2, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-greaterp-i.htm">string-greaterp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - test if string1 is greater than string2, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-left-trim.htm">string-left-trim</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - trim the left end of a string</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-lessp-i.htm">string-lessp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - test if string1 is less than string2, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-not-equal-i.htm">string-not-equal</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if string1 is not equal to string2, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-not-greaterp-i.htm">string-not-greaterp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - test if string1 is less than or equal to string2, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-not-lessp-i.htm">string-not-lessp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - test if string1 is greater than or equal to string2, case is not significant</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-right-trim.htm">string-right-trim</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - trim the right end of a string</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-search.htm">string-search</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - search for a pattern in a string</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-trim.htm">string-trim</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - trim both ends of a string</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="string-upcase.htm">string-upcase</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - convert a string to upper case</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="sublis.htm">sublis</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - substitute expressions by using an association list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="subseq.htm">subseq</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - extract a substring</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="subsetp.htm">subsetp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - test if a list is a subset of another list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="subst.htm">subst</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - substitute expressions</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="symbol-function.htm">symbol-function</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get the functional value of a symbol</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="symbol-name.htm">symbol-name</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get the print name of a symbol</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="symbol-plist.htm">symbol-plist</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get the property list of a symbol</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="symbol-value.htm">symbol-value</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - get the value of a symbol</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="symbolp.htm">symbolp</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this a symbol?</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="system.htm">system</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - execute a command of the operating system</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="t"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="t.htm">&nbsp;t&nbsp;</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system constant</font>
+ - represents 'true'</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="tagbody.htm">tagbody</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - a 'block' form with labels</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="tan.htm">tan</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the tangent of a floating point number</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="terpri.htm">terpri</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - terminate printing, prints a newline character</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="third.htm">third</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - list accessor for the third element of a list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="throw.htm">throw</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - throw to a 'catch', allows non-local exits and traps</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-tmacro.htm">:tmacro</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">keyword</font>
+ - readtable entry to specify a character to be used as the start of a terminating read macro</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="top-level.htm">top-level</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - clean-up after an error and return to the top level</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="trace.htm">trace</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - add a function to the trace list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-tracelimit.htm">*tracelimit*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - the number of forms printed on entry to the <a href="../manual/xlisp.htm#break-loop">Break Loop</a></nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-tracelist.htm">*tracelist*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - a list of the current functions being traced</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-tracenable.htm">*tracenable*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - controls whether or not the <a href="../manual/xlisp.htm#break-loop">Break Loop</a> prints any back trace information on entry</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-trace-output.htm">*trace-output*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system variable</font>
+ - file pointer for trace output</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="truncate.htm">truncate</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - truncates a number to an integer</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="type-of.htm">type-of</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the type of a Lisp expression</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="u"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="global-unbound.htm">*unbound*</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">system constant</font>
+ - used to indicate when a symbol has no value</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="union.htm">union</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - compute the union of two lists</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="unless.htm">unless</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - evaluate only when a condition is false</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="untrace.htm">untrace</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - remove a function from the trace list</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="unwind-protect.htm">unwind-protect</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - allows the trapping of all forms of exit from a protected form</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="upper-case-p.htm">upper-case-p</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this an uppercase character?</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="v"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="vector.htm">vector</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - create an initialized vector [one-dimensional array]</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+</tbody></table>
+
+<table cellpadding="0" cellspacing="0" style="margin-left:5px"><tbody>
+<tr>
+ <td style="height:10px"><a name="w"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="when.htm">when</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">special form</font>
+ - evaluate only when a condition is true</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="while.htm">while</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">macro</font>
+ - loop while a condition is met</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="keyword-white-space.htm">:white-space</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">keyword</font>
+ - readtable entry to specifying a character that may be skipped over</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="write-byte.htm">write-byte</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - write a byte to a stream</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="write-char.htm">write-char</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - write a character to a stream</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="write-float.htm">write-float</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - write a binary floating point number to a stream</nobr></td>
+</tr>
+<tr>
+ <td><nobr><a href="write-int.htm">write-int</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">function</font>
+ - write a binary integer number to a stream</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td><nobr>&nbsp;[
+ <a href="#top"><font color="#444444">Back to Top</font></a> ]
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"><a name="z"></a></td>
+</tr>
+<tr>
+ <td><nobr><a href="zerop.htm">zerop</a></nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%"><nobr><font color="#444444">predicate function</font>
+ - is this number zero?</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+</tbody></table>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+Reference
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/reference.css b/docsrc/xlisp/xlisp-doc/reference/reference.css
new file mode 100644
index 0000000..964dca2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/reference.css
@@ -0,0 +1,34 @@
+.example {
+ color: #000000;
+ background-color: #F5F5F5;
+ padding: 8px;
+ border: #808080;
+ border-style: solid;
+ border-width: 1px;
+ width:auto;
+}
+
+.button {
+ color: #000000;
+ background-color: #F5F5F5;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ padding-left: 4px;
+ padding-right: 8px;
+ border: #808080;
+ border-style: solid;
+ border-width: 1px;
+ white-space: pre;
+}
+
+.box {
+ color: #000000;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-left: 16px;
+ padding-right: 16px;
+ border: #808080;
+ border-style: solid;
+ border-width: 1px;
+}
+
diff --git a/docsrc/xlisp/xlisp-doc/reference/rem.htm b/docsrc/xlisp/xlisp-doc/reference/rem.htm
new file mode 100644
index 0000000..e17717c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/rem.htm
@@ -0,0 +1,88 @@
+<html><head><title>XLISP rem</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>rem</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(rem <i>expr1</i> ... )</dt>
+<dd><i>exprN</i> - integer number or expression<br>
+returns - the result of the remainder operation</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'rem' function takes the first pair of expressions and determines
+what is the remainder from dividing the first by the second expression. If
+there are no other arguments, this value is returned. If there are
+additional arguments, the remainder of the first pair is applied to the next
+and then the next and so on. In other words:</p>
+
+<pre class="example">
+(REM A B C D)
+</pre>
+
+<p>is equivalent to:</p>
+
+<pre class="example">
+(REM (REM (REM A B) C) D)
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(rem 1) <font color="#008844">; returns 1</font>
+(rem 1 2) <font color="#008844">; returns 1</font>
+(rem 13 8) <font color="#008844">; returns 5</font>
+(rem 13 8 3) <font color="#008844">; returns 2</font>
+(rem 13.5 8) <font color="#008844">; error: bad floating point operation</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp only allows two arguments. XLISP supports
+an arbitrary number of arguments. Also, Common Lisp allows for floating
+point expressions where XLISP does not support this.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#rem">rem</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/remove-if-not.htm b/docsrc/xlisp/xlisp-doc/reference/remove-if-not.htm
new file mode 100644
index 0000000..cffc53e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/remove-if-not.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP remove-if-not</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>remove-if-not</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(remove-if-not test list-expr)</dt>
+<dd><i>test</i> - the test function to be performed<br>
+<i>list-expr</i> - the list to remove from<br>
+returns - a copy of <i>list-expr</i> with non-matching elements removed</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'remove-if-not' function searches through 'list-expr' and removes any
+elements that fail the 'test'. Note that this operation is non-destructive,
+it does not modify or affect 'list-expr' directly, it creates a modified
+copy.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '(1 2 3 4 5 6 7 8)) <font color="#008844">; set up a list</font>
+(remove-if-not 'oddp mylist) <font color="#008844">; returns (1 3 5 7)</font>
+(remove-if-not 'evenp mylist) <font color="#008844">; returns (2 4 6 8)</font>
+(print mylist) <font color="#008844">; prints (1 2 3 4 5 6 7 8)</font>
+ <font color="#008844">; note that MYLIST is not affected</font>
+
+(setq mylist '(a nil b nil c)) <font color="#008844">; set up a list</font>
+(remove-if-not 'null mylist) <font color="#008844">; returns (NIL NIL)</font>
+</pre>
+
+<p><b>Common Lisp:</b> XLISP does not support the ':from-end', ':start',
+':end', ':count' and ':key' keywords which Common Lisp does.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#remove-if-not">remove-if-not</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/remove-if.htm b/docsrc/xlisp/xlisp-doc/reference/remove-if.htm
new file mode 100644
index 0000000..0bcbfdb
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/remove-if.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP remove-if</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>remove-if</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(remove-if <i>test list-expr</i>)</dt>
+<dd><i>test</i> - the test function to be performed<br>
+<i>list-expr</i> - the list to remove from<br>
+returns - copy of list with matching elements removed</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'remove-if' function searches through 'list-expr' and removes any
+elements that pass the 'test'. Note that this operation is non-destructive,
+it does not modify or affect 'list-expr' directly, it creates a modified
+copy.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '(1 2 3 4 5 6 7 8)) <font color="#008844">; set up a list</font>
+(remove-if 'oddp mylist) <font color="#008844">; returns (2 4 6 8)</font>
+(remove-if 'evenp mylist) <font color="#008844">; returns (1 3 5 7)</font>
+(print mylist) <font color="#008844">; prints (1 2 3 4 5 6 7 8)</font>
+ <font color="#008844">; note that MYLIST is not affected</font>
+
+(setq mylist '(a nil b nil c)) <font color="#008844">; set up a list</font>
+(remove-if 'null mylist) <font color="#008844">; returns (A B C)</font>
+</pre>
+
+<p><b>Common Lisp:</b> XLISP does not support the ':from-end', ':start',
+':end', ':count' and ':key' keywords which Common Lisp does.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#remove-if">remove-if</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/remove.htm b/docsrc/xlisp/xlisp-doc/reference/remove.htm
new file mode 100644
index 0000000..e9108e5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/remove.htm
@@ -0,0 +1,100 @@
+<html><head><title>XLISP remove</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>remove</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(remove <i>expr list-expr</i> [{:test | :test-not} <i>test</i>])</dt>
+<dd><i>expr</i> - the expression to remove, an atom or list<br>
+<i>list-expr</i> - the list to remove from<br>
+<i>test</i> - optional test function, default is
+<a href="eql.htm">eql</a><br>
+returns - a copy of <i>list-expr</i> with matching expressions removed</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'remove' function searches through 'list-expr' for 'expr'. If 'expr'
+is found, 'remove' returns the list with the 'expr' deleted. All occurances
+of 'expr' are deleted. If 'expr' is not found, then the 'list-expr' is
+returned unaltered. You may specify your own test with the ':test' and
+':test-not' keywords followed by the test you which to perform. Note that
+this operation is non-destructive, it does not modify or affect 'list-expr'
+directly, it creates a modified copy.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '(a b c d it e f)) <font color="#008844">; set up a list</font>
+(remove 'it mylist) <font color="#008844">; returns (A B C D E F)</font>
+(print mylist) <font color="#008844">; prints (A B C D IT E F)</font>
+ <font color="#008844">; note that MYLIST is not affected</font>
+
+(setq mylist '(a b c b d b)) <font color="#008844">; change list to include duplicates</font>
+(remove 'b mylist) <font color="#008844">; returns (A C D)</font>
+
+(setq alist '( (a) (b) (it) (c))) <font color="#008844">; set up another list</font>
+(remove '(it) alist) <font color="#008844">; returns ((A) (B) (IT) (C))</font>
+ <font color="#008844">; the EQ test doesn't work for lists</font>
+(remove '(it) alist :test 'equal) <font color="#008844">; returns ((A) (B) (C))</font>
+
+(setq slist '( "a" "b" "it" "c")) <font color="#008844">; set up yet another list</font>
+(remove "it" slist) <font color="#008844">; returns ("a" "b" "c")</font>
+(remove "it" slist :test-not 'equal) <font color="#008844">; returns ("it")</font>
+ <font color="#008844">; REMOVE takes away everything but IT</font>
+</pre>
+
+<p><b>Note:</b> The 'remove' function can work with a list or string as the
+'expr'. However, the default <a href="eql.htm">eql</a> test does
+not work with lists or strings, only symbols and numbers. To make this work,
+you need to use the ':test' keyword along with
+<a href="equal.htm">equal</a> for 'test'.</p>
+
+<p><b>Common Lisp:</b> XLISP does not support the ':from-end', ':start',
+':end', ':count' and ':key' keywords which Common Lisp does.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#remove">remove</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/remprop.htm b/docsrc/xlisp/xlisp-doc/reference/remprop.htm
new file mode 100644
index 0000000..8b98b92
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/remprop.htm
@@ -0,0 +1,94 @@
+<html><head><title>XLISP remprop</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>remprop</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(remprop <i>symbol property</i>)</dt>
+<dd><i>symbol</i> - the symbol with a property list<br>
+<i>property</i> - the property name being removed<br>
+returns - the property value</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'remprop' function removes the 'property' from the 'symbol'. The
+function returns a <a href="nil.htm">NIL</a>. If the 'property'
+does not exist, there is no error generated. The 'symbol' must be an
+existing symbol. Property lists are lists attached to any user defined
+variables. The lists are in the form of:</p>
+
+<pre class="example">
+(<font color="#008844"><i>name1 val1 name2 val2</i></font> ... )
+</pre>
+
+<p>Any number of properties may be attached to a single variable.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq person 'bobby) <font color="#008844">; create a var with a value</font>
+(putprop person 'boogie 'last-name) <font color="#008844">; add a LAST-NAME property</font>
+(putprop person 'disc-jockey 'job) <font color="#008844">; add a JOB property</font>
+
+(get person 'last-name) <font color="#008844">; retrieve LAST-NAME - boogie</font>
+(get person 'job) <font color="#008844">; retrieve JOB - disc-jockey</font>
+(get person 'height) <font color="#008844">; non-existant - returns NIL</font>
+
+(remprop person 'job) <font color="#008844">; remove JOB</font>
+(remprop person 'height) <font color="#008844">; remove non-existant</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp does not have a 'remprop' function. It
+uses <a href="setf.htm">setf</a> to achieve this functionality.
+Porting from Common Lisp to XLISP will work fine since XLISP supports the
+<a href="setf.htm">setf</a> modifications of property lists and
+the <a href="get.htm">get</a> function to retrieve property
+values from symbol names. Porting from XLISP to Common LISP will require
+translating 'remprop' into <a href="setf.htm">setf</a> forms.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-014.htm#remprop">remprop</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/rest.htm b/docsrc/xlisp/xlisp-doc/reference/rest.htm
new file mode 100644
index 0000000..1937471
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/rest.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP rest</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>rest</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(rest <i>expr</i>)</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - <i>expr</i> with the first element removed</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'rest' function returns the remainder of a list or list expression
+after first element of the list is removed. If the list is
+<nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(rest '(a b c)) <font color="#008844">; returns (B C)</font>
+(rest '((a b) c d)) <font color="#008844">; returns (C D)</font>
+(rest NIL) <font color="#008844">; returns NIL</font>
+(rest 'a) <font color="#008844">; error: bad argument type</font>
+(rest '(a)) <font color="#008844">; returns NIL</font>
+
+(setq sisters '(virginia vicki cindy)) <font color="#008844">; set up variable SISTERS</font>
+(first sisters) <font color="#008844">; returns VIRGINIA</font>
+(rest sisters) <font color="#008844">; returns (VICKI CINDY)</font>
+</pre>
+
+<p><b>Note:</b> The 'rest' function is set to the same code as the
+<a href="cdr.htm">cdr</a> function.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#rest">rest</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/restore.htm b/docsrc/xlisp/xlisp-doc/reference/restore.htm
new file mode 100644
index 0000000..577cfc1
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/restore.htm
@@ -0,0 +1,112 @@
+<html><head><title>XLISP restore</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>restore</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xldmem.c, xlimage.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(restore <i>file</i>)</dt>
+<dd><i>file</i> - a string or symbol for the name of the file<br>
+returns - <a href="nil.htm">NIL</a> on failure, otherwise never
+returns</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'restore' function restores the previously
+<a href="save.htm">save</a>d XLISP workspace [system state] from
+the specified file. The 'file' may be a string or a symbol. If the 'file'
+does not include a '.wks' suffix, it will be extended to be called
+'file.wks'. If successful, 'restore' will print a message saying:</p>
+
+<pre class="example">
+[ returning to the top level ]
+</pre>
+
+<p>and will not return any value. If 'restore' fails, it will return
+<a href="nil.htm">NIL</a>. There can be several saved workspaces.
+These workspaces can be restored as often as desired.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq myvar 5) <font color="#008844">; set MYVAR to value 5</font>
+myvar <font color="#008844">; returns 5</font>
+
+(save 'farp) <font color="#008844">; save workspace in FARP.wks</font>
+
+(setq myvar "garp") <font color="#008844">; change MYVAR to "garp"</font>
+myvar <font color="#008844">; returns "garp"</font>
+
+(restore 'farp) <font color="#008844">; restore workspace</font>
+myvar <font color="#008844">; returns 5</font>
+</pre>
+
+<p><b>File names:</b> In the PC and DOS world, all file names and extensions
+[&quot;foo.bat&quot;] are automatically made uppercase. In using XLISP, this
+means you don't have to worry about whether the name is &quot;foo.bat&quot;,
+&quot;FOO.BAT&quot; or even &quot;FoO.bAt&quot;, they will all work.
+However, in other file systems [UNIX in particular], uppercase and lowercase
+do make a difference:</p>
+
+<p>This will create a file named FOO-FILE in UNIX, because XLISP uppercases
+its symbols:</p>
+
+<pre class="example">
+(open 'foo-file :direction :output)
+</pre>
+
+<p>This will create a file named 'foo-file' because UNIX doesn't
+uppercase its file names:</p>
+
+<pre class="example">
+(open "foo-file" :direction :output)
+</pre>
+
+<p>So, if you are having trouble with opening and accessing files, check to
+make sure the file name is in the proper case.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-031.htm#restore">restore</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/return-from.htm b/docsrc/xlisp/xlisp-doc/reference/return-from.htm
new file mode 100644
index 0000000..ea00206
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/return-from.htm
@@ -0,0 +1,89 @@
+<html><head><title>XLISP return-from</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>return-from</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(return-from <i>name</i> [<i>expr</i>])</dt>
+<dd><i>name</i> - an unevaluated symbol for the block name<br>
+<i>expr</i> - an expression<br>
+returns - never returns</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'return-from' special form allows the return of an arbitrary value at
+arbitrary times within a 'named-<a href="block.htm">block</a>'
+construct of the specified 'name'. The 'expr' will be returned by the
+<a href="block.htm">block</a> construct. A
+<a href="nil.htm">NIL</a> will be returned by the <a
+href="block.htm">block</a> construct if there is no 'expr'
+specified.</p>
+
+<p>If 'return-from' is used without being within a valid
+<a href="block.htm">block</a> construct, an error is generated:</p>
+
+<pre class="example">
+<font color="#AA0000">error: no target for RETURN</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(block out <font color="#008844">; outer BLOCK</font>
+ (print "outer")
+ (block in <font color="#008844">; inner BLOCK</font>
+ (print "inner")
+ (return-from out "all done")
+ (print "won't get here"))) <font color="#008844">; prints "outer"</font>
+ <font color="#008844">; prints "inner"</font>
+ <font color="#008844">; returns "all done"</font>
+
+(return-from nobody 9) <font color="#008844">; error: no target for RETURN</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-021.htm#return-from">return-from</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/return.htm b/docsrc/xlisp/xlisp-doc/reference/return.htm
new file mode 100644
index 0000000..9e52426
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/return.htm
@@ -0,0 +1,93 @@
+<html><head><title>XLISP return</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>return</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(return [<i>expr</i>])</dt>
+<dd><i>expr</i> - an expression<br>
+returns - never returns</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'return' special form allows the return of an arbitrary value at
+arbitrary times within 'block' constructs like
+<nobr><a href="do.htm">do</a> ,</nobr>
+<nobr><a href="do-star.htm">do*</a> ,</nobr>
+<nobr><a href="dolist.htm">dolist</a> ,</nobr>
+<nobr><a href="dotimes.htm">dotimes</a> ,</nobr>
+<nobr><a href="loop.htm">loop</a> ,</nobr>
+<a href="prog.htm">prog</a> and
+<a href="prog-star.htm">prog*</a>. The 'expr' will be returned by the
+outer 'block' construct. A <a href="nil.htm">NIL</a> will be
+returned by the outer 'block' construct if there is no 'expr' specified.</p>
+
+<p>If 'return' is used without being within a valid 'block' construct, an
+error is generated:</p>
+
+<pre class="example">
+<font color="#AA0000">error: no target for RETURN</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(prog (i) <font color="#008844">; PROG form</font>
+ (print i) (RETURN "foo") (print j)) <font color="#008844">; prints NIL returns "foo"</font>
+
+(dotimes (i 10)
+ (if (eql i 5) (RETURN 20)
+ (princ i))) <font color="#008844">; prints 01234 returns 20</font>
+
+(prog1 (print "hi") (RETURN "foo")) <font color="#008844">; prints "hi"</font>
+ <font color="#008844">; error: no target for RETURN</font>
+
+(return 9) <font color="#008844">; error: no target for RETURN</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-021.htm#return">return</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/reverse.htm b/docsrc/xlisp/xlisp-doc/reference/reverse.htm
new file mode 100644
index 0000000..f7132cc
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/reverse.htm
@@ -0,0 +1,73 @@
+<html><head><title>XLISP reverse</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>reverse</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(reverse list-expr)</dt>
+<dd><i>list-expr</i> - a list or list expression<br>
+returns - a new list in the reverse order</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'reverse' function reverses the 'list-expr'. The reversed list is the
+returned value. The reversal process only occurs on the 'top-level' of the
+'list-expr'. If there are nested sub-lists, these are left intact.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(reverse NIL) <font color="#008844">; returns NIL</font>
+(reverse 'a) <font color="#008844">; error: bad argument type</font>
+(reverse '(a)) <font color="#008844">; returns (A)</font>
+(reverse '(a b c)) <font color="#008844">; returns (C B A)</font>
+(reverse '((a b) (c d) (e f))) <font color="#008844">; returns ((E F) (C D) (A B))</font>
+(reverse (list (+ 1 2) (+ 3 4))) <font color="#008844">; returns (7 3)</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#reverse">reverse</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/room.htm b/docsrc/xlisp/xlisp-doc/reference/room.htm
new file mode 100644
index 0000000..79c5d78
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/room.htm
@@ -0,0 +1,90 @@
+<html><head><title>XLISP room</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>room</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xldmem.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(room [<i>info</i>])</dt>
+<dd><i>info</i> - an optional, unused expression<br>
+returns - <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'room' function prints the current memory statistics to
+<a href="global-standard-output.htm">*standard-output*</a>.
+<a href="nil.htm">NIL</a> is always returned. The message shows
+the statistics for:</p>
+
+<ul>
+<li><nobr>total nodes</nobr></li>
+<li><nobr>current free nodes</nobr></li>
+<li><nobr>current number of allocated memory segments</nobr></li>
+<li><nobr>node size of the allocated memory segments</nobr></li>
+<li><nobr>total memory in bytes</nobr></li>
+<li>total number of garbage collections that have occured
+since this session of XLISP started</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(room) <font color="#008844">; prints Nodes: 4000</font>
+ <font color="#008844">; Free nodes: 1723</font>
+ <font color="#008844">; Segments: 4</font>
+ <font color="#008844">; Allocate: 1000</font>
+ <font color="#008844">; Total: 52566</font>
+ <font color="#008844">; Collections: 8</font>
+ <font color="#008844">; returns NIL</font>
+</pre>
+
+<p><b>Common Lisp:</b> In Common LISP, the 'info' argument controls the
+amount of information that is printed. In Common Lisp, the form of and
+information provided by the 'room' output is implementation dependent. For
+portability, you should not count on this information or form.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-031.htm#room">room</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/round.htm b/docsrc/xlisp/xlisp-doc/reference/round.htm
new file mode 100644
index 0000000..11c84b1
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/round.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP round</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>round</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>fileio.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>round</b> <i>number</i>)</nobr></dt>
+<dd><i>number</i> - an integer or floating point numbers<br>
+returns - the number, rounded to the next integer value</dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, 'round' is implemented as a Lisp function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">round</font> (x)
+ (cond ((> x 0) (truncate (+ x 0.5)))
+ ((= (- x 0.5) (truncate (- x 0.5))) (truncate x))
+ (t (truncate (- x 0.5)))))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'round' function rounds a number to the next integer value. This is
+tricky because <a href="truncate.htm">truncate</a> rounds toward zero as
+<nobr>does C</nobr> in other words, rounding is down for positive numbers
+and up for negative numbers. <nobr>You can</nobr> convert rounding up to
+rounding down by subtracting one, but this fails on the integers, so we need
+a special test if <nobr>(- x 0.5)</nobr> is an integer.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(round .5) =&gt; 1
+(round -.5) =&gt; 0
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/rplaca.htm b/docsrc/xlisp/xlisp-doc/reference/rplaca.htm
new file mode 100644
index 0000000..3b6ca54
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/rplaca.htm
@@ -0,0 +1,99 @@
+<html><head><title>XLISP rplaca</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>rplaca</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(rplaca <i>list expr</i>)</dt>
+<dd><i>list</i> - the list to destructively modify<br>
+<i>expr</i> - the expression to replace <a href="car.htm">car</a>
+of <i>list</i><br>
+returns - the list node after updating the
+<a href="car.htm">car</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'rplaca' function destructively modifies the
+<a href="car.htm">car</a> of 'list' and replaces it with the
+'expr'. The destructive aspect of this operation means that the actual
+symbol value is used in the list-modifying operations, not a copy. 'list'
+must evaluate to a valid list.</p>
+
+<p>An atom or <a href="nil.htm">NIL</a> for 'list' will result in
+an error:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq a '(1 2 3)) <font color="#008844">; make A with value (1 2 3)</font>
+(setq b '(1 2 3)) <font color="#008844">; make B with value (1 2 3)</font>
+(setq c a) <font color="#008844">; make C point to A's value</font>
+(rplaca a 'new) <font color="#008844">; returns (NEW 2 3)</font>
+
+(print a) <font color="#008844">; prints (NEW 2 3)</font>
+ <font color="#008844">; note that A is modified</font>
+
+(print b) <font color="#008844">; prints (1 2 3)</font>
+ <font color="#008844">; note that B is not modified</font>
+
+(print c) <font color="#008844">; prints (NEW 2 3)</font>
+ <font color="#008844">; note that C is modified too</font>
+
+(setq a '(1 2 3)) <font color="#008844">; reset A to value (1 2 3)</font>
+(rplaca a '(the sub list)) <font color="#008844">; returns ((THE SUB LIST) 2 3)</font>
+(rplaca '(1 2 3) 'more) <font color="#008844">; returns (MORE 2 3)</font>
+
+(rplaca 'a 'b) <font color="#008844">; error: bad argument type</font>
+(rplaca NIL 'b) <font color="#008844">; error: bad argument type</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-017.htm#rplaca">rplaca</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/rplacd.htm b/docsrc/xlisp/xlisp-doc/reference/rplacd.htm
new file mode 100644
index 0000000..11b80c5
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/rplacd.htm
@@ -0,0 +1,89 @@
+<html><head><title>XLISP rplacd</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>rplacd</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(rplacd list expr)</dt>
+<dd><i>list</i> - the list to destructively modify<br>
+<i>expr</i> - the expression to replace the
+<a href="cdr.htm">cdr</a> of <i>list</i><br>
+returns - the list node after updating the
+<a href="cdr.htm">cdr</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'rplacd' function destructively modifies the
+<a href="cdr.htm">cdr</a> of 'list' and replaces it with the
+'expr'. The destructive aspect of this operation means that the actual
+symbol value is used in the list-modifying operations, not a copy. 'list'
+must evaluate to a valid list.</p>
+
+<p>An atom or <a href="nil.htm">NIL</a> for 'list' will result in
+an error:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq a '(1 2 3)) <font color="#008844">; set up A with (1 2 3)</font>
+(rplacd a 'new) <font color="#008844">; returns (1 . NEW)</font>
+
+(print a) <font color="#008844">; prints (1 . NEW)</font>
+ <font color="#008844">; note that A is modified</font>
+
+(rplacd a '(a new list)) <font color="#008844">; returns (1 A NEW LIST)</font>
+(rplacd '(1 2 3) '(more)) <font color="#008844">; returns (1 MORE)</font>
+
+(rplacd 'a 'b) <font color="#008844">; error: bad argument type</font>
+(rplacd NIL 'b) <font color="#008844">; error: bad argument type</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-017.htm#rplacd">rplacd</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">XLISP</a> &gt;
+<a href="../manual/xlisp-man-index.htm">XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a>&nbsp; -&nbsp;
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/rrandom.htm b/docsrc/xlisp/xlisp-doc/reference/rrandom.htm
new file mode 100644
index 0000000..5735287
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/rrandom.htm
@@ -0,0 +1,66 @@
+<html><head><title>XLISP rrandom</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>rrandom</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c, xlisp.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>rrandom</b>)</nobr></dt>
+<dd>returns - a random floating point number between 0 and 1 inclusive</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'random' function returns a random floating point number between 0
+and 1 inclusive.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/save.htm b/docsrc/xlisp/xlisp-doc/reference/save.htm
new file mode 100644
index 0000000..8b7aba3
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/save.htm
@@ -0,0 +1,124 @@
+<html><head><title>XLISP save</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>save</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr> xldmem.c, xlimage.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(save <i>file</i>)</dt>
+<dd><i>file</i> - a string or symbol for the name of the file<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if workspace was
+written, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'save' function saves the current XLISP workspace [system state] to
+the specified file. The 'file' may be a string or a symbol. If the 'file'
+does not include a '.wks' suffix, it will be extended to be called
+'file.wks'. The function returns
+<a href="t.htm">&nbsp;T&nbsp;</a> if the workspace was properly
+created and saved, <a href="nil.htm">NIL</a> is returned
+otherwise. There can be several saved workspaces. These workspaces can be
+restored as often as desired.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq myvar 5) <font color="#008844">; set MYVAR to value 5</font>
+myvar <font color="#008844">; returns 5</font>
+
+(save 'farp) <font color="#008844">; save workspace in FARP.wks</font>
+
+(setq myvar "garp") <font color="#008844">; change MYVAR to "garp"</font>
+myvar <font color="#008844">; returns "garp"</font>
+
+(restore 'farp) <font color="#008844">; restore workspace</font>
+myvar <font color="#008844">; returns 5</font>
+</pre>
+
+<p><b>Bug:</b> The 'save' function generates a system error if the 'file'
+being created already exists. This 'file' will be modified and will not be
+restorable after restarting XLISP. [I still haven't tested this with
+Nyquist.]</p>
+
+<p><b>Note:</b> The saved workspace size is implementation dependent, but
+can be fairly large.</p>
+
+<p><b>File names:</b> In the PC and DOS world, all file names and extensions
+[&quot;foo.bat&quot;] are automatically made uppercase. In using XLISP, this
+means you don't have to worry about whether the name is &quot;foo.bat&quot;,
+&quot;FOO.BAT&quot; or even &quot;FoO.bAt&quot;, they will all work.
+However, in other file systems [UNIX in particular], uppercase and lowercase
+do make a difference:</p>
+
+<p>This will create a file named FOO-FILE in UNIX, because XLISP uppercases
+its symbols:</p>
+
+<pre class="example">
+(open 'foo-file :direction :output)
+</pre>
+
+<p>This will create a file named 'foo-file' because UNIX doesn't
+uppercase its file names:</p>
+
+<pre class="example">
+(open "foo-file" :direction :output)
+</pre>
+
+<p>So, if you are having trouble with opening and accessing files, check to
+make sure the file name is in the proper case.</p>
+
+<p><b>Common Lisp:</b> The XLISP 'save' function is similar in use to the
+'save-world' function in Common Lisp. The primarily difference is that
+'save-world' allows you to restart everything since it creates an executable
+file. The 'save' function requires you to start XLISP up first and then do a
+<a href="restore.htm">restore</a>. Depending on the operating system
+that you are using, it is possible to write a 'save-world' equivalent using
+'save', <a href="restore.htm">restore</a> and system.htm
+functions.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-031.htm#save">save</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/second.htm b/docsrc/xlisp/xlisp-doc/reference/second.htm
new file mode 100644
index 0000000..1b1c3e0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/second.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP second</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>second</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(second <i>expr</i>)</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - the second element of <i>expr</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'second' function returns the second element of a list or list
+expression. If the list is
+<nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(second '(1 2 3)) <font color="#008844">; returns 2</font>
+(second NIL) <font color="#008844">; returns NIL</font>
+
+(setq carol '(a b c)) <font color="#008844">; set up variable CAROL</font>
+(first carol) <font color="#008844">; returns A</font>
+(second carol) <font color="#008844">; returns B</font>
+(rest carol) <font color="#008844">; returns (B C)</font>
+
+(setq children '(amanda ben)) <font color="#008844">; set up variable CHILDREN</font>
+(second children) <font color="#008844">; returns BEN</font>
+</pre>
+
+<p><b>Note:</b> This function is set to the same code as the
+<a href="caar.htm">cadr</a> function.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#second">second</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/self.htm b/docsrc/xlisp/xlisp-doc/reference/self.htm
new file mode 100644
index 0000000..83ca806
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/self.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP self</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>self</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>symbol</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;self</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'self' symbol evaluates to the current object when used within a
+message context.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq my-class (send class :new '(state))) <font color="#008844">; create MY-CLASS with STATE</font>
+
+(send my-class :answer :isnew '() <font color="#008844">; set up initialization</font>
+ '((setq state nil) SELF)) <font color="#008844">; returning SELF</font>
+
+(send my-class :answer :set-it '(value) <font color="#008844">; create :SET-IT message</font>
+ '((setq state value)))
+
+(setq my-obj (send my-class :new)) <font color="#008844">; create MY-OBJ of MY-CLASS</font>
+(send my-obj :set-it 5) <font color="#008844">; STATE is set to 5</font>
+</pre>
+
+<p><b>Context:</b> 'self' does not exist except within the context of a
+method and it's execution.</p>
+
+<p><b>Note:</b> In the previous example, there is a 'self' in the line that
+creates the ':set-it' message. What this does is to return the object as the
+last operation when you do an <a href="keyword-isnew.htm">:isnew</a>.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-010.htm#10-3">self</a>
+symbol in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/send-super.htm b/docsrc/xlisp/xlisp-doc/reference/send-super.htm
new file mode 100644
index 0000000..c29d01f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/send-super.htm
@@ -0,0 +1,87 @@
+<html><head><title>XLISP send-super</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>send-super</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(send-super <i>message</i> [<i>args</i>])</dt>
+<dd><i>message</i> - the message selector<br>
+<i>args</i> - the optional message arguments<br>
+returns - the result of sending the message</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'send-super' function sends the specified arguments 'args' to the
+'message' specified method of the superclass. It is necessary for
+'send-super' to be executed from within a method being performed on an
+<a href="object.htm">object</a>. It will return the result of
+sending the message. If 'send-super' is performed outside of a method an
+error will result.</p>
+
+<pre class="example">
+<font color="#AA0000">error: not in a method</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq a-class (send class :new '())) <font color="#008844">; create A-CLASS</font>
+
+(send a-class :answer :show '() <font color="#008844">; set up special SHOW method</font>
+ '((print "nobody here") self))
+
+(setq an-obj (send a-class :new)) <font color="#008844">; create AN-OBJ of A-CLASS</font>
+(send an-obj :show) <font color="#008844">; prints "nobody here"</font>
+
+(send a-class :answer :myshow '() <font color="#008844">; set up MYSHOW method which</font>
+ '((send-super :show ))) <font color="#008844">; calls :SHOW in superclass</font>
+
+(send an-obj :myshow) <font color="#008844">; prints Object is ...</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-010.htm#10-4">send-super</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/send.htm b/docsrc/xlisp/xlisp-doc/reference/send.htm
new file mode 100644
index 0000000..8874399
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/send.htm
@@ -0,0 +1,96 @@
+<html><head><title>XLISP send</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>send</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlobj.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(send object message [args])</dt>
+<dd><i>object</i> - an <a href="object.htm">object</a><br>
+<i>message</i> - message selector for <i>object</i><br>
+<i>arg</i> - parameter sent to <i>object</i> method<br>
+returns - the <i>object</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'send' function is the mechanism used to send a 'message' to an
+<a href="object.htm">object</a>. The 'message' is the message
+selector symbol that is used to select a particular action [method] from
+the <a href="object.htm">object</a>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq myclass (send class :new '(var))) <font color="#008844">; create MYCLASS with VAR</font>
+
+(send myclass :answer :isnew '() <font color="#008844">; set up initialization</font>
+ '((setq var nil) self))
+
+(send myclass :answer :set-it '(value) <font color="#008844">; create :SET-IT message</font>
+ '((setq var value)))
+
+(setq my-obj (send myclass :new)) <font color="#008844">; create MY-OBJ of MYCLASS</font>
+(send my-obj :set-it 5) <font color="#008844">; VAR is set to 5</font>
+</pre>
+
+<p><b>Built-in methods:</b> The built in methods in XLISP include:</p>
+
+<ul>
+<li><nobr><a href="keyword-answer.htm">:answer</a> - add a method to an object</nobr></li>
+<li><nobr><a href="keyword-class.htm">:class</a> - return the object's <a href="class.htm">class</a></nobr></li>
+<li><nobr><a href="keyword-isnew.htm">:isnew</a> - run initialization code on object</nobr></li>
+<li><nobr><a href="keyword-new.htm">:new</a> - create a new object [instance or <a href="class.htm">class</a>]</nobr></li>
+<li><nobr><a href="keyword-show.htm">:show</a> - show the internal state of the object</nobr></li>
+</ul>
+
+<p><b>Message structure:</b> The normal XLISP convention for a 'message' is
+to have a valid symbol preceeded by a colon like
+<a href="keyword-isnew.htm">:isnew</a> or ':my-message'. However, it is
+possible to define a 'message' that is a symbol without a colon, but this
+makes the code less readable.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-010.htm#10-2">send</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/set-difference.htm b/docsrc/xlisp/xlisp-doc/reference/set-difference.htm
new file mode 100644
index 0000000..731ecb7
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/set-difference.htm
@@ -0,0 +1,75 @@
+<html><head><title>XLISP set-difference</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>set-difference</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xm.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>set-difference</b> <i>list1 list2</i>)</nobr></dt>
+<dd><i>listN</i> - a list of symbols or numbers<br>
+returns - the set-difference of <i>list1</i> and <i>list2</i></dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, '<nobr>set-difference</nobr>' is implemented as a Lisp function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">set-difference</font> (a b)
+ (remove-if (lambda (elem) (member elem b)) a))
+</pre>
+
+<h2>Description</h2>
+
+<p>The '<nobr>set-difference</nobr>' function computes the
+<nobr>set-difference</nobr> of two lists. <nobr>The result</nobr> is a list
+containing all elements that appear in only one of both lists.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/set.htm b/docsrc/xlisp/xlisp-doc/reference/set.htm
new file mode 100644
index 0000000..e67abb0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/set.htm
@@ -0,0 +1,83 @@
+<html><head><title>XLISP set</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>set</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(set <i>symbol expr</i>)</dt>
+<dd><i>symbol</i> - expression that evaluates to a symbol name [if the
+expression is quoted, no evaluation occurs]<br>
+<i>expr</i> - an expression, which will be the new value<br>
+returns - the new value</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'set' function evaluates 'symbol' and sets 'expr' as it's value. If
+the 'symbol' value is quoted via the <a href="quote.htm">quote</a>
+special form or read-macro expansion, the 'symbol' is not evaluated. 'set'
+returns the value from 'expr' as it's result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(set 'a 2) <font color="#008844">; sets symbol A to value 2</font>
+(set 'value a) <font color="#008844">; sets symbol VALUE to value 2</font>
+(print value) <font color="#008844">; show the value - prints 2</font>
+
+(set 'name 'myvar) <font color="#008844">; set symbol NAME to value MYVAR</font>
+(set name 12345) <font color="#008844">; set symbol which is the value</font>
+ <font color="#008844">; of NAME (MYVAR) to 12345</font>
+
+(print name) <font color="#008844">; prints MYVAR</font>
+(print myvar) <font color="#008844">; prints 12345</font>
+
+(set notsymbol 1) <font color="#008844">; error: unbound variable</font>
+(set name notvalue) <font color="#008844">; error: unbound variable</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#set">set</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/setdir.htm b/docsrc/xlisp/xlisp-doc/reference/setdir.htm
new file mode 100644
index 0000000..8e820ec
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/setdir.htm
@@ -0,0 +1,65 @@
+<html><head><title>XLISP setdir</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>setdir</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>sys/unix/osstuff.c, sys/win/msvc/winfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(setdir <i>path</i>) - set current directory</dt>
+<dd><i>path</i> - the path of the new directory<br>
+returns - the resulting full path or NIL if an error occurs</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'setdir' function sets current directory, e.g. <nobr>(setdir
+".")</nobr> gets the current working directory.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p>See also <a href="listdir.htm">listdir</a>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/setf.htm b/docsrc/xlisp/xlisp-doc/reference/setf.htm
new file mode 100644
index 0000000..72845bf
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/setf.htm
@@ -0,0 +1,273 @@
+<html><head><title>XLISP setf</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>setf</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(setf [<i>place1 expr1</i> ... ])</dt>
+<dd><i>placeN</i> - a field specifier which may be one of:<br>
+<dl><dd><i>symbol</i> - set value of a symbol<br>
+(<a href="car.htm">car</a> <i>expr</i>) - set <a href="caar.html">car</a> of a cons node<br>
+(<a href="cdr.htm">cdr</a> <i>expr</i>) - set <a href="cddr.html">cdr</a> of a cons node<br>
+(<a href="nth.htm">nth</a> <i>n expr</i>) - set <a href="or.html">nth</a> car of a list<br>
+(<a href="aref.htm">aref</a> <i>expr n</i>) - set nth element of an array<br>
+(<a href="get.htm">get</a> <i>symbol property</i>) - set value of a property<br>
+(<a href="symbol-value.htm">symbol-value</a> <i>symbol</i>) - set value of a symbol<br>
+(symbol-function <i>symbol</i>) - set functional value of a symbol<br>
+(<a href="symbol-plist.htm">symbol-plist</a> <i>symbol</i>) - set property list of a symbol</dd></dl>
+<i>exprN</i> - an expression, which will be the new value<br>
+returns - the new value</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'setf' special form evaluates the field 'placeN' and sets 'exprN' as
+it's value. This is a generalized tool that allows you to set the value of
+the various data types of the system. 'setf' returns the value from 'exprN'
+as it's result. The specific action of 'setf' depends on the 'placeN' field.
+A more detailed explanation follows below the examples.</p>
+
+<h2>Examples</h2>
+
+
+<pre class="example">
+<font color="#008844">:; setf symbols</font>
+
+(setf a 123) <font color="#008844">; set a symbol A to value 123</font>
+</pre>
+
+<pre class="example">
+<font color="#008844">;; setf symbol-values</font>
+
+(setq x 'y) <font color="#008844">; make symbol X with value Y</font>
+(setf (symbol-value x) 'z) <font color="#008844">; set symbol that X contains (Y) to value Z</font>
+</pre>
+
+<pre class="example">
+<font color="#008844">;; setf list elements</font>
+
+(setq mylist '(a b c d)) <font color="#008844">; MYLIST with value (A B C D)</font>
+
+(setf (car mylist) 'x) <font color="#008844">; change CAR of MYLIST to X</font>
+ <font color="#008844">; MYLIST now is (X B C D)</font>
+
+(setf (cdr mylist) '(y z da-end)) <font color="#008844">; change CDR of MYLIST to (Y Z DA-END)</font>
+ <font color="#008844">; MYLIST now is (X Y Z DA-END)</font>
+
+(setf (nth 3 mylist) 'here-i-am) <font color="#008844">; change 3rd of MYLIST to HERE-I-AM</font>
+ <font color="#008844">; MYLIST now is (X Y Z HERE-I-AM)</font>
+</pre>
+
+<pre class="example">
+<font color="#008844">;; setf arrays</font>
+
+(setq myarray (make-array 5)) <font color="#008844">; make MYARRAY</font>
+(aref myarray 2) <font color="#008844">; get value of element 2 = NIL</font>
+(setf (aref myarray 2) 'new-value) <font color="#008844">; set value of element 2 to value NEW-VALUE</font>
+(print myarray) <font color="#008844">; prints #(NIL NIL NEW-VALUE NIL NIL)</font>
+</pre>
+
+<pre class="example">
+<font color="#008844">;; setf properties</font>
+
+(setq person 'joe-bob) <font color="#008844">; make PERSON with value JOE-BOB</font>
+(putprop person 'critic 'profession) <font color="#008844">; set PROFESSION property to value CRITIC</font>
+(setf (get person 'profession) <font color="#008844">; change PROFESSION to value TEXAS-CRITIC</font>
+(setf (get person 'home) 'texas) <font color="#008844">; add property HOME with value TEXAS</font>
+
+(symbol-plist person) <font color="#008844">; returns property list:</font>
+ <font color="#008844">; (HOME TEXAS</font>
+ <font color="#008844">; PROFESSION TEXAS-CRITIC)</font>
+
+(setf (symbol-plist person) <font color="#008844">; change the property list</font>
+ '(home on-the-range
+ profession movie-critic))
+
+(get person 'profession) <font color="#008844">; now returns MOVIE-CRITIC</font>
+(get person 'home) <font color="#008844">; now returns ON-THE-RANGE</font>
+</pre>
+
+<h2>Operations</h2>
+
+<p><table cellpadding="0" cellspacing="0"><tbody>
+<tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" width="100%"><tbody>
+ <tr valign="top">
+ <td class="button"><nobr><code>(setf <i>sym exprN</i>)</code></nobr></td>
+ </tr>
+ </tbody></table>
+ </td>
+ <td valign="top"><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%">Sets the value of 'symbol' to the value of 'exprN'.
+ This is equivalent to <nobr>(<a href="setq.htm">setq</a>
+ <i>sym exprN</i>)</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" width="100%"><tbody>
+ <tr valign="top">
+ <td class="button"><nobr><code>(setf (<a href="car.htm">car</a> <i>expr</i>) <i>exprN</i>)</code></nobr></td>
+ </tr>
+ </tbody></table>
+ </td>
+ <td valign="top"><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%">Sets the first element of the 'expr' list to 'exprN'.
+ 'expr' must be a list. This is equivalent to
+ <nobr>(<a href="rplaca.htm">rplaca</a> <i>expr exprN</i>)</nobr>
+ except that 'setf' will return 'exprN' as the value.</td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" width="100%"><tbody>
+ <tr valign="top">
+ <td class="button"><nobr><code>(setf (<a href="cdr.htm">cdr</a> <i>expr</i>) <i>exprN</i>)</code></nobr></td>
+ </tr>
+ </tbody></table>
+ </td>
+ <td valign="top"><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%">Sets the tail of the 'expr' list to 'exprN'. 'expr' must
+ be a list. This is equivalent to
+ <nobr>(<a href="rplacd.htm">rplacd</a> <i>expr exprN</i>)</nobr>
+ except that 'setf' will return 'exprN' as the value.</td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" width="100%"><tbody>
+ <tr valign="top">
+ <td class="button"><nobr><code>(setf (<a href="nth.htm">nth</a> <i>n expr</i>) <i>exprN</i>)</code></nobr></td>
+ </tr>
+ </tbody></table>
+ </td>
+ <td valign="top"><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%">Sets the <a href="nth.htm">nth</a> element of
+ the 'expr' list to 'exprN'. 'expr' must be a list. This allows you to
+ set an arbitrary element of a list to an arbitrary value. Note that the
+ list is numbered from the 0th element <nobr>(0, 1, 2, 3,
+ ...).</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" width="100%"><tbody>
+ <tr valign="top">
+ <td class="button"><nobr><code>(setf (<a href="aref.htm">aref</a> <i>expr n</i>) <i>exprN</i>)</code></nobr></td>
+ </tr>
+ </tbody></table>
+ </td>
+ <td valign="top"><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%">Sets the nth element of the 'expr' array to 'exprN'.
+ 'expr' must be an array. This allows you to set an arbitrary element of
+ an array to an arbitrary value. Note that the list is numbered from the
+ 0th element <nobr>(0, 1, 2, 3, ...).</nobr> Note also that this is the
+ intended way to set the value of an array element.</td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" width="100%"><tbody>
+ <tr valign="top">
+ <td class="button"><nobr><code>(setf (<a href="get.htm">get</a> <i>sym prop</i>) <i>exprN</i>)</code></nobr></td>
+ </tr>
+ </tbody></table>
+ </td>
+ <td valign="top"><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%">Sets the 'property' of 'symbol' to the value 'exprN'.
+ If 'symbol' does not have the 'property', one will be created. This is
+ equivalent to <nobr>(<a href="putprop.htm">putprop</a> <i>sym
+ exprN prop</i>)</nobr>.</td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" width="100%"><tbody>
+ <tr valign="top">
+ <td class="button"><nobr><code>(setf (<a href="symbol-value.htm">symbol-value</a> <i>sym</i>) <i>exprN</i>)</code></nobr></td>
+ </tr>
+ </tbody></table>
+ </td>
+ <td valign="top"><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%">Sets the symbol's value to contain 'exprN'. 'symbol' is
+ an expression that must evaluate to a valid symbol, it doesn't have to
+ exist before the 'setf' function is applied, it just has to be a valid
+ symbol. This is equivalent to <nobr>(<a
+ href="set.htm">set</a> <i>symbol exprN</i>).</nobr></td>
+</tr>
+<tr>
+ <td style="height:10px"></td>
+</tr>
+<tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" width="100%"><tbody>
+ <tr valign="top">
+ <td class="button"><nobr><code>(setf (<a href="symbol-plist.htm">symbol-plist</a> <i>sym</i>) <i>exprN</i>)</code></nobr></td>
+ </tr>
+ </tbody></table>
+ </td>
+ <td valign="top"><nobr>&nbsp;&nbsp;-&nbsp;</nobr></td>
+ <td width="100%">Sets the property list of 'symbol' to 'exprN'. This
+ allows you to change or destroy the entire property list of a 'symbol'
+ at one time.</td>
+</tr>
+</tbody></table></p>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#setf">setf</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/setq.htm b/docsrc/xlisp/xlisp-doc/reference/setq.htm
new file mode 100644
index 0000000..83fee7a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/setq.htm
@@ -0,0 +1,70 @@
+<html><head><title>XLISP setq</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>setq</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(setq [<i>symbol1 expr1</i>] ... )</dt>
+<dd><i>symbolN</i> - un-evaluated symbol<br>
+<i>exprN</i> - value for <i>symbolN</i><br>
+returns - the new value</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'setq' special form sets 'expr' as the value of 'symbol'. 'setq'
+returns the value from 'expr' as it's result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq a 1) <font color="#008844">; symbol A gets value 1</font>
+(setq b '(a b c)) <font color="#008844">; symbol B gets value (A B C)</font>
+(setq mynum (+ 3 4)) <font color="#008844">; symbol MYNUM gets value 7</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#setq">setq</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/setup-console.htm b/docsrc/xlisp/xlisp-doc/reference/setup-console.htm
new file mode 100644
index 0000000..ff21c53
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/setup-console.htm
@@ -0,0 +1,72 @@
+<html><head><title>XLISP setup-console</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>setup-console</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>sys/unix/osstuff.c, sys/mac/macstuff.c, sys/win/msvc/winfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(setup-console)</dt>
+<dd>returns - <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>setup-console</nobr>' function sets the default console
+attributes.</p>
+
+<p><b>Note:</b> Under Windows, Nyquist normally starts up in a
+<nobr>medium-sized</nobr> console window with black text and a white
+background, with a window title of 'Nyquist'. This is normally accomplished
+by calling '<nobr>setup-console</nobr>' <nobr>in 'system.lsp'</nobr>.
+<nobr>In Nyquist</nobr>, you can avoid this behavior by setting
+<nobr>*setup-console*</nobr> to <a href="nil.htm">NIL</a> in your
+'<nobr>init.lsp</nobr>' file. <nobr>If 'setup-console'</nobr> is not called,
+Nyquist uses standard input and output <nobr>as is</nobr>. This is what you
+want if you are running Nyquist inside of emacs, for example.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/sin.htm b/docsrc/xlisp/xlisp-doc/reference/sin.htm
new file mode 100644
index 0000000..6ca07b6
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/sin.htm
@@ -0,0 +1,76 @@
+<html><head><title>XLISP sin</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>sin</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(sin <i>expr</i>)</dt>
+<dd><i>expr</i> - floating point number or expression<br>
+returns - the sine of the number</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'sin' function returns the sine of the 'expr'. The 'expr' is in
+radians.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(sin 0.0) <font color="#008844">; returns 0</font>
+(sin .5) <font color="#008844">; returns 0.479426</font>
+(sin 1.0) <font color="#008844">; returns 0.841471</font>
+(sin (/ 3.14159 2)) <font color="#008844">; returns 1</font>
+(sin 3.14159) <font color="#008844">; returns 2.65359e-06</font>
+(sin 0) <font color="#008844">; error: bad integer operation</font>
+(sin 1.) <font color="#008844">; error: bad integer operation</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common LISP allows for integer numbers, which
+XLISP does not support for 'sin'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#sin">sin</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/sort.htm b/docsrc/xlisp/xlisp-doc/reference/sort.htm
new file mode 100644
index 0000000..ac874e1
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/sort.htm
@@ -0,0 +1,104 @@
+<html><head><title>XLISP sort</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>sort</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(sort <i>list test</i>)</dt>
+<dd><i>list</i> - a list containing elements to be sorted<br>
+<i>test</i> - the test to use for the sort<br>
+returns - the sorted list</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'sort' function sorts the 'list' using the 'test' to order the
+list. The 'sort' function is destructive and modifies the 'list'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq a '(3 1 4 1 5 9 6 7)) <font color="#008844">; returns (3 1 4 1 5 9 6 7)</font>
+
+(sort a '&lt;) <font color="#008844">; returns (1 1 3 4 5 6 7 9)</font>
+
+(print a) <font color="#008844">; returns (1 1 3 4 5 6 7 9)</font>
+ <font color="#008844">; notice that A is modified</font>
+
+(sort a '&gt;) <font color="#008844">; returns (9 7 6 5 4 3 1 1)</font>
+
+(sort '("a" "bar" "foo") 'string&gt;) <font color="#008844">; returns ("foo" "bar" "a")</font>
+</pre>
+
+<p><div class="box">
+
+<p><b>XLISP Bug</b></p>
+
+<p>Nyquist 'sort' returns the proper value, but improperly modifies the
+symbol or the actual 'list', for example:</p>
+
+<pre class="example">
+(setq a '(3 1 4 1 5 9 6 7)) =&gt; (3 1 4 1 5 9 6 7)
+(sort a '&lt;) =&gt; (1 1 3 4 5 6 7 9) <font color="#008844">; OK</font>
+a =&gt; (3 4 5 6 7 9) <font color="#AA0000">; BUG</font>
+</pre>
+
+<p>But this way it works:</p>
+
+<pre class="example">
+(setq a '(3 1 4 1 5 9 6 7)) =&gt; (3 1 4 1 5 9 6 7)
+(setq a (sort a '&lt;)) =&gt; (1 1 3 4 5 6 7 9)
+a =&gt; (1 1 3 4 5 6 7 9)
+</pre>
+
+</div></p>
+
+<p><b>Common Lisp:</b> Common Lisp allows for a ':key' keyword, which
+allows a specified function to be run before the ordering takes place, which
+XLISP does not support.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-017.htm#sort">sort</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/soundp.htm b/docsrc/xlisp/xlisp-doc/reference/soundp.htm
new file mode 100644
index 0000000..3e72247
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/soundp.htm
@@ -0,0 +1,70 @@
+<html><head><title>XLISP soundp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>soundp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>sndfnint.c, sound.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>soundp</b> <i>expr</i>)</nobr></dt>
+<dd><i>expr</i> - an arbitrary Lisp expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if <i>expr</i> is a sound,
+<a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'soundp' function returns <a href="t.htm">&nbsp;T&nbsp;</a> if
+'expr' is a Nyquist sound, <a href="nil.htm">NIL</a> otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p>Please see the Nyquist manual for Nyquist/XLISP audio functions.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/sqrt.htm b/docsrc/xlisp/xlisp-doc/reference/sqrt.htm
new file mode 100644
index 0000000..c563933
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/sqrt.htm
@@ -0,0 +1,76 @@
+<html><head><title>XLISP sqrt</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>sqrt</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(sqrt <i>expr</i>)</dt>
+<dd><i>expr</i> - floating point number or expression<br>
+returns - the square root of the number</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'sqrt' function calculates the square root of 'expr' and returns
+this result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(sqrt 1.0) <font color="#008844">; returns 1</font>
+(sqrt 2.0) <font color="#008844">; returns 1.41421</font>
+(sqrt 3.0) <font color="#008844">; returns 1.73205</font>
+(sqrt 4.0) <font color="#008844">; returns 2</font>
+(sqrt 5.0) <font color="#008844">; returns 2.23607</font>
+(sqrt -1.0) <font color="#008844">; error: square root of a negative number</font>
+(sqrt 2) <font color="#008844">; error: bad integer operation</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp allows for integer numbers, which
+XLISP does not support for 'sqrt'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#sqrt">sqrt</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/strcat.htm b/docsrc/xlisp/xlisp-doc/reference/strcat.htm
new file mode 100644
index 0000000..f0437b9
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/strcat.htm
@@ -0,0 +1,72 @@
+<html><head><title>XLISP strcat</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>strcat</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(strcat [<i>string1</i> ... ])</dt>
+<dd><i>stringN</i> - a string expression<br>
+returns - the result of concatenating the strings</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'strcat' function returns the concatenation of a sequence of string
+expressions. If there are no strings, an empty string is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(strcat) <font color="#008844">; returns ""</font>
+(strcat "a") <font color="#008844">; returns "a"</font>
+(strcat "a" "b") <font color="#008844">; returns "ab"</font>
+(strcat "ab" "cd" "ef") <font color="#008844">; returns "abcdef"</font>
+(strcat "f" "ire tr" "uck") <font color="#008844">; returns "fire truck"</font>
+(strcat 1 2) <font color="#008844">; error: bad argument type</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#strcat">strcat</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/streamp.htm b/docsrc/xlisp/xlisp-doc/reference/streamp.htm
new file mode 100644
index 0000000..848998b
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/streamp.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP streamp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>streamp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(streamp <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the value is a
+stream, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'streamp' predicate function checks if an 'expr' is a stream.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr' is a
+stream, <a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<p>EXAMPLES</p>
+
+<pre class="example">
+(streamp *standard-input*) <font color="#008844">; returns T - stream</font>
+(streamp *debug-io*) <font color="#008844">; returns T - stream</font>
+(streamp (make-string-output-stream)) <font color="#008844">; returns T - stream</font>
+
+(setq a *standard-output*)
+(streamp a) <font color="#008844">; returns T - evaluates to stream</font>
+
+(streamp "a") <font color="#008844">; returns NIL - string</font>
+(streamp #\a) <font color="#008844">; returns NIL - character</font>
+(streamp '(a b c)) <font color="#008844">; returns NIL - list</font>
+(streamp 1) <font color="#008844">; returns NIL - integer</font>
+(streamp 1.2) <font color="#008844">; returns NIL - float</font>
+(streamp '*debug-io*) <font color="#008844">; returns NIL - symbol</font>
+(streamp 'a) <font color="#008844">; returns NIL - symbol</font>
+(streamp #(0 1 2)) <font color="#008844">; returns NIL - array</font>
+(streamp NIL) <font color="#008844">; returns NIL - NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#streamp">streamp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-downcase.htm b/docsrc/xlisp/xlisp-doc/reference/string-downcase.htm
new file mode 100644
index 0000000..f67c211
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-downcase.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP string-downcase</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-downcase</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-downcase <i>string</i> [{:start | :end} <i>offset</i>] ... )</dt>
+<dd><i>string</i> - a string expression<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a converted copy of the string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-downcase' function takes a string argument and returns a new
+string that has been made lower case.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string'. The
+keyword arguments require a keyword ':start' or ':end' first and a single
+integer expression second. The ':start' keyword specifies the starting
+offset for the 'string-downcase' operation on 'string'. A value of 0 starts
+the string at the beginning [no offset]. The ':end' keyword specifies the
+end offset for the operation on 'string'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-downcase "ABcd+-12&amp;[") <font color="#008844">; returns "abcd+-&amp;["</font>
+(string-downcase "ABCDEFGH" :start 2 :end 4) <font color="#008844">; returns "ABcdEFGH"</font>
+
+(setq mystr "ABcdEFgh") <font color="#008844">; set up variable</font>
+(string-downcase mystr) <font color="#008844">; returns "abcdefgh"</font>
+(print mystr) <font color="#008844">; prints "ABcdEFgh"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-downcase">string-downcase</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-equal-i.htm b/docsrc/xlisp/xlisp-doc/reference/string-equal-i.htm
new file mode 100644
index 0000000..f83b91c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-equal-i.htm
@@ -0,0 +1,111 @@
+<html><head><title>XLISP tring-equal</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-equal</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-equal <i>string1 string2</i> [<i>key offset</i>] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if <i>string1</i>
+equal to <i>string2</i>,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-equal' function takes two string arguments. It checks to see
+if the string arguments have the same values.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'string1' is
+equal to 'string2', <a href="nil.htm">NIL</a> is returned
+otherwise. This test is not case sensitive, the character '#\a' is
+considered to be the same as '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-equal "a" "b") <font color="#008844">; returns NIL</font>
+(string-equal "a" "a") <font color="#008844">; returns T</font>
+(string-equal "a" "A") <font color="#008844">; returns T</font>
+(string-equal "A" "a") <font color="#008844">; returns T</font>
+(string-equal "abc" "abc ") <font color="#008844">; returns NIL</font>
+
+(string-equal "J Smith" "K Smith" :start1 1 :start2 1) <font color="#008844">; strip off the first chars</font>
+ <font color="#008844">; returns T</font>
+
+(string-equal "abc" "123456789" :end2 3 :end1 3) <font color="#008844">; leave just the first 3 chars</font>
+ <font color="#008844">; returns NIL</font>
+</pre>
+
+<p><b>Bug:</b> The 'string-equal' function is listed in the original XLISP
+documentation as 'string-equalp'. In the XLISP interpreter a call to
+'string-equalp' causes an error:</p>
+
+<pre class="example">
+<font color="#AA0000">error: unbound function - STRING-EQUALP</font>
+</pre>
+
+<p>The 'string-equal' function works exactly as the 'string-equalp' function
+described in the XLISP manual. This bug had obviously been corrected in
+the manual only but never in the interpreter. As the bug still exists with
+<nobr>Nyquist 2.36</nobr> in <nobr>July 2007</nobr> as well as all other
+<nobr>XLISP 2.x</nobr> implementations I know, I have changed both manuals
+to 'string-equal' even if I myself whould consider 'string-equalp' as the
+better name.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-equalp">string-equal</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-equal-s.htm b/docsrc/xlisp/xlisp-doc/reference/string-equal-s.htm
new file mode 100644
index 0000000..a50ad74
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-equal-s.htm
@@ -0,0 +1,96 @@
+<html><head><title>XLISP string=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string= <i>string1 string2</i> [<i>key offset</i>] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the string
+arguments have the same values,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string=' [string-equal] function takes two string arguments. It
+checks to see if the string arguments have the same values.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'string1' is
+equal to 'string2', <a href="nil.htm">NIL</a> is returned
+otherwise. This test is case sensitive, the character '#\a' is different and
+of greater <a href="../misc/ascii-table.htm">ASCII</a> value than
+'#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string= "a" "b") <font color="#008844">; returns NIL</font>
+(string= "a" "a") <font color="#008844">; returns T</font>
+(string= "a" "A") <font color="#008844">; returns NIL</font>
+(string= "A" "a") <font color="#008844">; returns NIL</font>
+(string= "abc" "abc ") <font color="#008844">; returns NIL</font>
+
+(string= "J Smith" "K Smith" :start1 1 :start2 1) <font color="#008844">; strip off the first chars </font>
+ <font color="#008844">; returns T</font>
+
+(string= "abc" "123456789" :end2 3 :end1 3) <font color="#008844">; leave just the first 3 chars </font>
+ <font color="#008844">; returns NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-equal">string=</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-greaterp-i.htm b/docsrc/xlisp/xlisp-doc/reference/string-greaterp-i.htm
new file mode 100644
index 0000000..71b18db
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-greaterp-i.htm
@@ -0,0 +1,98 @@
+<html><head><title>XLISP string-greaterp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-greaterp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-greaterp <i>string1 string2</i> [<i>key offset</i>] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a non-<a href="nil.htm">NIL</a> value if <i>string1</i>
+is greater than <i>string2</i> in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-greaterp' [string-greater-than] predicate function takes two
+string arguments. A non-<a href="nil.htm">NIL</a> value is
+returned if 'string1' is greater than 'string2' in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering, otherwise
+<a href="nil.htm">NIL</a> is returned. The
+non-<a href="nil.htm">NIL</a> value returned is the integer index
+of the first character of 'string1' which is
+<a href="char-greaterp-i.htm">char-greaterp</a> [char-greater-than] the
+corresponding character of 'string2'. This test is not case sensitive, the
+character '#\a' is considered to be the same as '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-greaterp "a" "b") <font color="#008844">; returns NIL</font>
+(string-greaterp "a" "a") <font color="#008844">; returns NIL</font>
+(string-greaterp "a" "A") <font color="#008844">; returns NIL</font>
+(string-greaterp "A" "a") <font color="#008844">; returns NIL</font>
+(string-greaterp "abc" "abc ") <font color="#008844">; returns NIL</font>
+(string-greaterp "1234qrst" "12345678") <font color="#008844">; returns 4</font>
+
+(string-greaterp "J Smith" "K Jones" :start1 1 :start2 1) <font color="#008844">; strip off the first chars </font>
+ <font color="#008844">; returns 2</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-greaterp">string-greaterp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-greaterp-s.htm b/docsrc/xlisp/xlisp-doc/reference/string-greaterp-s.htm
new file mode 100644
index 0000000..c5f5fa4
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-greaterp-s.htm
@@ -0,0 +1,99 @@
+<html><head><title>XLISP string&gt;</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string&gt;</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string&gt; string1 string2 [key offset] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a non-<a href="nil.htm">NIL</a> value if <i>string1</i>
+is greater than <i>string2</i> in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string&gt;' [string-greater-than] function takes two string
+arguments. A non-<a href="nil.htm">NIL</a> value is returned if
+'string1' is greater than 'string2' in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering, otherwise
+<a href="nil.htm">NIL</a> is returned. The
+non-<a href="nil.htm">NIL</a> value returned is the integer index
+of the first character of 'string1' which is
+<a href="char-greaterp-s.htm">char&gt;</a> [char-greater-than] the
+corresponding character of 'string2'. This test is case sensitive, the
+character '#\a' is different and of greater
+<a href="../misc/ascii-table.htm">ASCII</a> value than '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string&gt; "a" "b") <font color="#008844">; returns NIL</font>
+(string&gt; "a" "a") <font color="#008844">; returns NIL</font>
+(string&gt; "a" "A") <font color="#008844">; returns 0</font>
+(string&gt; "A" "a") <font color="#008844">; returns NIL</font>
+(string&gt; "abc" "abc ") <font color="#008844">; returns NIL</font>
+(string&gt; "1234qrst" "12345678") <font color="#008844">; returns 4</font>
+
+(string&gt; "J Smith" "K Jones" :start1 1 :start2 1) <font color="#008844">; strip off the first chars</font>
+ <font color="#008844">; returns 2</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-greater-than">string&gt;</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-left-trim.htm b/docsrc/xlisp/xlisp-doc/reference/string-left-trim.htm
new file mode 100644
index 0000000..bf88c2c
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-left-trim.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP string-left-trim</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-left-trim</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-left-trim <i>trim-stuff string</i>)</dt>
+<dd><i>trim-stuff</i> - a string expression<br>
+<i>string</i> - a string expression<br>
+returns - a trimed copy of the string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-left-trim' function takes the 'trim-stuff' characters and
+removes them from the left end of the 'string'. The 'trim-stuff' characters
+are an un-ordered set of characters to be removed, so any character that
+occurs in 'trim-stuff' is removed if it appears in left portion of 'string'.
+A new string is created and returned as the result of this function.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-left-trim "." "....foo....") <font color="#008844">; returns "foo...."</font>
+(string-left-trim "&lt;&gt;" "&lt;&lt;&lt;&lt;bar&gt;&gt;&gt;&gt;") <font color="#008844">; returns "bar&gt;&gt;&gt;&gt;"</font>
+(string-left-trim "(.)" "..(12.34)..") <font color="#008844">; returns "12.34).."</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp also supports a list of characters as
+a valid 'trim-stuff' argument. An example:</p>
+
+<pre class="example">
+(string-trim '(#\Tab #\Newline) mystring)
+</pre>
+
+<p>XLISP does not support non-string parameters. Porting from XLISP will
+be no problem, but modifications will be necessary if porting from Common
+Lisp code which uses a list of characters.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-left-trim">string-left-trim</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-lessp-i.htm b/docsrc/xlisp/xlisp-doc/reference/string-lessp-i.htm
new file mode 100644
index 0000000..14d40f7
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-lessp-i.htm
@@ -0,0 +1,98 @@
+<html><head><title>XLISP string-lessp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-lessp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-lessp <i>string1 string2</i> [<i>key offset</i>] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a non-<a href="nil.htm">NIL</a> value if <i>string1</i>
+is less than <i>string2</i> in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-lessp' [string-less-than] predicate function takes two string
+arguments. A non-<a href="nil.htm">NIL</a> value is returned if
+'string1' is less than 'string2' in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering, otherwise
+<a href="nil.htm">NIL</a> is returned. The
+non-<a href="nil.htm">NIL</a> value returned is the integer index
+of the first character of 'string1' which is
+<a href="char-lessp-i.htm">char-lessp</a> [char-less-than] the
+corresponding character of 'string2'. This test is not case sensitive, the
+character '#\a' is considered to be the same as '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-lessp "a" "b") <font color="#008844">; returns 0</font>
+(string-lessp "a" "a") <font color="#008844">; returns NIL</font>
+(string-lessp "a" "A") <font color="#008844">; returns NIL</font>
+(string-lessp "A" "a") <font color="#008844">; returns NIL</font>
+(string-lessp "abc" "abc ") <font color="#008844">; returns 3</font>
+(string-lessp "1234567" "1234qrst") <font color="#008844">; returns 4</font>
+
+(string-lessp "J Smith" "K Smith" :start1 1 :start2 1) <font color="#008844">; strip off the first chars</font>
+ <font color="#008844">; returns NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-lessp">string-lessp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-lessp-s.htm b/docsrc/xlisp/xlisp-doc/reference/string-lessp-s.htm
new file mode 100644
index 0000000..393ef49
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-lessp-s.htm
@@ -0,0 +1,98 @@
+<html><head><title>XLISP string&lt;</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string&lt;</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string&lt; <i>string1 string2</i> [<i>key offset</i>] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a non-<a href="nil.htm">NIL</a> value if <i>string1</i>
+is less than <i>string2</i> in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string&lt;' [string-less-than] function takes two string arguments.
+A non-<a href="nil.htm">NIL</a> value is returned if 'string1'
+is less than 'string2' in <a href="../misc/ascii-table.htm">ASCII</a>
+ordering, otherwise <a href="nil.htm">NIL</a> is returned. The
+non-<a href="nil.htm">NIL</a> value returned is the integer index
+of the first character of 'string1' which is
+<a href="char-lessp-s.htm">char&lt;</a> [char-less-than] the corresponding
+character of 'string2'. This test is case sensitive, the character '#\a' is
+different and of greater <a href="../misc/ascii-table.htm">ASCII</a>
+value than '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string&lt; "a" "b") <font color="#008844">; returns 0</font>
+(string&lt; "a" "a") <font color="#008844">; returns NIL</font>
+(string&lt; "a" "A") <font color="#008844">; returns NIL</font>
+(string&lt; "A" "a") <font color="#008844">; returns 0</font>
+(string&lt; "abc" "abc ") <font color="#008844">; returns 3</font>
+(string&lt; "1234567" "1234qrst") <font color="#008844">; returns 4</font>
+
+(string&lt; "J Smith" "K Smith" :start1 1 :start2 1) <font color="#008844">; strip off the first chars</font>
+ <font color="#008844">; returns NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-less-than">string&lt;</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-not-equal-i.htm b/docsrc/xlisp/xlisp-doc/reference/string-not-equal-i.htm
new file mode 100644
index 0000000..4360306
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-not-equal-i.htm
@@ -0,0 +1,112 @@
+<html><head><title>XLISP string-not-equal</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-not-equal</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-not-equal string1 string2 [key offset] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a non-<a href="nil.htm">NIL</a> value if <i>string1</i>
+is not equal to <i>string2</i>,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-not-equal' function takes two string arguments. A
+non-<a href="nil.htm">NIL</a> value is returned if 'string1' is
+not equal to 'string2', otherwise <a href="nil.htm">NIL</a> is
+returned. The non-<a href="nil.htm">NIL</a> value returned is the
+integer index of the first character of 'string1' which is
+<a href="char-not-equal-i.htm">char-not-equal</a> to the corresponding
+character of 'string2'. This test is not case sensitive, the character
+'#\a' is considered to be the same as '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-not-equal "a" "b") <font color="#008844">; returns 0</font>
+(string-not-equal "a" "a") <font color="#008844">; returns NIL</font>
+(string-not-equal "a" "A") <font color="#008844">; returns NIL</font>
+(string-not-equal "A" "a") <font color="#008844">; returns NIL</font>
+(string-not-equal "abc" "abc ") <font color="#008844">; returns 3</font>
+
+(string-not-equal "J Smith" "K Smith" :start1 1 :start2 1) <font color="#008844">; strip off the first chars</font>
+ <font color="#008844">; returns NIL</font>
+(string-not-equal "abc" "123456789" :end2 3 :end1 3) <font color="#008844">; leave just the first 3 chars</font>
+ <font color="#008844">; returns 0</font>
+</pre>
+
+<p><b>Bug:</b> The 'string-not-equal' function is listed in the original
+XLISP documentation as 'string-not-equalp'. In the XLISP interpreter a call
+to 'string-not-equalp' causes an error:</p>
+
+<pre class="example">
+<font color="#AA0000">error: unbound function - STRING-NOT-EQUALP</font>
+</pre>
+
+<p>The 'string-not-equal' function works exactly as the 'string-not-equalp'
+function described in the XLISP manual. This bug had obviously been
+corrected in the manual only but never in the interpreter. As the bug still
+exists with <nobr>Nyquist 2.36</nobr> in <nobr>July 2007</nobr> as well as
+all other <nobr>XLISP 2.x</nobr> implementations I know, I have changed both
+manuals to 'string-not-equal' even if I myself whould consider
+'string-not-equalp' as the better name.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-not-equalp">string-not-equal</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-not-equal-s.htm b/docsrc/xlisp/xlisp-doc/reference/string-not-equal-s.htm
new file mode 100644
index 0000000..ef515c6
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-not-equal-s.htm
@@ -0,0 +1,104 @@
+<html><head><title>XLISP string/=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string/=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string/= <i>string1 string2</i> [<i>key offset</i>] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a non-<a href="nil.htm">NIL</a> value if <i>string1</i>
+is not equal to <i>string2</i>,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string/=' [string-not-equal] function takes two string arguments. A
+non-<a href="nil.htm">NIL</a> value is returned if 'string1' is
+not equal to 'string2', otherwise
+<a href="nil.htm">NIL</a> is returned. The
+non-<a href="nil.htm">NIL</a> value returned is the integer index
+of the first character of 'string1' which is
+<a href="char-not-equal-s.htm">char/=</a> [char-not-equal] to the
+corresponding character of 'string2'.
+This test is case sensitive, the character '#\a' is different and of greater
+<a href="../misc/ascii-table.htm">ASCII</a> value than '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string/= "a" "b") <font color="#008844">; returns 0</font>
+(string/= "a" "a") <font color="#008844">; returns NIL</font>
+(string/= "a" "A") <font color="#008844">; returns 0</font>
+(string/= "A" "a") <font color="#008844">; returns 0</font>
+(string/= "abc" "abc ") <font color="#008844">; returns 3</font>
+
+(string/= "J Smith" "K Smith" :start1 1 :start2 1) <font color="#008844">; returns NIL</font>
+(string/= "abc" "123456789" :end2 3 :end1 3) <font color="#008844">; returns 0</font>
+</pre>
+
+<p><b>Note:</b> Be sure that the 'string/=' function is properly typed in.
+The '/' is a forward slash. It is possible to mistakenly type a '\'
+backslash. This is especially easy because the character mechanism is '#\a'.
+If you do use the backslash, no error will be reported because backslash is
+the single escape character and the XLISP reader will evaluate 'string\=' as
+'string='. No error will be reported, but the sense of the test is
+reversed.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-not-equal">string/=</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-not-greaterp-i.htm b/docsrc/xlisp/xlisp-doc/reference/string-not-greaterp-i.htm
new file mode 100644
index 0000000..a5cafa8
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-not-greaterp-i.htm
@@ -0,0 +1,99 @@
+<html><head><title>XLISP string-not-greaterp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-not-greaterp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-not-greaterp <i>string1 string2</i> [<i>key offset</i>] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a non-<a href="nil.htm">NIL</a> value if <i>string1</i>
+is less than or equal to <i>string2</i> in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-not-greaterp' [string-not-greater-than] predicate function
+takes two string arguments. A non-<a href="nil.htm">NIL</a> value
+is returned if 'string1' is less than or equal to 'string2' in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering, otherwise
+<a href="nil.htm">NIL</a> is returned. The
+non-<a href="nil.htm">NIL</a> value returned is the integer index
+of the first character of 'string1' which is
+<a href="">char-not-greaterp</a> [char-not-greater-than] the corresponding
+character of 'string2'. This test is not case sensitive, the character
+'#\a' is considered to be the same as '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-not-greaterp "a" "b") <font color="#008844">; returns 0</font>
+(string-not-greaterp "b" "a") <font color="#008844">; returns NIL</font>
+(string-not-greaterp "a" "a") <font color="#008844">; returns 1</font>
+(string-not-greaterp "a" "A") <font color="#008844">; returns 1</font>
+(string-not-greaterp "A" "a") <font color="#008844">; returns 1</font>
+(string-not-greaterp "abc" "abc ") <font color="#008844">; returns 3</font>
+(string-not-greaterp "12345" "1234qr") <font color="#008844">; returns 4</font>
+
+(string-not-greaterp "J Smith" "K Smith" :start1 1 :start2 1) <font color="#008844">; strip off the first chars</font>
+ <font color="#008844">; returns 7</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-not-greaterp">string-not-greaterp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-not-greaterp-s.htm b/docsrc/xlisp/xlisp-doc/reference/string-not-greaterp-s.htm
new file mode 100644
index 0000000..8710fdf
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-not-greaterp-s.htm
@@ -0,0 +1,99 @@
+<html><head><title>XLISP string&lt;=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string&lt;=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string&lt;= <i>string1 string2</i> [<i>key offset</i>] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a non-<a href="nil.htm">NIL</a> value if <i>string1</i>
+is less than or equal to <i>string2</i> in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string&lt;=' [string-less-than-or-equal] function takes two string
+arguments. A non-<a href="nil.htm">NIL</a> value is returned if
+'string1' is less than or equal to 'string2' in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering, otherwise
+<a href="nil.htm">NIL</a> is returned. The
+non-<a href="nil.htm">NIL</a> value returned is the integer index
+of the first character of 'string1' which is
+<a href="char-not-greaterp-s.htm">char&lt;=</a> [char-less-than-or-equal] to the
+corresponding character of 'string2'. This test is case sensitive, the
+character '#\a' is different and of greater
+<a href="../misc/ascii-table.htm">ASCII</a> value than '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string&lt;= "a" "b") <font color="#008844">; returns 0</font>
+(string&lt;= "a" "a") <font color="#008844">; returns 1</font>
+(string&lt;= "a" "A") <font color="#008844">; returns NIL</font>
+(string&lt;= "A" "a") <font color="#008844">; returns 0</font>
+(string&lt;= "abc" "abc ") <font color="#008844">; returns 3</font>
+(string&lt;= "1234567" "1234qrst") <font color="#008844">; returns 4</font>
+
+(string&lt;= "J Smith" "K Smith" :start1 1 :start2 1) <font color="#008844">; strip off the first chars</font>
+ <font color="#008844">; returns 7</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-less-than-or-equal">string&lt;=</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-not-lessp-i.htm b/docsrc/xlisp/xlisp-doc/reference/string-not-lessp-i.htm
new file mode 100644
index 0000000..e70c391
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-not-lessp-i.htm
@@ -0,0 +1,98 @@
+<html><head><title>XLISP string-not-lessp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-not-lessp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-not-lessp <i>string1 string2</i> [<i>key offset</i>] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a non-<a href="nil.htm">NIL</a> value if <i>string1</i>
+is greater than or equal to <i>string2</i> in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is not significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-not-lessp' [string-not-less-than] predicate function
+takes two string arguments. A non-<a href="nil.htm">NIL</a> value
+is returned if 'string1' is greater than or equal to 'string2' in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering, otherwise
+<a href="nil.htm">NIL</a> is returned. The
+non-<a href="nil.htm">NIL</a> value returned is the integer index
+of the first character of 'string1' which is
+<a href="char-lessp-i.htm">char-not-lessp</a> [char-not-less-than] the
+corresponding character of 'string2'. This test is not case sensitive, the
+character '#\a' is considered to be the same as '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-not-lessp "a" "b") <font color="#008844">; returns NIL</font>
+(string-not-lessp "a" "a") <font color="#008844">; returns 1</font>
+(string-not-lessp "a" "A") <font color="#008844">; returns 1</font>
+(string-not-lessp "A" "a") <font color="#008844">; returns 1</font>
+(string-not-lessp "abc" "abc ") <font color="#008844">; returns NIL</font>
+(string-not-lessp "1234qr" "123456") <font color="#008844">; returns 4</font>
+
+(string-not-lessp "J Smith" "K Jones" :start1 1 :start2 1) <font color="#008844">; strip off the first chars </font>
+ <font color="#008844">; returns 2</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-not-lessp">string-not-lessp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-not-lessp-s.htm b/docsrc/xlisp/xlisp-doc/reference/string-not-lessp-s.htm
new file mode 100644
index 0000000..527c116
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-not-lessp-s.htm
@@ -0,0 +1,99 @@
+<html><head><title>XLISP string&gt;=</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string&gt;=</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string&gt;= <i>string1 string2</i> [<i>key offset</i>] ... )</dt>
+<dd><i>stringN</i> - a string expression<br>
+<i>key</i> - a keyword [one of :start1 :start2 :end1 :end2]<br>
+<i>offset</i> - an optional integer expression for a keyword<br>
+returns - a non-<a href="nil.htm">NIL</a> value if <i>string1</i>
+is greater than or equal to <i>string2</i> in
+<a href="../misc/ascii-table.htm">ASCII</a> ordering,
+<a href="nil.htm">NIL</a> otherwise<br>
+<b>Note:</b> case is significant with this function</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string&gt;=' [string-greater-than-or-equal] function takes two
+string arguments. A non-<a href="nil.htm">NIL</a> value is
+returned if 'string1' is greater than or equal to 'string2' in an
+<a href="../misc/ascii-table.htm">ASCII</a> ordering, otherwise
+<a href="nil.htm">NIL</a> is returned. The
+non-<a href="nil.htm">NIL</a> value returned is the integer index
+of the first character of 'string1' which is
+<a href="char-not-lessp-s.htm">char&gt;=</a> [char-greater-than-or-equal] to
+the corresponding character of 'string2'. This test is case sensitive, the
+character '#\a' is different and of greater
+<a href="../misc/ascii-table.htm">ASCII</a> value than '#\A'.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string1' and
+'string2'. The keyword arguments each require a keyword ':start1', ':end1',
+':start2' or ':end2' and a single integer expression as a pair with the
+keyword first and the integer second. The pairs may be in any order. The
+':startN' keywords specify the starting offset of the substring. A value of
+0 starts the string at the beginning [no offset]. The ':endN' keywords
+specify the ending offset of the substring. A value of 3 ends the string
+after the 3rd character [an offset of 3 characters].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string&gt;= "a" "b") <font color="#008844">; returns NIL</font>
+(string&gt;= "a" "a") <font color="#008844">; returns 1</font>
+(string&gt;= "a" "A") <font color="#008844">; returns 0</font>
+(string&gt;= "A" "a") <font color="#008844">; returns NIL</font>
+(string&gt;= "abc" "abc ") <font color="#008844">; returns NIL</font>
+(string&gt;= "1234qrst" "12345678") <font color="#008844">; returns 4</font>
+
+(string&gt;= "J Smith" "K Jones" :start1 1 :start2 1) <font color="#008844">; strip off the first chars</font>
+ <font color="#008844">; returns 2</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-greater-than-or-equal">string&gt;=</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-right-trim.htm b/docsrc/xlisp/xlisp-doc/reference/string-right-trim.htm
new file mode 100644
index 0000000..56cb58d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-right-trim.htm
@@ -0,0 +1,85 @@
+<html><head><title>XLISP string-right-trim</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-right-trim</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-right-trim <i>trim-stuff string</i>)</dt>
+<dd><i>trim-stuff</i> - a string expression<br>
+<i>string</i> - a string expression<br>
+returns - a trimed copy of the string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-right-trim' function takes the 'trim-stuff' characters and
+removes them from the right end of the 'string'. The 'trim-stuff' characters
+are an un-ordered set of characters to be removed, so any character that
+occurs in 'trim-stuff' is removed if it appears in right portion of
+'string'. A new string is created and returned as the result of this
+function.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-right-trim "." "....foo....") <font color="#008844">; returns "....foo"</font>
+(string-right-trim "&lt;&gt;" "&lt;&lt;&lt;&lt;bar&gt;&gt;&gt;&gt;") <font color="#008844">; returns "&lt;&lt;&lt;&lt;bar"</font>
+(string-right-trim "(.)" "..(12.34)..") <font color="#008844">; returns "..(12.34"</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common LISP also supports a list of characters as
+a valid 'trim-stuff' argument. An example:
+
+<pre class="example">
+(string-trim '(#\Tab #\Newline) mystring)
+</pre>
+
+<p>XLISP does not support non-string parameters. Porting from XLISP will be
+no problem, but modifications will be necessary if porting from Common LISP
+code which uses a list of characters.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-right-trim">string-right-trim</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-search.htm b/docsrc/xlisp/xlisp-doc/reference/string-search.htm
new file mode 100644
index 0000000..ebf5e8a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-search.htm
@@ -0,0 +1,68 @@
+<html><head><title>XLISP string-search</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-search</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(<b>string-search</b> <i>pattern</i> <i>string</i> &amp;key :start :end)</dt><dd>
+<i>pattern</i> - a string to search for<br>
+<i>string</i> - the string to be searched<br>
+:start <i>integer</i> - the starting offset in <i>string</i><br>
+:end <i>integer</i> - the ending offset + 1<br>
+returns - index of <i>pattern</i> in <i>string</i> or <a href="nil.htm">NIL</a> if not found</dd>
+</dl>
+
+
+<h2>Description</h2>
+
+<p> The '<nobr>string-search</nobr>' function searches for 'pattern' in
+'string' and returns the index of the first 'pattern' found in 'string' or
+NIL if no pattern was found.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-trim.htm b/docsrc/xlisp/xlisp-doc/reference/string-trim.htm
new file mode 100644
index 0000000..7e26375
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-trim.htm
@@ -0,0 +1,84 @@
+<html><head><title>XLISP string-trim</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-trim</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-trim <i>trim-stuff string</i>)</dt>
+<dd><i>trim-stuff</i> - a string expression<br>
+<i>string</i> - a string expression<br>
+returns - a trimed copy of the string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-trim' function takes the 'trim-stuff' characters and removes
+them from both ends of the 'string'. The 'trim-stuff' characters are an
+un-ordered set of characters to be removed, so any character that occurs in
+'trim-stuff' is removed if it appears in 'string'. A new string is created
+and returned as the result of this function.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-trim "." "....foo....") <font color="#008844">; returns "foo"</font>
+(string-trim "&lt;&gt;" "&lt;&lt;&lt;&lt;bar&gt;&gt;&gt;&gt;") <font color="#008844">; returns "bar"</font>
+(string-trim "(.)" "..(12.34)..") <font color="#008844">; returns "12.34"</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common LISP also supports a list of characters as
+a valid 'trim-stuff' argument. An example:
+
+<pre class="example">
+(string-trim '(#\Tab #\Newline) mystring)
+</pre>
+
+<p>XLISP does not support non-string parameters. Porting from XLISP will be
+no problem, but modifications will be necessary if porting from Common LISP
+code which uses a list of characters.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-trim">string-trim</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string-upcase.htm b/docsrc/xlisp/xlisp-doc/reference/string-upcase.htm
new file mode 100644
index 0000000..cd2e54f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string-upcase.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP string-upcase</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string-upcase</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string-upcase <i>string</i> [{:start | :end} <i>offset</i>] ... )</dt>
+<dd><i>string</i> - a string expression<br>
+<i>offse</i>t - an optional integer expression for a keyword<br>
+returns - a converted copy of the string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string-upcase' function takes a string argument and returns a new
+string that has been made upper case.</p>
+
+<p>The keyword arguments allow for accessing substrings within 'string'. The
+keyword arguments require a keyword ':start' or ':end' first and a single
+integer expression second. The ':start' keyword specifies the starting
+offset for the 'string-upcase' operation on 'string'. A value of 0 starts
+the string at the beginning [no offset]. The ':end' keyword specifies the
+end offset for the operation on 'string'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string-upcase "ABcd+-12&amp;[") <font color="#008844">; returns "ABCD+-&amp;["</font>
+(string-upcase "abcdefgh" :start 2 :end 4) <font color="#008844">; returns "abCDefgh"</font>
+
+(setq mystr "ABcdEFgh") <font color="#008844">; set up variable</font>
+(string-upcase mystr) <font color="#008844">; returns "ABCDEFGH"</font>
+(print mystr) <font color="#008844">; prints "ABcdEFgh"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string-upcase">string-upcase</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/string.htm b/docsrc/xlisp/xlisp-doc/reference/string.htm
new file mode 100644
index 0000000..90224fa
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/string.htm
@@ -0,0 +1,88 @@
+<html><head><title>XLISP string</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>string</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(string <i>expr</i>)</dt>
+<dd><i>expr</i> - a symbol, character, integer or string expression<br>
+returns - a string</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'string' function makes the 'expr' to be a string. <nobr>If
+the</nobr> 'expr' is a string, it is returned, as is. <nobr>If the</nobr>
+'expr' is a character, a <nobr>one-character</nobr> string is returned.
+<nobr>If the</nobr> 'expr' is a symbol, the symbol is turned into a string.
+<nobr>If the</nobr> 'expr' is an integer, a string representing the
+character with an ASCII code of the lowest 8-bit of the intger will be
+returned:</p>
+
+<p><table cellpadding="0" cellspacing="0"><tbody>
+<tr>
+ <td><nobr><code>&nbsp;&nbsp;</code></nobr></td>
+ <td class="button"><nobr><code>(string <font color="#0000CC">integer</font>)</code></nobr></td>
+ <td><nobr>&nbsp; &rarr; &nbsp;</nobr></td>
+ <td class="button"><nobr><code>(code-char (rem <font color="#0000CC">integer</font> 256))</code></nobr></td>
+ <td><nobr>&nbsp; &rarr; &nbsp;</nobr></td>
+ <td class="button"><nobr><code><font color="#0000CC">string</font></code></nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(string 'foo) <font color="#008844">; returns "FOO"</font>
+(string 'x) <font color="#008844">; returns "X"</font>
+(string "abcdef") <font color="#008844">; returns "abcdef"</font>
+(string #\a) <font color="#008844">; returns "a"</font>
+(string #\A) <font color="#008844">; returns "A"</font>
+(string #\Newline) <font color="#008844">; returns "\n"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#string">string</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/stringp.htm b/docsrc/xlisp/xlisp-doc/reference/stringp.htm
new file mode 100644
index 0000000..a9fa3da
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/stringp.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP tringp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>stringp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(stringp <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the value is a
+string, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'stringp' predicate function checks if 'expr' is a string.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr' is a
+string, <a href="nil.htm">NIL</a> is returned otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(stringp "a") <font color="#008844">; returns T - string</font>
+
+(setq a "hi there"
+(stringp a) <font color="#008844">; returns T - evaluates to string</font>
+
+(stringp #\a) <font color="#008844">; returns NIL - character</font>
+(stringp '(a b c)) <font color="#008844">; returns NIL - list</font>
+(stringp 1) <font color="#008844">; returns NIL - integer</font>
+(stringp 1.2) <font color="#008844">; returns NIL - float</font>
+(stringp 'a) <font color="#008844">; returns NIL - symbol</font>
+(stringp #(0 1 2)) <font color="#008844">; returns NIL - array</font>
+(stringp nil) <font color="#008844">; returns NIL - nil</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#stringp">stringp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/sublis.htm b/docsrc/xlisp/xlisp-doc/reference/sublis.htm
new file mode 100644
index 0000000..2724892
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/sublis.htm
@@ -0,0 +1,129 @@
+<html><head><title>XLISP sublis</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>sublis</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(sublis <i>a-list expr</i> [{:test | :test-not} <i>test</i>])</dt>
+<dd><i>expr</i> - the expression to substitute within, an atom<br>
+<i>a-list</i> - the association list to search<br>
+test - optional test function, default is <a href="eql.htm">eql</a><br>
+returns - the expression with substitutions</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'sublis' function searches through an 'expr' and replaces each of the
+elements in the 'expr' that match the <a href="car.htm">car</a>
+of the elements of the association list 'a-list' with the
+
+<a href="cdr.htm">cdr</a> of elements of the 'a-list'. The 'expr'
+with the substitutions, if any, is returned. You may specify your own test
+with the ':test' and ':test-not' keywords followed by the 'test' you wish to
+perform. The 'sublis' function is normally used with a dotted pair <nobr>(A
+. B)</nobr> association list. It is possible to use a normal list pair
+<nobr>(A B)</nobr> or a list of the form <nobr>(A (B C)).</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(sublis '((a . b)) '(a a)) <font color="#008844">; returns (B B)</font>
+(sublis '((a b)) '(a a)) <font color="#008844">; returns ((B) (B))</font>
+(sublis '((a (b c))) '(a a)) <font color="#008844">; returns (((B C)) ((B C)))</font>
+
+(setq newlist '((a . 1) <font color="#008844">; set up an association list</font>
+ (b . 2)
+ (c . 3)))
+
+(sublis newlist '(a b c d e f b a c)) <font color="#008844">; returns (1 2 3 D E F 2 1 3)</font>
+
+(sublis newlist 'a) <font color="#008844">; returns 1</font>
+
+(setq mylist '((a my-a) (b his-b) <font color="#008844">; set up a non-dotted pair assoc list</font>
+ (c her-c) (d end)))
+
+(sublis mylist '(a b c d e f g)) <font color="#008844">; returns ((MY-A) (HIS-B)</font>
+ <font color="#008844">; (HER-C) (END) E F G)</font>
+
+(sublis mylist 'a) <font color="#008844">; returns (MY-A)</font>
+
+(setq numlist '((1 . a) (2 . b)) ) <font color="#008844">; set up a new assoc list</font>
+
+(defun mytest (x y) (princ ": ") <font color="#008844">; set up my own test function with 2 parameters</font>
+ (princ x) <font color="#008844">; to see what SUBLIS does</font>
+ (princ " ")
+ (princ y) (terpri)
+ t) <font color="#008844">; always return T</font>
+
+(sublis numlist '(3 1) :test mytest) <font color="#008844">; prints : (3 1) 1</font>
+ <font color="#008844">; returns A - because the entire list succeeds</font>
+ <font color="#008844">; with the test and so (1 . A) produces the</font>
+ <font color="#008844">; returned value</font>
+
+(sublis numlist '(1) :test-not mytest) <font color="#008844">; prints : (1) 1</font>
+ <font color="#008844">; : (1) 2</font>
+ <font color="#008844">; : 1 1</font>
+ <font color="#008844">; : 1 2</font>
+ <font color="#008844">; : NIL 1</font>
+ <font color="#008844">; : NIL 2</font>
+ <font color="#008844">; returns (1) - because SUBLIS tried to match</font>
+ <font color="#008844">; every list/sublist against each entry in the</font>
+ <font color="#008844">; assoc list and failed because of the :TEST-NOT</font>
+ <font color="#008844">; and so returned the original list unaltered</font>
+</pre>
+
+<p><b>Note:</b> The SUBLIS function can work with a list or string as the
+'expr'. However, the default <a href="eql.htm">eql</a> test does
+not work with lists or strings, only symbols and numbers. To make this work,
+you need to use the ':test' keyword along with
+<a href="equal.htm">equal</a> for 'test'.</p>
+
+<p><b>Common Lisp:</b> Common LISP supports the use of the ':key' keyword
+which specifies a function that is applied to each element of 'a-list'
+before it is tested. XLISP does not support this.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#sublis">sublis</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/subseq.htm b/docsrc/xlisp/xlisp-doc/reference/subseq.htm
new file mode 100644
index 0000000..ebc0fb4
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/subseq.htm
@@ -0,0 +1,83 @@
+<html><head><title>XLISP subseq</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>subseq</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(subseq <i>string start</i> [<i>end</i>])</dt>
+<dd><i>string</i> - a string expression<br>
+<i>start</i> - an integer expression<br>
+<i>end</i> - an integer expression<br>
+returns - the substring between <i>start</i> and <i>end</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p> The 'subseq' function extracts a substring from 'string' starting with
+the 'start' offset and ending with the 'end' offset. The 'start' offset has
+a origin or 0. The substring is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(subseq "12345678" 0) <font color="#008844">; returns "12345678"</font>
+(subseq "12345678" 2) <font color="#008844">; returns "345678"</font>
+(subseq "12345678" 2 4) <font color="#008844">; returns "34"</font>
+(subseq "1234" 3) <font color="#008844">; returns "4"</font>
+
+(subseq "1234" 4) <font color="#008844">; returns ""</font>
+(subseq "1234" 4 2) <font color="#008844">; returns ""</font>
+(subseq "1234" 5) <font color="#008844">; error: string index out of bounds - 5</font>
+</pre>
+
+<p><b>Common Lisp:</b> The 'subseq' function in Common Lisp is intended to
+return a portion of a sequence, a sub-sequence. This function operates on
+lists and vectors [one-dimensional arrays of data], basically ordered data.
+Strings are just one of the valid types operated on by 'subseq' in Common
+Lisp. The XLISP 'subseq' function only operates on strings.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-025.htm#subseq">subseq</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/subsetp.htm b/docsrc/xlisp/xlisp-doc/reference/subsetp.htm
new file mode 100644
index 0000000..dff9b98
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/subsetp.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP subsetp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>subsetp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xm.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>subsetp</b> <i>list1 list2</i>)</nobr></dt>
+<dd><i>listN</i> - a list of symbols or numbers<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if <i>list1</i> is a subset of <i>list2</i>, NIL otherwise</dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, 'subsetp' is implemented as a Lisp function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">subsetp</font> (a b)
+ (let ((result t))
+ (dolist (elem a)
+ (cond ((not (member elem b))
+ (setf result nil)
+ (return nil))))
+ result))
+</pre>
+
+<h2>Description</h2>
+
+<p>The '<nobr>subsetp</nobr>' function tests if all elements of 'list1' are
+contained in 'list2'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/subst.htm b/docsrc/xlisp/xlisp-doc/reference/subst.htm
new file mode 100644
index 0000000..9fc00f0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/subst.htm
@@ -0,0 +1,96 @@
+<html><head><title>XLISP subst</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>subst</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(subst <i>new-expr old-expr expr</i> [{:test | :test-not} <i>test</i>])</dt>
+<dd><i>old-expr</i> - the expression to search for<br>
+<i>new-expr</i> - the expression to replace <i>old-expr</i> with<br>
+<i>expr</i> - the expression to substitute within, an atom or list<br>
+<i>test</i> - optional test function, default is <a href="eql.htm">eql</a><br>
+returns - the expression with substitutions</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'subst' function searches through an 'expr' and replaces each of the
+'old-expr' elements with the 'new-expr'. The 'expr' with the substitutions,
+if any, is returned. You may specify your own test with the ':test' and
+':test-not' keywords followed by the 'test' you wish to perform.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(subst 'new 'old '(old mid dif)) <font color="#008844">; returns (NEW MID DIF)</font>
+(subst '(a) 'old '(old mid dif)) <font color="#008844">; returns ((A) MID DIF)</font>
+(subst "a" 'old '(old mid dif)) <font color="#008844">; returns ("a" MID DIF)</font>
+
+(defun mytest (x y) (princ x) (princ " ") <font color="#008844">; define a test function</font>
+ (princ y) (terpri) <font color="#008844">; that prints the arguments</font>
+ T ) <font color="#008844">; and always returns T</font>
+
+(subst 'a 'b '(a b c d) :test 'mytest) <font color="#008844">; prints (A B C D) B returns A</font>
+
+(subst 'a 'b '(a b) :test-not 'mytest) <font color="#008844">; prints (A B) B</font>
+ <font color="#008844">; A B</font>
+ <font color="#008844">; (B) B</font>
+ <font color="#008844">; B B</font>
+ <font color="#008844">; NIL B returns (A B)</font>
+</pre>
+
+<p><b>Note:</b> The 'subst' function can work with a list or string as the
+'expr' However, the default <a href="eql.htm">eql</a> test does
+not work with lists or strings, only symbols and numbers. To make this work,
+you need to use the ':test' keyword along with
+<a href="equal.htm">equal</a> for 'test'.</p>
+
+<p><b>Common Lisp:</b> Common Lisp supports the use of the ':key' keyword
+which specifies a function that is applied to each element of 'expr' before
+it is tested. XLISP does not support this.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#subst">subst</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/subtraction.htm b/docsrc/xlisp/xlisp-doc/reference/subtraction.htm
new file mode 100644
index 0000000..96ca6a9
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/subtraction.htm
@@ -0,0 +1,88 @@
+<html><head><title>XLISP &minus;</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>&minus;</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(- <i>expr1</i> ...)</nobr></dt>
+<dd><i>exprN</i> - integer or floating point number/expression<br>
+returns - the result of the subtraction</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The '-' function subtracts one or more numbers from the first number
+given and returns the result. If there is only one number as an argument, it
+is negated.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(- 1) =&gt; -1
+(- 1 2) =&gt; -1
+(- 1 2 3) =&gt; -4
+(- 1 2 3 4) =&gt; -8
+</pre>
+
+<pre class="example">
+&gt; (print (- 1 2 (* 3.5 (/ 3.9 1.45))))
+-10.4138
+-10.4138
+</pre>
+
+<p>See <a href="multiplication.htm">&nbsp;*&nbsp;</a>,
+<a href="division.htm">&nbsp;/&nbsp;</a>, <a href="print.htm">print</a>.
+XLISP first prints the value on the screen, the second number is the
+return value.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#arithmetic-functions">Arithmetic Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/symbol-function.htm b/docsrc/xlisp/xlisp-doc/reference/symbol-function.htm
new file mode 100644
index 0000000..e63dc8a
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/symbol-function.htm
@@ -0,0 +1,67 @@
+<html><head><title>XLISP symbol-name</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>symbol-function</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(symbol-function <i>symbol</i>)</dt>
+<dd><i>symbol</i> - an expression that evaluates to a symbol name<br>
+returns - the symbol's functional value</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'symbol-function' function ... [this page was missing in the
+original reference and still needs to be written].</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#symbol-function">symbol-function</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/symbol-name.htm b/docsrc/xlisp/xlisp-doc/reference/symbol-name.htm
new file mode 100644
index 0000000..8ab1ac2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/symbol-name.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP symbol-name</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>symbol-name</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>symbol-name</b> <i>symbol</i>)</dt>
+<dd><i>symbol</i> - an expression that evaluates to a symbol name<br>
+returns - the symbol's print name</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'symbol-name' function takes the 'symbol' expression and returns the
+printable string of the 'symbol'. If the 'symbol' had not existed, then it
+will be created and <a href="intern.htm">intern</a>ed into the
+system symbol table
+<nobr><a href="global-obarray.htm">*obarray*</a> ,</nobr> but with it's
+value unbound and an empty property list.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(symbol-name 'foo) <font color="#008844">; returns "FOO"</font>
+(symbol-name 'gleep) <font color="#008844">; returns "GLEEP"</font>
+
+(setq my-symbol 'flop) <font color="#008844">; define MY-SYMBOL</font>
+(symbol-name my-symbol) <font color="#008844">; returns "FLOP"</font>
+</pre>
+
+<p><b>XLISP Bug:</b> The 'symbol-name' function signals a 'bad
+argument type' error with the <nobr>symbol
+<a href="nil.htm">NIL</a></nobr> <nobr>[Nyquist 3.03</nobr> in
+<nobr>December 2010]</nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/symbol-plist.htm b/docsrc/xlisp/xlisp-doc/reference/symbol-plist.htm
new file mode 100644
index 0000000..3260cd1
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/symbol-plist.htm
@@ -0,0 +1,85 @@
+<html><head><title>XLISP symbol-plist</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>symbol-plist</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr> xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(symbol-plist <i>symbol</i>)</dt>
+<dd><i>symbol</i> - the symbol name with a property list<br>
+returns - the symbol's property list </dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'symbol-plist' function returns the actual property list from the
+'symbol'. The 'symbol' must be an existing, bound variable, but it does not
+need to have anything in it's property list.</p>
+
+<p>Property lists are lists attached to any user defined variables. The lists
+are in the form of:</p>
+
+<pre class="example">
+(<font color="#008844"><i>name1 val1 name2 val2</i></font> ....)
+</pre>
+
+<p>Any number of properties may be attached to a single variable.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq person 'bobby) <font color="#008844">; create a var with a value</font>
+(putprop person 'boogie 'last-name) <font color="#008844">; add a LAST-NAME property</font>
+(putprop person 'disc-jockey 'job) <font color="#008844">; add a JOB property</font>
+(putprop person '(10 20 30) 'stats) <font color="#008844">; add a STATS list</font>
+
+(symbol-plist person) <font color="#008844">; returns the property list:</font>
+ <font color="#008844">; (STATS (10 20 30)</font>
+ <font color="#008844">; JOB DISC-JOCKEY</font>
+ <font color="#008844">; LAST-NAME BOOGIE)</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#symbol-plist">symbol-plist</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/symbol-value.htm b/docsrc/xlisp/xlisp-doc/reference/symbol-value.htm
new file mode 100644
index 0000000..7097d22
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/symbol-value.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP symbol-value</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>symbol-value</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(symbol-value <i>symbol</i>)</dt>
+<dd><i>symbol</i> - an expression that evaluates to a symbol name<br>
+returns - the symbol's value</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'symbol-value' function takes the 'symbol' expression and returns
+the current value of the 'symbol'.</p>
+
+<p>If the 'symbol' had not existed, then it will be created and
+<a href="intern.htm">intern</a>ed into the system symbol table
+<nobr><a href="global-obarray.htm">*obarray*</a> ,</nobr> but with it's
+value unbound and an empty property list. In this case of a previously
+non-existant 'symbol', since it has no bound value, the 'symbol-value'
+function will still report an error due to an unbound variable.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq myvar 55) <font color="#008844">; set MYVAR to value 55</font>
+(symbol-value 'myvar) <font color="#008844">; returns 55</font>
+(symbol-value 'floop) <font color="#008844">; error: unbound variable</font>
+
+(setq my-symbol 'a) <font color="#008844">; set MY-SYMBOL to A</font>
+
+(setq a '(contents of symbol a)) <font color="#008844">; set A to value (CONTENTS OF SYMBOL A)</font>
+
+(symbol-value my-symbol) <font color="#008844">; returns (CONTENTS OF SYMBOL A)</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-013.htm#symbol-value">symbol-value</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/symbolp.htm b/docsrc/xlisp/xlisp-doc/reference/symbolp.htm
new file mode 100644
index 0000000..c27fd71
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/symbolp.htm
@@ -0,0 +1,85 @@
+<html><head><title>XLISP symbolp</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>symbolp</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(symbolp <i>expr</i>)</dt>
+<dd><i>expr</i> - the expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the expression
+is a symbol, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'symbolp' predicate function checks if an 'expr' is a valid symbol.
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned if 'expr' is a
+symbol, <a href="nil.htm">NIL</a> is returned otherwise. An
+'expr' that evaluates to an integer, function [subr or otherwise], and so
+on is not a symbol. However, the quoted [un-evaluated] name of these
+objects [like 'myarray] is a valid symbol.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(symbolp (make-symbol "a")) <font color="#008844">; returns T - symbol</font>
+(symbolp 'a) <font color="#008844">; returns T - symbol</font>
+
+(symbolp #(1 2 3)) <font color="#008844">; returns NIL - array</font>
+(symbolp (lambda (x) (print x))) <font color="#008844">; returns NIL - closure</font>
+(symbolp *standard-output*) <font color="#008844">; returns NIL - stream</font>
+(symbolp 1.2) <font color="#008844">; returns NIL - float</font>
+(symbolp 2) <font color="#008844">; returns NIL - integer</font>
+(symbolp object) <font color="#008844">; returns NIL - object</font>
+(symbolp "hi") <font color="#008844">; returns NIL - string</font>
+
+(symbolp #'car) <font color="#008844">; returns NIL - subr</font>
+(symbolp 'car) <font color="#008844">; returns T - it is a symbol now</font>
+(symbolp '2) <font color="#008844">; returns NIL - not a symbol</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#symbolp">symbolp</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/system.htm b/docsrc/xlisp/xlisp-doc/reference/system.htm
new file mode 100644
index 0000000..e2f5888
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/system.htm
@@ -0,0 +1,73 @@
+<html><head><title>XLISP system</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>system</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>sys/unix/osstuff.c, sys/mac/macfun.c, sys/win/msvc/winfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(system <i>command</i>)</dt>
+<dd><i>command</i> - the OS command string to be executed<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the command
+was successful, the error code otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'system' function will send the 'command' string to the underlying
+operating system for execution. After execution of the 'command', the
+'system' function will return a
+<a href="t.htm">&nbsp;T&nbsp;</a> result if the 'command' was
+successful. If the 'command' was not successful, the numeric error code will
+be returned. Any output from the 'command' execution will not be put in the
+transcript file.</p>
+
+<p><b>Note:</b> In Nyquist, this function is only defined to work on Unix
+systems [including Linux and <nobr>Mac OS X]</nobr>. <nobr>On
+Windows</nobr> systems, <a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(system "ls") <font color="#008844">; do a directory listing</font>
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/t.htm b/docsrc/xlisp/xlisp-doc/reference/t.htm
new file mode 100644
index 0000000..99e3e63
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/t.htm
@@ -0,0 +1,71 @@
+<html><head><title>XLISP t</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>t</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>system constant</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>&nbsp;t</dt>
+</dl>
+
+<h2>Description</h2>
+
+<p>The T system constant is built into XLISP. T represents 'true',
+as oppossed to <nobr><a href="nil.htm">NIL</a> ,</nobr>
+representing 'false'.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq myvar T) <font color="#008844">; set MYVAR to True</font>
+(setq myvar 'T) <font color="#008844">; T and 'T both evaluate to T</font>
+(if t (print "this will print") <font color="#008844">; if, then, else</font>
+ (print "this won't print"))
+</pre>
+
+<p><b>Note:</b> Be careful with the T value. It is possible to do a
+<a href="setq.htm">setq</a> on T and set it to other values like
+<a href="nil.htm">NIL</a>. Some operations will still return
+proper T or <a href="nil.htm">NIL</a> values, but the system
+will be in a bad state.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/tagbody.htm b/docsrc/xlisp/xlisp-doc/reference/tagbody.htm
new file mode 100644
index 0000000..123167d
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/tagbody.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP tagbody</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>tagbody</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(tagbody [<i>expr</i> ... ])</dt>
+<dd><i>expr</i> - expressions comprising the body of the block which may
+contain <a href="go.htm">go</a>s or tags for
+<a href="go.htm">go</a><br>
+returns - <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'tagbody' special form is basically a 'block' construct that contains
+a block of code [expressions] to evaluate. After the execution of the
+'tagbody' 'exprs', <a href="nil.htm">NIL</a> is returned. The
+'tagbody' special form allows 'go-to' style branching within the 'block'
+construct via the <a href="go.htm">go</a> special form. To allow
+this, each 'expr' may be a tag or a form. The tag-symbol is the 'label' and
+must exist somewhere within the 'block' that the <a
+href="go.htm">go</a> occurs within.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(tagbody <font color="#008844">; build the 'block'</font>
+ start (print "begin") <font color="#008844">; tag - start</font>
+ (GO end)
+ (print "hello") <font color="#008844">; won't ever be reached</font>
+ end (print "done")) <font color="#008844">; tag - END</font>
+ <font color="#008844">; prints "begin" "done"</font>
+ <font color="#008844">; returns NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-021.htm#tagbody">tagbody</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/tan.htm b/docsrc/xlisp/xlisp-doc/reference/tan.htm
new file mode 100644
index 0000000..81fd0de
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/tan.htm
@@ -0,0 +1,76 @@
+<html><head><title>XLISP tan</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>tan</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(tan <i>expr</i>)</dt>
+<dd><i>expr</i> - floating point number or expression<br>
+returns - the tangent of the number</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'tan' function calculates the tangent of the 'expr' and returns the
+result. The 'expr' is in radians.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(tan 0.0) <font color="#008844">; returns 0</font>
+(tan 1.0) <font color="#008844">; returns 1.55741</font>
+(tan (/ 3.14159 2)) <font color="#008844">; returns 753696</font>
+(tan 2.0) <font color="#008844">; returns -2.18504</font>
+(tan 3.0) <font color="#008844">; returns -0.142547</font>
+(tan 3.14159) <font color="#008844">; returns -2.65359e-06</font>
+(tan 4.5) <font color="#008844">; returns 4.63733</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp allows for integer numbers, which
+XLISP does not support for 'tan'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#tan">tan</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/terpri.htm b/docsrc/xlisp/xlisp-doc/reference/terpri.htm
new file mode 100644
index 0000000..2b5cdf2
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/terpri.htm
@@ -0,0 +1,90 @@
+<html><head><title>XLISP terpri</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>terpri</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c, xlprin.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(terpri [<i>dest</i>])</dt>
+<dd><i>dest</i> - an optional destination, must be a file pointer or
+stream, default is <a href="global-standard-output.htm">*standard-output*</a><br>
+returns - <a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'terpri' function prints a new-line to the specified 'destination'
+This will terminate the current print line for 'destination'.
+<a href="nil.htm">NIL</a> is always returned as the result. The
+'destination' may be a file pointer or a stream. If there is no
+'destination', <a href="global-standard-output.htm">*standard-output*</a> is the
+default.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(terpri) <font color="#008844">; prints #\Newline</font>
+
+(setq f (open "pr" :direction :output)) <font color="#008844">; create a file</font>
+(princ "hi" f) <font color="#008844">; returns "hi"</font>
+(princ 727 f) <font color="#008844">; returns 727</font>
+(princ "ho" f) <font color="#008844">; returns "ho"</font>
+(terpri f) <font color="#008844">; returns NIL</font>
+(close f) <font color="#008844">; file contains hi727ho#\Newline</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that print operations with a
+'destination' of <a href="nil.htm">NIL</a> will go to
+<a href="global-standard-output.htm">*standard-output*</a>. XLISP does not send the
+output to <a href="global-standard-output.htm">*standard-output*</a> with a
+'destination' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'destination' of
+<a href="t.htm">&nbsp;T&nbsp;</a> will be sent to
+*terminal-io*, which is not defined in XLISP by default. XLISP does not
+allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid argument
+for 'destination'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-027.htm#terpri">terpri</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/third.htm b/docsrc/xlisp/xlisp-doc/reference/third.htm
new file mode 100644
index 0000000..78fab50
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/third.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP third</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>third</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlinit.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(third <i>expr</i>)</dt>
+<dl><i>expr</i> - a list or list expression<br>
+returns - the third element of <i>expr</i> or
+<a href="nil.htm">NIL</a></dl>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'third' function returns the third element of a list or list
+expression. If the list is
+<nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(third '(1 2 3 4)) <font color="#008844">; returns 3</font>
+(third NIL) <font color="#008844">; returns NIL</font>
+
+(setq kids '(junie vickie cindy chris)) <font color="#008844">; set up variable KIDS</font>
+(first kids) <font color="#008844">; returns JUNIE</font>
+(second kids) <font color="#008844">; returns VICKIE</font>
+(third kids) <font color="#008844">; returns CINDY</font>
+(fourth kids) <font color="#008844">; returns CHRIS</font>
+(rest kids) <font color="#008844">; returns (VICKIE CINDY CHRIS)</font>
+</pre>
+
+<p><b>Note:</b> This function is set to the same code as
+<a href="caaar.htm">caddr</a>.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-016.htm#third">third</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/throw.htm b/docsrc/xlisp/xlisp-doc/reference/throw.htm
new file mode 100644
index 0000000..4b12de6
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/throw.htm
@@ -0,0 +1,23 @@
+<html><head><title>XLISP throw</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>throw</h1>
+
+<hr>
+
+<p>See <a href="catch.htm">catch</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/top-level.htm b/docsrc/xlisp/xlisp-doc/reference/top-level.htm
new file mode 100644
index 0000000..6a0a8e3
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/top-level.htm
@@ -0,0 +1,91 @@
+<html><head><title>XLISP top-level</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>top-level</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c, xldbug.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(top-level)</dt>
+<dd>returns - never returns</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'top-level' function aborts to the top level of XLISP. This may be
+from within several levels of the
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a></nobr>.
+This is valid for
+<a href="break.htm">break</a>s,
+<a href="error.htm">error</a>s and
+<a href="cerror.htm">cerror</a>s [continuable errors]. If 'top-level'
+is evaluated while not in a
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a> ,</nobr>
+a message is printed:
+
+<pre class="example">
+<font color="#008844">[ back to top level ]</font>
+</pre>
+
+<p>This message does not cause XLISP to go into a
+<nobr><a href="../manual/xlisp-man-004.htm">break loop</a></nobr>.
+The 'top-level' function never actually returns a value.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(top-level) <font color="#008844">; [ back to top level ]</font>
+
+(break "out") <font color="#008844">; break: out (1st)</font>
+(break "twice") <font color="#008844">; break: twice (2nd)</font>
+(top-level) <font color="#008844">; to exit out of the break loop</font>
+</pre>
+
+<p><b>Keyboard:</b> In the IBM PC and MS-DOS versions of XLISP, a 'Ctrl+c'
+key sequence has the same effect as doing a (top-level). On a Macintosh,
+this can be accomplished by a pull-down menu or a 'Command+t'. [I haven't
+tested this with Nyquist.]</p>
+
+<p>See the
+<a href="../manual/xlisp-man-022.htm#top-level">top-level</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/trace.htm b/docsrc/xlisp/xlisp-doc/reference/trace.htm
new file mode 100644
index 0000000..f81f621
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/trace.htm
@@ -0,0 +1,93 @@
+<html><head><title>XLISP trace</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>trace</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(trace <i>function</i> ... )</dt>
+<dd><i>function</i> - an unquoted function<br>
+returns - the trace list</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'trace' special form allows the tracing of user or system functions.
+'trace' returns a list containing the current set of functions that are
+being traced. The 'function' does not have to be currently defined, it can
+be created as part of the execution. The trace output consists of entry and
+exit information.</p>
+
+<p>At entry and exit of a traced 'function', lines will be printed of the
+form:</p>
+
+<pre class="example">
+Entering: <font color="#008844"><i>function</i></font>, Argument list: <font color="#008844"><i>arg-list</i></font>
+Exiting: <font color="#008844"><i>function</i></font>, Value: <font color="#008844"><i>return-value</i></font>
+</pre>
+
+<p>A list of all currently traced functions can be found in the
+<a href="global-tracelist.htm">*tracelist*</a> system variable.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun foo (x) (print (car x))) <font color="#008844">; define FOO</font>
+(trace 'foo) <font color="#008844">; returns (FOO)</font>
+(trace 'car) <font color="#008844">; returns (CAR FOO)</font>
+
+(foo '(a)) <font color="#008844">; Entering: FOO, Argument list: ((A))</font>
+ <font color="#008844">; Entering: CAR, Argument list: ((A))</font>
+ <font color="#008844">; Exiting: CAR, Value: A</font>
+ <font color="#008844">; A</font>
+ <font color="#008844">; Exiting: FOO, Value: A</font>
+ <font color="#008844">; returns A</font>
+</pre>
+
+<p><b>Common Lisp:</b> The XLISP 'trace' function does not support any
+keyword options, which Common Lisp allows.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-022.htm#trace">trace</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/truncate.htm b/docsrc/xlisp/xlisp-doc/reference/truncate.htm
new file mode 100644
index 0000000..421ca7f
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/truncate.htm
@@ -0,0 +1,74 @@
+<html><head><title>XLISP truncate</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>truncate</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(truncate <i>expr</i>)</dt>
+<dd><i>expr</i> - integer or floating point number or expression<br>
+returns - the result of truncating <i>expr</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'truncate' function takes the 'expr' and truncates it to an integer
+value and returns this result.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(truncate 123.456) <font color="#008844">; returns 123</font>
+(truncate -1.49) <font color="#008844">; returns -1</font>
+(truncate -1.59) <font color="#008844">; returns -1</font>
+(truncate 123) <font color="#008844">; returns 123</font>
+(truncate 123.999) <font color="#008844">; returns 123</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common LISP allows an optional division parameter,
+which XLISP does not support.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-023.htm#truncate">truncate</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/type-of.htm b/docsrc/xlisp/xlisp-doc/reference/type-of.htm
new file mode 100644
index 0000000..1e01c24
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/type-of.htm
@@ -0,0 +1,103 @@
+<html><head><title>XLISP type-of</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>type-of</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlsys.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(type-of <i>expr</i>)</dt>
+<dd><i>expr</i> - an expression to check<br>
+returns - the type of the expression</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'type-of' function returns the type of the expression.</p>
+
+<ul>
+<li><nobr>SYMBOL - for symbols</nobr></li>
+<li><nobr>OBJECT - for objects</nobr></li>
+<li><nobr>CONS - for conses</nobr></li>
+<li><nobr>SUBR - for built-in functions</nobr></li>
+<li><nobr>FSUBR - for special forms</nobr></li>
+<li><nobr>CLOSURE - for defined functions</nobr></li>
+<li><nobr>STRING - for strings</nobr></li>
+<li><nobr>FIXNUM - for integers</nobr></li>
+<li><nobr>FLONUM - for floating point numbers</nobr></li>
+<li><nobr>CHARACTER - for characters</nobr></li>
+<li><nobr>FILE-STREAM - for file pointers</nobr></li>
+<li><nobr>UNNAMED-STREAM - for unnamed streams</nobr></li>
+<li><nobr>ARRAY - for arrays</nobr></li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(type-of NIL) <font color="#008844">; returns NIL</font>
+(type-of '#(1 2 3)) <font color="#008844">; returns ARRAY</font>
+(type-of (lambda (x) (print x))) <font color="#008844">; returns CLOSURE</font>
+(type-of '(a b)) <font color="#008844">; returns CONS</font>
+(type-of #'savefun) <font color="#008844">; returns CLOSURE</font>
+(type-of '(a . b)) <font color="#008844">; returns CONS</font>
+(type-of *standard-output*) <font color="#008844">; returns FILE-STREAM</font>
+(type-of 1.2) <font color="#008844">; returns FLONUM</font>
+(type-of #'do) <font color="#008844">; returns FSUBR</font>
+(type-of 1) <font color="#008844">; returns FIXNUM</font>
+(type-of object) <font color="#008844">; returns OBJECT</font>
+(type-of "str") <font color="#008844">; returns STRING</font>
+(type-of #'car) <font color="#008844">; returns SUBR</font>
+(type-of 'a) <font color="#008844">; returns SYMBOL</font>
+(type-of #\a) <font color="#008844">; returns CHARACTER</font>
+(type-of (make-string-input-stream "a")) <font color="#008844">; returns UNNAMED-STREAM</font>
+</pre>
+
+<p><b>Common Lisp:</b> The XLISP and Common Lisp 'type-of' functions are
+basically the same. Differences between the two can occur in what the types
+are called [like CHARACTER in XLISP and STANDARD-CHAR in Common Lisp]. Also,
+Common Lisp can give additional information. For strings, it returns a list
+of the form (SIMPLE-STRING 32) where the number 32 is the string size.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-031.htm#type-of">type-of</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/union.htm b/docsrc/xlisp/xlisp-doc/reference/union.htm
new file mode 100644
index 0000000..d728399
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/union.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP union</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>union</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp function (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xm.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>union</b> <i>list1 list2</i>)</nobr></dt>
+<dd><i>listN</i> - a list of symbols or numbers<br>
+returns - the union of <i>list1</i> and <i>list2</i></dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, 'union' is implemented as a Lisp function:</p>
+
+<pre class="example">
+(defun <font color="#0000CC">union</font> (a b)
+ (let (result)
+ (dolist (elem a)
+ (if (not (member elem result)) (push elem result)))
+ (dolist (elem b)
+ (if (not (member elem result)) (push elem result)))
+ result))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'union' function computes the union of two lists. <nobr>The
+result</nobr> is a list containing all elements of both lists, where every
+element appears exactly once.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/unless.htm b/docsrc/xlisp/xlisp-doc/reference/unless.htm
new file mode 100644
index 0000000..d54cbd0
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/unless.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP unless</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>unless</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(unless <i>test</i> [<i>expr</i> ... ])</dt>
+<dd><i>test</i> - an expression, <a href="nil.htm">NIL</a> or
+non-<a href="nil.htm">NIL</a><br>
+<i>expr</i> - expressions comprising a body of code<br>
+returns - the value of the last expression or
+<a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'unless' special form executes the 'expr' forms if 'test' evaluates
+to a <a href="nil.htm">NIL</a> value. If 'test' is
+<nobr><a href="nil.htm">NIL</a> ,</nobr> the value of the last
+'expr' is returned as the result. If 'test' is
+<nobr>non-<a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> is returned with none of 'expr'
+evaluated.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(unless NIL) <font color="#008844">; returns NIL</font>
+(unless T) <font color="#008844">; returns NIL</font>
+
+(unless NIL (print "hi") 'foo) <font color="#008844">; prints "hi" returns FOO</font>
+
+(unless (listp "a")
+ (print "not a list")) <font color="#008844">; prints "not a list"</font>
+ <font color="#008844">; returns "not a list"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-019.htm#unless">unless</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/untrace.htm b/docsrc/xlisp/xlisp-doc/reference/untrace.htm
new file mode 100644
index 0000000..5576b8e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/untrace.htm
@@ -0,0 +1,86 @@
+<html><head><title>XLISP untrace</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>untrace</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(untrace function ... )</dt>
+<dd><i>function</i> - a function name<br>
+returns - the trace list</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'untrace' function removes 'function' from the current list of traced
+functions. 'untrace' returns a list containing the current set of functions
+that are being traced. If the 'function' does currently exist or is
+currently be traced, there will be no error reported. If there are no
+functions being traced, a <a href="nil.htm">NIL</a> is
+returned. A list of all currently traced functions can be found in the
+<a href="global-tracelist.htm">*tracelist*</a> system variable.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(defun foo (x) (print (car x))) <font color="#008844">; define FOO</font>
+(trace 'foo) <font color="#008844">; returns (FOO)</font>
+
+(foo '(a)) <font color="#008844">; Entering: FOO, Argument list: ((A))</font>
+ <font color="#008844">; A</font>
+ <font color="#008844">; Exiting: FOO, Value: A</font>
+ <font color="#008844">; returns A</font>
+
+(untrace 'foo) <font color="#008844">; returns NIL</font>
+(untrace 'glip) <font color="#008844">; returns NIL</font>
+
+(foo '(a)) <font color="#008844">; prints A returns A</font>
+</pre>
+
+<p><b>Common Lisp:</b> The XLISP 'untrace' function does not support any
+options, which Common Lisp allows.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-022.htm#untrace">untrace</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/unwind-protect.htm b/docsrc/xlisp/xlisp-doc/reference/unwind-protect.htm
new file mode 100644
index 0000000..1f40d74
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/unwind-protect.htm
@@ -0,0 +1,137 @@
+<html><head><title>XLISP unwind-protect</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>unwind-protect</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(unwind-protect <i>protect-form clean-up-form</i> ... )</dt>
+<dd><i>protect-form</i> - a form that is to be protected<br>
+<i>clean-up-form</i> - a sequence forms to execute after <i>protect-form</i><br>
+returns - the value of <i>protect-form</i></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p> The 'unwind-protect' special form allows the protecting [trapping] of
+all forms of exit from the 'protect-form'. The exits that are trapped
+include errors, <nobr><a href="throw.htm">throw</a> ,</nobr> <a
+href="return.htm">return</a> and <a
+href="go.htm">go</a>. The 'clean-up-form' will be executed in
+all cases, when there is an exit from 'protect-form' and when the form does
+not have exit. 'unwind-protect' will return the result from the
+'protect-form', not from the 'clean-up-forms'. Errors or exits that occur in
+the 'clean-up-form' are not protected. It is possible to trap these with
+another 'unwind-protect'.</p>
+
+<p><div class="box">
+
+<p><b>Note:</b> 'unwind-protext' will not protect against errors signalled
+by <nobr>built-in</nobr> functions if
+<a href="global-breakenable.htm">*breakenable*</a> is <nobr>not
+<a href="nil.htm">NIL</a></nobr></nobr>.</p>
+
+</div></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(unwind-protect
+ (+ 2 2) <font color="#008844">; protected form</font>
+ (print "an exit")) <font color="#008844">; clean up form</font>
+ <font color="#008844">; prints "an exit"</font>
+ <font color="#008844">; returns 4</font>
+</pre>
+
+<pre class="example">
+(setq *breakenable* nil) <font color="#008844">; to turn off break loop traps</font>
+
+(unwind-protect
+ (+ 1 "2") <font color="#008844">; protected form</font>
+ (print "something happened")) <font color="#008844">; clean up form</font>
+ <font color="#008844">; error: bad argument type - "2"</font>
+ <font color="#008844">; prints "something happened"</font>
+</pre>
+
+<pre class="example">
+(catch 'mytag
+ (unwind-protect
+ (throw 'mytag) <font color="#008844">; protected form</font>
+ (print "an exit"))) <font color="#008844">; clean up form</font>
+ <font color="#008844">; prints "an exit"</font>
+</pre>
+
+<pre class="example">
+(setq *breakenable* nil) <font color="#008844">; to turn off break loop traps</font>
+
+(unwind-protect
+ (throw 'notag) <font color="#008844">; protected form</font>
+ (print "an exit")) <font color="#008844">; clean up form</font>
+ <font color="#008844">; error: no target for THROW</font>
+ <font color="#008844">; prints "an exit"</font>
+</pre>
+
+<pre class="example">
+(prog () (print "start")
+ (unwind-protect
+ (go end) <font color="#008844">; protected form</font>
+ (print "an exit")) <font color="#008844">; clean-up form</font>
+ end (print "end")) <font color="#008844">; prints "start"</font>
+ <font color="#008844">; prints "an exit"</font>
+ <font color="#008844">; prints "end"</font>
+</pre>
+
+<pre class="example">
+(prog () (print "start")
+ (unwind-protect
+ (return "I'm done") <font color="#008844">; protected form</font>
+ (print "but first")) <font color="#008844">; clean-up form</font>
+ (print "won't get here")) <font color="#008844">; prints "start"</font>
+ <font color="#008844">; prints "but first"</font>
+ <font color="#008844">; returns "I'm done"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-019.htm#unwind-protect">unwind-protect</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/upper-case-p.htm b/docsrc/xlisp/xlisp-doc/reference/upper-case-p.htm
new file mode 100644
index 0000000..406f546
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/upper-case-p.htm
@@ -0,0 +1,76 @@
+<html><head><title>XLISP upper-case-p</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>upper-case-p</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlstr.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(upper-case-p <i>char</i>)</dt>
+<dd><i>char</i> - a character expression<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the character
+is upper case, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'upper-case-p' predicate function checks if the 'char' expression is
+an upper case character. If 'char' is upper case a
+<a href="t.htm">&nbsp;T&nbsp;</a> is returned, otherwise a
+<a href="nil.htm">NIL</a> is returned. Upper case characters are
+'A' [<a href="../misc/ascii-table.htm">ASCII</a> decimal <nobr>value
+65]</nobr> through 'Z' [<a href="../misc/ascii-table.htm">ASCII</a>
+decimal <nobr>value 90].</nobr></p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(upper-case-p #\A) <font color="#008844">; returns T</font>
+(upper-case-p #\a) <font color="#008844">; returns NIL</font>
+(upper-case-p #\1) <font color="#008844">; returns NIL</font>
+(upper-case-p #\[) <font color="#008844">; returns NIL</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-026.htm#upper-case-p">upper-case-p</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/vector.htm b/docsrc/xlisp/xlisp-doc/reference/vector.htm
new file mode 100644
index 0000000..4ef325e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/vector.htm
@@ -0,0 +1,73 @@
+<html><head><title>XLISP vector</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>vector</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(vector [<i>expr</i> ... ])</dt>
+<dd><i>expr</i> - an expression<br>
+returns - the new vector</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'vector' function creates an initialized vector and returns it as the
+result. 'vector' is essentially a fast method to do a one-dimensional <a
+href="make-array.htm">make-array</a> with initial data in the
+vector.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(vector 'a 'b 'c) <font color="#008844">; returns #(A B C)</font>
+(vector '(a b) '(c d)) <font color="#008844">; returns #((A B) (C D))</font>
+(vector) <font color="#008844">; returns #()</font>
+(vector NIL) <font color="#008844">; returns #(NIL)</font>
+(vector 'a () 4 "s") <font color="#008844">; returns #(A NIL 4 "s")</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-015.htm#vector">vector</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/when.htm b/docsrc/xlisp/xlisp-doc/reference/when.htm
new file mode 100644
index 0000000..5129f6e
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/when.htm
@@ -0,0 +1,82 @@
+<html><head><title>XLISP when</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>when</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>special form (fsubr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlcont.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(when <i>test</i> [<i>expr</i> ... ])</dt>
+<dd><i>test</i> - an expression, <a href="nil.htm">NIL</a>
+or non-<a href="nil.htm">NIL</a><br>
+<i>expr</i> - expressions comprising a body of code<br>
+returns - the value of the last expression or
+<a href="nil.htm">NIL</a></dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'when' macro executes the 'expr' forms if 'test' evaluates to a
+non-<a href="nil.htm">NIL</a> value. If 'test' is
+<nobr>non-<a href="nil.htm">NIL</a> ,</nobr> the value of the
+last 'expr' is returned as the result. If 'test' is
+<nobr><a href="nil.htm">NIL</a> ,</nobr>
+<a href="nil.htm">NIL</a> is returned with none of 'expr'
+evaluated.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(when NIL) <font color="#008844">; returns NIL</font>
+(when T) <font color="#008844">; returns T</font>
+
+(when T (print "hi") 'foo) <font color="#008844">; prints "hi" returns FOO</font>
+
+(when (listp '(a))
+ (print "a list")) <font color="#008844">; prints "a list"</font>
+ <font color="#008844">; returns "a list"</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-019.htm#when">when</a>
+special form in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/while.htm b/docsrc/xlisp/xlisp-doc/reference/while.htm
new file mode 100644
index 0000000..2a2f8da
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/while.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP while</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>while</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>Lisp macro (closure)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>misc.lsp</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt><nobr>(<b>while</b> <i>condition body</i>)</nobr></dt>
+<dd><i>condition</i> - test expression for terminating the 'while' loop<br>
+<dd><i>body</i> - Lisp expressions to be executed inside the loop<br>
+returns - returns <a href="nil.htm">NIL</a> or a value defined by
+(<a href="return.htm">return</a> <i>expr</i>) inside <i>body</i></dd>
+</dl>
+
+</div></p>
+
+<p>In Nyquist, 'while' is implemented as a Lisp macro:</p>
+
+<pre class="example">
+(defmacro <font color="#0000CC">while</font> (condition &rest body)
+ `(prog () loop (if ,condition () (return)) ,@body (go loop)))
+</pre>
+
+<h2>Description</h2>
+
+<p>The 'while' macro implements a conventional 'while' loop. <nobr>If
+the</nobr> 'condition' evaluates to true, the expressions in the in the
+'body' are evaluated, then the 'condition' is tested again. <nobr>If
+the</nobr> 'condition' evaluates to false, the 'while' loop terminates. The
+'while' macro returns <a href="nil.htm">NIL</a> unless a <nobr>(<a
+href="return.htm">return</a> <i>expr</i>)</nobr> is evaluated in the 'body',
+in which case the value of 'expr' is returned.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/write-byte.htm b/docsrc/xlisp/xlisp-doc/reference/write-byte.htm
new file mode 100644
index 0000000..6ceab26
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/write-byte.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP write-byte</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>write-byte</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(write-byte <i>expr</i> [<i>dest</i>])</dt>
+<dd><i>expr</i> - an integer expression<br>
+<i>dest</i> - an optional destination, must be a file pointer or stream,
+default is <a href="global-standard-output.htm">*standard-output*</a><br>
+returns - the byte as an integer</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'write-byte' function writes the 'expr' as a single byte to the
+specified 'destination'. Only the 'expr' byte is written. The 'expr' must be
+an integer expression. The 'expr' is returned as the result. The
+'destination' may be a file pointer or a stream. If there is no
+'destination', <a href="global-standard-output.htm">*standard-output*</a> is the
+default.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(write-byte 67) <font color="#008844">; prints C returns 67</font>
+
+(setq fp (open "t" :direction :output)) <font color="#008844">; create file</font>
+(write-byte 65 fp) <font color="#008844">; returns 65</font>
+(write-byte 66 fp) <font color="#008844">; returns 66</font>
+(write-byte 10 fp) <font color="#008844">; returns 10</font>
+(close fp) <font color="#008844">; returns NIL</font>
+
+(read (open "t" :direction :input)) <font color="#008844">; returns AB</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that print operations with a
+'destination' of <a href="nil.htm">NIL</a> will go to
+<a href="global-standard-output.htm">*standard-output*</a>. XLISP does not send the
+output to <a href="global-standard-output.htm">*standard-output*</a> with a
+'destination' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'destination' of
+<a href="t.htm">&nbsp;T&nbsp;</a> will be sent to
+*terminal-io*, which is not defined in XLISP by default. XLISP does not
+allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid argument
+for 'destination'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-029.htm#write-byte">write-byte</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/write-char.htm b/docsrc/xlisp/xlisp-doc/reference/write-char.htm
new file mode 100644
index 0000000..d4075cd
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/write-char.htm
@@ -0,0 +1,92 @@
+<html><head><title>XLISP write-char</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>write-char</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(write-char <i>char-expr</i> [<i>dest</i>])</dt>
+<dd><i>char-expr</i> - a character expression<br>
+<i>dest</i> - an optional destination, must be a file pointer or stream,
+default is <a href="global-standard-output.htm">*standard-output*</a><br>
+returns - the character</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'write-char' function writes the 'char-expr' to the specified
+'destination'. Only the 'char-expr' is written. The 'char-expr' must be a
+character expression. The 'char-expr' is returned as the result. The
+'destination' may be a file pointer or a stream. If there is no
+'destination', <a href="global-standard-output.htm">*standard-output*</a> is the
+default.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(write-char #\C) <font color="#008844">; prints C</font>
+
+(setq fp (open "t" :direction :output)) <font color="#008844">; create file</font>
+(write-char #\A fp) <font color="#008844">; returns #\A</font>
+(write-char #\B fp) <font color="#008844">; returns #\B</font>
+(write-char #\Newline fp) <font color="#008844">; returns #\Newline</font>
+(close fp) <font color="#008844">; returns NIL</font>
+
+(read (open "t" :direction :input)) <font color="#008844">; returns AB</font>
+</pre>
+
+<p><b>Common Lisp:</b> Common Lisp specifies that print operations with a
+'destination' of <a href="nil.htm">NIL</a> will go to
+<a href="global-standard-output.htm">*standard-output*</a>. XLISP does not send the
+output to <a href="global-standard-output.htm">*standard-output*</a> with a
+'destination' of <a href="nil.htm">NIL</a>. Common Lisp also
+specifies that a 'destination' of
+<a href="t.htm">&nbsp;T&nbsp;</a> will be sent to
+*terminal-io*, which is not defined in XLISP by default. XLISP does not
+allow <a href="t.htm">&nbsp;T&nbsp;</a> as a valid argument
+for 'destination'.</p>
+
+<p>See the
+<a href="../manual/xlisp-man-029.htm#write-char">write-char</a>
+function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/write-float.htm b/docsrc/xlisp/xlisp-doc/reference/write-float.htm
new file mode 100644
index 0000000..f5bce92
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/write-float.htm
@@ -0,0 +1,80 @@
+<html><head><title>XLISP write-float</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>write-float</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(write-float <i>float</i> [<i>stream</i> [<i>length</i>]])</dt>
+<dd><i>float</i> - the floating point number to write<br>
+<i>stream</i> - the output stream [default is standard output]<br>
+<i>length</i> - the length of the float in bytes [default is 4,
+legal values are -4, -8, 4, and 8]<br>
+returns - the float</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>write-float</nobr>' function writes a binary floating point
+number to an output stream, created by the
+<nobr><a href="open-binary.htm">open-binary</a></nobr> function.</p>
+
+<p><b>Note:</b> Integers and floats are assumed to be
+<nobr>big-endian</nobr> [<nobr>high-order</nobr> byte first] and signed,
+regardless of the platform. <nobr>To read</nobr> <nobr>little-endian</nobr>
+format, use a negative number for the length, e.g. '-4' indicates a
+<nobr>4-bytes</nobr>, <nobr>low-order</nobr> byte first. The file should be
+opened in binary mode.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p>See also <nobr><a href="read-int.htm">read-int</a></nobr>,
+<nobr><a href="write-int.htm">write-int</a></nobr>,
+<nobr><a href="read-float.htm">read-float</a></nobr>,
+<nobr><a href="bigendianp.htm">bigendianp</a></nobr>,
+<nobr><a href="open-binary.htm">open-binary</a></nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/write-int.htm b/docsrc/xlisp/xlisp-doc/reference/write-int.htm
new file mode 100644
index 0000000..131f9ae
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/write-int.htm
@@ -0,0 +1,79 @@
+<html><head><title>XLISP write-int</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>write-int</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlfio.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(write-int <i>integer</i> [<i>stream</i> [<i>length</i>]])</dt>
+<dd><i>integer</i> - the integer to write<br>
+<i>stream</i> - the output stream [default is standard output]<br>
+<i>length</i> - the length of the integer in bytes [default is 4]<br>
+returns - the integer</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The '<nobr>write-int</nobr>' function writes an integer to a binary output
+stream, created by the
+<nobr><a href="open-binary.htm">open-binary</a></nobr> function.</p>
+
+<p><b>Note:</b> Integers and floats are assumed to be
+<nobr>big-endian</nobr> [<nobr>high-order</nobr> byte first] and signed,
+regardless of the platform. <nobr>To read</nobr> <nobr>little-endian</nobr>
+format, use a negative number for the length, e.g. '-4' indicates a
+<nobr>4-bytes</nobr>, <nobr>low-order</nobr> byte first. The file should be
+opened in binary mode.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+
+</pre>
+
+<p>See also <nobr><a href="read-int.htm">read-int</a></nobr>,
+<nobr><a href="read-float.htm">read-float</a></nobr>,
+<nobr><a href="write-float.htm">write-float</a></nobr>,
+<nobr><a href="bigendianp.htm">bigendianp</a></nobr>,
+<nobr><a href="open-binary.htm">open-binary</a></nobr>.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file
diff --git a/docsrc/xlisp/xlisp-doc/reference/zerop.htm b/docsrc/xlisp/xlisp-doc/reference/zerop.htm
new file mode 100644
index 0000000..014101b
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/zerop.htm
@@ -0,0 +1,81 @@
+<html><head><title>XLISP zerop</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>zerop</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>predicate function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlmath.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<dl>
+<dt>(zerop <i>expr</i>)</dt>
+<dd><i>expr</i> - the numeric expression to check<br>
+returns - <a href="t.htm">&nbsp;T&nbsp;</a> if the number is
+zero, <a href="nil.htm">NIL</a> otherwise</dd>
+</dl>
+
+<h2>Description</h2>
+
+<p>The 'zerop' predicate function checks to see if the number 'expr' is
+zero. <a href="t.htm">&nbsp;T&nbsp;</a> is returned if the
+number is zero, <a href="nil.htm">NIL</a> is returned otherwise.
+An error is generated if the 'expr' is not a numeric expression:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument type</font>
+</pre>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(zerop 0) <font color="#008844">; returns T</font>
+(zerop 0.0) <font color="#008844">; returns T</font>
+(zerop 99999.9) <font color="#008844">; returns NIL</font>
+(zerop -0.000000000002) <font color="#008844">; returns NIL</font>
+
+(zerop 'a) <font color="#008844">; error: bad argument type</font>
+(setq a 0) <font color="#008844">; set value of A to 0</font>
+(zerop a) <font color="#008844">; returns T</font>
+</pre>
+
+<p>See the
+<a href="../manual/xlisp-man-018.htm#zerop">zerop</a>
+predicate function in the <nobr>XLISP 2.0</nobr> manual.</p>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file