Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v102a/sid/siddef.h
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

66 lines
2.3 KiB
C

/********************************************************/
/* */
/* Usual filename: SIDDEF.H */
/* Put ' #include "siddef.h" ' at head of each */
/* separately compiled module containing */
/* code added to DDT68K to give SID68K. */
/* Remarks: Definitions and declarations */
/* specific to SID68K. */
/* Author: Timothy M. Benson */
/* Control: 12 MAY 83 15:36 (TMB) */
/* */
/********************************************************/
typedef long U32;
typedef unsigned int U16;
#define HMPPTS 32 /* # pass points allowed */
#define SAYMAX stout("32\n"); /* (Must agree with preceding line */
#define HMSYMS 2000 /* Maximum number of symbols in symbol table */
/**temp** This is a temporary value.*/
#define CONTIG 0x601A /* First word of contiguous load modules */
#define DISCON 0x601B /* First word of noncontiguous load modules */
#define TLONG 0x0080 /* Flag for entry in long-names string table */
#define GONE 0x0040 /* Flag indicating hidden symbol */
#define SEGREF 0x0700 /* Text, data, or bss relative */
#define IS & /* (Sometimes reads well) */
#define TREL 0x0200 /* (sic) Text relative */
#define DREL 0x0400 /* (sic) Data relative */
#define BREL 0x0100 /* Bss relative */
/************************************************/
/* */
/* Structure of symbol table entry */
/* */
/************************************************/
struct asymbl BEGIN
char namae[8];
U16 symtyp;
U32 symval;
END;
/************************************************/
/* */
/* Structure of load module header */
/* followed by symbol table */
/* */
/************************************************/
/* Using type definitions to ensure lengths of 16 and 32 bits,
unsigned if allowed, alignment on even address, no gaps. */
struct lmhedr BEGIN
U16 lmkind; /* 0x601A => contiguous; 0x601B => noncontiguous */
U32 lmtlen; /* Number of bytes in text segment */
U32 lmdlen; /* Number of bytes in data segment */
U32 padlen; /* Number of bytes in bss segment */
U32 symlen; /* Number of bytes in symbol table */
U32 nought; /* Filler: Should be zero */
U32 tceps; /* Start of text */
U16 rflagb; /* 0 => relocation; nonzero => no relocation */
U32 dceps; /* Start of data */
U32 bceps; /* Start of bss */
struct asymbl sump[HMSYMS]; /* Symbol table per se */
char filler[128];
END;