|
|
1.1 ! root 1: struct exec { /* a.out header */ ! 2: long a_magic; /* magic number */ ! 3: long a_text; /* size of text segment */ ! 4: long a_data; /* size of initialized data */ ! 5: long a_bss; /* size of unitialized data */ ! 6: long a_syms; /* size of symbol table */ ! 7: long a_entry; /* entry point */ ! 8: long a_unused; /* not used */ ! 9: long a_flag; /* relocation info stripped */ ! 10: }; ! 11: ! 12: #define A_MAGIC1 0407 /* normal */ ! 13: #define A_MAGIC2 0410 /* read-only text */ ! 14: #define A_MAGIC3 0411 /* separated I&D */ ! 15: #define A_MAGIC4 0406 /* mpx */ ! 16: ! 17: struct nlist { /* symbol table entry */ ! 18: char n_name[8]; /* symbol name */ ! 19: char n_type; /* type flag */ ! 20: char n_dtype; ! 21: unsigned short n_desc; /* C type code */ ! 22: long n_value; /* value */ ! 23: }; ! 24: ! 25: /* values for n_type */ ! 26: #define N_UNDF 0 /* undefined */ ! 27: #define N_ABS 02 /* absolute */ ! 28: #define N_TEXT 04 /* text symbol */ ! 29: #define N_DATA 06 /* data symbol */ ! 30: #define N_BSS 010 /* bss symbol */ ! 31: #define N_TYPE 036 ! 32: #define N_EXT 01 /* external bit, or'ed in */ ! 33: ! 34: #define FORMAT "%04x" /* to print a value */ ! 35: ! 36: /* ! 37: * Quantities for relocation words ! 38: */ ! 39: /* modifiers applying to relocation bits */ ! 40: #define X2WDS 020 /* long (2-word) quantity */ ! 41: #define XPCREL 040 /* PC-relative */ ! 42: #define XOFFS 0100 /* relative to base of data */ ! 43: ! 44: /* Instruction types, for loader-optimizer */ ! 45: /* Apply only if type is N_ABS */ ! 46: #define TMASK 03600 /* Mask for type */ ! 47: #define TBR0 00200 /* Short (8-bit) branch */ ! 48: #define TBR1 00400 /* medium (16-bit) branch */ ! 49: #define TEA0 00600 /* Long absolute addr follows immediately */ ! 50: #define TEA1 01000 /* Long absolute addr after 1 word */ ! 51: #define TEA2 01200 /* Long absolute addr after 2 words */ ! 52: #define TIM0 01400 /* Long, shrinkable immediate follows */ ! 53: #define TPC0 01600 /* Long absolute convertible to pc-rel */ ! 54: #define TPC1 02000 /* Long absolute convertible to pc-rel after 1 wd */ ! 55: #define TPC2 02200 /* Long absolute convertible to pc-rel after 2 wds */ ! 56: #define TMM 02400 /* movem instruction */ ! 57: ! 58: /* Possible second E.A. for mov instruction */ ! 59: #define TMASK1 074000 ! 60: #define TSHFT1 4
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.