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