home *** CD-ROM | disk | FTP | other *** search
- /* ---------------------------------------------------------------------- */
- /* Copyright (C) 1991 by Natürlich! */
- /* This file is copyrighted! */
- /* Refer to the documentation for details. */
- /* ---------------------------------------------------------------------- */
- /********** ANY CHANGE HERE NECESSITATES CHANGES IN flip_structs **********/
- #ifndef _OBJECT_
- # define _OBJECT_
-
- # ifndef _STRUCTS_
- # include "structs.h"
- # endif
-
- # define OBJMAGIC 0xCEC1D3CDL /* spells NASM (what else... ) */
- # define SIGNIFICANT 32 /* symbol length for linking */
- # define FSIGNIFICANT 32 /* filename length for libraries */
-
- /* ---------------------------------------------------------- */
- /* Stuff that gets put in front of every object file */
- /* if you are porting this... Don't mess with the XXXSIZE */
- /* #defines they are handcoded for checking compatibility!! */
- /* ---------------------------------------------------------- */
- typedef struct
- {
- lword magic; /* 0 +4 */
- word version, /* 4 +2 */
- revision, /* 6 +2 */
- alignment, /* 8 +2 */
- codesize; /* 10 +2 */
- lword segsize, /* 12 +4 */
- immsize, /* 16 +4 */
- relsize, /* 20 +4 */
- expsize, /* 24 +4 */
- symsize, /* 28 +4 */
- fixsize, /* 32 +4 */
- aux1; /* 36 +4 */
- } obj_h;
- #define OBJHSIZE (size_t) 40
-
- /* ----------------------------------------------------------
- output form of Symbol table. Changed this since app. some
- (stupid IMO) compilers like to 32-bit align pointers
- ---------------------------------------------------------- */
- typedef struct
- {
- word val,
- no,
- type,
- dummy; /* Hi there */
- ref huge *refs; /* got to be long for some LINK trickery */
- char name[ SIGNIFICANT];
- } linksymbol;
- #define LSYMSIZE (size_t) (12 + SIGNIFICANT)
-
- typedef struct
- {
- word val, /* 0 +2 */
- aux, /* 2 +2 */
- label; /* 4 +2 */
- byte op, /* 6 +1 */
- fix; /* 7 +1 */
- word t, /* 8 +2 */
- l, /* 10 +2 */
- r; /* 12 +2 */
- } e_dropped;
- #define EDROPSIZE (size_t) 14
-
- typedef struct
- {
- word block,
- type,
- offset,
- val;
- } i_dropped;
- #define IDROPSIZE (size_t) 8
-
- typedef struct
- {
- word type,
- index,
- size;
- } s_dropped;
- #define SDROPSIZE (size_t) 6
-
- typedef struct
- {
- word poof,
- imm,
- index;
- } f_dropped;
- #define FDROPSIZE (size_t) 6
-
- typedef word r_dropped;
- #define RDROPSIZE (size_t) 2
-
- #endif
-