Annotation of researchv10dc/man/manb/80.out.5, revision 1.1.1.1

1.1       root        1: .th "80.out" 5 "March 1,1977"
                      2: .sh NAME
                      3: 80.out \*- assembler and link editor output
                      4: .sh DESCRIPTION
                      5: .it "80.out"
                      6: is the output file of the assembler
                      7: .it "as80"
                      8: and the link editor
                      9: .it "ld80".
                     10: Both programs make
                     11: .it "80.out"
                     12: executable if there were no
                     13: errors and no unresolved external references.
                     14: .s3
                     15: .it 80.out
                     16: has five sections:
                     17: header, text, data, relocation information and a symbol table (in that order).
                     18: The last two sections may be empty if the program was loaded with
                     19: the ``\*-b'', ``\*-d'' or ``\*-t'' option of
                     20: .it ld80.
                     21: .s1
                     22: (Constants beginning with `0' are octal values.)
                     23: .s3
                     24: .it HEADER
                     25: .s3
                     26: The header always contains 040 bytes:
                     27: .lp +10 8
                     28: Address        Contents
                     29: .lp +10 8
                     30: (octal)
                     31: .s1
                     32: .lp +10 8
                     33: 0-1    Magic number (0413)
                     34: .lp +10 8
                     35: 2-3    Size of text segment
                     36: .lp +10 8
                     37: 4-5    Size of data segment
                     38: .lp +10 8
                     39: 6-7    Size of bss segment
                     40: .lp +10 8
                     41: 10-11  Size of symbol table
                     42: .lp +10 8
                     43: 12-13  Load origin of text segment
                     44: .lp +10 8
                     45: 14-15  Load origin of data segment
                     46: .lp +10 8
                     47: 16-20  Load origin of bss segment
                     48: .lp +10 8
                     49: 20-21  Size of relocation table
                     50: .lp +10 8
                     51: 22-23  A word of flags
                     52: .lp +10 8
                     53: 24-37  Padding
                     54: .s3
                     55: .i0
                     56: The size of each segment is in bytes.
                     57: The size of the header is not included in any of the other sizes.
                     58: .s3
                     59: The flag values are:
                     60: .lp +20 7
                     61: Bit    Meaning
                     62: .lp +20 7
                     63: 0      If set, no relocation information is present.
                     64: .i0
                     65: .s3
                     66: The start of the text segment in the file is 040,
                     67: the start of the data is (040 + text size),
                     68: the start of the relocation is (040 + text + data size),
                     69: and the start of the symbol table is (040 + text size + data size + relocation size).
                     70: .s3
                     71: .it "RELOCATION INFORMATION"
                     72: .s3
                     73: The relocation information (if present)
                     74: occupies one or two bytes for each byte or word of text or data.
                     75: The bits of the relocation word (or byte) are:
                     76: .s3
                     77: .lp +10 8
                     78: Bit    Meaning
                     79: .s3
                     80: .lp +10 8
                     81: 6-15   Symbol number in symbol table for external references.
                     82: The firat symbol is numbered 0.
                     83: .lp +10 8
                     84: 5      High-byte flag: If set, the next byte of text or data is to be treated as the high
                     85: order byte of a 16-bit quantity for relocation purposes.
                     86: .lp +10 8
                     87: 4      Two-byte flag: If set, the next two bytes of text or data are to be
                     88: treated as a 16-bit quantity for relocation purposes.
                     89: .lp +10 8
                     90: 3      External flag: If set, bits 15-6 contain a symbol number, otherwise, only one byte
                     91: of relocation information is present.
                     92: .lp +10 8
                     93: 0-2    Segment information:
                     94: .lp +20 5
                     95: 0      absolute
                     96: .lp +20 5
                     97: 1      text
                     98: .lp +20 5
                     99: 2      data
                    100: .lp +20 5
                    101: 3      bss
                    102: .i0
                    103: .s3
                    104: .sh "SEE ALSO"
                    105: "as80" (I), "ld80" (I), "nm80" (I)
                    106: .s3
                    107: .it "SYMBOL TABLE"
                    108: .s1
                    109: The symbol table entries consist of six words:
                    110: .s3
                    111: .lp +10 8
                    112: Word   Meaning
                    113: .s1
                    114: .lp 1-4        The first four words contain the left justified, null-padded ASCII symbol name.
                    115: .lp +10 8
                    116: The fifth word is a flag indicating the type of the symbol.
                    117: The following values are possible:
                    118: .lp +20 5
                    119: 00     undefined
                    120: .lp +20 5
                    121: 01     absolute
                    122: .lp +20 5
                    123: 02     text
                    124: .lp +20 5
                    125: 03     data
                    126: .lp +20 5
                    127: 04     bss
                    128: .lp +20 5
                    129: 05     file name symbol (produced by ld80)
                    130: .lp +20 5
                    131: 010    undefined external
                    132: .lp +20 5
                    133: 011    absolute external
                    134: .lp +20 5
                    135: 012    text segment external
                    136: .lp +20 5
                    137: 013    data segment external
                    138: .lp +20 5
                    139: 014    bss segment external
                    140: .lp +10 8
                    141: 6      The sixth word is the value of the symbol.
                    142: .i0
                    143: .s3
                    144: The sixth word of a symbol table entry contains the value of the symbol.
                    145: .s3
                    146: .s3
                    147: The value of a word in the text or data portions which is not
                    148: a reference to an undefined external symbol
                    149: is exactly that value which will appear in core
                    150: when the file is executed.
                    151: If a word in the text or data portion
                    152: involves a reference to an undefined external symbol,
                    153: as indicated by the relocation bits
                    154: for that word,
                    155: then the value of the word as stored in the file
                    156: is an offset from the associated external symbol.
                    157: When the file is processed by the
                    158: link editor and the external symbol becomes
                    159: defined, the value of the symbol will
                    160: be added into the word in the file.
                    161: .s3

unix.superglobalmegacorp.com

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