Annotation of 41BSD/cmd/liszt/doc/liszt.doc, revision 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.