[LispM-Hackers] Help! Confusion about "registers"

Paul Fuqua pf@ti.com
Tue, 10 Apr 2001 11:30:06 -0500 (CDT)


    Date: Tue, 10 Apr 2001 00:08:02 -0400
    From: John Morrison <jm@mak.com>
    
    It mentions that call state is kept in the five registers:
       M-CALL-INFO
       M-ARGUMENT-POINTER
       M-LOCAL-POINTER
       M-FEF
       LOCATION-COUNTER

The first four are M-memory locations.  The latter is actually a
hardware register, feeding into the instruction-fetch mechanism.

Inheriting from the old CADR, the Explorer had a 1024-element A memory
and 32-element M memory.  The M memory was effectively the register
file.  A quirk in the datapath caused writes to the M side to be
reflected in the A side, so you could read the M-memory values from
either side and thus get register-like behavior.

I don't recall them being memory "mapped" as such.  While some of the
value cells for important variables are actually A-memory locations, I
don't know if the M side was directly visible.  But I could be wrong.

As for restoration, I'm pretty sure the stack-group code explicitly
loads them from the top of the stack when switching to the new stack
group.

I really need to put my Explorer back together and get back into this
stuff.

                              pf