Annotation of 41BSD/cmd/liszt/doc/liszt.doc, revision 1.1.1.1

1.1       root        1: ;      Liszt documentation
                      2: 
                      3: Addresses
                      4: There are four types of addresses used internally in Franz.
                      5: 
                      6: Symbolic:
                      7:        These are the names of lisp objects, such as `a', `foo', 34,
                      8:        or 3.234234.
                      9:        A name is either a local variable, a special variable or a
                     10:        number.  A number is either a small fixnum, large fixnum,
                     11:        bignum or floating point number.
                     12: 
                     13: IADR (intermediate address)
                     14:        This type of address is generated from a symbolic address by
                     15:        d-loc, d-loclit and the routines d-simple, d-rsimple which
                     16:        call them. The forms are
                     17: 
                     18:        Nil - the location or value of nil.
                     19:        T   - the location or value of t.
                     20:        reg - register r0, which is where the result of function calls
                     21:              are stored.
                     22:        stack - the address pointed to by np with np incremented after
                     23:                the value is stored.  I.E. this is (r6)+
                     24:        unstack - the address one word below np (np is decremented before
                     25:                  accessing. I.E this is -(r6)
                     26:        <atom> - this is just <atom> .  This allows strange forms to be
                     27:                 passed directly.
                     28:        (stack n) - The n'th value on the namestack for this function.
                     29:                    The first value 0(r10) is (stack 1).
                     30:        (vstack n) - The cdr of the n'th value on the namestack.  
                     31:                     That is, (stack 1) is *0(r10)
                     32:        (bind n) - The value of the n'th value on the bindstack.  If 
                     33:                   we are talking about a symbol, then this is the value
                     34:                   of the symbol, if we are talking about a list this
                     35:                   this is the cdr of the list (although this is a rare
                     36:                   use). (bind 1) corresponds to *0(r8).
                     37:        (lbind n) - The n'th value on the bindstack.  If we are talking
                     38:                   about object foo then this is the address of foo
                     39:                   in memory.
                     40:        (fixnum n) - This is the address of small fixnum n in memory.
                     41:                     A small fixnum is in the range -1024 to 1023.
                     42:        (immed n)  - The is the immediate constant n. 
                     43: 
                     44: 
                     45: EIADR (extended intermediate address)
                     46:        This address is generated from an IADR by e-cvt.  It 
                     47:        represents symbolically a vax address.  
                     48: 
                     49:        <atom> - This corresponds to <atom>.
                     50:        (n <atom>)  - This corresponds to n(<atom>)
                     51:                      (stack n+1) and (lbind n+1) are converted to these forms.
                     52:        (n <atom1> <atom2>) - This corresponds to n(<atom1>)[<atom2>]
                     53:                        There is currently no IADR which generates this.
                     54:        (* n <atom>) - This corresponds to *n(<atom>)
                     55:                      (vstack n+1) and (bind n+1) are converted to these forms.
                     56:        (+ <atom>) - This corresponds to (<atom>)+
                     57:                     stack is converted to this form.
                     58:        (- <atom>) - This corresponds to -(<atom>)
                     59:                     unstack is converted to this form.
                     60:        ($ <numb>) - This corresponds to $<atom>
                     61:                     (immed <numb>) is converted to this form.
                     62:        (# <numb>) - This corresponds to $<loc> where <loc> equals 
                     63:                     the base of the fixnums (0x1400) plus 4 * <numb>
                     64:                     (fixnum <numb>) is converted to this form
                     65:        (* # <numb>) - This corresponds to $<numb>.  It is generated
                     66:                     by d-rsimple occasionally when you ask for the
                     67:                     cdr of a number (which you do sometimes when you
                     68:                     are compiling fixnum operators).
                     69:        
                     70: Vax Unix assembler addresses
                     71:        The addresses are printed from a EIADR by e-cvtas.  The conversions
                     72:        are shown in the above section.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.