Annotation of 3BSD/cmd/lisp/crt0.s, revision 1.1

1.1     ! root        1: # C runtime startoff
        !             2: 
        !             3:        .set    exit,1
        !             4: .globl _exit
        !             5: .globl start
        !             6: .globl _main
        !             7: .globl _environ
        !             8: .globl _xports
        !             9: .globl _gstart
        !            10: .globl _proflush
        !            11: 
        !            12: 
        !            13: #
        !            14: #      C language startup routine
        !            15: 
        !            16: #
        !            17: #      special 512 byte area for nil (and possibly other atoms)
        !            18: #      and special block of smallnums.
        !            19: #
        !            20:        .long   0
        !            21:        .long   0
        !            22:        .long   0
        !            23:        .long   -4
        !            24:        .long   20
        !            25:        .byte   'n,'i,'l,0
        !            26:        .long   0
        !            27:        .long   0
        !            28:        .long   -4
        !            29:        .long   40
        !            30:        .byte   'e,'o,'f,0
        !            31:        .space 512-44
        !            32:        .long   -128,-127,-126,-125,-124,-123,-122,-121
        !            33:        .long   -120,-119,-118,-117,-116,-115,-114,-113
        !            34:        .long   -112,-111,-110,-109,-108,-107,-106,-105
        !            35:        .long   -104,-103,-102,-101,-100,-99,-98,-97
        !            36:        .long   -96,-95,-94,-93,-92,-91,-90,-89
        !            37:        .long   -88,-87,-86,-85,-84,-83,-82,-81
        !            38:        .long   -80,-79,-78,-77,-76,-75,-74,-73
        !            39:        .long   -72,-71,-70,-69,-68,-67,-66,-65
        !            40:        .long   -64,-63,-62,-61,-60,-59,-58,-57
        !            41:        .long   -56,-55,-54,-53,-52,-51,-50,-49
        !            42:        .long   -48,-47,-46,-45,-44,-43,-42,-41
        !            43:        .long   -40,-39,-38,-37,-36,-35,-34,-33
        !            44:        .long   -32,-31,-30,-29,-28,-27,-26,-25
        !            45:        .long   -24,-23,-22,-21,-20,-19,-18,-17
        !            46:        .long   -16,-15,-14,-13,-12,-11,-10,-9
        !            47:        .long   -8,-7,-6,-5,-4,-3,-2,-1
        !            48:        .long   0,1,2,3,4,5,6,7
        !            49:        .long   8,9,10,11,12,13,14,15
        !            50:        .long   16,17,18,19,20,21,22,23
        !            51:        .long   24,25,26,27,28,29,30,31
        !            52:        .long   32,33,34,35,36,37,38,39
        !            53:        .long   40,41,42,43,44,45,46,47
        !            54:        .long   48,49,50,51,52,53,54,55
        !            55:        .long   56,57,58,59,60,61,62,63
        !            56:        .long   64,65,66,67,68,69,70,71
        !            57:        .long   72,73,74,75,76,77,78,79
        !            58:        .long   80,81,82,83,84,85,86,87
        !            59:        .long   88,89,90,91,92,93,94,95
        !            60:        .long   96,97,98,99,100,101,102,103
        !            61:        .long   104,105,106,107,108,109,110,111
        !            62:        .long   112,113,114,115,116,117,118,119
        !            63:        .long   120,121,122,123,124,125,126,127
        !            64: _xports:
        !            65:        .long   __iob+0
        !            66:        .long   __iob+16
        !            67:        .long   __iob+32
        !            68:        .long   __iob+48
        !            69:        .long   __iob+64
        !            70:        .long   __iob+80
        !            71:        .long   __iob+96
        !            72:        .long   __iob+112
        !            73:        .long   __iob+128
        !            74:        .long   __iob+144
        !            75:        .long   __iob+160
        !            76:        .long   __iob+176
        !            77:        .long   __iob+192
        !            78:        .long   __iob+208
        !            79:        .long   __iob+224
        !            80:        .long   __iob+240
        !            81:        .long   __iob+256
        !            82:        .long   __iob+272
        !            83:        .long   __iob+288
        !            84:        .long   __iob+304
        !            85:        .space  512 - (20 * 4)
        !            86: 
        !            87: start:
        !            88:        .word   0x0000
        !            89:        subl2   $8,sp
        !            90:        movl    8(sp),(sp)  #  argc
        !            91:        movab   12(sp),r0
        !            92:        movl    r0,4(sp)  #  argv
        !            93: L1:
        !            94:        tstl    (r0)+  #  null args term ?
        !            95:        bneq    L1
        !            96:        cmpl    r0,*4(sp)  #  end of 'env' or 'argv' ?
        !            97:        blss    L2
        !            98:        tstl    -(r0)  # envp's are in list
        !            99: L2:
        !           100:        movl    r0,8(sp)  #  env
        !           101:        movl    r0,_environ  #  indir is 0 if no env ; not 0 if env
        !           102:        calls   $3,_main
        !           103:        pushl   r0
        !           104:        calls   $1,_exit
        !           105:        chmk    $exit
        !           106: _gstart:
        !           107:        .word   0
        !           108:        moval   start,r0
        !           109:        ret
        !           110: _proflush:
        !           111:        .word   0
        !           112:        ret
        !           113: #
        !           114:        .data
        !           115: _environ:      .space  4

unix.superglobalmegacorp.com

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