Annotation of qemu/roms/openbios/utils/devbios/flashchips.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  *                     OpenBIOS - free your system! 
                      3:  *              ( firmware/flash device driver for Linux )
                      4:  *                          
                      5:  *  flashchips.c - contains all information about supported flash devices. 
                      6:  *  
                      7:  *  This program is part of a free implementation of the IEEE 1275-1994 
                      8:  *  Standard for Boot (Initialization Configuration) Firmware.
                      9:  *
                     10:  *  Copyright (C) 1998-2004  Stefan Reinauer, <[email protected]>
                     11:  *
                     12:  *  This program is free software; you can redistribute it and/or modify
                     13:  *  it under the terms of the GNU General Public License as published by
                     14:  *  the Free Software Foundation; version 2 of the License.
                     15:  *
                     16:  *  This program is distributed in the hope that it will be useful,
                     17:  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
                     18:  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     19:  *  GNU General Public License for more details.
                     20:  *
                     21:  *  You should have received a copy of the GNU General Public License
                     22:  *  along with this program; if not, write to the Free Software
                     23:  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
                     24:  *
                     25:  */
                     26: // <-- C++ style comments are for experimental comments only.
                     27: // They will disappear as soon as I fixed all the stuff.
                     28: 
                     29: #include "bios.h"
                     30: #include "flashchips.h"
                     31: 
                     32: unsigned int currflash=0;
                     33: 
                     34: const manufacturer_t manufacturers[] =
                     35: {
                     36:        { "AMD",                0x01 },
                     37:        { "AMI",                0x02 },
                     38:        { "Fairchild",          0x83 },
                     39:        { "Fujitsu",            0x04 },
                     40:        { "GTE",                0x85 },
                     41:        { "Harris",             0x86 },
                     42:        { "Hitachi",            0x07 },
                     43:        { "Inmos",              0x08 },
                     44:        { "Intel",              0x89 },
                     45:        { "I.T.T.",             0x8A },
                     46:        { "Intersil",           0x0B },
                     47:        { "Monolithic Memories",0x8C },
                     48:        { "Mostek",             0x0D },
                     49:        { "Motorola",           0x0E },
                     50:        { "National",           0x8F },
                     51:        { "NEC",                0x10 },
                     52:        { "RCA",                0x91 },
                     53:        { "Raytheon",           0x92 },
                     54:        { "Rockwell",           0x13 },
                     55:        { "Seeq",               0x94 },
                     56:        { "Philips Semi.",      0x15 },
                     57:        { "Synertek",           0x16 },
                     58:        { "Texas Instruments",  0x97 },
                     59:        { "Toshiba",            0x98 },
                     60:        { "Xicor",              0x19 },
                     61:        { "Zilog",              0x1A },
                     62:        { "Eurotechnique",      0x9B },
                     63:        { "Mitsubishi",         0x1C },
                     64:        { "PMC Flash",          0x9D },
                     65:        { "Exel",               0x9E },
                     66:        { "Atmel",              0x1F },
                     67:        { "SGS/Thomson",        0x20 },
                     68:        { "Lattice Semi.",      0xA1 },
                     69:        { "NCR",                0xA2 },
                     70:        { "Wafer Scale Integr.",0x23 },
                     71:        { "IBM",                0xA4 },
                     72:        { "Tristar",            0x25 },
                     73:        { "Visic",              0x26 },
                     74:        { "Intl. CMOS Tech.",   0xA7 },
                     75:        { "SSSI",               0xA8 },
                     76:        { "MicrochipTech.",     0x29 },
                     77:        { "Ricoh Ltd.",         0x2A },
                     78:        { "VLSI",               0xAB },
                     79:        { "Micron Technology",  0x2C },
                     80:        { "Hyundai Elect.",     0xAD },
                     81:        { "OKI Semiconductor",  0xAE },
                     82:        { "ACTEL",              0x2F },
                     83:        { "Sharp",              0xB0 },
                     84:        { "Catalyst",           0x31 },
                     85:        { "Panasonic",          0x32 },
                     86:        { "IDT",                0xB3 },
                     87:        { "Cypress",            0x34 },
                     88:        { "DEC",                0xB5 },
                     89:        { "LSI Logic",          0xB6 },
                     90:        { "Plessey",            0x37 },
                     91:        { "UTMC",               0x38 },
                     92:        { "Thinking Machine",   0xB9 },
                     93:        { "Thomson CSF",        0xBA },
                     94:        { "Integ. CMOS(Vertex)",0x3B },
                     95:        { "Honeywell",          0xBC },
                     96:        { "Tektronix",          0x3D },
                     97:        { "Sun Microsystems",   0x3E },
                     98:        { "SST",                0xBF },
                     99:        { "MOSEL",              0x40 },
                    100:        { "Siemens",            0xC1 },
                    101:        { "Macronix",           0xC2 },
                    102:        { "Xerox",              0x43 },
                    103:        { "Plus Logic",         0xC4 },
                    104:        { "SunDisk",            0x45 },
                    105:        { "Elan Circuit Tech.", 0x46 },
                    106:        { "Europ. Silicon Str.",0xC7 },
                    107:        { "Apple Computer",     0xC8 },
                    108:        { "Xilinx",             0xC9 },
                    109:        { "Compaq",             0x4A },
                    110:        { "Protocol Engines",   0xCB },
                    111:        { "SCI",                0x4C },
                    112:        { "Seiko Instruments",  0xCD },
                    113:        { "Samsung",            0xCE },
                    114:        { "I3 Design System",   0x4F },
                    115:        { "Klic",               0xD0 },
                    116:        { "Crosspoint Sol.",    0x51 },
                    117:        { "Alliance Semicond.", 0x52 },
                    118:        { "Tandem",             0xD3 },
                    119:        { "Hewlett-Packard",    0x54 },
                    120:        { "Intg. Silicon Sol.", 0xD5 },
                    121:        { "Brooktree",          0xD6 },
                    122:        { "New Media",          0x57 },
                    123:        { "MHS Electronic",     0x58 },
                    124:        { "Performance Semi.",  0xD9 },
                    125:        { "Winbond",            0xDA },
                    126:        { "Kawasaki Steel",     0x5B },
                    127:        { "Bright Micro",       0xDC },
                    128:        { "TECMAR",             0x5D },
                    129:        { "Exar",               0x5E },
                    130:        { "PCMCIA",             0xDF },
                    131:        { "Goldstar",           0xE0 },
                    132:        { "Northern Telecom",   0x61 },
                    133:        { "Sanyo",              0x62 },
                    134:        { "Array Microsystems", 0xE3 },
                    135:        { "Crystal Semicond.",  0x64 },
                    136:        { "Analog Devices",     0xE5 },
                    137:        { "PMC-Sierra",         0xE6 },
                    138:        { "Asparix",            0x67 },
                    139:        { "Convex Computer",    0x68 },
                    140:        { "Quality Semicond.",  0xE9 },
                    141:        { "Nimbus Technology",  0xEA },
                    142:        { "Transwitch",         0x6B },
                    143:        { "ITT Intermetall",    0xEC },
                    144:        { "Cannon",             0x6D },
                    145:        { "Altera",             0x6E },
                    146:        { "NEXCOM",             0xEF },
                    147:        { "QUALCOMM",           0x70 },
                    148:        { "Sony",               0xF1 },
                    149:        { "Cray Research",      0xF2 },
                    150:        { "AMS(Austria Micro)", 0x73 },
                    151:        { "Vitesse",            0xF4 },
                    152:        { "Aster Electronics",  0x75 },
                    153:        { "Bay Networks(Synoptic)",     0x76 },
                    154:        { "Zentrum Mikroelec.", 0xF7 },
                    155:        { "TRW",                0xF8 },
                    156:        { "Thesys",             0x79 },
                    157:        { "Solbourne Computer", 0x7A },
                    158:        { "Allied-Signal",      0xFB },
                    159:        { "Dialog",             0x7C },
                    160:        { "Media Vision",       0xFD },
                    161:        { "Level One Commun.",  0xFE },
                    162:        { "Eon",                0x7F },
                    163: 
                    164:        { "Unknown",            0x00 }
                    165: };
                    166: 
                    167: const flashchip_t flashchips[] =
                    168: {
                    169:        /* AMD */
                    170:        { "29F016B",    0xad01,  5, 2048, 0,   1, 1, (int []) { 0,2048 } },
                    171:        { "29F080B",    0xd501,  5, 1024, 0,   1, 1, (int []) { 0,1024 } },
                    172:        { "29F800BT",   0xd601,  5, 1024, 0,   1, 1, (int []) { 0,1024 } },
                    173:        { "29F800BB",   0x5801,  5, 1024, 0,   1, 1, (int []) { 0,1024 } },
                    174:        { "29F040B",    0xa401,  5,  512, 0,   1, 1, (int []) { 0, 512 } },
                    175:        { "29F400T",    0x2301,  5,  512, 0,   1, 1, (int []) { 0, 512 } },
                    176:        { "29LV004T",   0xb501,  3,  512, 0,   1, 1, (int []) { 0, 512 } },
                    177:        { "29LV400T",   0xb901,  3,  512, 0,   1, 1, (int []) { 0, 512 } },
                    178:        { "29F400B",    0xab01,  5,  512, 0,   1, 1, (int []) { 0, 512 } },
                    179:        { "29LV004B",   0xb601,  3,  512, 0,   1, 1, (int []) { 0, 512 } },
                    180:        { "29LV400B",   0xba01,  3,  512, 0,   1, 1, (int []) { 0, 512 } },
                    181:        { "28F020A",    0x2901, 12,  256, 0,   1, 1, (int []) { 0, 256 } },
                    182:        { "28F020",     0x2a01, 12,  256, 0,   1, 1, (int []) { 0, 256 } },
                    183:        { "29F002T",    0xb001,  5,  256, 0,   1, 1, (int []) { 0, 256 } },
                    184:        { "29LV002T",   0x4001,  3,  256, 0,   1, 1, (int []) { 0, 256 } },
                    185:        { "29LV200T",   0x3b01,  3,  256, 0,   1, 1, (int []) { 0, 256 } },
                    186:        { "29F200T",    0x5101,  5,  256, 0,   1, 1, (int []) { 0, 256 } },
                    187:        { "29F002B",    0x3401,  5,  256, 0,   1, 1, (int []) { 0, 256 } },
                    188:        { "29LV002B",   0xc201,  3,  256, 0,   1, 1, (int []) { 0, 256 } },
                    189:        { "29LV200B",   0xbf01,  3,  256, 0,   1, 1, (int []) { 0, 256 } },
                    190:        { "29F200B",    0x5701,  5,  256, 0,   1, 1, (int []) { 0, 256 } },
                    191:        { "29F010",     0x2001,  5,  128, 0,   1, 1, (int []) { 0, 128 } },
                    192:        { "28F010A",    0xa201, 12,  128, 0,   1, 1, (int []) { 0, 128 } },
                    193:        { "28F010",     0xa701, 12,  128, 0,   1, 1, (int []) { 0, 128 } },
                    194:        { "29F100T",    0xd901,  5,   64, 0,   1, 1, (int []) { 0,  64 } },
                    195:        { "29F100B",    0xdf01,  5,   64, 0,   1, 1, (int []) { 0,  64 } },
                    196:        { "28F512A",    0xae01, 12,   64, 0,   1, 1, (int []) { 0,  64 } },
                    197:        { "28F512",     0x2501, 12,   64, 0,   1, 1, (int []) { 0,  64 } },
                    198:        { "28F256A",    0x2f01, 12,   32, 0,   1, 1, (int []) { 0,  32 } },
                    199:        { "28F256",     0xa101, 12,   32, 0, 128, 1, (int []) { 0,  32 } },
                    200: 
                    201:        /* Atmel */
                    202:        { "AT49BV010",  0x851f,  3,  128, 0, 128, 1, (int []) { 0, 128 } },
                    203: //Word { "AT49F1025",  0x851f,  5,  128, 0, 256, 1, (int []) { 0, 128 } },
                    204:        { "AT49x020",   0x0b1f,  5,  256, 0, 128, 1, (int []) { 0, 256 } },
                    205:        { "AT49F040",   0x131f,  5,  512, 0, 128, 1, (int []) { 0, 512 } },
                    206:        { "AT49F010",   0x171f,  5,  128, 0, 128, 1, (int []) { 0, 128 } },
                    207:        { "AT49F080",   0x231f,  5, 1024, 0, 128, 1, (int []) { 0,1024 } },
                    208:        { "AT29C040A",  0xa41f,  5,  512, 1, 256, 4, (int []) { 0, 512 } },
                    209: //Word { "AT29C1024",  0x251f,  3,  128, 0, 128, 0, (int []) { 0, 128 } },
                    210: //Word { "AT29LV1024", 0x261f,  3,  128, 0, 128, 0, (int []) { 0, 128 } },
                    211:        { "AT49F080T",  0xa71f,  5, 1024, 0, 128, 1, (int []) { 0,1024 } },
                    212:        { "AT29BV010A", 0x351f,  3,  128, 1, 128, 4, (int []) { 0, 128 } },
                    213:        { "AT29BV020",  0xba1f,  3,  256, 1, 256, 4, (int []) { 0, 256 } },
                    214:        { "AT29LV256",  0xbc1f,  3,   32, 1,  64, 4, (int []) { 0,  32 } },
                    215:        { "AT29LV512",  0x3d1f,  3,   64, 1, 128, 4, (int []) { 0,  64 } },
                    216:        { "AT29BV040A", 0xc41f,  3,  512, 1, 256, 4, (int []) { 0, 512 } },
                    217:        { "AT29C010A",  0xd51f,  5,  128, 1, 128, 4, (int []) { 0, 128 } },
                    218:        { "AT29C020",   0xda1f,  5,  256, 1, 256, 4, (int []) { 0, 256 } },
                    219:        { "AT29C256",   0xdc1f,  3,   32, 1,  64, 4, (int []) { 0,  32 } },
                    220:        { "AT29C512",   0x5d1f,  5,   64, 1, 128, 4, (int []) { 0,  64 } },
                    221: 
                    222:        /* Catalyst */
                    223:        { "CAT28F150T", 0x0431, 12,  192, 1, 128, 3, (int []) { 0, 64,160,168,176,192 } },
                    224:        { "CAT28F150B", 0x8531, 12,  192, 1, 128, 3, (int []) { 0, 16, 24, 32,128, 192 } },
                    225:        { "CAT28F001T", 0x9431, 12,  128, 1, 128, 3, (int []) { 0,112,116,120,128 } },
                    226:        { "CAT28F001B", 0x1531, 12,  128, 1, 128, 3, (int []) { 0,  8, 12, 16,128 } },
                    227:        { "CAT29F002T", 0xb031,  5,  256, 0, 128, 1, (int []) { 0, 64,128,192,224,232,240,256 } },
                    228:        { "CAT29F002B", 0x3431,  5,  256, 0, 128, 1, (int []) { 0, 16, 24, 32, 64,128,192,256 } },
                    229:        { "CAT28F002T", 0x7c31, 12,  256, 1, 128, 3, (int []) { 0,128,224,232,240,256 } },
                    230:        { "CAT28F002B", 0xfd31, 12,  256, 1, 128, 3, (int []) { 0, 16, 24, 32,128,256 } },
                    231:        { "CAT28F020" , 0xbd31, 12,  256, 0,   1, 1, (int []) { 0,256 } },
                    232: //Word { "CAT28F102" , 0x5131, 12,  128, 0,   0, 0, (int []) { 0,128 } },
                    233:        { "CAT28F010" , 0xb431, 12,  128, 0,   1, 1, (int []) { 0,128 } },
                    234:        { "CAT28F512" , 0xb831, 12,   64, 0,   1, 1, (int []) { 0, 64 } },
                    235:        
                    236:        { "29F040",     0xa404,  5,  512, 1,   1, 1, (int []) { 0, 64, 128, 192, 256, 320, 384, 448, 512 } }, /* Fujitsu */
                    237:        
                    238:        
                    239:        /* Intel */
                    240:        { "28F010",     0x3489, 12,  128, 0, 128, 1, (int []) { 0,128 } },
                    241:        { "28F020",     0x3d89, 12,  256, 0, 128, 1, (int []) { 0,256 } },
                    242:        { "28F001BX-T", 0x9489, 12,  128, 1, 128, 3, (int []) { 0,112,116,120,128 } },
                    243:        { "28F001BX-B", 0x9589, 12,  128, 1, 128, 3, (int []) { 0,  8, 12, 16,128 } },
                    244: //Word { "28F400BX-T", 0x7089, 12,  512, 0, 256, 3, (int []) { 0,128,256,384,480,488,496,512 } },
                    245: //Word { "28F400BX-B", 0xF189, 12,  512, 0, 256, 3, (int []) { 0, 16, 24, 32,128,256,384,512 } },
                    246: //Word { "28F200-T",   0xF489, 12,  256, 0, 256, 3, (int []) { 0,128,224,232,240,256} },
                    247: //Word { "28F200-B",   0x7589, 12,  256, 0, 256, 3, (int []) { 0, 16, 24, 32,128,256 } },
                    248:        { "28F016B3-T", 0xd089,  3, 1024, 0,   1, 3, (int []) { 0, 2048 } },
                    249:        { "28F016B3-B", 0xd189,  3, 1024, 0,   1, 3, (int []) { 0, 2048 } },
                    250:        { "28F008B3-T", 0xd289,  3, 1024, 0,   1, 3, (int []) { 0, 1024 } },
                    251:        { "28F008B3-B", 0xd389,  3, 1024, 0,   1, 3, (int []) { 0, 1024 } },
                    252:        { "28F004B3-T", 0xd489,  3,  512, 0, 128, 3, (int []) { 0,128,256,384,480,488,496,512 } },
                    253:        { "28F004B3-B", 0xd589,  3,  512, 0, 128, 3, (int []) { 0, 16, 24, 32,128,256,384,512 } },
                    254:        { "28F004BX-T", 0xF889, 12,  512, 1, 128, 3, (int []) { 0,128,256,384,480,488,496,512 } },
                    255:        { "28F004BX-B", 0x7989, 12,  512, 1, 128, 3, (int []) { 0, 16, 24, 32,128,256,384,512 } },
                    256:        { "28F002-T",   0x7c89, 12,  256, 1, 128, 3, (int []) { 0,128,224,232,240,256 } },
                    257:        { "28F002-B",   0xfd89, 12,  256, 1, 256, 3, (int []) { 0, 16, 24, 32,128,256 } },
                    258:        { "28F008??",   0xa289, 12, 1024, 1,   1, 3, (int []) { 0, 64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024 } },
                    259:        { "28F008SA",   0xa189, 12, 1024, 1,   1, 3, (int []) { 0, 64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024 } },
                    260:        { "28F004??",   0xad89,  5,  512, 0,   1, 3, (int []) { 0, 512} },
                    261:        { "28F008??",   0xac89,  5, 1024, 0,   1, 3, (int []) { 0,1024} },
                    262: 
                    263:        /* Eon */
                    264:        { "E28F004S5",  0x7f8f,  5,  512, 1,   1, 3, (int []) { 0, 64,128,192,256,320,384,448,512 } },
                    265:        { "EN29F002B",  0x977f,  5,  256, 1,   1, 1, (int []) { 0, 16, 24, 32,128,256 } },
                    266:        { "EN29F002T",  0x927f,  5,  256, 1,   1, 1, (int []) { 0,128,224,232,240,256 } },
                    267:        
                    268:        /* SST */
                    269:        { "28EE011",    0x01bf,  5,  128, 0, 128, 0, (int []) { 0, 128 } },
                    270:        { "28EE040",    0x04bf,  5,  512, 0, 128, 0, (int []) { 0, 512 } },
                    271:        { "29EE010",    0x07bf,  5,  128, 1, 128, 0, (int []) { 0, 128 } },
                    272:        { "29x010",     0x08bf,  3,  128, 0, 128, 0, (int []) { 0, 128 } },
                    273:        { "29EE020",    0x10bf,  5,  256, 0, 128, 0, (int []) { 0, 256 } },
                    274:        { "29x020",     0x92bf,  3,  256, 0, 128, 0, (int []) { 0, 256 } },
                    275:        { "29x512",     0x3dbf,  3,   64, 0, 128, 0, (int []) { 0,  64 } },
                    276:        { "29EE512",    0x5dbf,  5,   64, 0, 128, 0, (int []) { 0,  64 } },
                    277:        { "29x020",     0x92bf,  3,  256, 0, 128, 0, (int []) { 0, 256 } },
                    278:        { "39SF020",    0xb6bf,  5,  256, 1, 1, 0x81, (int []) { 0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256 } },
                    279:        { "49LF002A",   0x57bf,  3,  256, 0, 1, 0x81, (int[]) {0,256} },
                    280:        { "49LF003A",   0x1bbf,  3,  384, 0, 1, 0x81, (int[]) {0,384} },
                    281:        { "49LF004A",   0x60bf,  3,  512, 1, 1, 0x09, (int[]) {0, 4, 8, 12, 16, 24,28, 32, 512} },
                    282:        { "49LF008A",   0x5abf,  3, 1024, 0, 1, 0x81, (int[]) {0,1024} },
                    283:        { "49LF020",    0x61bf,  3,  256, 1, 4096, 0, (int[]) {0,256} },
                    284:        { "49LF040",    0x51bf,  3,  512, 1, 4096, 0, (int[]) {0,512} },
                    285:        { "49LF080A",   0x5bbf,  3, 1024, 1, 4096, 0, (int[]) {0,1024} },
                    286:        
                    287:        /* Macronix */
                    288:        { "MX28F1000AP",0x1ac2, 12,  128, 0,   1, 1, (int []) { 0, 16, 32, 48, 64, 80, 96,112,116,120,124,128 } },
                    289:        { "MX28F1000P", 0x91c2, 12,  128, 0,   1, 1, (int []) { 0, 16, 32, 48, 64, 80, 96,112,128 } },
                    290:        { "MX28F1000PC",0xf7c2, 12,  128, 0,   1, 1, (int []) { 0, 16, 32, 48, 64, 80, 96,112,128 } },
                    291: //id?  { "MX28F1000PPC",0x7fc2,12,  128, 0,   1, 1, (int []) { 0, 16, 32, 48, 64, 80, 96,112,116,120,124,128 } },
                    292:        { "MX29F1610A", 0xfac2,  5, 2048, 1, 128, 0, (int []) { 0, 2048} },
                    293: 
                    294:        /* Winbond */
                    295:        { "W29EE011",   0xc1da,  5,  128, 1, 128, 0, (int []) { 0, 128 } },
                    296:        { "W29C020",    0x45da,  5,  256, 1, 128, 0, (int []) { 0, 256 } },
                    297:        { "W29C040/042",0x46da,  5,  512, 1, 256, 0, (int []) { 0, 512 } },
                    298:        { "W29EE512",   0xc8da,  5,   64, 1, 128, 0, (int []) { 0,  64 } },
                    299:        { "W29C101",    0x4fda,  5,  128, 1, 256, 0, (int []) { 0, 128 } },
                    300:        { "W49V002",    0xb0da,  3,  256, 1,   1, 1, (int []) { 0, 64, 128, 192, 224, 232, 240, 256 } },
                    301:        //{ "W49F002",    0x0bda,  5,  256, 1,   1, 1, (int []) { 0, 64, 128, 192, 224, 232, 240, 256 } },
                    302:        { "W49F002U",   0x0bda,  5,  256, 1, 1,0x09, (int []) { 0, 128, 224, 232, 240, 256 } }, /* Winbond */
                    303: 
                    304:        /* SGS/Thomson */
                    305:        { "M29F002B(N)T", 0xb020,  5,  256, 0,   1, 0,    (int[]) {0, 64, 128, 256 } },
                    306:        { "M29F002B(N)B", 0x3420,  5,  256, 0,   1, 0,    (int[]) {0, 256 } },
                    307:        { "M50FW040",   0x2c20,  3,  512, 1, 128, 0x0b, (int []) { 0, 64, 128, 192, 256, 320, 384, 448, 512 } },
                    308: 
                    309:        { "Pm29F002T",  0x1d9d,  5,  256, 1, 1, 0x1, (int []) { 0,128,224,232,240,256 } },
                    310:        /* default entry */
                    311:        { "Unknown",    0x0000,  0,    0, 0,   0, 0, (int []) { 0 } }
                    312: };
                    313: 

unix.superglobalmegacorp.com

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