Arbeitsweise

Der LISP 64 - Interpreter ist ein EVAL-Lisp, das heit: erstes Element =
Funktion, Rest = Argumente.  Funktionen knnen sein:

    Systemfunktionen (CAR, PLUS, ...)
    LAMBDA-Ausdruck
    NLAMBDA-Ausdrcke (Argumente werden nicht ausgewertet)
    LABEL-Ausdrcke
    durch DE, DF, DM definierte Funktionen
    VALUE eines Literals 

Die Speicherkonfiguration ist prinzipiell vernderbar durch folgende Adressen:

    $0906 (dez. 2310) FSLTOP
    $0908 (dez. 2312) DSTACK
    $090A (dez. 2314) ASTACK 

Beim Starten durchfluft der Interpreter den ganzen Speicher und baut eine
verkettete Freispeicherliste (FSL) von Lisp-Knoten (jeweils 5 Byte pro Knoten)
auf.

Das Basic wird abgeschaltet (leider keine Fliekomma-Arithmetik mehr) und das
RAM darunter mit als Speicher benutzt.

Das Kernal wird weiterhin fr den Screen-Editor und I/O benutzt. Viele
Vektoren werden auf den LISP-Interpreter umgelenkt (z.B. ist SuperTape
eingebaut).

Unter dem Kernal gibt es zwei Stacks: der Datenstack ab $E000 aufwrts und der
Adressenstack von $FFFE abwrts. Stack-berlauf gibt es, wenn diese sich mal
irgendwo in der Mitte treffen. Der Vorteil der Stapel unter dem Kernal ist,
dass sie grer sein knnen (und bei LISP wohl auch mssen), als das, was der
Prozessor mitbringt.

Der Interpreter nutzt dann fr einige sich rekursiv tief aufrufenden
Funktionen eine eigene JSR-Variante, die diese Stacks benutzt. Beim Lesen
(Pop) aus den Stacks muss kurzzeitig das Kernal-ROM abgeschaltet werden. Beim
"Push" muss nichts besonderes passieren, da die Schreibzugriffe direkt ins RAM
gehen. 

