Annotation of cci/sys/tahoe/trap.s, revision 1.1.1.1

1.1       root        1: .data
                      2: .comm  _hand,4
                      3: .comm  _user_psl,4
                      4: .comm  _nblkdev,4
                      5: .comm  _nchrdev,4
                      6: .comm  _nswdev,4
                      7: .comm  _mpid,4
                      8: .comm  _runin,1
                      9: .comm  _runout,1
                     10: .comm  _runrun,4
                     11: .comm  _kmapwnt,1
                     12: .comm  _curpri,1
                     13: .comm  _maxmem,4
                     14: .comm  _physmem,4
                     15: .comm  _nswap,4
                     16: .comm  _updlock,4
                     17: .comm  _rablock,4
                     18: .comm  _rasize,4
                     19: .comm  _rootdev,2
                     20: .comm  _dumpdev,2
                     21: .comm  _dumplo,4
                     22: .comm  _swapdev,2
                     23: .comm  _argdev,2
                     24: .comm  _noproc,4
                     25: .comm  _panicstr,4
                     26: .comm  _wantin,4
                     27: .comm  _boothowto,4
                     28: .comm  _selwait,4
                     29: .comm  _intenable,4
                     30: .comm  _clk_enable,4
                     31: .comm  _zdmap,136
                     32: .comm  _dmmin,4
                     33: .comm  _dmmax,4
                     34: .comm  _dmtext,4
                     35: .comm  _ckey_cache,255
                     36: .comm  _dkey_cache,255
                     37: .comm  _ckey_cnt,510
                     38: .comm  _dkey_cnt,510
                     39: .comm  _pidhash,126
                     40: .comm  _proc,4
                     41: .comm  _procNPROC,4
                     42: .comm  _nproc,4
                     43: .comm  _qs,256
                     44: .comm  _whichqs,4
                     45: .comm  _acctbuf,32
                     46: .comm  _acctp,4
                     47: .comm  _hostid,4
                     48: .comm  _hostname,32
                     49: .comm  _hostnamelen,4
                     50: .comm  _boottime,8
                     51: .comm  _time,8
                     52: .comm  _tz,8
                     53: .comm  _hz,4
                     54: .comm  _phz,4
                     55: .comm  _tick,4
                     56: .comm  _lbolt,4
                     57: .comm  _avenrun,24
                     58: .comm  _sysent,0
                     59: .comm  _nsysent,4
                     60: .text
                     61: LL0:.align     1
                     62: .globl _trap
                     63: .data  1
                     64: L123:.ascii    "reserved addressing mode\0"
                     65: .text
                     66: .data  1
                     67: L125:.ascii    "illegal opcode\0"
                     68: .text
                     69: .data  1
                     70: L127:.ascii    "reserved operand\0"
                     71: .text
                     72: .data  1
                     73: L129:.ascii    "breakpoint\0"
                     74: .text
                     75: .data  1
                     76: L131:.ascii    "kernel call\0"
                     77: .text
                     78: .data  1
                     79: L133:.ascii    "arithmetic exception\0"
                     80: .text
                     81: .data  1
                     82: L135:.ascii    "system forced exception\0"
                     83: .text
                     84: .data  1
                     85: L137:.ascii    "limit fault\0"
                     86: .text
                     87: .data  1
                     88: L139:.ascii    "illegal access type\0"
                     89: .text
                     90: .data  1
                     91: L141:.ascii    "trace trap\0"
                     92: .text
                     93: .data  1
                     94: L143:.ascii    "page fault\0"
                     95: .text
                     96: .data  1
                     97: L145:.ascii    "page table fault\0"
                     98: .text
                     99: .data  1
                    100: L147:.ascii    "alignment fault\0"
                    101: .text
                    102: .data  1
                    103: L149:.ascii    "kernel stack not valid\0"
                    104: .text
                    105: .data  1
                    106: L153:.ascii    "System trap (%s), code = %x, pc = %x\12\0"
                    107: .text
                    108: .data  1
                    109: L155:.ascii    "trap\0"
                    110: .text
                    111: .data  1
                    112: L173:.ascii    "ptable fault\0"
                    113: .text
                    114: .data  1
                    115: L184:.ascii    "KSP NOT VALID.\12\0"
                    116: .text
                    117: .set   L112,0xE00
                    118: .data
                    119: .text
                    120: _trap:.word    L112
                    121: subl3  $80,fp,sp
                    122: addl3  $24,fp,r11
                    123: movl   _u+1580,-64(fp)
                    124: movl   _u+1576,-68(fp)
                    125: andl3  $16777216,-4(r11),r0
                    126: cmpl   r0,$16777216
                    127: jneq   L116
                    128: orl2   $32,8(fp)
                    129: movl   r11,_u+144
                    130: L116:movl      8(fp),r0
                    131: casel  r0,$7,$40
                    132: .align 1
                    133: L2000000:
                    134: .word  L162-L2000000
                    135: .word  L119-L2000000
                    136: .word  L119-L2000000
                    137: .word  L119-L2000000
                    138: .word  L119-L2000000
                    139: .word  L175-L2000000
                    140: .word  L172-L2000000
                    141: .word  L119-L2000000
                    142: .word  L183-L2000000
                    143: .word  L119-L2000000
                    144: .word  L119-L2000000
                    145: .word  L119-L2000000
                    146: .word  L119-L2000000
                    147: .word  L119-L2000000
                    148: .word  L119-L2000000
                    149: .word  L119-L2000000
                    150: .word  L119-L2000000
                    151: .word  L119-L2000000
                    152: .word  L119-L2000000
                    153: .word  L119-L2000000
                    154: .word  L119-L2000000
                    155: .word  L119-L2000000
                    156: .word  L119-L2000000
                    157: .word  L119-L2000000
                    158: .word  L119-L2000000
                    159: .word  L160-L2000000
                    160: .word  L160-L2000000
                    161: .word  L160-L2000000
                    162: .word  L181-L2000000
                    163: .word  L119-L2000000
                    164: .word  L119-L2000000
                    165: .word  L167-L2000000
                    166: .word  L162-L2000000
                    167: .word  L168-L2000000
                    168: .word  L156-L2000000
                    169: .word  L181-L2000000
                    170: .word  L119-L2000000
                    171: .word  L175-L2000000
                    172: .word  L172-L2000000
                    173: .word  L160-L2000000
                    174: .word  L183-L2000000
                    175: L119:movl      8(fp),r0
                    176: casel  r0,$0,$15
                    177: .align 1
                    178: L2000001:
                    179: .word  L122-L2000001
                    180: .word  L124-L2000001
                    181: .word  L126-L2000001
                    182: .word  L128-L2000001
                    183: .word  L120-L2000001
                    184: .word  L130-L2000001
                    185: .word  L132-L2000001
                    186: .word  L134-L2000001
                    187: .word  L136-L2000001
                    188: .word  L138-L2000001
                    189: .word  L140-L2000001
                    190: .word  L120-L2000001
                    191: .word  L142-L2000001
                    192: .word  L144-L2000001
                    193: .word  L146-L2000001
                    194: .word  L148-L2000001
                    195: L120:pushl     16(fp)
                    196: pushl  12(fp)
                    197: pushl  -72(fp)
                    198: pushl  $L153
                    199: callf  $20,_printf
                    200: pushl  $L155
                    201: callf  $8,_panic
                    202: L156:movl      $10,r10
                    203: L117:pushl     r10
                    204: pushl  _u+140
                    205: callf  $12,_psignal
                    206: L166:movl      _u+140,r9
                    207: tstb   19(r9)
                    208: jneq   L9998
                    209: tstl   20(r9)
                    210: jeql   L188
                    211: bitl   $16,36(r9)
                    212: jneq   L9997
                    213: orl3   24(r9),28(r9),r0
                    214: mcoml  r0,r0
                    215: bitl   r0,20(r9)
                    216: jeql   L188
                    217: L9997:callf    $4,_issig
                    218: tstl   r0
                    219: jeql   L188
                    220: L9998:callf    $4,_psig
                    221: L188:movb      12(r9),13(r9)
                    222: tstl   _runrun
                    223: jeql   L190
                    224: callf  $4,_spl8
                    225: pushl  r9
                    226: callf  $8,_setrq
                    227: incl   _u+1636
                    228: callf  $4,_swtch
                    229: L190:tstl      _u+2168
                    230: jeql   L194
                    231: movl   $_u+1576,-80(fp)
                    232: subl3  -68(fp),*-80(fp),r0
                    233: mull2  $1000,r0
                    234: movl   -80(fp),r1
                    235: subl3  -64(fp),4(r1),r1
                    236: divl2  $1000,r1
                    237: addl2  r1,r0
                    238: divl3  $1000,_tick,r1
                    239: divl2  r1,r0
                    240: movl   r0,-76(fp)
                    241: tstl   r0
                    242: jeql   L194
                    243: pushl  r0
                    244: pushl  $_u+2156
                    245: pushl  -8(r11)
                    246: callf  $16,_addupc
                    247: L194:movb      13(r9),_curpri
                    248: ret
                    249: L122:movl      $L123,-72(fp)
                    250: jbr    L120
                    251: L124:movl      $L125,-72(fp)
                    252: jbr    L120
                    253: L126:movl      $L127,-72(fp)
                    254: jbr    L120
                    255: L128:movl      $L129,-72(fp)
                    256: jbr    L120
                    257: L130:movl      $L131,-72(fp)
                    258: jbr    L120
                    259: L132:movl      $L133,-72(fp)
                    260: jbr    L120
                    261: L134:movl      $L135,-72(fp)
                    262: jbr    L120
                    263: L136:movl      $L137,-72(fp)
                    264: jbr    L120
                    265: L138:movl      $L139,-72(fp)
                    266: jbr    L120
                    267: L140:movl      $L141,-72(fp)
                    268: jbr    L120
                    269: L142:movl      $L143,-72(fp)
                    270: jbr    L120
                    271: L144:movl      $L145,-72(fp)
                    272: jbr    L120
                    273: L146:movl      $L147,-72(fp)
                    274: jbr    L120
                    275: L148:movl      $L149,-72(fp)
                    276: jbr    L120
                    277: L160:andl3     $-33,8(fp),_u+1440
                    278: movl   $4,r10
                    279: jbr    L117
                    280: L162:andl2     $-257,_u+68
                    281: tstl   _user_psl
                    282: jeql   L163
                    283: andl2  $-257,*_user_psl
                    284: L163:movl      _u+140,r0
                    285: bitl   $2097152,36(r0)
                    286: jeql   L166
                    287: tstl   _u+2168
                    288: jeql   L166
                    289: pushl  $1
                    290: pushl  $_u+2156
                    291: pushl  16(fp)
                    292: callf  $16,_addupc
                    293: movl   _u+140,r0
                    294: andl2  $-2097153,36(r0)
                    295: jbr    L166
                    296: L167:movl      12(fp),_u+1440
                    297: movl   $8,r10
                    298: jbr    L117
                    299: L168:pushl     -20(r11)
                    300: callf  $8,_grow
                    301: tstl   r0
                    302: jneq   L166
                    303: pushl  12(fp)
                    304: callf  $8,_grow
                    305: tstl   r0
                    306: jneq   L166
                    307: movl   $11,r10
                    308: jbr    L117
                    309: L172:pushl     $L173
                    310: callf  $8,_panic
                    311: L175:cvtbl     _u+496,r10
                    312: pushl  12(fp)
                    313: callf  $8,_fastreclaim
                    314: tstl   r0
                    315: jneq   L177
                    316: pushl  $0
                    317: pushl  12(fp)
                    318: callf  $12,_pagein
                    319: L177:cvtlb     r10,_u+496
                    320: cmpl   8(fp),$12
                    321: jneq   L166
                    322: ret
                    323: L181:andl2     $-17,-4(r11)
                    324: movl   $5,r10
                    325: jbr    L117
                    326: L183:movl      $9,r10
                    327: pushl  $L184
                    328: callf  $8,_printf
                    329: jbr    L117
                    330: .align 1
                    331: .globl _syscall
                    332: .data  1
                    333: L202:.ascii    "syscall\0"
                    334: .text
                    335: .set   L197,0xF80
                    336: .data
                    337: .text
                    338: _syscall:.word L197
                    339: subl3  $80,fp,sp
                    340: addl3  $24,fp,r11
                    341: movl   _u+1580,-64(fp)
                    342: movl   _u+1576,-68(fp)
                    343: andl3  $16777216,-4(r11),r0
                    344: cmpl   r0,$16777216
                    345: jeql   L201
                    346: pushl  $L202
                    347: callf  $8,_panic
                    348: L201:movl      r11,_u+144
                    349: cmpl   12(fp),$139
                    350: jneq   L203
                    351: callf  $4,_sigcleanup
                    352: jbr    L205
                    353: L203:addl3     $4,-24(r11),r10
                    354: clrb   _u+496
                    355: subl3  $2,16(fp),-72(fp)
                    356: cmpl   12(fp),$63
                    357: jlequ  L206
                    358: decl   -72(fp)
                    359: cmpl   12(fp),$127
                    360: jlequ  L206
                    361: decl   -72(fp)
                    362: cmpl   12(fp),$32767
                    363: jlequ  L206
                    364: subl2  $2,-72(fp)
                    365: L206:cmpl      12(fp),_nsysent
                    366: jlssu  L9996
                    367: movl   $_sysent+504,r0
                    368: jbr    L9995
                    369: L9996:shll     $3,12(fp),r0
                    370: addl2  $_sysent,r0
                    371: L9995:movl     r0,r8
                    372: cmpl   r8,$_sysent
                    373: jneq   L209
                    374: pushl  r10
                    375: callf  $8,_fuword
                    376: movl   r0,r9
                    377: addl2  $4,r10
                    378: cmpl   12(fp),_nsysent
                    379: jlssu  L9994
                    380: movl   $_sysent+504,r0
                    381: jbr    L9993
                    382: L9994:shll     $3,12(fp),r0
                    383: addl2  $_sysent,r0
                    384: L9993:movl     r0,r8
                    385: L209:shll      $2,(r8),r9
                    386: jeql   L211
                    387:        prober $1,(r10),r9
                    388: bnequ  ok
                    389: movb   $14,_u+496
                    390: jbr    L212
                    391: ok:pushl       r9
                    392: pushl  $_u+404
                    393: pushl  r10
                    394: callf  $16,_bcopy
                    395: L211:movl      $_u+404,_u+436
                    396: movl   _u+404,_u+1884
                    397: clrl   _u+500
                    398: movl   -80(r11),_u+504
                    399: pushl  $_u+440
                    400: callf  $8,_setjmp
                    401: tstl   r0
                    402: jeql   L215
                    403: tstb   _u+496
                    404: jneq   L217
                    405: tstb   _u+508
                    406: jneq   L217
                    407: movb   $4,_u+496
                    408: jbr    L217
                    409: L215:clrb      _u+508
                    410: calls  $4,*4(r8)
                    411: L217:cmpb      _u+508,$1
                    412: jneq   L218
                    413: movl   -72(fp),16(fp)
                    414: jbr    L205
                    415: L218:tstb      _u+496
                    416: jeql   L220
                    417: L212:cvtbl     _u+496,-84(r11)
                    418: orl2   $1,-4(r11)
                    419: jbr    L205
                    420: L220:andl2     $-2,-4(r11)
                    421: movl   _u+500,-84(r11)
                    422: movl   _u+504,-80(r11)
                    423: L205:movl      _u+140,r7
                    424: tstb   19(r7)
                    425: jneq   L9992
                    426: tstl   20(r7)
                    427: jeql   L222
                    428: bitl   $16,36(r7)
                    429: jneq   L9991
                    430: orl3   24(r7),28(r7),r0
                    431: mcoml  r0,r0
                    432: bitl   r0,20(r7)
                    433: jeql   L222
                    434: L9991:callf    $4,_issig
                    435: tstl   r0
                    436: jeql   L222
                    437: L9992:callf    $4,_psig
                    438: L222:movb      12(r7),13(r7)
                    439: tstl   _runrun
                    440: jeql   L223
                    441: callf  $4,_spl8
                    442: pushl  r7
                    443: callf  $8,_setrq
                    444: incl   _u+1636
                    445: callf  $4,_swtch
                    446: L223:tstl      _u+2168
                    447: jeql   L224
                    448: movl   $_u+1576,-80(fp)
                    449: subl3  -68(fp),*-80(fp),r0
                    450: mull2  $1000,r0
                    451: movl   -80(fp),r1
                    452: subl3  -64(fp),4(r1),r1
                    453: divl2  $1000,r1
                    454: addl2  r1,r0
                    455: divl3  $1000,_tick,r1
                    456: divl2  r1,r0
                    457: movl   r0,-76(fp)
                    458: tstl   r0
                    459: jeql   L224
                    460: pushl  r0
                    461: pushl  $_u+2156
                    462: pushl  -8(r11)
                    463: callf  $16,_addupc
                    464: L224:movb      13(r7),_curpri
                    465: ret
                    466: .align 1
                    467: .globl _nosys
                    468: .set   L227,0x0
                    469: .data
                    470: .text
                    471: _nosys:.word   L227
                    472: cmpl   _u+1224,$1
                    473: jeql   L9990
                    474: cmpl   _u+1224,$3
                    475: jneq   L231
                    476: L9990:movb     $22,_u+496
                    477: L231:pushl     $12
                    478: pushl  _u+140
                    479: callf  $12,_psignal
                    480: ret
                    481: .align 1
                    482: .globl _nullsys
                    483: .set   L233,0x0
                    484: .data
                    485: .text
                    486: _nullsys:.word L233
                    487: ret
                    488: .align 1
                    489: .globl _fpemulate
                    490: .data
                    491: .align 2
                    492: L304:.long     0x00000000 # .float 0
                    493: .text
                    494: .data
                    495: .align 2
                    496: L307:.long     0x00000000 # .float 0
                    497: .text
                    498: .set   L238,0x800
                    499: .data
                    500: .text
                    501: _fpemulate:.word       L238
                    502: subl3  $100,fp,sp
                    503: addl3  $32,fp,r11
                    504: clrl   -64(fp)
                    505: movl   r11,_u+144
                    506: andl3  $255,20(fp),r0
                    507: cmpl   r0,$199
                    508: jeql   L265
                    509: jgtr   L273
                    510: cmpl   r0,$135
                    511: jeql   L261
                    512: jgtr   L274
                    513: cmpl   r0,$119
                    514: jeql   L260
                    515: jgtr   L275
                    516: cmpl   r0,$118
                    517: jneq   L256
                    518: movl   $_Kcvtlf,-72(fp)
                    519: L2000003:movl  $2,-80(fp)
                    520: andl2  $-129,-4(r11)
                    521: jbr    L256
                    522: L2000005:cmpl  r0,$2
                    523: jeql   L289
                    524: cmpl   r0,$3
                    525: jeql   L292
                    526: jbr    L279
                    527: L2000007:orl2  $2,-4(r11)
                    528: bitl   $32,-4(r11)
                    529: jeql   L297
                    530: L2000009:movl  $1,20(fp)
                    531: ret
                    532: L260:movl      $_Kcvtld,-76(fp)
                    533: L2000011:movl  $3,-80(fp)
                    534: orl2   $128,-4(r11)
                    535: jbr    L256
                    536: L261:movl      $_Kcvtdl,-68(fp)
                    537: movl   $1,-80(fp)
                    538: movl   8(fp),-84(fp)
                    539: jbr    L256
                    540: L263:movl      $_Kcvtdf,-72(fp)
                    541: jbr    L2000003
                    542: L265:movl      $_Kaddd,-76(fp)
                    543: L2000013:movl  $3,-80(fp)
                    544: jbr    L256
                    545: L267:movl      $_Ksubd,-76(fp)
                    546: jbr    L2000013
                    547: L269:movl      $_Kmuld,-76(fp)
                    548: jbr    L2000013
                    549: L270:movl      $_Kdivf,-72(fp)
                    550: jbr    L2000012
                    551: L271:movl      $_Kdivd,-76(fp)
                    552: jbr    L2000013
                    553: L275:cmpl      r0,$134
                    554: jneq   L256
                    555: movl   $_Kcvtfl,-68(fp)
                    556: movl   $1,-80(fp)
                    557: movl   12(fp),-84(fp)
                    558: jbr    L256
                    559: L274:cmpl      r0,$166
                    560: jeql   L263
                    561: jgtr   L276
                    562: cmpl   r0,$151
                    563: jneq   L256
                    564: movl   $_Kcvtfd,-76(fp)
                    565: jbr    L2000011
                    566: L276:cmpl      r0,$198
                    567: jneq   L256
                    568: movl   $_Kaddf,-72(fp)
                    569: jbr    L2000012
                    570: L2000015:cmpl  r0,$214
                    571: jneq   L256
                    572: movl   $_Ksubf,-72(fp)
                    573: jbr    L2000012
                    574: L2000017:cmpl  r0,$215
                    575: jeql   L267
                    576: jleq   L2000015
                    577: cmpl   r0,$230
                    578: jneq   L256
                    579: movl   $_Kmulf,-72(fp)
                    580: L2000012:movl  $2,-80(fp)
                    581: jbr    L256
                    582: L273:cmpl      r0,$231
                    583: jeql   L269
                    584: jleq   L2000017
                    585: cmpl   r0,$247
                    586: jeql   L271
                    587: jgtr   L256
                    588: cmpl   r0,$246
                    589: jeql   L270
                    590: L256:movl      -80(fp),r0
                    591: cmpl   r0,$1
                    592: jneq   L2000005
                    593: subl3  $64,fp,-(sp)
                    594: pushl  16(fp)
                    595: pushl  12(fp)
                    596: pushl  8(fp)
                    597: pushl  4(fp)
                    598: calls  $24,*-68(fp)
                    599: movl   r0,-88(fp)
                    600: bitl   $4,-64(fp)
                    601: jeql   L282
                    602: orl2   $2,-4(r11)
                    603: bitl   $32,-4(r11)
                    604: jneq   L2000009
                    605: clrl   -88(fp)
                    606: L282:tstl      -88(fp)
                    607: jneq   L284
                    608: orl2   $4,-4(r11)
                    609: L284:tstl      -88(fp)
                    610: jgeq   L285
                    611: orl2   $8,-4(r11)
                    612: L285:bitl      $256,20(fp)
                    613: jeql   L286
                    614: cmpl   -84(fp),$12
                    615: jleq   L287
                    616: L287:subl3     $21,-84(fp),r0
                    617: movl   -88(fp),(r11)[r0]
                    618: ret
                    619: L286:pushl     $4
                    620: pushl  -84(fp)
                    621: subl3  $88,fp,-(sp)
                    622: callf  $16,_copyout
                    623: ret
                    624: L289:subl3     $64,fp,-(sp)
                    625: pushl  16(fp)
                    626: pushl  12(fp)
                    627: pushl  8(fp)
                    628: pushl  4(fp)
                    629: calls  $24,*-72(fp)
                    630: movl   r0,-92(fp)
                    631: tstl   r0
                    632: jneq   L290
                    633: orl2   $4,-4(r11)
                    634: L290:tstl      -92(fp)
                    635: jlss   L2000008
                    636: jbr    L279
                    637: L292:subl3     $64,fp,-(sp)
                    638: pushl  16(fp)
                    639: pushl  12(fp)
                    640: pushl  8(fp)
                    641: pushl  4(fp)
                    642: calls  $24,*-76(fp)
                    643: movl   r1,-96(fp)
                    644: movl   r0,-100(fp)
                    645: tstl   r0
                    646: jneq   L293
                    647: tstl   r1
                    648: jneq   L293
                    649: orl2   $4,-4(r11)
                    650: L293:tstl      -100(fp)
                    651: jgeq   L279
                    652: L2000008:orl2  $8,-4(r11)
                    653: L279:bitl      $4,-64(fp)
                    654: jneq   L2000007
                    655: bitl   $8,-64(fp)
                    656: jeql   L297
                    657: bitl   $64,-4(r11)
                    658: jeql   L297
                    659: movl   $2,20(fp)
                    660: ret
                    661: L297:movl      -80(fp),r0
                    662: cmpl   r0,$2
                    663: jeql   L302
                    664: cmpl   r0,$3
                    665: jeql   L305
                    666: L300:ret
                    667: L302:bitl      $4,-64(fp)
                    668: jneq   L9989
                    669: bitl   $8,-64(fp)
                    670: jeql   L303
                    671: L9989:movl     L304,-92(fp)
                    672: orl2   $4,-4(r11)
                    673: L303:movl      -92(fp),_u+96
                    674: jbr    L300
                    675: L305:bitl      $4,-64(fp)
                    676: jneq   L9988
                    677: bitl   $8,-64(fp)
                    678: jeql   L306
                    679: L9988:clrl     -96(fp)
                    680: movl   L307,-100(fp)
                    681: orl2   $4,-4(r11)
                    682: L306:movl      -96(fp),_u+100
                    683: movl   -100(fp),_u+96
                    684: jbr    L300
                    685: 

unix.superglobalmegacorp.com

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