122 lines
4.1 KiB
C
122 lines
4.1 KiB
C
|
#ifndef h_bashead
|
||
|
#define h_bashead
|
||
|
/******************************************************************************
|
||
|
*
|
||
|
* UniVerse BASIC program header
|
||
|
*
|
||
|
* Module %M% Version %I% Date %H%
|
||
|
*
|
||
|
* (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved
|
||
|
* This is unpublished proprietary source code of Ardent Software Inc.
|
||
|
* The copyright notice above does not evidence any actual or intented
|
||
|
* publication of such source code.
|
||
|
*
|
||
|
*******************************************************************************
|
||
|
*
|
||
|
* Maintenence log - insert most recent change descriptions at top
|
||
|
*
|
||
|
* Date.... GTAR# WHO Description.........................................
|
||
|
* 10/14/98 23801 SAP Change copyrights.
|
||
|
* 05/01/97 20453 CSM use _2_int fld of compiled obj hdr to store checksum
|
||
|
* 11/20/93 12164 SHK Adjust loader so DEC AXP can be type 1 machine
|
||
|
* 09/17/93 4138 JWT Feasability tests of fnuxi'ing object code during
|
||
|
* load phase
|
||
|
* 04/14/92 4137 TMC change BASHEAD flags to union for objcode converter
|
||
|
* 06/30/90 6889 JWT raid and vlist fixes
|
||
|
* 11/21/89 6572 JWT Added support for Phil Hill's OBJLOAD utility... new
|
||
|
* phhspec bit tags object which is preloaded using Phil's
|
||
|
* utility
|
||
|
* 11/14/89 6183 JWT Longer variable name support
|
||
|
* 07/25/88 - - Maintenence log purged at 5.2.1, see release 5.1.10.
|
||
|
*
|
||
|
*****************************************************************************/
|
||
|
|
||
|
#define BASHEAD struct bashead
|
||
|
|
||
|
struct basheadbitmap
|
||
|
{
|
||
|
BITMAP clrcom : 1, /* CLEARCOMMON flar */
|
||
|
quick : 1, /* Quickload flag */
|
||
|
ugetbit : 1, /* did this prog use the GET stmt */
|
||
|
nbasic : 1, /* new basic object format tag */
|
||
|
phhspec : 1, /* reserved for use by Phil's OBJLOAD */
|
||
|
nolook : 1, /* inhibit RAID and VLIST on object */
|
||
|
fnuxi : 1, /* object code was fnuxi'd by loader */
|
||
|
spares : ((8 * sizeof(BITMAP)) - 7);
|
||
|
};
|
||
|
|
||
|
union basheadflags
|
||
|
{
|
||
|
struct basheadbitmap b;
|
||
|
unsigned int flagword;
|
||
|
};
|
||
|
|
||
|
struct bashead
|
||
|
{
|
||
|
ushort valid, /* validity checking pattern */
|
||
|
version, /* compiler version number */
|
||
|
objlev, /* object code revision level */
|
||
|
machine, /* hardware dependence flag */
|
||
|
locsiz, /* number of local variable descriptors */
|
||
|
argsiz, /* number of subroutine arguments */
|
||
|
comsiz, /* number of common descriptors */
|
||
|
namcom, /* number of named common blocks */
|
||
|
konsiz, /* number of user defined constants */
|
||
|
presiz, /* number of pre-loaded references */
|
||
|
totsiz, /* total number of references */
|
||
|
namsiz, /* total number of names */
|
||
|
symsiz, /* total number of symbols */
|
||
|
concnt, /* Number of constants */
|
||
|
regcnt, /* number of registers */
|
||
|
_2_short; /* reserved... */
|
||
|
int objlen, /* number of bytes of object */
|
||
|
srclen, /* number of source lines */
|
||
|
linsiz, /* size of line number table */
|
||
|
strsiz, /* size of the string table */
|
||
|
checksum; /* checksum of object code */
|
||
|
int comseek, /* offset of common table */
|
||
|
konseek, /* offset of konstant table */
|
||
|
symseek, /* offset of symbol table */
|
||
|
linseek, /* offset to line number table */
|
||
|
srcseek, /* offset to source file names */
|
||
|
_1_long, /* reserved ... */
|
||
|
_2_long; /* reserved ... */
|
||
|
union basheadflags f; /* flags */
|
||
|
};
|
||
|
|
||
|
/* reference table entries for NBASIC */
|
||
|
#define NREFTAB struct nref_table
|
||
|
struct nref_table
|
||
|
{
|
||
|
char *name; /* The symbol name */
|
||
|
ushort address, /* The address within Vartab */
|
||
|
type, /* The symbol type */
|
||
|
xdim, /* Max X dimension for Vfarrays */
|
||
|
ydim; /* Max Y dimension for Vfarrays */
|
||
|
|
||
|
};
|
||
|
|
||
|
#define IREFTAB struct iref_table
|
||
|
struct iref_table
|
||
|
{
|
||
|
int name; /* The symbol name */
|
||
|
ushort address, /* The address within Vartab */
|
||
|
type, /* The symbol type */
|
||
|
xdim, /* Max X dimension for Vfarrays */
|
||
|
ydim; /* Max Y dimension for Vfarrays */
|
||
|
|
||
|
};
|
||
|
|
||
|
#define REFTAB struct ref_table
|
||
|
struct ref_table
|
||
|
{
|
||
|
char name[SYMsiz]; /* The symbol name */
|
||
|
ushort address, /* The address within Vartab */
|
||
|
type, /* The symbol type */
|
||
|
xdim, /* Max X dimension for Vfarrays */
|
||
|
ydim; /* Max Y dimension for Vfarrays */
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif /* end of bashead.h */
|