/* This is the C-version of TeX for Xenix machines (huge model) */

/* File: externs.h, contains only external declarations */

# include <stdio.h>
# include "pc3.lib.h"
# include <setjmp.h>
#ifdef gould
# include <sys/time.h>
# include <sys/resource.h>
#endif

/* UIA modif to pc3 I/O */
#undef GET_2
#undef PUT_2
#undef RESET_3
# define GET_2(F)	if (fread(&F.buffer,sizeof(F.buffer),1,F.fp)<1) F.eof=TRUE;

# define PUT_2(F)	fwrite(&F.buffer,sizeof(F.buffer),1,F.fp);

# define RESET_3(F,N)	F.fp=fopen(N,"r"); \
			F.eof= (fread(&F.buffer,sizeof(F.buffer),1,F.fp)<1);
			    
/* end UIA modif */
#define F29_gettoken(a) { \
			  nonewcontrolsequence = FALSE; \
			  F147_getnext(); \
			  nonewcontrolsequence = TRUE; \
			  if (curcs == 0) \
			    curtok = (curcmd << 8) + curchr; \
			  else \
			    curtok = 4096 + curcs; \
			}

#define F157_xtoken(a) { \
			  while (curcmd > 99) \
			  { \
			    F156_expand (); \
			    F147_getnext (); \
			  } \
			  if (curcs == 0) \
			    curtok = (curcmd << 8) + curchr; \
			  else \
			    curtok = 4096 + curcs; \
		       }

#define F153_getxtoken(a) { \
			    _200:  \
			      F147_getnext (); \
			      if (curcmd <= 99) \
				goto _300; \
			      if (curcmd >= 110) \
				if (curcmd < 114) \
				  F148_macrocall (); \
				else \
				{ \
				  curcs = 3264; \
				  curcmd = 9; \
				  goto _300; \
				} \
			      else \
				F156_expand (); \
			      goto _200; \
			    _300:  \
			      if (curcs == 0) \
				curtok = (curcmd << 8) + curchr; \
			      else \
				curtok = 4096 + curcs; \
			    }

#define F153_twogetxtoken(a) { \
			    _400:  \
			      F147_getnext (); \
			      if (curcmd <= 99) \
				goto _500; \
			      if (curcmd >= 110) \
				if (curcmd < 114) \
				  F148_macrocall (); \
				else \
				{ \
				  curcs = 3264; \
				  curcmd = 9; \
				  goto _500; \
				} \
			      else \
				F156_expand (); \
			      goto _400; \
			    _500:  \
			      if (curcs == 0) \
				curtok = (curcmd << 8) + curchr; \
			      else \
				curtok = 4096 + curcs; \
			    }

#define F153_threegetxtoken(a) { \
			    _600:  \
			      F147_getnext (); \
			      if (curcmd <= 99) \
				goto _700; \
			      if (curcmd >= 110) \
				if (curcmd < 114) \
				  F148_macrocall (); \
				else \
				{ \
				  curcs = 3264; \
				  curcmd = 9; \
				  goto _700; \
				} \
			      else \
				F156_expand (); \
			      goto _600; \
			    _700:  \
			      if (curcs == 0) \
				curtok = (curcmd << 8) + curchr; \
			      else \
				curtok = 4096 + curcs; \
			    }

#define F153_fourgetxtoken(a) { \
			    _800:  \
			      F147_getnext (); \
			      if (curcmd <= 99) \
				goto _900; \
			      if (curcmd >= 110) \
				if (curcmd < 114) \
				  F148_macrocall (); \
				else \
				{ \
				  curcs = 3264; \
				  curcmd = 9; \
				  goto _900; \
				} \
			      else \
				F156_expand (); \
			      goto _800; \
			    _900:  \
			      if (curcs == 0) \
				curtok = (curcmd << 8) + curchr; \
			      else \
				curtok = 4096 + curcs; \
			    }

#define F153_fivegetxtoken(a) { \
			    _650:  \
			      F147_getnext (); \
			      if (curcmd <= 99) \
				goto _750; \
			      if (curcmd >= 110) \
				if (curcmd < 114) \
				  F148_macrocall (); \
				else \
				{ \
				  curcs = 3264; \
				  curcmd = 9; \
				  goto _750; \
				} \
			      else \
				F156_expand (); \
			      goto _650; \
			    _750:  \
			      if (curcs == 0) \
				curtok = (curcmd << 8) + curchr; \
			      else \
				curtok = 4096 + curcs; \
			    }

extern jmp_buf L_9998;
extern int argc;
extern char **argv;

# ifdef INITEX
# define C1_memmax           		30000L
# define C17_triesize        		8000L
# endif
# ifdef TRIPTEX
# define C1_memmax			3000L
# define C17_triesize			8000L
# endif
# if !(defined(INITEX) || defined(TRIPTEX))
# define C1_memmax			32700L
# define C17_triesize        		6500L
# endif

# ifdef TRIPTEX
# define C2_memmin			1L
# else
# define C2_memmin           		(-30000L)
# endif

# define C3_bufsize          		1024

# if defined(TRIPTEX) || defined(INITEX)
# define C4_errorline			64
# define C5_halferrorline    		32
# define C6_maxprintline     		72
# else
# define C4_errorline        		79
# define C5_halferrorline    		50
# define C6_maxprintline     		79
# endif


# define C7_stacksize        		200

# define C8_maxinopen        		15

# define C9_fontmax          		100

# define C10_fontmemsize     		25000

# define C11_paramsize       		60

# define C12_nestsize        		40

# define C13_maxstrings      		4400

# define C14_stringvacancies 		15000

# define C15_poolsize        		45000L

/* # define C16_savesize        		600 */
# define C16_savesize        		2000

# define C18_dvibufsize      		1024
# define C18_halfbufsize		512

# define C19_filenamesize    		1024

# ifdef INITEX
# define C20_poolname			"initex.pool"
# endif
# ifdef TRIPTEX
# define C20_poolname			"triptex.pool"
# endif
# if !(defined(INITEX)||defined(TRIPTEX))
# define C20_poolname        		"tex.pool"
# endif

typedef struct {
long a0;
long a1;
long a2;
long a3;
long a4;
long a5;
} sixword;
typedef char T21_asciicode; /* was declared int by pc3. values 0..127 */

typedef unsigned char T22_eightbits; /* was declared int by pc3. 0..255 */

typedef struct
{
  FILE * fp;
  BOOLEAN eof, eoln, validbuffer;
  char  buffer;
}               T23_alphafile; /* this is a textfile */

typedef struct
{
  FILE * fp;
  BOOLEAN eof;
  unsigned char buffer;
}               T24_ubytefile;

typedef struct
{
  FILE * fp;
  BOOLEAN eof;
  char buffer;
}               T24_bytefile; /* this is a file of -128..127 */

#ifdef M_XENIX
typedef unsigned int T25_poolpointer; /* 0..poolsize */
#else
typedef unsigned int T25_poolpointer; /* 0..poolsize */
#endif

typedef int T26_strnumber; /* 0..maxstrings */

typedef long int T27_scaled; /* integer */

typedef unsigned long int T28_nonnegativeinteger; /* 0..maxint */

typedef int T29_smallnumber; /* 0..63 */

typedef long int T30_glueratio; /* integer */

typedef char T31_quarterword; /* was int for pc3, range -128..127 */

typedef short int T32_halfword; /* was int for pc3, range -32768..32767 */

typedef int T33_twochoices; /* 1..2 */

typedef int T34_fourchoices; /* 1..4 */

typedef struct
{
  T32_halfword rh;
  union
  {
    struct
    {
      T32_halfword lh;
    }       _TAG1;
    struct
    {
      T31_quarterword b0;
      T31_quarterword b1;
    }       _TAG2;
  }               _TAG;
} T35_twohalves;

typedef struct
{
  T31_quarterword b0;
  T31_quarterword b1;
  T31_quarterword b2;
  T31_quarterword b3;
}               T36_fourquarters;

typedef struct
{
  union
  {
    struct
    {
      long int   _int;
    }       _TAG1;
    struct
    {
      float gr;
    }       _TAG2;
    struct
    {
      T35_twohalves hh;
    }       _TAG3;
    struct
    {
      T36_fourquarters qqqq;
    }       _TAG4;
  } _TAG;
}               T37_memoryword;

typedef struct
{
  FILE * fp;
  BOOLEAN eof;
  T37_memoryword buffer;
}               T38_wordfile;

typedef int T39_glueord; /* 0..3 */

typedef struct
{
  long int   auxfield;
        int /* was T32_halfword */ headfield;
  long int   mlfield;
  int   modefield;
  long int   pgfield;
        int /* was T32_halfword */ tailfield;
}               T40_liststaterecord;

typedef int T41_groupcode; /* 0..16 */

typedef struct
{
  T31_quarterword indexfield;
  int /* was T32_halfword */ limitfield;
  int /* was T32_halfword */ locfield;
  int /* was T32_halfword */ namefield;
  int /* was T32_halfword */ startfield;
  T31_quarterword statefield;
}               T42_instaterecord;

typedef int T43_internalfontnumber; /* 0..100 */

typedef int T44_dviindex; /* 0..800 */

typedef int T45_triepointer; /* 0..8000 */

typedef int T46_hyphpointer; /* 0..307 */

#ifdef M_XENIX
#ifdef TRIPTEX
extern T37_memoryword huge mem[];
#else
extern T37_memoryword huge mem[];
#endif
#else
/*NOBASE*/extern T37_memoryword mem[];
#endif

extern int initialized;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29975;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29976;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29977;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29978;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29979;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29980;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29981;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29982;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29983;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29984;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29985;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29986;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29987;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29988;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29989;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29990;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29991;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29992;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29993;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29994;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29995;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29996;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29997;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29998;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m29999;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m30000;
extern T37_memoryword
#ifdef M_XENIX
huge
#endif
*
#ifdef M_XENIX
near
#endif
m_30000;
extern long int  
#ifdef M_XENIX
near
#endif
activewidth[];
extern long int  
#ifdef M_XENIX
near
#endif
actuallooseness;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
adjusttail;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
aftertoken;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
alignptr;
extern long int  
#ifdef M_XENIX
near
#endif
alignstate;
extern T25_poolpointer
#ifdef M_XENIX
near
#endif
areadelimiter;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
aritherror;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
avail;
extern long int  
#ifdef M_XENIX
near
#endif
background[];
extern int  
#ifdef M_XENIX
near
#endif
bad;
extern int  
#ifdef M_XENIX
near
#endif
baseptr;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
bestbet;
extern long int  
#ifdef M_XENIX
near
#endif
bestheightplusdepth;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
bestline;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
bestpagebreak;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
bestplace[];
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
bestplline[];
extern long int  
#ifdef M_XENIX
near
#endif
bestsize;
extern long int  
#ifdef M_XENIX
near
#endif
breadthmax;
extern long int  
#ifdef M_XENIX
near
#endif
breakwidth[];
extern T21_asciicode
#ifdef M_XENIX
near
#endif
buffer[];
extern T31_quarterword
#ifdef M_XENIX
near
#endif
c;
extern int  
#ifdef M_XENIX
near
#endif
charbase[];
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
condptr;
extern long int  
#ifdef M_XENIX
near
#endif
cscount;
extern long int  
#ifdef M_XENIX
near
#endif
curactivewidth[];
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curalign;
extern T26_strnumber
#ifdef M_XENIX
near
#endif
curarea;
extern int  
#ifdef M_XENIX
near
#endif
curboundary;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curbox;
extern T31_quarterword
#ifdef M_XENIX
near
#endif
curc;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curchr;
extern T22_eightbits
#ifdef M_XENIX
near
#endif
curcmd;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curcs;
extern T26_strnumber
#ifdef M_XENIX
near
#endif
curext;
extern T43_internalfontnumber
#ifdef M_XENIX
near
#endif
curf;
extern T41_groupcode
#ifdef M_XENIX
near
#endif
curgroup;
extern long int  
#ifdef M_XENIX
near
#endif
curh;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curhead;
extern T36_fourquarters
#ifdef M_XENIX
near
#endif
curi;
extern T29_smallnumber
#ifdef M_XENIX
near
#endif
curif;
extern T42_instaterecord
#ifdef M_XENIX
near
#endif
curinput;
extern T31_quarterword
#ifdef M_XENIX
near
#endif
curlevel;
extern T40_liststaterecord
#ifdef M_XENIX
near
#endif
curlist;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curloop;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curmark[];
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curmlist;
extern long int  
#ifdef M_XENIX
near
#endif
curmu;
extern T26_strnumber
#ifdef M_XENIX
near
#endif
curname;
extern T39_glueord
#ifdef M_XENIX
near
#endif
curorder;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curp;
extern long int  
#ifdef M_XENIX
near
#endif
curs;
extern T29_smallnumber
#ifdef M_XENIX
near
#endif
cursize;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curspan;
extern T29_smallnumber
#ifdef M_XENIX
near
#endif
curstyle;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curtail;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
curtok;
extern long int  
#ifdef M_XENIX
near
#endif
curv;
extern long int  
#ifdef M_XENIX
near
#endif
curval;
extern int  
#ifdef M_XENIX
near
#endif
curvallevel;
extern long int  
#ifdef M_XENIX
near
#endif
deadcycles;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
defref;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
deletionsallowed;
extern int  
#ifdef M_XENIX
near
#endif
depthbase[];
extern long int  
#ifdef M_XENIX
near
#endif
depththreshold;
extern int  
#ifdef M_XENIX
near
#endif
dig[];
extern long int  
#ifdef M_XENIX
near
#endif
discwidth;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
doingleaders;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
downptr;
extern T22_eightbits dvibuf[];
extern T43_internalfontnumber
#ifdef M_XENIX
near
#endif
dvif;
extern int
#ifdef M_XENIX
near
#endif
dvifile;
extern long int  
#ifdef M_XENIX
near
#endif
dvigone;
extern long int  
#ifdef M_XENIX
near
#endif
dvih;
extern T44_dviindex
#ifdef M_XENIX
near
#endif
dvilimit;
extern long int  
#ifdef M_XENIX
near
#endif
dvioffset;
extern T44_dviindex
#ifdef M_XENIX
near
#endif
dviptr;
extern long int  
#ifdef M_XENIX
near
#endif
dviv;
extern long int  
#ifdef M_XENIX
near
#endif
dynused;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
easyline;
extern long int  
#ifdef M_XENIX
near
#endif
editline;
extern int  
#ifdef M_XENIX
near
#endif
V47_editnamelength;
extern T25_poolpointer
#ifdef M_XENIX
near
#endif
editnamestart;
extern T35_twohalves
#ifdef M_XENIX
near
#endif
emptyfield;
extern T37_memoryword
#ifdef M_XENIX
near
#endif
eqtb[];
extern int  
#ifdef M_XENIX
near
#endif
errorcount;
extern T25_poolpointer
#ifdef M_XENIX
near
#endif
extdelimiter;
extern int  
#ifdef M_XENIX
near
#endif
extenbase[];
extern T31_quarterword
#ifdef M_XENIX
near
#endif
f;
extern long int  
#ifdef M_XENIX
near
#endif
fewestdemerits;
extern int   fileoffset;
extern int  
#ifdef M_XENIX
near
#endif
first;
extern long int  
#ifdef M_XENIX
near
#endif
firstcount;
extern long int  
#ifdef M_XENIX
near
#endif
firstindent;
extern long int  
#ifdef M_XENIX
near
#endif
firstwidth;
extern int  
#ifdef M_XENIX
near
#endif
fmemptr;
extern T38_wordfile
#ifdef M_XENIX
near
#endif
fmtfile;
extern T26_strnumber
#ifdef M_XENIX
near
#endif
fontarea[];
extern T22_eightbits
#ifdef M_XENIX
near
#endif
fontbc[];
extern T36_fourquarters fontcheck[];
extern long int  
#ifdef M_XENIX
near
#endif
fontdsize[];
extern T22_eightbits
#ifdef M_XENIX
near
#endif
fontec[];
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
fontglue[];
#ifdef M_XENIX
extern T37_memoryword huge fontinfo[];
#else
extern T37_memoryword fontinfo[];
#endif
extern long int  
#ifdef M_XENIX
near
#endif
fontinshortdisplay;
extern T26_strnumber fontname[];
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
fontparams[];
extern T43_internalfontnumber
#ifdef M_XENIX
near
#endif
fontptr;
extern long int  
#ifdef M_XENIX
near
#endif
fontsize[];
extern BOOLEAN fontused[];
extern BOOLEAN
#ifdef M_XENIX
near
#endif
forceeof;
extern T26_strnumber
#ifdef M_XENIX
near
#endif
formatident;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
g;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
ha;
extern T44_dviindex halfbuf;
extern T35_twohalves
#ifdef M_XENIX
near
#endif
hash[];
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
hashused;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
hb;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
hc[];
extern int  
#ifdef M_XENIX
near
#endif
heightbase[];
extern T26_strnumber helpline[];
extern int   helpptr;
extern T43_internalfontnumber
#ifdef M_XENIX
near
#endif
hf;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
himemmin;
extern int  
#ifdef M_XENIX
near
#endif
history;
extern T29_smallnumber
#ifdef M_XENIX
near
#endif
hn;
extern T21_asciicode
#ifdef M_XENIX
near
#endif
hu[];
extern int  
#ifdef M_XENIX
near
#endif
hyf[];
extern long int  
#ifdef M_XENIX
near
#endif
hyfchar;
extern T29_smallnumber hyfdistance[];
extern T31_quarterword hyfnext[];
extern T29_smallnumber hyfnum[];
extern T46_hyphpointer
#ifdef M_XENIX
near
#endif
hyphcount;
extern long int   hyphenchar[];
extern T29_smallnumber
#ifdef M_XENIX
near
#endif
hyphenpassed;
extern int /* was T32_halfword */ hyphlist[];
extern T26_strnumber hyphword[];
extern int  
#ifdef M_XENIX
near
#endif
iflimit;
extern long int  
#ifdef M_XENIX
near
#endif
ifline;
extern T25_poolpointer
#ifdef M_XENIX
near
#endif
initpoolptr;
extern T26_strnumber
#ifdef M_XENIX
near
#endif
initstrptr;
extern int  
#ifdef M_XENIX
near
#endif
inopen;
extern T23_alphafile
#ifdef M_XENIX
near
#endif
inputfile[];
extern int  
#ifdef M_XENIX
near
#endif
inputptr;
extern T42_instaterecord
#ifdef M_XENIX
near
#endif
inputstack[];
extern long int  
#ifdef M_XENIX
near
#endif
insertpenalties;
extern int  
#ifdef M_XENIX
near
#endif
interaction;
extern int  
#ifdef M_XENIX
near
#endif
interrupt;
extern int  
#ifdef M_XENIX
near
#endif
italicbase[];
extern T26_strnumber
#ifdef M_XENIX
near
#endif
jobname;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
justbox;
extern int  
#ifdef M_XENIX
near
#endif
kernbase[];
extern int  
#ifdef M_XENIX
near
#endif
last;
extern long int  
#ifdef M_XENIX
near
#endif
lastbop;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
lastglue;
extern long int  
#ifdef M_XENIX
near
#endif
lastkern;
extern long int  
#ifdef M_XENIX
near
#endif
lastpenalty;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
lastspecialline;
extern long int  
#ifdef M_XENIX
near
#endif
leastpagecost;
extern int  
#ifdef M_XENIX
near
#endif
ligkernbase[];
extern long int  
#ifdef M_XENIX
near
#endif
line;
extern long int  
#ifdef M_XENIX
near
#endif
linediff;
extern long int  
#ifdef M_XENIX
near
#endif
linestack[];
extern T23_alphafile
#ifdef M_XENIX
near
#endif
logfile;
extern T26_strnumber logname;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
lomemmax;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
longhelpseen;
extern int  
#ifdef M_XENIX
near
#endif
longstate;
extern long int  
#ifdef M_XENIX
near
#endif
lq;
extern long int  
#ifdef M_XENIX
near
#endif
lr;
extern long int  
#ifdef M_XENIX
near
#endif
magicoffset;
extern long int  
#ifdef M_XENIX
near
#endif
magset;
extern int  
#ifdef M_XENIX
near
#endif
maxbufstack;
extern long int  
#ifdef M_XENIX
near
#endif
maxh;
extern int  
#ifdef M_XENIX
near
#endif
maxinstack;
extern long int  
#ifdef M_XENIX
near
#endif
maxneststack;
extern long int  
#ifdef M_XENIX
near
#endif
maxparamstack;
extern long int  
#ifdef M_XENIX
near
#endif
maxpush;
extern int  
#ifdef M_XENIX
near
#endif
maxsavestack;
extern long int  
#ifdef M_XENIX
near
#endif
maxv;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
memend;
extern long int  
#ifdef M_XENIX
near
#endif
minimaldemerits[];
extern long int  
#ifdef M_XENIX
near
#endif
minimumdemerits;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
mlistpenalties;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
nameinprogress;
extern int  
#ifdef M_XENIX
near
#endif
namelength; /* 0..1024 */
extern char  nameoffile[];
extern T40_liststaterecord
#ifdef M_XENIX
near
#endif
nest[];
extern int  
#ifdef M_XENIX
near
#endif
nestptr;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
nonewcontrolsequence;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
noshrinkerroryet;
extern T36_fourquarters
#ifdef M_XENIX
near
#endif
nullcharacter;
extern T36_fourquarters
#ifdef M_XENIX
near
#endif
nulldelimiter;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
oktointerrupt;
extern int  
#ifdef M_XENIX
near
#endif
oldsetting;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
outputactive;
extern T26_strnumber
#ifdef M_XENIX
near
#endif
outputfilename;
extern long int  
#ifdef M_XENIX
near
#endif
packbeginline;
extern int  
#ifdef M_XENIX
near
#endif
pagecontents;
extern long int  
#ifdef M_XENIX
near
#endif
pagemaxdepth;
extern long int  
#ifdef M_XENIX
near
#endif
pagesofar[];
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
pagetail;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
panicking;
extern int  
#ifdef M_XENIX
near
#endif
parambase[];
extern int  
#ifdef M_XENIX
near
#endif
paramptr;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
paramstack[];
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
parloc;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
partoken;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
passive;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
passnumber;
extern T25_poolpointer
#ifdef M_XENIX
near
#endif
poolptr;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
printednode;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
pstack[];
extern T29_smallnumber
#ifdef M_XENIX
near
#endif
radix;
extern T23_alphafile
#ifdef M_XENIX
near
#endif
readfile[];
extern long int  
#ifdef M_XENIX
near
#endif
readopen[];
extern long int  
#ifdef M_XENIX
near
#endif
readyalready;
extern char  realnameoffile[];
extern long int  
#ifdef M_XENIX
near
#endif
remainder;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
rightptr;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
rover;
extern long int  
#ifdef M_XENIX
near
#endif
ruledp;
extern long int  
#ifdef M_XENIX
near
#endif
ruleht;
extern long int  
#ifdef M_XENIX
near
#endif
rulewd;
extern int  
#ifdef M_XENIX
near
#endif
saveptr;
extern T37_memoryword savestack[];
extern int  
#ifdef M_XENIX
near
#endif
scannerstatus;
extern long int  
#ifdef M_XENIX
near
#endif
secondindent;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
secondpass;
extern long int  
#ifdef M_XENIX
near
#endif
secondwidth;
extern int  
#ifdef M_XENIX
near
#endif
selector;
extern int  
#ifdef M_XENIX
near
#endif
shownmode;
extern long int  
#ifdef M_XENIX
near
#endif
skewchar[];
extern long int  
#ifdef M_XENIX
near
#endif
skipline;
extern T21_asciicode strpool[];
extern T26_strnumber
#ifdef M_XENIX
near
#endif
strptr;
extern T25_poolpointer strstart[];
extern long int  
#ifdef M_XENIX
near
#endif
tally;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
tempptr;
extern int   termoffset;
extern char  texformatdefault[];
extern T24_ubytefile
#ifdef M_XENIX
near
#endif
tfmfile;
extern long int  
#ifdef M_XENIX
near
#endif
threshold;
extern long int  
#ifdef M_XENIX
near
#endif
totalpages;
extern long int  
#ifdef M_XENIX
near
#endif
totalshrink[];
extern long int  
#ifdef M_XENIX
near
#endif
totalstretch[];
extern T21_asciicode trickbuf[];
extern long int   trickcount;
extern T35_twohalves trie[];
extern T45_triepointer
#ifdef M_XENIX
near
#endif
triemax;
extern T31_quarterword
#ifdef M_XENIX
near
#endif
trieopptr;
extern T45_triepointer
#ifdef M_XENIX
near
#endif
trieptr;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
useerrhelp;
extern long int  
#ifdef M_XENIX
near
#endif
varused;
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
warningindex;
extern int  
#ifdef M_XENIX
near
#endif
widthbase[];
extern T23_alphafile
#ifdef M_XENIX
near
#endif
writefile[];
extern int /* was T32_halfword */
#ifdef M_XENIX
near
#endif
writeloc;
extern BOOLEAN
#ifdef M_XENIX
near
#endif
writeopen[];
extern T31_quarterword
#ifdef M_XENIX
near
#endif
xeqlevel[];
# if defined(INITEX) || defined(TRIPTEX)
extern T45_triepointer triemin;
extern int /* was T32_halfword */ washimin;
extern int /* was T32_halfword */ waslomax;
extern int /* was T32_halfword */ wasmemend;
extern T23_alphafile poolfile;
#ifdef M_XENIX
extern BOOLEAN huge wasfree[];
extern BOOLEAN huge freearr[];
extern T45_triepointer triehash[];
extern T21_asciicode triec[];
extern T31_quarterword trieo[];
extern T45_triepointer triel[];
extern T45_triepointer trier[];
extern BOOLEAN trietaken[];
extern T31_quarterword trieophash[];
#else
#ifdef gould
extern BOOLEAN *wasfree;
extern BOOLEAN *freearr;
extern T45_triepointer *triehash;
extern T21_asciicode *triec;
extern T31_quarterword *trieo;
extern T45_triepointer *triel;
extern T45_triepointer *trier;
extern BOOLEAN *trietaken;
extern T31_quarterword *trieophash;
#else
extern BOOLEAN wasfree[];
extern BOOLEAN freearr[];
extern T45_triepointer triehash[];
extern T21_asciicode triec[];
extern T31_quarterword trieo[];
extern T45_triepointer triel[];
extern T45_triepointer trier[];
extern BOOLEAN trietaken[];
extern T31_quarterword trieophash[];
#endif
#endif
# endif

/* functions from ext.pc3.c */
selectsheduling();

dateandtime ();

setpaths ();

BOOLEAN testaccess ();

writedvi ();

calledit ();

/* functions from virtex1.c */
extern void F14_initialize ();

extern void F15_println ();

extern void F16_printchar ();

extern void F17_print ();

extern void F18_slowprint ();

extern void F19_printnl ();

extern void F20_printesc ();

extern void F21_printthedigs ();

extern void F22_printint ();

extern void F23_printcs ();

extern void F24_sprintcs ();

extern void F25_printfilename ();

extern void F26_printsize ();

extern void F27_printwritewhatsit ();

extern void F28_normalizeselector ();

extern void F30_terminput ();

extern void F31_showcontext ();

extern void F32_beginfilereading ();

extern void F33_openlogfile ();

extern void F34_closefilesandtermina ();

extern void F35_clearforerrorprompt ();

extern void F36_giveerrhelp ();

extern void F37_debughelp ();

extern void F38_jumpout ();

extern void F39_error ();

extern void F40_fatalerror ();

extern void F41_overflow ();

extern void F42_confusion ();

extern BOOLEAN F43_aopenin ();

extern BOOLEAN F44_aopenout ();

extern BOOLEAN F45_bopenin ();

extern BOOLEAN F46_bopenout ();

extern BOOLEAN F47_wopenin ();

extern BOOLEAN F48_wopenout ();

/* F49..F51 do not exist */

extern BOOLEAN F52_inputln ();

extern BOOLEAN F53_initterminal ();

extern T26_strnumber F54_makestring ();

extern BOOLEAN F55_streqbuf ();

extern BOOLEAN F56_streqstr ();

extern BOOLEAN F57_getstringsstarted ();

extern void F58_printtwo ();

extern void F59_printhex ();

extern void F60_printascii ();

extern void F61_printromanint ();

extern void F62_printcurrentstring ();

extern void F63_interror ();

extern void F64_pauseforinstructions ();

extern long int   F65_half();

extern long int   F66_rounddecimals ();

/* functions from virtex2.c */
extern void F67_printscaled ();

extern long int   F68_nxplusy ();

extern long int   F69_xovern ();

extern long int   F70_xnoverd ();

extern int /* was T32_halfword */ F71_badness ();

extern void F72_printword ();

extern void F73_showtokenlist ();

extern void F74_runaway ();

extern int /* was T32_halfword */ F75_getavail ();

extern void F76_flushlist ();

extern int /* was T32_halfword */ F77_getnode ();

extern void F78_freenode ();

extern void F79_sortavail ();

extern int /* was T32_halfword */ F80_newnullbox ();

extern int /* was T32_halfword */ F81_newrule ();

extern int /* was T32_halfword */ F82_newligature ();

extern int /* was T32_halfword */ F83_newdisc ();

extern int /* was T32_halfword */ F84_newmath ();

extern int /* was T32_halfword */ F85_newspec ();

extern int /* was T32_halfword */ F86_newparamglue ();

extern int /* was T32_halfword */ F87_newglue ();

extern int /* was T32_halfword */ F88_newskipparam ();

extern int /* was T32_halfword */ F89_newkern ();

extern int /* was T32_halfword */ F90_newpenalty ();

extern void F91_checkmem ();

extern void F92_searchmem ();

extern void F93_shortdisplay ();

extern void F94_printfontandchar ();

extern void F95_printmark ();

extern void F96_printruledimen ();

extern void F97_printglue ();

extern void F98_printspec ();

extern void F99_printfamandchar ();

extern void F100_printdelimiter ();

extern void F102_printsubsidiarydata ();

extern void F103_printstyle ();

extern void F104_printskipparam ();

extern void F105_shownodelist ();

extern void F106_showbox ();

extern void F107_deletetokenref ();

extern void F108_deleteglueref ();

extern void F109_flushnodelist ();

extern int /* was T32_halfword */ F110_copynodelist ();

extern void F111_printmode ();

extern void F112_pushnest ();

extern void F113_popnest ();

extern void F115_showactivities ();

extern void F116_printparam ();

/* functions from virtex3.c */
extern void F117_fixdateandtime ();

extern void F118_begindiagnostic ();

extern void F119_enddiagnostic ();

extern void F120_printlengthparam ();

extern void F121_printcmdchr ();

extern void F122_showeqtb ();

extern int /* was T32_halfword */ F123_idlookup ();

extern void F124_primitive ();

extern void F125_newsavelevel ();

extern void F126_eqdestroy ();

extern void F127_eqsave ();

extern void F128_eqdefine ();

extern void F129_eqworddefine ();

extern void F130_geqdefine ();

extern void F131_geqworddefine ();

extern void F132_saveforafter ();

extern void F133_restoretrace ();

extern void F134_backinput ();

extern void F135_unsave ();

extern void F136_preparemag ();

extern void F137_tokenshow ();

extern void F138_printmeaning ();

extern void F139_showcurcmdchr ();

extern void F140_begintokenlist ();

extern void F141_endtokenlist ();

extern void F142_backerror ();

extern void F143_inserror ();

extern void F144_endfilereading ();

extern void F145_checkoutervalidity ();

extern void F147_getnext ();

/* functions from virtex4.c */
extern void F146_firmuptheline ();

extern void F148_macrocall ();

extern void F149_insertrelax ();

extern void F154_convtoks ();

extern void F155_insthetoks ();

extern void F156_expand ();

extern void F158_scanleftbrace ();

extern void F159_scanoptionalequals ();

extern BOOLEAN F160_scankeyword ();

extern void F161_muerror ();

extern void F163_scansevenbitint ();

extern void F164_scaneightbitint ();

extern void F165_scanfourbitint ();

extern void F166_scancharnum ();

extern void F167_scanfifteenbitint ();

extern void F168_scantwentysevenbitin ();

extern void F169_scanfontident ();

extern void F170_findfontdimen ();

extern void F171_scansomethinginterna ();

extern void F162_scanint ();

extern void F172_scandimen ();

extern void F173_scanglue ();

extern int /* was T32_halfword */ F174_scanrulespec ();

extern int /* was T32_halfword */ F175_strtoks ();

extern int /* was T32_halfword */ F176_thetoks ();

extern int /* was T32_halfword */ F177_scantoks ();

extern void F178_readtoks ();

/* functions from virtex5.c */
extern void F150_passtext ();

extern void F179_changeiflimit ();

extern void F152_conditional ();

extern void F180_beginname ();

extern BOOLEAN F181_morename ();

extern void F182_endname ();

extern void F183_packfilename ();

extern void F184_packbufferedname ();

extern T26_strnumber F185_makenamestring ();

extern void F189_scanfilename ();

extern void F190_packjobname ();

extern void F191_promptfilename ();

extern void F151_startinput ();

extern T43_internalfontnumber F192_readfontinfo ();

extern void F193_charwarning ();

extern int /* was T32_halfword */ F194_newcharacter ();

extern void F195_dviswap ();

extern void F196_dvifour ();

extern void F197_dvipop ();

extern void F198_dvifontdef ();

extern void F199_movement ();

extern void F200_prunemovements ();

extern void F202_specialout ();

extern void F203_writeout ();

extern void F204_outwhat ();

extern void F205_hlistout ();

/* functions from virtex6.c */
extern void F201_vlistout ();

extern void F206_shipout ();

extern void F207_scanspec ();

extern int /* was T32_halfword */ F208_hpack ();

extern int /* was T32_halfword */ F209_vpackage ();

extern void F210_appendtovlist ();

extern int /* was T32_halfword */ F211_newnoad ();

extern int /* was T32_halfword */ F212_newstyle ();

extern int /* was T32_halfword */ F213_newchoice ();

extern void F101_showinfo ();

extern int /* was T32_halfword */ F214_fractionrule ();

extern int /* was T32_halfword */ F215_overbar ();

extern int /* was T32_halfword */ F216_charbox ();

extern void F217_stackintobox ();

extern long int   F218_heightplusdepth ();

extern int /* was T32_halfword */ F219_vardelimiter ();

extern int /* was T32_halfword */ F220_rebox ();

extern int /* was T32_halfword */ F221_mathglue ();

extern void F222_mathkern ();

extern void F223_flushmath ();

extern int /* was T32_halfword */ F225_cleanbox ();

extern void F226_fetch ();

extern void F227_makeover ();

extern void F228_makeunder ();

extern void F229_makevcenter ();

extern void F230_makeradical ();

extern void F231_makemathaccent ();

extern void F232_makefraction ();

extern long int   F233_makeop ();

extern void F234_makeord ();

extern void F235_makescripts ();

extern T29_smallnumber F236_makeleftright ();

extern void F224_mlisttohlist ();

/* functions from virtex7.c */
extern void F237_pushalignment ();

extern void F238_popalignment ();

extern void F239_getpreambletoken ();

extern void F242_initalign ();

extern void F243_initspan ();

extern void F244_initrow ();

extern void F245_initcol ();

extern BOOLEAN F246_fincol ();

extern void F247_finrow ();

extern void F251_finalign ();

extern void F240_alignpeek ();

extern int /* was T32_halfword */ F252_finiteshrink ();

extern void F253_trybreak ();

extern void F254_postlinebreak ();

extern T29_smallnumber F255_reconstitute ();

extern void F256_hyphenate ();

/* functions from virtex8.c */
extern void F257_linebreak ();

extern void F258_newhyphexceptions ();

extern T31_quarterword F259_newtrieop ();

extern T45_triepointer F260_trienode ();

extern T45_triepointer F261_compresstrie ();

extern void F262_initpatternmemory ();

extern void F263_inittriememory ();

extern void F264_firstfit ();

extern void F265_triepack ();

extern void F266_triefix ();

extern void F267_newpatterns ();

extern int /* was T32_halfword */ F268_prunepagetop ();

extern int /* was T32_halfword */ F269_vertbreak ();

extern int /* was T32_halfword */ F270_vsplit ();

extern void F114_printtotals ();

extern void F271_freezepagespecs ();

extern void F272_boxerror ();

extern void F273_ensurevbox ();

extern void F274_fireup ();

extern void F250_buildpage ();

extern void F275_appspace ();

extern void F276_insertdollarsign ();

extern void F277_youcant ();

extern void F278_reportillegalcase ();

extern BOOLEAN F279_privileged ();

extern BOOLEAN F280_itsallover ();

extern void F281_appendglue ();

extern void F282_appendkern ();

extern void F283_offsave ();

extern void F284_extrarightbrace ();

extern void F241_normalparagraph ();

extern void F285_boxend ();

extern void F286_beginbox ();

/* functions from virtex9.c */
extern void F287_scanbox ();

extern void F288_package ();

extern void F289_newgraf ();

extern void F290_indentinhmode ();

extern void F291_headforvmode ();

extern void F292_endgraf ();

extern void F293_begininsertoradjust ();

extern void F294_makemark ();

extern void F295_appendpenalty ();

extern void F296_deletelast ();

extern void F297_unpackage ();

extern void F298_appenditaliccorrecti ();

extern void F299_appenddiscretionary ();

extern void F300_builddiscretionary ();

extern void F301_makeaccent ();

extern void F302_alignerror ();

extern void F303_noalignerror ();

extern void F304_omiterror ();

extern void F305_doendv ();

extern void F306_cserror ();

extern void F307_pushmath ();

extern void F308_initmath ();

extern void F309_starteqno ();

extern void F310_scanmath ();

extern void F311_setmathchar ();

extern void F312_mathlimitswitch ();

extern void F313_scandelimiter ();

extern void F314_mathradical ();

extern void F315_mathac ();

extern void F316_appendchoices ();

extern int /* was T32_halfword */ F317_finmlist ();

extern void F318_buildchoices ();

extern void F319_subsup ();

extern void F320_mathfraction ();

extern void F321_mathleftright ();

extern void F322_aftermath ();

extern void F249_resumeafterdisplay ();

extern void F323_getrtoken ();

extern void F324_trapzeroglue ();

extern void F325_doregistercommand ();

extern void F326_alteraux ();

extern void F327_alterprevgraf ();

extern void F328_alterpagesofar ();

extern void F329_alterinteger ();

extern void F330_alterboxdimen ();

extern void F331_newfont ();

extern void F332_newinteraction ();

extern void F333_prefixedcommand ();

extern void F248_doassignments ();

extern void F334_openorclosein ();

extern void F335_issuemessage ();

extern void F336_shiftcase ();

extern void F337_showwhatever ();

/* functions from virtex10.c */
extern void F338_storefmtfile ();

extern void F339_newwhatsit ();

extern void F340_newwritewhatsit ();

extern void F341_doextension ();

extern void F342_handlerightbrace ();

extern void F343_maincontrol ();

extern BOOLEAN F344_openfmtfile ();

extern BOOLEAN F345_loadfmtfile ();

extern void F346_finalcleanup ();

extern void F347_initprim ();
