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