home *** CD-ROM | disk | FTP | other *** search
- /* ---------------------------------------------------------------------- */
- /* Copyright (C) 1991 by Natürlich! */
- /* This file is copyrighted! */
- /* Refer to the documentation for details. */
- /* ---------------------------------------------------------------------- */
- #ifndef __SEGMENT
- #define __SEGMENT
-
- #define S_RCODE 0 /* relocatable code */
- #define S_SDATA 1 /* Static data */
- #define S_RDATA 2 /* relocatable data (words) */
- #define S_TDATA 3 /* relocatable data (dbytes) */
- #define S_DS 4 /* hole to leave */
- #define S_ALIGN 5 /* align code on boundary */
- #define S_RSTOP 0x40
- #define S_UNKNOWN -1
- #define sis_code( x) ((word) x->type < S_DS)
- #define sis_unknown( s) ((s)->type < 0)
- #define calc_index() (p_index() - sp->index)
-
- #if VERSION
- # define check_fseg( p, t) \
- if( runnable) \
- { \
- if( sis_unknown( p)) \
- p->type = S_SDATA; /*1*/\
- } \
- else \
- if( (t) != p->type) \
- if( sis_unknown( p)) \
- p->type = t; \
- else \
- build_rseg( t, 0)
-
- # define check_dseg( p, t, val) \
- if( runnable) \
- { \
- if( sis_unknown( p)) \
- p->type = S_SDATA; \
- } \
- else \
- if( (t) != p->type) \
- if( sis_unknown( p)) \
- { \
- p->type = t; \
- p->size = val; \
- } \
- else \
- build_rseg( t, val); \
- else \
- p->size += val
- # endif
- #endif
- /* 1 : beats me why this should be S_SDATA (probably anything is OK !?) */
-