home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
program
/
compiler
/
nasm20b
/
nasm_src
/
object.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-19
|
3KB
|
97 lines
/* ---------------------------------------------------------------------- */
/* 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