tldm-universe/Ardent/UV/gcidir/include/bashead.h
2024-09-09 17:51:08 -04:00

122 lines
4.1 KiB
C
Executable File

#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 */