Annotation of 40BSD/cmd/lisp/hcrt0.s, revision 1.1.1.1

1.1       root        1: # C runtime startoff
                      2: # sccs id  @(#)hcrt0.s 34.1    10/3/80
                      3: 
                      4:        .set    exit,1
                      5: .globl _exit
                      6: .globl start
                      7: .globl hstart
                      8: .globl _main
                      9: .globl _environ
                     10: .globl _xports
                     11: .globl _gstart
                     12: .globl _proflush
                     13: .globl _holbeg
                     14: .globl _holend
                     15: .globl Fixzero
                     16: 
                     17: #
                     18: #      C language startup routine
                     19: 
                     20: #
                     21: #      special 512 byte area for nil (and possibly other atoms)
                     22: #      and special block of smallnums.
                     23: #
                     24:        .long   0
                     25:        .long   0
                     26:        .long   0
                     27:        .long   -4
                     28:        .long   20
                     29:        .byte   'n,'i,'l,0
                     30:        .long   0
                     31:        .long   0
                     32:        .long   -4
                     33:        .long   40
                     34:        .byte   'e,'o,'f,0
                     35:        .space 512-44
                     36: _xports:
                     37:        .long   __iob+0
                     38:        .long   __iob+16
                     39:        .long   __iob+32
                     40:        .long   __iob+48
                     41:        .long   __iob+64
                     42:        .long   __iob+80
                     43:        .long   __iob+96
                     44:        .long   __iob+112
                     45:        .long   __iob+128
                     46:        .long   __iob+144
                     47:        .long   __iob+160
                     48:        .long   __iob+176
                     49:        .long   __iob+192
                     50:        .long   __iob+208
                     51:        .long   __iob+224
                     52:        .long   __iob+240
                     53:        .long   __iob+256
                     54:        .long   __iob+272
                     55:        .long   __iob+288
                     56:        .long   __iob+304
                     57:        .space  512 - (20 * 4)
                     58: .globl Negint
                     59: Negint:
                     60:        .long   -1024,-1023,-1022,-1021,-1020,-1019,-1018,-1017
                     61:        .long   -1016,-1015,-1014,-1013,-1012,-1011,-1010,-1009
                     62:        .long   -1008,-1007,-1006,-1005,-1004,-1003,-1002,-1001
                     63:        .long   -1000,-999,-998,-997,-996,-995,-994,-993
                     64:        .long   -992,-991,-990,-989,-988,-987,-986,-985
                     65:        .long   -984,-983,-982,-981,-980,-979,-978,-977
                     66:        .long   -976,-975,-974,-973,-972,-971,-970,-969
                     67:        .long   -968,-967,-966,-965,-964,-963,-962,-961
                     68:        .long   -960,-959,-958,-957,-956,-955,-954,-953
                     69:        .long   -952,-951,-950,-949,-948,-947,-946,-945
                     70:        .long   -944,-943,-942,-941,-940,-939,-938,-937
                     71:        .long   -936,-935,-934,-933,-932,-931,-930,-929
                     72:        .long   -928,-927,-926,-925,-924,-923,-922,-921
                     73:        .long   -920,-919,-918,-917,-916,-915,-914,-913
                     74:        .long   -912,-911,-910,-909,-908,-907,-906,-905
                     75:        .long   -904,-903,-902,-901,-900,-899,-898,-897
                     76:        .long   -896,-895,-894,-893,-892,-891,-890,-889
                     77:        .long   -888,-887,-886,-885,-884,-883,-882,-881
                     78:        .long   -880,-879,-878,-877,-876,-875,-874,-873
                     79:        .long   -872,-871,-870,-869,-868,-867,-866,-865
                     80:        .long   -864,-863,-862,-861,-860,-859,-858,-857
                     81:        .long   -856,-855,-854,-853,-852,-851,-850,-849
                     82:        .long   -848,-847,-846,-845,-844,-843,-842,-841
                     83:        .long   -840,-839,-838,-837,-836,-835,-834,-833
                     84:        .long   -832,-831,-830,-829,-828,-827,-826,-825
                     85:        .long   -824,-823,-822,-821,-820,-819,-818,-817
                     86:        .long   -816,-815,-814,-813,-812,-811,-810,-809
                     87:        .long   -808,-807,-806,-805,-804,-803,-802,-801
                     88:        .long   -800,-799,-798,-797,-796,-795,-794,-793
                     89:        .long   -792,-791,-790,-789,-788,-787,-786,-785
                     90:        .long   -784,-783,-782,-781,-780,-779,-778,-777
                     91:        .long   -776,-775,-774,-773,-772,-771,-770,-769
                     92:        .long   -768,-767,-766,-765,-764,-763,-762,-761
                     93:        .long   -760,-759,-758,-757,-756,-755,-754,-753
                     94:        .long   -752,-751,-750,-749,-748,-747,-746,-745
                     95:        .long   -744,-743,-742,-741,-740,-739,-738,-737
                     96:        .long   -736,-735,-734,-733,-732,-731,-730,-729
                     97:        .long   -728,-727,-726,-725,-724,-723,-722,-721
                     98:        .long   -720,-719,-718,-717,-716,-715,-714,-713
                     99:        .long   -712,-711,-710,-709,-708,-707,-706,-705
                    100:        .long   -704,-703,-702,-701,-700,-699,-698,-697
                    101:        .long   -696,-695,-694,-693,-692,-691,-690,-689
                    102:        .long   -688,-687,-686,-685,-684,-683,-682,-681
                    103:        .long   -680,-679,-678,-677,-676,-675,-674,-673
                    104:        .long   -672,-671,-670,-669,-668,-667,-666,-665
                    105:        .long   -664,-663,-662,-661,-660,-659,-658,-657
                    106:        .long   -656,-655,-654,-653,-652,-651,-650,-649
                    107:        .long   -648,-647,-646,-645,-644,-643,-642,-641
                    108:        .long   -640,-639,-638,-637,-636,-635,-634,-633
                    109:        .long   -632,-631,-630,-629,-628,-627,-626,-625
                    110:        .long   -624,-623,-622,-621,-620,-619,-618,-617
                    111:        .long   -616,-615,-614,-613,-612,-611,-610,-609
                    112:        .long   -608,-607,-606,-605,-604,-603,-602,-601
                    113:        .long   -600,-599,-598,-597,-596,-595,-594,-593
                    114:        .long   -592,-591,-590,-589,-588,-587,-586,-585
                    115:        .long   -584,-583,-582,-581,-580,-579,-578,-577
                    116:        .long   -576,-575,-574,-573,-572,-571,-570,-569
                    117:        .long   -568,-567,-566,-565,-564,-563,-562,-561
                    118:        .long   -560,-559,-558,-557,-556,-555,-554,-553
                    119:        .long   -552,-551,-550,-549,-548,-547,-546,-545
                    120:        .long   -544,-543,-542,-541,-540,-539,-538,-537
                    121:        .long   -536,-535,-534,-533,-532,-531,-530,-529
                    122:        .long   -528,-527,-526,-525,-524,-523,-522,-521
                    123:        .long   -520,-519,-518,-517,-516,-515,-514,-513
                    124:        .long   -512,-511,-510,-509,-508,-507,-506,-505
                    125:        .long   -504,-503,-502,-501,-500,-499,-498,-497
                    126:        .long   -496,-495,-494,-493,-492,-491,-490,-489
                    127:        .long   -488,-487,-486,-485,-484,-483,-482,-481
                    128:        .long   -480,-479,-478,-477,-476,-475,-474,-473
                    129:        .long   -472,-471,-470,-469,-468,-467,-466,-465
                    130:        .long   -464,-463,-462,-461,-460,-459,-458,-457
                    131:        .long   -456,-455,-454,-453,-452,-451,-450,-449
                    132:        .long   -448,-447,-446,-445,-444,-443,-442,-441
                    133:        .long   -440,-439,-438,-437,-436,-435,-434,-433
                    134:        .long   -432,-431,-430,-429,-428,-427,-426,-425
                    135:        .long   -424,-423,-422,-421,-420,-419,-418,-417
                    136:        .long   -416,-415,-414,-413,-412,-411,-410,-409
                    137:        .long   -408,-407,-406,-405,-404,-403,-402,-401
                    138:        .long   -400,-399,-398,-397,-396,-395,-394,-393
                    139:        .long   -392,-391,-390,-389,-388,-387,-386,-385
                    140:        .long   -384,-383,-382,-381,-380,-379,-378,-377
                    141:        .long   -376,-375,-374,-373,-372,-371,-370,-369
                    142:        .long   -368,-367,-366,-365,-364,-363,-362,-361
                    143:        .long   -360,-359,-358,-357,-356,-355,-354,-353
                    144:        .long   -352,-351,-350,-349,-348,-347,-346,-345
                    145:        .long   -344,-343,-342,-341,-340,-339,-338,-337
                    146:        .long   -336,-335,-334,-333,-332,-331,-330,-329
                    147:        .long   -328,-327,-326,-325,-324,-323,-322,-321
                    148:        .long   -320,-319,-318,-317,-316,-315,-314,-313
                    149:        .long   -312,-311,-310,-309,-308,-307,-306,-305
                    150:        .long   -304,-303,-302,-301,-300,-299,-298,-297
                    151:        .long   -296,-295,-294,-293,-292,-291,-290,-289
                    152:        .long   -288,-287,-286,-285,-284,-283,-282,-281
                    153:        .long   -280,-279,-278,-277,-276,-275,-274,-273
                    154:        .long   -272,-271,-270,-269,-268,-267,-266,-265
                    155:        .long   -264,-263,-262,-261,-260,-259,-258,-257
                    156:        .long   -256,-255,-254,-253,-252,-251,-250,-249
                    157:        .long   -248,-247,-246,-245,-244,-243,-242,-241
                    158:        .long   -240,-239,-238,-237,-236,-235,-234,-233
                    159:        .long   -232,-231,-230,-229,-228,-227,-226,-225
                    160:        .long   -224,-223,-222,-221,-220,-219,-218,-217
                    161:        .long   -216,-215,-214,-213,-212,-211,-210,-209
                    162:        .long   -208,-207,-206,-205,-204,-203,-202,-201
                    163:        .long   -200,-199,-198,-197,-196,-195,-194,-193
                    164:        .long   -192,-191,-190,-189,-188,-187,-186,-185
                    165:        .long   -184,-183,-182,-181,-180,-179,-178,-177
                    166:        .long   -176,-175,-174,-173,-172,-171,-170,-169
                    167:        .long   -168,-167,-166,-165,-164,-163,-162,-161
                    168:        .long   -160,-159,-158,-157,-156,-155,-154,-153
                    169:        .long   -152,-151,-150,-149,-148,-147,-146,-145
                    170:        .long   -144,-143,-142,-141,-140,-139,-138,-137
                    171:        .long   -136,-135,-134,-133,-132,-131,-130,-129
                    172:        .long   -128,-127,-126,-125,-124,-123,-122,-121
                    173:        .long   -120,-119,-118,-117,-116,-115,-114,-113
                    174:        .long   -112,-111,-110,-109,-108,-107,-106,-105
                    175:        .long   -104,-103,-102,-101,-100,-99,-98,-97
                    176:        .long   -96,-95,-94,-93,-92,-91,-90,-89
                    177:        .long   -88,-87,-86,-85,-84,-83,-82,-81
                    178:        .long   -80,-79,-78,-77,-76,-75,-74,-73
                    179:        .long   -72,-71,-70,-69,-68,-67,-66,-65
                    180:        .long   -64,-63,-62,-61,-60,-59,-58,-57
                    181:        .long   -56,-55,-54,-53,-52,-51,-50,-49
                    182:        .long   -48,-47,-46,-45,-44,-43,-42,-41
                    183:        .long   -40,-39,-38,-37,-36,-35,-34,-33
                    184:        .long   -32,-31,-30,-29,-28,-27,-26,-25
                    185:        .long   -24,-23,-22,-21,-20,-19,-18,-17
                    186:        .long   -16,-15,-14,-13,-12,-11,-10,-9
                    187:        .long   -8,-7,-6,-5,-4,-3,-2,-1
                    188: Fixzero:
                    189:        .long   0,1,2,3,4,5,6,7
                    190:        .long   8,9,10,11,12,13,14,15
                    191:        .long   16,17,18,19,20,21,22,23
                    192:        .long   24,25,26,27,28,29,30,31
                    193:        .long   32,33,34,35,36,37,38,39
                    194:        .long   40,41,42,43,44,45,46,47
                    195:        .long   48,49,50,51,52,53,54,55
                    196:        .long   56,57,58,59,60,61,62,63
                    197:        .long   64,65,66,67,68,69,70,71
                    198:        .long   72,73,74,75,76,77,78,79
                    199:        .long   80,81,82,83,84,85,86,87
                    200:        .long   88,89,90,91,92,93,94,95
                    201:        .long   96,97,98,99,100,101,102,103
                    202:        .long   104,105,106,107,108,109,110,111
                    203:        .long   112,113,114,115,116,117,118,119
                    204:        .long   120,121,122,123,124,125,126,127
                    205:        .long   128,129,130,131,132,133,134,135
                    206:        .long   136,137,138,139,140,141,142,143
                    207:        .long   144,145,146,147,148,149,150,151
                    208:        .long   152,153,154,155,156,157,158,159
                    209:        .long   160,161,162,163,164,165,166,167
                    210:        .long   168,169,170,171,172,173,174,175
                    211:        .long   176,177,178,179,180,181,182,183
                    212:        .long   184,185,186,187,188,189,190,191
                    213:        .long   192,193,194,195,196,197,198,199
                    214:        .long   200,201,202,203,204,205,206,207
                    215:        .long   208,209,210,211,212,213,214,215
                    216:        .long   216,217,218,219,220,221,222,223
                    217:        .long   224,225,226,227,228,229,230,231
                    218:        .long   232,233,234,235,236,237,238,239
                    219:        .long   240,241,242,243,244,245,246,247
                    220:        .long   248,249,250,251,252,253,254,255
                    221:        .long   256,257,258,259,260,261,262,263
                    222:        .long   264,265,266,267,268,269,270,271
                    223:        .long   272,273,274,275,276,277,278,279
                    224:        .long   280,281,282,283,284,285,286,287
                    225:        .long   288,289,290,291,292,293,294,295
                    226:        .long   296,297,298,299,300,301,302,303
                    227:        .long   304,305,306,307,308,309,310,311
                    228:        .long   312,313,314,315,316,317,318,319
                    229:        .long   320,321,322,323,324,325,326,327
                    230:        .long   328,329,330,331,332,333,334,335
                    231:        .long   336,337,338,339,340,341,342,343
                    232:        .long   344,345,346,347,348,349,350,351
                    233:        .long   352,353,354,355,356,357,358,359
                    234:        .long   360,361,362,363,364,365,366,367
                    235:        .long   368,369,370,371,372,373,374,375
                    236:        .long   376,377,378,379,380,381,382,383
                    237:        .long   384,385,386,387,388,389,390,391
                    238:        .long   392,393,394,395,396,397,398,399
                    239:        .long   400,401,402,403,404,405,406,407
                    240:        .long   408,409,410,411,412,413,414,415
                    241:        .long   416,417,418,419,420,421,422,423
                    242:        .long   424,425,426,427,428,429,430,431
                    243:        .long   432,433,434,435,436,437,438,439
                    244:        .long   440,441,442,443,444,445,446,447
                    245:        .long   448,449,450,451,452,453,454,455
                    246:        .long   456,457,458,459,460,461,462,463
                    247:        .long   464,465,466,467,468,469,470,471
                    248:        .long   472,473,474,475,476,477,478,479
                    249:        .long   480,481,482,483,484,485,486,487
                    250:        .long   488,489,490,491,492,493,494,495
                    251:        .long   496,497,498,499,500,501,502,503
                    252:        .long   504,505,506,507,508,509,510,511
                    253:        .long   512,513,514,515,516,517,518,519
                    254:        .long   520,521,522,523,524,525,526,527
                    255:        .long   528,529,530,531,532,533,534,535
                    256:        .long   536,537,538,539,540,541,542,543
                    257:        .long   544,545,546,547,548,549,550,551
                    258:        .long   552,553,554,555,556,557,558,559
                    259:        .long   560,561,562,563,564,565,566,567
                    260:        .long   568,569,570,571,572,573,574,575
                    261:        .long   576,577,578,579,580,581,582,583
                    262:        .long   584,585,586,587,588,589,590,591
                    263:        .long   592,593,594,595,596,597,598,599
                    264:        .long   600,601,602,603,604,605,606,607
                    265:        .long   608,609,610,611,612,613,614,615
                    266:        .long   616,617,618,619,620,621,622,623
                    267:        .long   624,625,626,627,628,629,630,631
                    268:        .long   632,633,634,635,636,637,638,639
                    269:        .long   640,641,642,643,644,645,646,647
                    270:        .long   648,649,650,651,652,653,654,655
                    271:        .long   656,657,658,659,660,661,662,663
                    272:        .long   664,665,666,667,668,669,670,671
                    273:        .long   672,673,674,675,676,677,678,679
                    274:        .long   680,681,682,683,684,685,686,687
                    275:        .long   688,689,690,691,692,693,694,695
                    276:        .long   696,697,698,699,700,701,702,703
                    277:        .long   704,705,706,707,708,709,710,711
                    278:        .long   712,713,714,715,716,717,718,719
                    279:        .long   720,721,722,723,724,725,726,727
                    280:        .long   728,729,730,731,732,733,734,735
                    281:        .long   736,737,738,739,740,741,742,743
                    282:        .long   744,745,746,747,748,749,750,751
                    283:        .long   752,753,754,755,756,757,758,759
                    284:        .long   760,761,762,763,764,765,766,767
                    285:        .long   768,769,770,771,772,773,774,775
                    286:        .long   776,777,778,779,780,781,782,783
                    287:        .long   784,785,786,787,788,789,790,791
                    288:        .long   792,793,794,795,796,797,798,799
                    289:        .long   800,801,802,803,804,805,806,807
                    290:        .long   808,809,810,811,812,813,814,815
                    291:        .long   816,817,818,819,820,821,822,823
                    292:        .long   824,825,826,827,828,829,830,831
                    293:        .long   832,833,834,835,836,837,838,839
                    294:        .long   840,841,842,843,844,845,846,847
                    295:        .long   848,849,850,851,852,853,854,855
                    296:        .long   856,857,858,859,860,861,862,863
                    297:        .long   864,865,866,867,868,869,870,871
                    298:        .long   872,873,874,875,876,877,878,879
                    299:        .long   880,881,882,883,884,885,886,887
                    300:        .long   888,889,890,891,892,893,894,895
                    301:        .long   896,897,898,899,900,901,902,903
                    302:        .long   904,905,906,907,908,909,910,911
                    303:        .long   912,913,914,915,916,917,918,919
                    304:        .long   920,921,922,923,924,925,926,927
                    305:        .long   928,929,930,931,932,933,934,935
                    306:        .long   936,937,938,939,940,941,942,943
                    307:        .long   944,945,946,947,948,949,950,951
                    308:        .long   952,953,954,955,956,957,958,959
                    309:        .long   960,961,962,963,964,965,966,967
                    310:        .long   968,969,970,971,972,973,974,975
                    311:        .long   976,977,978,979,980,981,982,983
                    312:        .long   984,985,986,987,988,989,990,991
                    313:        .long   992,993,994,995,996,997,998,999
                    314:        .long   1000,1001,1002,1003,1004,1005,1006,1007
                    315:        .long   1008,1009,1010,1011,1012,1013,1014,1015
                    316:        .long   1016,1017,1018,1019,1020,1021,1022,1023
                    317: 
                    318: start:
                    319:        .word   0x0000
                    320:        subl2   $8,sp
                    321:        movl    8(sp),(sp)  #  argc
                    322:        movab   12(sp),r0
                    323:        movl    r0,4(sp)  #  argv
                    324: L1:
                    325:        tstl    (r0)+  #  null args term ?
                    326:        bneq    L1
                    327:        cmpl    r0,*4(sp)  #  end of 'env' or 'argv' ?
                    328:        blss    L2
                    329:        tstl    -(r0)  # envp's are in list
                    330: L2:
                    331:        movl    r0,8(sp)  #  env
                    332:        movl    r0,_environ  #  indir is 0 if no env ; not 0 if env
                    333:        calls   $3,_main
                    334:        pushl   r0
                    335:        calls   $1,_exit
                    336:        chmk    $exit
                    337: hstart:                                # This routine is exactly the same as
                    338:                                # start except there is a call to _rlc
                    339:                                # before the call to _main.  One could
                    340:                                # arrange a switch by putting different
                    341:                                # addresses in a register and jumping 
                    342:                                # indirect through the register but
                    343:                                # it seems worth the cost of 80 bytes
                    344:                                # for the gain in clarity by having the
                    345:                                # routines EXACTLY the same except for
                    346:                                # that one difference.
                    347:        .word   0x0000
                    348:        subl2   $8,sp
                    349:        calls   $0,_rlc
                    350:        movl    8(sp),(sp)  #  argc
                    351:        movab   12(sp),r0
                    352:        movl    r0,4(sp)  #  argv
                    353: L3:
                    354:        tstl    (r0)+  #  null args term ?
                    355:        bneq    L3
                    356:        cmpl    r0,*4(sp)  #  end of 'env' or 'argv' ?
                    357:        blss    L4
                    358:        tstl    -(r0)  # envp's are in list
                    359: L4:
                    360:        movl    r0,8(sp)  #  env
                    361:        movl    r0,_environ  #  indir is 0 if no env ; not 0 if env
                    362:        calls   $0,_rlc
                    363:        calls   $3,_main
                    364:        pushl   r0
                    365:        calls   $1,_exit
                    366:        chmk    $exit
                    367: _gstart:
                    368:        .word   0
                    369:        moval   start,r0
                    370:        ret
                    371: _proflush:
                    372:        .word   0
                    373:        ret
                    374: #
                    375:        .data
                    376: _holbeg:
                    377: _holend:
                    378: _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.