Annotation of 3BSD/cmd/lisp/crt0.s, revision 1.1.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.