|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2473 (0x9a9) Types: TextFile Notes: UNIX file Names: »l.out.h«
└─⟦eafc30061⟧ Bits:30001199 Commodore 900 hard disk image └─⟦8281d0872⟧ UNIX Filesystem └─ ⟦294235107⟧ »vol3.fd« UNIX Filesystem └─ ⟦this⟧ »usr/include/l.out.h« └─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code └─⟦2d53db1df⟧ UNIX Filesystem └─ ⟦this⟧ »include/l.out.h« └─⟦eafc30061⟧ Bits:30001199 Commodore 900 hard disk image └─⟦5ec4c54f2⟧ UNIX Filesystem └─ ⟦this⟧ »usr/include/l.out.h«
/* * This is the format of the `l.out' * file (assembler output, linkage editor * input and output) as defined for * the Digital PDP-11. * It also has the namelist structure for * the nlist routine. */ #ifndef L_OUT_H #ifdef Z8001 #include <n.out.h> #else #define L_OUT_H #include <types.h> #define NCPLN 16 /* Chars in loader name */ #define NLSEG 9 /* No. of segments */ #define NXSEG 6 /* No. of segments used by exec */ #define L_MAGIC 0407 /* Magic number */ /* * This is the header. * It sits at the front of the file, * holding control information and * the sizes of the other segments * of the file. */ struct ldheader { int l_magic; /* Magic number */ int l_flag; /* Flags */ int l_machine; /* Type of target machine */ vaddr_t l_entry; /* Entrypoint */ size_t l_ssize[NLSEG]; /* Segment sizes */ }; /* Flags */ #define LF_SHR 01 /* Bound shared */ #define LF_SEP 02 /* Bound separated */ #define LF_NRB 04 /* No reloc. bits */ #define LF_KER 010 /* Loadable driver */ /* Formats */ #define AFMT "%06o" /* Address */ /* Machines */ #ifndef MTYPE_H #include <mtype.h> #endif /* Segments */ #define L_SHRI 0 /* Shared Instruction space */ #define L_PRVI 1 /* Private Instruction space */ #define L_BSSI 2 /* Uninitialised Instruction */ #define L_SHRD 3 /* Shared Data space */ #define L_PRVD 4 /* Private Data space */ #define L_BSSD 5 /* Uninitalised Data */ #define L_DEBUG 6 /* Debug tables */ #define L_SYM 7 /* Symbols */ #define L_REL 8 /* Relocation */ #define L_ABS 9 /* Absolute (symbol table) */ #define L_REF 10 /* Reference (symbol table) */ /* * Symbol. * These live in the `L_SYM' section * of the file; the size of this section * determines the number of symbols. */ struct ldsym { char ls_id[NCPLN]; /* Symbol name */ int ls_type; /* Global + Seg. */ vaddr_t ls_addr; /* Value of symbol */ }; /* * The nlist structure for the nlist routine. */ struct nlist { char n_name[NCPLN]; /* Symbol name */ int n_type; /* Type flag */ unsigned n_value; /* value */ }; #define L_GLOBAL 020 /* * Relocation. * Relocation is a byte stream. * The first is an opcode. * The next two bytes are the address * of relocation. */ #define LR_SEG 017 /* Seg., L_SYM => Sym. based */ #define LR_PCR 020 /* PC Rel. flag */ #define LR_OP 0340 /* Opcode */ #define LR_BYTE (0<<5) /* Rel. a byte */ #define LR_WORD (1<<5) /* Rel. a word */ #define LR_LONG (2<<5) /* Rel. a long */ #endif #endif