#include "externs.h"

void F310_scanmath (p)
/**************/
register int /* was T32_halfword */ p;
{
  register long int   c;
#ifdef M_XENIX
  T37_memoryword huge *memptr;
#else
  register T37_memoryword *memptr;
#endif

_20: 
  do
    F153_getxtoken (null)
  while ((curcmd == 10) || (curcmd == 0));
_21: 
  switch (curcmd)
  {
    case 11: 
    case 12: 
    case 67: 
      if (curchr >= 128)
	c = curchr;
      else
      {
	c = eqtb[5139 + curchr]._TAG._TAG3.hh.rh + 32768L;
	if (c == 32768L)
	{
	  curcs = curchr + 1;
	  curcmd = eqtb[curcs]._TAG._TAG3.hh._TAG._TAG2.b0;
	  curchr = eqtb[curcs]._TAG._TAG3.hh.rh;
	  F157_xtoken (null);
	  F134_backinput ();
	  goto _20;
	}
      }
      break;
    case 16: 
      F166_scancharnum ();
      curchr = curval;
      curcmd = 67;
      goto _21;
      break;
    case 17: 
      F167_scanfifteenbitint ();
      c = curval;
      break;
    case 68: 
      c = curchr;
      break;
    case 15: 
      F168_scantwentysevenbitin ();
#ifdef NOSHIFT
      c = curval / 4096;
#else
      c = curval >> 12;
#endif
      break;
    default: 
      F134_backinput ();
      F158_scanleftbrace ();
      savestack[saveptr++]._TAG._TAG1._int = p;
      F307_pushmath (9);
      return;
      break;
  }
  memptr = &mem[p - C2_memmin];
  memptr->_TAG._TAG3.hh.rh = 1;
  memptr->_TAG._TAG3.hh._TAG._TAG2.b1 = (c & 255) - 128;
  if ((c >= 28672) && ((eqtb[5311]._TAG._TAG1._int >= 0L) && (eqtb[5311]._TAG._TAG1._int < 16L)))
    memptr->_TAG._TAG3.hh._TAG._TAG2.b0 = eqtb[5311]._TAG._TAG1._int;
  else
    memptr->_TAG._TAG3.hh._TAG._TAG2.b0 = (c >> 8) & 15;
}

void F311_setmathchar (c)
/*****************/
register long int   c;
{
  register int /* was T32_halfword */ p;
#ifdef M_XENIX
  T37_memoryword huge *memptr;
#else
  register T37_memoryword *memptr;
#endif

  if (c >= 32768L)
  {
    curcs = curchr + 1;
    curcmd = eqtb[curcs]._TAG._TAG3.hh._TAG._TAG2.b0;
    curchr = eqtb[curcs]._TAG._TAG3.hh.rh;
    F157_xtoken (null);
    F134_backinput ();
  }
  else
  {
    p = F211_newnoad ();
    memptr = &mem[p - C2_memmin];
    (memptr+1)->_TAG._TAG3.hh.rh = 1;
    (memptr+1)->_TAG._TAG3.hh._TAG._TAG2.b1 = (c & 255) - 128;
    (memptr+1)->_TAG._TAG3.hh._TAG._TAG2.b0 = (c >> 8) & 15;
    if (c >= 28672L)
    {
      if ((eqtb[5311]._TAG._TAG1._int >= 0) && (eqtb[5311]._TAG._TAG1._int < 16L))
	(memptr+1)->_TAG._TAG3.hh._TAG._TAG2.b0 = eqtb[5311]._TAG._TAG1._int;
      memptr->_TAG._TAG3.hh._TAG._TAG2.b0 = 16;
    }
    else
      memptr->_TAG._TAG3.hh._TAG._TAG2.b0 = 16 + (c >> 12);
    curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = p;
  }
}

void F312_mathlimitswitch ()
/********************/
{
  if (curlist.headfield != curlist.tailfield)
    if (mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh._TAG._TAG2.b0 == 17)
    {
      mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh._TAG._TAG2.b1 = curchr;
      return;
    }
  F19_printnl (134);
  F17_print (978);
  helpptr = 1;
  helpline[0] = 979;
  F39_error ();
}

void F313_scandelimiter (p, r)
/*********************/
register int /* was T32_halfword */ p;
BOOLEAN r;
{
  register T37_memoryword memhelp;

  if (r)
    F168_scantwentysevenbitin ();
  else
  {
    do
      F153_getxtoken (null)
    while ((curcmd == 10) || (curcmd == 0));
    switch (curcmd)
    {
      case 11: 
      case 12: 
	curval = eqtb[5573 + curchr]._TAG._TAG1._int;
	break;
      case 15: 
	F168_scantwentysevenbitin ();
	break;
      default: 
	curval = -1;
	break;
    }
  }
  if (curval < 0)
  {
    F19_printnl (134);
    F17_print (980);
    helpptr = 6;
    helpline[5] = 981;
    helpline[4] = 982;
    helpline[3] = 983;
    helpline[2] = 984;
    helpline[1] = 985;
    helpline[0] = 986;
    F142_backerror ();
    curval = 0;
  }
  memhelp._TAG._TAG4.qqqq.b0 = (curval >> 20) & 15;
  memhelp._TAG._TAG4.qqqq.b1 = ((curval >> 12) & 255) - 128;
  memhelp._TAG._TAG4.qqqq.b2 = (curval >> 8) & 15;
  memhelp._TAG._TAG4.qqqq.b3 = (curval & 255) - 128;
  mem[p - C2_memmin] = memhelp;
}

void F314_mathradical ()
/****************/
{
#ifdef M_XENIX
  T37_memoryword huge *memptr;
#else
  register T37_memoryword *memptr;
#endif

  curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F77_getnode (5L);
  memptr = &mem[curlist.tailfield - C2_memmin];
  memptr->_TAG._TAG3.hh._TAG._TAG2.b0 = 24;
  memptr->_TAG._TAG3.hh._TAG._TAG2.b1 = 0;
  (memptr+1)->_TAG._TAG3.hh= (memptr+2)->_TAG._TAG3.hh= (memptr+3)->_TAG._TAG3.hh=emptyfield;
  F313_scandelimiter (curlist.tailfield + 4, TRUE);
  F310_scanmath (curlist.tailfield + 1);
}

void F315_mathac ()
/***********/
{
#ifdef M_XENIX
  T37_memoryword huge *memptr;
#else
  register T37_memoryword *memptr;
#endif

  if (curcmd == 45)
  {
    F19_printnl (134);
    F17_print (987);
    F20_printesc (383);
    F17_print (988);
    helpptr = 2;
    helpline[1] = 989;
    helpline[0] = 990;
    F39_error ();
  }
  curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F77_getnode (5L);
  memptr = &mem[curlist.tailfield - C2_memmin];
  memptr->_TAG._TAG3.hh._TAG._TAG2.b0 = 28;
  memptr->_TAG._TAG3.hh._TAG._TAG2.b1 = 0;
  (memptr+1)->_TAG._TAG3.hh= (memptr+2)->_TAG._TAG3.hh= (memptr+3)->_TAG._TAG3.hh=emptyfield;
  (memptr+4)->_TAG._TAG3.hh.rh = 1;
  F167_scanfifteenbitint ();
  (memptr+4)->_TAG._TAG3.hh._TAG._TAG2.b1 = (curval & 255) - 128;
  if ((curval >= 28672L) && ((eqtb[5311]._TAG._TAG1._int >= 0) && (eqtb[5311]._TAG._TAG1._int < 16L)))
    (memptr+4)->_TAG._TAG3.hh._TAG._TAG2.b0 = eqtb[5311]._TAG._TAG1._int;
  else
    (memptr+4)->_TAG._TAG3.hh._TAG._TAG2.b0 = (curval >> 8) & 15;
  F310_scanmath (curlist.tailfield + 1);
}

void F316_appendchoices ()
/******************/
{
  curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F213_newchoice ();
  savestack[saveptr++]._TAG._TAG1._int = 0;
  F158_scanleftbrace ();
  F307_pushmath (13);
}

int /* was T32_halfword */ F317_finmlist (p)
/***************************/
register int /* was T32_halfword */ p;
{
  register int /* was T32_halfword */ q;
#ifdef M_XENIX
  T37_memoryword huge *memptr, huge *memptr1;
#else
  register T37_memoryword *memptr,*memptr1;
#endif

  if (curlist.auxfield != ((int)(-32768)))
  {
    memptr = &mem[curlist.auxfield - C2_memmin];
    (memptr+3)->_TAG._TAG3.hh.rh = 3;
    (memptr+3)->_TAG._TAG3.hh._TAG._TAG1.lh = mem[curlist.headfield - C2_memmin]._TAG._TAG3.hh.rh;
    if (p == ((int)(-32768)))
      q = curlist.auxfield;
    else
    {
      q = (memptr+2)->_TAG._TAG3.hh._TAG._TAG1.lh;
      memptr1 = &mem[q - C2_memmin];
      if (memptr1->_TAG._TAG3.hh._TAG._TAG2.b0 != 30)
	F42_confusion (730);
      (memptr+2)->_TAG._TAG3.hh._TAG._TAG1.lh = memptr1->_TAG._TAG3.hh.rh;
      memptr1->_TAG._TAG3.hh.rh = curlist.auxfield;
      memptr->_TAG._TAG3.hh.rh = p;
    }
  }
  else
  {
    mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = p;
    q = mem[curlist.headfield - C2_memmin]._TAG._TAG3.hh.rh;
  }
  F113_popnest ();
  return(q);
}

void F318_buildchoices ()
/*****************/
{
  register int /* was T32_halfword */ p;

  F135_unsave ();
  p = F317_finmlist ((int)(-32768));
  switch (savestack[saveptr - 1]._TAG._TAG1._int)
  {
    case 0: 
      mem[curlist.tailfield + 1 - C2_memmin]._TAG._TAG3.hh._TAG._TAG1.lh = p;
      break;
    case 1: 
      mem[curlist.tailfield + 1 - C2_memmin]._TAG._TAG3.hh.rh = p;
      break;
    case 2: 
      mem[curlist.tailfield + 2 - C2_memmin]._TAG._TAG3.hh._TAG._TAG1.lh = p;
      break;
    case 3: 
      mem[curlist.tailfield + 2 - C2_memmin]._TAG._TAG3.hh.rh = p;
      saveptr--;
      return;
      break;
  }
  savestack[saveptr - 1]._TAG._TAG1._int++;
  F158_scanleftbrace ();
  F307_pushmath (13);
}

void F319_subsup ()
/***********/
{
  register int /* was T32_halfword */ p;
#ifdef VAX
register int t;
#else
  register T29_smallnumber t;
#endif

  t = 0;
  p = (int)(-32768);
  if (curlist.tailfield != curlist.headfield)
  {
    register int shelp;
    if (((shelp = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh._TAG._TAG2.b0) >= 16) && (shelp < 30))
    {
      p = curlist.tailfield + curcmd - 5;
      t = mem[p - C2_memmin]._TAG._TAG3.hh.rh;
    }
  }
  if ((p == ((int)(-32768))) || (t != 0))
  {
    curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F211_newnoad ();
    p = curlist.tailfield + curcmd - 5;
    if (t != 0)
    {
      if (curcmd == 7)
      {
	F19_printnl (134);
	F17_print (991);
	helpptr = 1;
	helpline[0] = 992;
      }
      else
      {
	F19_printnl (134);
	F17_print (993);
	helpptr = 1;
	helpline[0] = 994;
      }
      F39_error ();
    }
  }
  F310_scanmath (p);
}

void F320_mathfraction ()
/*****************/
{
#ifdef VAX
register int c;
#else
  register T29_smallnumber c;
#endif
#ifdef M_XENIX
  T37_memoryword huge *memptr;
#else
  register T37_memoryword *memptr;
#endif

  c = curchr;
  if (curlist.auxfield != ((int)(-32768)))
  {
    if (c >= 3)
    {
#ifdef TRIPTEX
      F313_scandelimiter (2988, FALSE);
      F313_scandelimiter (2988, FALSE);
#else
      F313_scandelimiter (29988, FALSE);
      F313_scandelimiter (29988, FALSE);
#endif
    }
    if ((c % 3) == 0)
      F172_scandimen (FALSE, FALSE, FALSE);
    F19_printnl (134);
    F17_print (1001);
    helpptr = 3;
    helpline[2] = 1002;
    helpline[1] = 1003;
    helpline[0] = 1004;
    F39_error ();
  }
  else
  {
    curlist.auxfield = F77_getnode (6L);
    memptr = &mem[curlist.auxfield - C2_memmin];
    memptr->_TAG._TAG3.hh._TAG._TAG2.b0 = 25;
    memptr->_TAG._TAG3.hh._TAG._TAG2.b1 = 0;
    (memptr+2)->_TAG._TAG3.hh.rh = 3;
    (memptr+2)->_TAG._TAG3.hh._TAG._TAG1.lh = mem[curlist.headfield - C2_memmin]._TAG._TAG3.hh.rh;
    (memptr+3)->_TAG._TAG3.hh=emptyfield;
    (memptr+4)->_TAG._TAG4.qqqq= (memptr+5)->_TAG._TAG4.qqqq=nulldelimiter;
    mem[curlist.headfield - C2_memmin]._TAG._TAG3.hh.rh = (int)(-32768);
    curlist.tailfield = curlist.headfield;
    if (c >= 3)
    {
      F313_scandelimiter ((int)curlist.auxfield + 4, FALSE);
      F313_scandelimiter ((int)curlist.auxfield + 5, FALSE);
    }
    switch (c % 3)
    {
      case 0: 
	F172_scandimen (FALSE, FALSE, FALSE);
	mem[curlist.auxfield + 1 - C2_memmin]._TAG._TAG1._int = curval;
	break;
      case 1: 
	mem[curlist.auxfield + 1 - C2_memmin]._TAG._TAG1._int = 1073741824;
	break;
      case 2: 
	mem[curlist.auxfield + 1 - C2_memmin]._TAG._TAG1._int = 0;
	break;
    }
  }
}

void F321_mathleftright ()
/******************/
{
#ifdef M_XENIX
  T37_memoryword huge *memptr;
#else
  register T37_memoryword *memptr;
#endif
  register int /* was T32_halfword */ p;
#ifdef VAX
register int t;
#else
  register T29_smallnumber t;
#endif

  t = curchr;
  if ((t == 31) && (curgroup != 16))
  {
    if (curgroup == 15)
    {
#ifdef TRIPTEX
      F313_scandelimiter (2988, FALSE);
#else
      F313_scandelimiter (29988, FALSE);
#endif
      F19_printnl (134);
      F17_print (633);
      F20_printesc (730);
      helpptr = 1;
      helpline[0] = 1005;
      F39_error ();
    }
    else
      F283_offsave ();
  }
  else
  {
    p = F211_newnoad ();
    mem[p - C2_memmin]._TAG._TAG3.hh._TAG._TAG2.b0 = t;
    F313_scandelimiter (p + 1, FALSE);
    if (t == 30)
    {
      F307_pushmath (16);
      mem[curlist.headfield - C2_memmin]._TAG._TAG3.hh.rh = p;
      curlist.tailfield = p;
    }
    else
    {
      p = F317_finmlist (p);
      F135_unsave ();
      curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F211_newnoad ();
      memptr = &mem[curlist.tailfield - C2_memmin];
      memptr->_TAG._TAG3.hh._TAG._TAG2.b0 = 23;
      (memptr+1)->_TAG._TAG3.hh.rh = 3;
      (memptr+1)->_TAG._TAG3.hh._TAG._TAG1.lh = p;
    }
  }
}

void F322_aftermath ()
/**************/
{
#ifdef M_XENIX
  T37_memoryword huge *memptr;
#else
  register T37_memoryword *memptr;
#endif
  register int /* was T32_halfword */ a;
  register int /* was T32_halfword */ b;
  register long int   d;
  register BOOLEAN danger;
  register long int   e;
  register T29_smallnumber g1;
  register T29_smallnumber g2;
  register BOOLEAN l;
  register int   m;
  register int /* was T32_halfword */ p;
  register long int   q;
  register int /* was T32_halfword */ r;
  register long int   s;
  register int /* was T32_halfword */ t;
  register long int   w;
  register long int   z;

  danger = FALSE;
  if (((fontparams[eqtb[4581]._TAG._TAG3.hh.rh] < 22) || (fontparams[eqtb[4597]._TAG._TAG3.hh.rh] < 22)) || (fontparams[eqtb[4613]._TAG._TAG3.hh.rh] < 22))
  {
    F19_printnl (134);
    F17_print (1006);
    helpptr = 3;
    helpline[2] = 1007;
    helpline[1] = 1008;
    helpline[0] = 1009;
    F39_error ();
    F223_flushmath ();
    danger = TRUE;
  }
  else
    if (((fontparams[eqtb[4582]._TAG._TAG3.hh.rh] < 13) || (fontparams[eqtb[4598]._TAG._TAG3.hh.rh] < 13)) || (fontparams[eqtb[4614]._TAG._TAG3.hh.rh] < 13))
    {
      F19_printnl (134);
      F17_print (1010);
      helpptr = 3;
      helpline[2] = 1011;
      helpline[1] = 1012;
      helpline[0] = 1013;
      F39_error ();
      F223_flushmath ();
      danger = TRUE;
    }
  m = curlist.modefield;
  l = FALSE;
  p = F317_finmlist ((int)(-32768));
  if (curlist.modefield == (-m))
  {
    curmlist = p;
    curstyle = 2;
    mlistpenalties = FALSE;
    F224_mlisttohlist ();
    a = F208_hpack (m29997->_TAG._TAG3.hh.rh, 0L, 1);
    F135_unsave ();
    saveptr--;
    if (savestack[saveptr]._TAG._TAG1._int == 1)
      l = TRUE;
    if (danger)
      F223_flushmath ();
    m = curlist.modefield;
    p = F317_finmlist ((int)(-32768));
  }
  else
    a = (int)(-32768);
  if (m < 0)
  {
    curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F84_newmath (eqtb[5702]._TAG._TAG1._int, 0);
    curmlist = p;
    curstyle = 2;
    mlistpenalties = curlist.modefield > 0;
    F224_mlisttohlist ();
    mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = m29997->_TAG._TAG3.hh.rh;
    {
      register int shelp;
      while ((shelp=mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh) != ((int)(-32768)))
	curlist.tailfield = shelp;
    }
    curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F84_newmath (eqtb[5702]._TAG._TAG1._int, 1);
    curlist.auxfield = 1000;
    F135_unsave ();
  }
  else
  {
    F153_getxtoken (null);
    if (curcmd != 3)
    {
      F19_printnl (134);
      F17_print (1014);
      helpptr = 2;
      helpline[1] = 1015;
      helpline[0] = 1016;
      F142_backerror ();
    }
    curmlist = p;
    curstyle = 0;
    mlistpenalties = FALSE;
    F224_mlisttohlist ();
    p = m29997->_TAG._TAG3.hh.rh;
#ifdef TRIPTEX
    adjusttail = 2995;
#else
    adjusttail = 29995;
#endif
    b = F208_hpack (p, 0L, 1);
    t = adjusttail;
    adjusttail = (int)(-32768);
    w = mem[b + 1 - C2_memmin]._TAG._TAG1._int;
    z = eqtb[5715]._TAG._TAG1._int;
    s = eqtb[5716]._TAG._TAG1._int;
    if ((a == ((int)(-32768))) || danger)
    {
      e = 0;
      q = 0;
    }
    else
    {
      e = mem[a + 1 - C2_memmin]._TAG._TAG1._int;
      q = e + fontinfo[6 + parambase[eqtb[4581]._TAG._TAG3.hh.rh]]._TAG._TAG1._int;
    }
    if ((w + q) > z)
    {
      if ((e != 0) && ((w - totalshrink[0] + q <= z) || (totalshrink[1] != 0) || (totalshrink[2] != 0) || (totalshrink[3] != 0)))
      {
	F78_freenode (b, 7);
	b = F208_hpack (p, z - q, 0);
      }
      else
      {
	e = 0;
	if (w > z)
	{
	  F78_freenode (b, 7);
	  b = F208_hpack (p, z, 0);
	}
      }
      w = mem[b + 1 - C2_memmin]._TAG._TAG1._int;
    }
#ifdef NOSHIFT
    d = F65_half(z - w);
#else
    d = (z - w + 1)>>1;
#endif
    if ((e > 0) && (d < (e + e)))
    {
      if ((p != ((int)(-32768))) && (mem[p - C2_memmin]._TAG._TAG3.hh._TAG._TAG2.b0 == 10))
	d = 0;
      else
#ifdef NOSHIFT
	d = F65_half((z - w) - e);
#else
	d = ((z - w) - e + 1)>>1;
#endif
    }
    curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F90_newpenalty (eqtb[5278]._TAG._TAG1._int);
    if (((d + s) <= eqtb[5714]._TAG._TAG1._int) || l)
    {
      g1 = 3;
      g2 = 4;
    }
    else
    {
      g1 = 5;
      g2 = 6;
    }
    if (l && (e == 0))
    {
      mem[a + 4 - C2_memmin]._TAG._TAG1._int = s;
      F210_appendtovlist (a);
      curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F90_newpenalty (10000L);
    }
    else
    {
      curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F86_newparamglue (g1);
    }
    if (e != 0)
    {
      r = F89_newkern (((z - w) - e) - d);
      if (l)
      {
	mem[a - C2_memmin]._TAG._TAG3.hh.rh = r;
	mem[r - C2_memmin]._TAG._TAG3.hh.rh = b;
	b = a;
	d = 0;
      }
      else
      {
	mem[b - C2_memmin]._TAG._TAG3.hh.rh = r;
	mem[r - C2_memmin]._TAG._TAG3.hh.rh = a;
      }
      b = F208_hpack (b, 0L, 1);
    }
    mem[b + 4 - C2_memmin]._TAG._TAG1._int = s + d;
    F210_appendtovlist (b);
#ifdef TRIPTEX
    if (t != 2995)
#else
    if (t != 29995)
#endif
    {
      mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = m29995->_TAG._TAG3.hh.rh;
      curlist.tailfield = t;
    }
    if (((a != ((int)(-32768))) && (e == 0)) && (!l))
    {
      curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F90_newpenalty (10000L);
      memptr = &mem[a + 1 - C2_memmin];
      (memptr+3)->_TAG._TAG1._int = (s + z) - memptr->_TAG._TAG1._int;
      F210_appendtovlist (a);
      curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F90_newpenalty (eqtb[5279]._TAG._TAG1._int);
    }
    else
    {
      curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F90_newpenalty (eqtb[5279]._TAG._TAG1._int);
      curlist.tailfield = mem[curlist.tailfield - C2_memmin]._TAG._TAG3.hh.rh = F86_newparamglue (g2);
    }
    F249_resumeafterdisplay ();
  }
}

void F249_resumeafterdisplay ()
/***********************/
{
  if (curgroup != 15)
    F42_confusion (1017);
  F135_unsave ();
  curlist.pgfield += 3;
  F112_pushnest ();
  curlist.modefield = 101;
  curlist.auxfield = 1000;
  F153_getxtoken (null);
  if (curcmd != 10)
    F134_backinput ();
  if (nestptr == 1)
    F250_buildpage ();
}

void F323_getrtoken ()
/**************/
{
_20: 
  do
    F29_gettoken (null)
  while (curtok == 2592);
  if ((curcs == 0) || (curcs > 3258))
  {
    F19_printnl (134);
    F17_print (1032);
    helpptr = 5;
    helpline[4] = 1033;
    helpline[3] = 1034;
    helpline[2] = 1035;
    helpline[1] = 1036;
    helpline[0] = 1037;
    if (curcs == 0)
      F134_backinput ();
    curtok = 7354;
    F143_inserror ();
    goto _20;
  }
}

void F324_trapzeroglue ()
/*****************/
{
#ifdef M_XENIX
  T37_memoryword huge *memptr;
#else
  register T37_memoryword *memptr;
#endif

  memptr = &mem[curval + 1 - C2_memmin];
  if (((memptr->_TAG._TAG1._int == 0) && ((memptr+1)->_TAG._TAG1._int == 0)) && ((memptr+2)->_TAG._TAG1._int == 0))
  {
#ifdef TRIPTEX
    mem[1 - C2_memmin]._TAG._TAG3.hh.rh++;
    F108_deleteglueref ((int)curval);
    curval = 1;
#else
    m_30000->_TAG._TAG3.hh.rh++;
    F108_deleteglueref ((int)curval);
    curval = -30000;
#endif
  }
}

void F325_doregistercommand (a)
/***********************/
T29_smallnumber a;
{
#ifdef M_XENIX
  T37_memoryword huge *memptr, huge *memptr1;
#else
  register T37_memoryword *memptr,*memptr1;
#endif
  register int /* was T32_halfword */ l;
  register int   p;
  register int /* was T32_halfword */ q;
  register int /* was T32_halfword */ r;
  register int /* was T32_halfword */ s;

  q = curcmd;
  {
    if (q != 88)
    {
      F153_getxtoken (null);
      if ((curcmd >= 72) && (curcmd <= 75))
      {
	l = curchr;
	p = curcmd - 72;
	goto _40;
      }
      if (curcmd != 88)
      {
	F19_printnl (134);
	F17_print (541);
	F121_printcmdchr (curcmd, curchr);
	F17_print (542);
	F121_printcmdchr ((char)q, 0);
	helpptr = 1;
	helpline[0] = 1058;
	F39_error ();
	return;
      }
    }
    p = curchr;
    F164_scaneightbitint ();
    switch (p)
    {
      case 0: 
	l = curval + 5317;
	break;
      case 1: 
	l = curval + 5721;
	break;
      case 2: 
	l = curval + 3544;
	break;
      case 3: 
	l = curval + 3800;
	break;
    }
  }
_40: 
  if (q == 88)
    F159_scanoptionalequals ();
  else
    if (F160_scankeyword (1054));
  aritherror = FALSE;
  if (q < 90)
    if (p < 2)
    {
      if (p == 0)
	F162_scanint ();
      else
	F172_scandimen (FALSE, FALSE, FALSE);
      if (q == 89)
	curval += eqtb[l]._TAG._TAG1._int;
    }
    else
    {
      F173_scanglue ((int)p);
      if (q == 89)
      {
	q = F85_newspec ((int)curval);
	r = eqtb[l]._TAG._TAG3.hh.rh;
	F108_deleteglueref ((int)curval);
	memptr = &mem[q - C2_memmin];
	memptr1 = &mem[r - C2_memmin];
	(memptr+1)->_TAG._TAG1._int += (memptr1+1)->_TAG._TAG1._int;
	if ((memptr+2)->_TAG._TAG1._int == 0)
	  memptr->_TAG._TAG3.hh._TAG._TAG2.b0 = 0;
	if (memptr->_TAG._TAG3.hh._TAG._TAG2.b0 == memptr1->_TAG._TAG3.hh._TAG._TAG2.b0)
	  (memptr+2)->_TAG._TAG1._int += (memptr1+2)->_TAG._TAG1._int;
	else
	  if ((memptr->_TAG._TAG3.hh._TAG._TAG2.b0 < memptr1->_TAG._TAG3.hh._TAG._TAG2.b0) && ((memptr1+2)->_TAG._TAG1._int != 0))
	  {
	    (memptr+2)->_TAG._TAG1._int = (memptr1+2)->_TAG._TAG1._int;
	    memptr->_TAG._TAG3.hh._TAG._TAG2.b0 = memptr1->_TAG._TAG3.hh._TAG._TAG2.b0;
	  }
	if ((memptr+3)->_TAG._TAG1._int == 0)
	  memptr->_TAG._TAG3.hh._TAG._TAG2.b1 = 0;
	if (memptr->_TAG._TAG3.hh._TAG._TAG2.b1 == memptr1->_TAG._TAG3.hh._TAG._TAG2.b1)
	  (memptr+3)->_TAG._TAG1._int += (memptr1+3)->_TAG._TAG1._int;
	else
	  if ((memptr->_TAG._TAG3.hh._TAG._TAG2.b1 < memptr1->_TAG._TAG3.hh._TAG._TAG2.b1) && ((memptr1+3)->_TAG._TAG1._int != 0))
	  {
	    (memptr+3)->_TAG._TAG1._int = (memptr1+3)->_TAG._TAG1._int;
	    memptr->_TAG._TAG3.hh._TAG._TAG2.b1 = memptr1->_TAG._TAG3.hh._TAG._TAG2.b1;
	  }
	curval = q;
      }
    }
  else
  {
    F162_scanint ();
    if (p < 2)
      if (q == 90)
	curval = F68_nxplusy (eqtb[l]._TAG._TAG1._int, curval, 0L);
      else
	if (curval != 0)
	  curval = eqtb[l]._TAG._TAG1._int / curval;
	else
	{
	  curval = 0;
	  aritherror = TRUE;
	}
    else
    {
      s = eqtb[l]._TAG._TAG3.hh.rh;
      r = F85_newspec (s);
      memptr = &mem[r + 1 - C2_memmin];
      memptr1 = &mem[s + 1 - C2_memmin];
      if (q == 90)
      {
	memptr->_TAG._TAG1._int = F68_nxplusy (memptr1->_TAG._TAG1._int, curval, 0L);
	(memptr+1)->_TAG._TAG1._int = F68_nxplusy ((memptr1+1)->_TAG._TAG1._int, curval, 0L);
	(memptr+2)->_TAG._TAG1._int = F68_nxplusy ((memptr1+2)->_TAG._TAG1._int, curval, 0L);
      }
      else
      {
	memptr->_TAG._TAG1._int = memptr1->_TAG._TAG1._int / curval;
	(memptr+1)->_TAG._TAG1._int = (memptr1+1)->_TAG._TAG1._int / curval;
	(memptr+2)->_TAG._TAG1._int = (memptr1+2)->_TAG._TAG1._int / curval;
      }
      curval = r;
    }
  }
  if (aritherror)
  {
    F19_printnl (134);
    F17_print (1055);
    helpptr = 2;
    helpline[1] = 1056;
    helpline[0] = 1057;
    F39_error ();
    return;
  }
  if (p < 2)
    if (a >= 4)
      F131_geqworddefine (l, curval);
    else
      F129_eqworddefine (l, curval);
  else
  {
    F324_trapzeroglue ();
    if (a >= 4)
      F130_geqdefine (l, (char)116, (int)curval);
    else
      F128_eqdefine (l, (char)116, (int)curval);
  }
}

void F326_alteraux ()
/*************/
{
  register int /* was T32_halfword */ c;

  if ((curchr != curlist.modefield)&&(curchr != -curlist.modefield))
    F278_reportillegalcase ();
  else
  {
    c = curchr;
    F159_scanoptionalequals ();
    if (c == 1)
    {
      F172_scandimen (FALSE, FALSE, FALSE);
      curlist.auxfield = curval;
    }
    else
    {
      F162_scanint ();
      if ((curval <= 0) || (curval > 32767))
      {
	F19_printnl (134);
	F17_print (1059);
	helpptr = 1;
	helpline[0] = 1060;
	F63_interror (curval);
      }
      else
	curlist.auxfield = curval;
    }
  }
}

void F327_alterprevgraf ()
/******************/
{
  register int   p;

  nest[nestptr]=curlist;
  p = nestptr;
  while ((nest[p].modefield != 1)&&(nest[p].modefield!= -1))
    p--;
  F159_scanoptionalequals ();
  F162_scanint ();
  if (curval < 0)
  {
    F19_printnl (134);
    F17_print (802);
    F20_printesc (391);
    helpptr = 1;
    helpline[0] = 1061;
    F63_interror (curval);
  }
  else
  {
    nest[p].pgfield = curval;
    curlist=nest[nestptr];
  }
}

void F328_alterpagesofar ()
/*******************/
{
  register int   c;

  c = curchr;
  F159_scanoptionalequals ();
  F172_scandimen (FALSE, FALSE, FALSE);
  pagesofar[c] = curval;
}

void F329_alterinteger ()
/*****************/
{
  register int   c;

  c = curchr;
  F159_scanoptionalequals ();
  F162_scanint ();
  if (c == 0)
    deadcycles = curval;
  else
    insertpenalties = curval;
}

void F330_alterboxdimen ()
/******************/
{
#ifdef VAX
register int b;
#else
  register T22_eightbits b;
#endif
#ifdef VAX
register int c;
#else
  register T29_smallnumber c;
#endif

  c = curchr;
  F164_scaneightbitint ();
  b = curval;
  F159_scanoptionalequals ();
  F172_scandimen (FALSE, FALSE, FALSE);
  if (eqtb[4322 + b]._TAG._TAG3.hh.rh != ((int)(-32768)))
    mem[eqtb[4322 + b]._TAG._TAG3.hh.rh + c - C2_memmin]._TAG._TAG1._int = curval;
}

void F331_newfont (a)
/*************/
T29_smallnumber a;
{
#ifdef VAX
register int f;
#else
  register T43_internalfontnumber f;
#endif
  register int   oldsetting;
  register long int   s;
  register T26_strnumber t;
  register int /* was T32_halfword */ u;

  if (jobname == 0)
    F33_openlogfile ();
  F323_getrtoken ();
  u = curcs;
  if (u >= 258)
    t = hash[u - 258].rh;
  else
    if (u >= 129)
      if (u == 257)
	t = 1065;
      else
	t = u - 129;
    else
    {
      oldsetting = selector;
      selector = 21;
      F17_print (1065);
      F17_print (u - 1);
      selector = oldsetting;
      if (poolptr >= C15_poolsize)
	F41_overflow (129, (long)C15_poolsize - initpoolptr);
      t = F54_makestring ();
    }
  if (a >= 4)
    F130_geqdefine (u, (char)86, 0);
  else
    F128_eqdefine (u, (char)86, 0);
  F159_scanoptionalequals ();
  F189_scanfilename ();
  nameinprogress = TRUE;
  if (F160_scankeyword (1066))
  {
    F172_scandimen (FALSE, FALSE, FALSE);
    s = curval;
    if ((s <= 0L) || (s >= 134217728))
    {
      F19_printnl (134);
      F17_print (1068);
      F67_printscaled (s);
      F17_print (1069);
      helpptr = 2;
      helpline[1] = 1070;
      helpline[0] = 1071;
      F39_error ();
      s = 10 * 65536L;
    }
  }
  else
    if (F160_scankeyword (1067))
    {
      F162_scanint ();
      s = -curval;
      if ((curval <= 0) || (curval > 32768))
      {
	F19_printnl (134);
	F17_print (411);
	helpptr = 1;
	helpline[0] = 412;
	F63_interror (curval);
	s = -1000;
      }
    }
    else
      s = -1000;
  nameinprogress = FALSE;
  for (f = 1; f <= fontptr; f++)
    if (F56_streqstr (fontname[f], curname) && F56_streqstr (fontarea[f], curarea))
    {
      if (s > 0)
      {
	if (s == fontsize[f])
	  goto _50;
      }
      else
	if (fontsize[f] == F70_xnoverd (fontdsize[f], -s, 1000L))
	  goto _50;
    }
  f = F192_readfontinfo (u, curname, curarea, s);
_50: 
  eqtb[u]._TAG._TAG3.hh.rh = f;
  eqtb[3268 + f]=eqtb[u];
  hash[3010 + f].rh = t;
}

void F332_newinteraction ()
/*******************/
{
  F15_println ();
  interaction = curchr;
  if (interaction == 0)
    selector = 16;
  else
    selector = 17;
  if (jobname != 0)
    selector += 2;
}

void F333_prefixedcommand ()
/********************/
{
#ifdef M_XENIX
  T37_memoryword huge *memptr, huge *memptr1;
#else
  T37_memoryword *memptr,*memptr1;
#endif
  T29_smallnumber a;
  BOOLEAN e;
  T43_internalfontnumber f;
  int /* was T32_halfword */ j;
  long int   k;
  long int   n;
  int /* was T32_halfword */ p;
  int /* was T32_halfword */ q;

  a = 0;
  while (curcmd == 92)
  {
    if (!ODD (a / curchr))
      a += curchr;
    do
      F153_getxtoken (null)
    while ((curcmd == 10) || (curcmd == 0));
    if (curcmd <= 69)
    {
      F19_printnl (134);
      F17_print (1027);
      F121_printcmdchr (curcmd, curchr);
      F16_printchar ((char)39);
      helpptr = 1;
      helpline[0] = 1028;
      F142_backerror ();
      return;
    }
  }
  if ((curcmd != 96) && ((a & 3) != 0))
  {
    F19_printnl (134);
    F17_print (541);
    F20_printesc (1019);
    F17_print (1029);
    F20_printesc (1020);
    F17_print (1030);
    F121_printcmdchr (curcmd, curchr);
    F16_printchar ((char)39);
    helpptr = 1;
    helpline[0] = 1031;
    F39_error ();
  }
  if (eqtb[5310]._TAG._TAG1._int != 0L)
    if (eqtb[5310]._TAG._TAG1._int < 0L)
    {
      if (a >= 4)
	a -= 4;
    }
    else
    {
      if (a < 4)
	a += 4;
    }
  switch (curcmd)
  {
    case 86: 
      if (a >= 4)
	F130_geqdefine (4578, (char)119, (int)curchr);
      else
	F128_eqdefine (4578, (char)119, curchr);
      break;
    case 96: 
      if ((ODD (curchr) && (a < 4)) && (eqtb[5310]._TAG._TAG1._int >= 0L))
	a += 4;
      e = curchr >= 2;
      F323_getrtoken ();
      p = curcs;
      q = F177_scantoks (TRUE, e);
      if (a >= 4)
	F130_geqdefine (p, (char)(110 + (a & 3)), defref);
      else
	F128_eqdefine (p, (char)(110 + a), defref);
      break;
    case 93: 
      n = curchr;
      F323_getrtoken ();
      p = curcs;
      if (n == 0)
      {
	do
	  F29_gettoken (null)
	while (curcmd == 10);
	if (curtok == 3133)
	{
	  F29_gettoken (null);
	  if (curcmd == 10)
	    F29_gettoken (null);
	}
      }
      else
      {
	F29_gettoken (null);
	q = curtok;
	F29_gettoken (null);
	F134_backinput ();
	curtok = q;
	F134_backinput ();
      }
      if (curcmd >= 110)
	mem[curchr - C2_memmin]._TAG._TAG3.hh._TAG._TAG1.lh++;
      if (a >= 4)
	F130_geqdefine (p, (char)curcmd, curchr);
      else
	F128_eqdefine (p, (char)curcmd, curchr);
      break;
    case 94: 
      n = curchr;
      F323_getrtoken ();
      p = curcs;
      if (a >= 4)
	F130_geqdefine (p, (char)0, 256);
      else
	F128_eqdefine (p, (char)0, 256);
      F159_scanoptionalequals ();
      switch (n)
      {
	case 0: 
	  F166_scancharnum ();
	  if (a >= 4)
	    F130_geqdefine (p, (char)67, (int)curval);
	  else
	    F128_eqdefine (p, (char)67, (int)curval);
	  break;
	case 1: 
	    F167_scanfifteenbitint ();
	    if (a >= 4)
	      F130_geqdefine (p, (char)68, (int)curval);
	    else
	      F128_eqdefine (p, (char)68, (int)curval);
	    break;
	default: 
	  F164_scaneightbitint ();
	  switch (n)
	  {
	    case 0: 
	      if (a >= 4)
		F130_geqdefine (p, (char)67, (int)curval);
	      else
		F128_eqdefine (p, (char)67, (int)curval);
	      break;
	    case 1: 
	      if (a >= 4)
		F130_geqdefine (p, (char)68, (int)curval);
	      else
		F128_eqdefine (p, (char)68, (int)curval);
	      break;
	    case 2: 
	      if (a >= 4)
		F130_geqdefine (p, (char)72, (int)(5317 + curval));
	      else
		F128_eqdefine (p, (char)72, (int)(5317 + curval));
	      break;
	    case 3: 
	      if (a >= 4)
		F130_geqdefine (p, (char)73, (int)(5721 + curval));
	      else
		F128_eqdefine (p, (char)73, (int)(5721 + curval));
	      break;
	    case 4: 
	      if (a >= 4)
		F130_geqdefine (p, (char)74, (int)(3544 + curval));
		  else
		    F128_eqdefine (p, (char)74, (int)(3544 + curval));
		  break;
	    case 5: 
	      if (a >= 4)
		F130_geqdefine (p, (char)75, (int)(3800 + curval));
	      else
		F128_eqdefine (p, (char)75, (int)(3800 + curval));
	      break;
	    case 6: 
	      if (a >= 4)
		F130_geqdefine (p, (char)71, (int)(4066 + curval));
	      else
		F128_eqdefine (p, (char)71, (int)(4066 + curval));
	      break;
	  }
	  break;
      }
      break;
    case 95: 
      F162_scanint ();
      n = curval;
      if (!F160_scankeyword (695))
      {
	F19_printnl (134);
	F17_print (921);
	helpptr = 2;
	helpline[1] = 1048;
	helpline[0] = 1049;
	F39_error ();
      }
      F323_getrtoken ();
      p = curcs;
      F178_readtoks (n, p);
      if (a >= 4)
	F130_geqdefine (p, (char)110, (int)curval);
      else
	F128_eqdefine (p, (char)110, (int)curval);
      break;
    case 70: 
    case 71: 
      q = curcs;
      if (curcmd == 70)
      {
	F164_scaneightbitint ();
	p = 4066 + curval;
      }
      else
	p = curchr;
      F159_scanoptionalequals ();
      do
	F153_twogetxtoken (null)
      while ((curcmd == 10) || (curcmd == 0));
      if (curcmd != 1)
      {
	if (curcmd == 70)
	{
	  F164_scaneightbitint ();
	  curcmd = 71;
	  curchr = 4066 + curval;
	}
	if (curcmd == 71)
	{
	  q = eqtb[curchr]._TAG._TAG3.hh.rh;
	  if (q == ((int)(-32768)))
	    if (a >= 4)
	      F130_geqdefine (p, (char)100, (int)(-32768));
	    else
	      F128_eqdefine (p, (char)100, (int)(-32768));
	  else
	  {
	    mem[q - C2_memmin]._TAG._TAG3.hh._TAG._TAG1.lh++;
	    if (a >= 4)
	      F130_geqdefine (p, (char)110, q);
	    else
	      F128_eqdefine (p, (char)110, q);
	  }
	  goto _30;
	}
      }
      F134_backinput ();
      curcs = q;
      q = F177_scantoks (FALSE, FALSE);
      memptr = &mem[defref - C2_memmin];
      if (memptr->_TAG._TAG3.hh.rh == ((int)(-32768)))
      {
	if (a >= 4)
	  F130_geqdefine (p, (char)100, (int)(-32768));
	else
	  F128_eqdefine (p, (char)100, (int)(-32768));
	  memptr->_TAG._TAG3.hh.rh = avail;
	  avail = defref;
#if defined(INITEX) || defined(TRIPTEX)
	  dynused--;
# endif
      }
      else
      {
	if (p == 4057)
	{
	  q = mem[q - C2_memmin]._TAG._TAG3.hh.rh = F75_getavail ();
	  mem[q - C2_memmin]._TAG._TAG3.hh._TAG._TAG1.lh = 637;
	  q = F75_getavail ();
	  memptr1 = &mem[q - C2_memmin];
	  memptr1->_TAG._TAG3.hh._TAG._TAG1.lh = 379;
	  memptr1->_TAG._TAG3.hh.rh = memptr->_TAG._TAG3.hh.rh;
	  memptr->_TAG._TAG3.hh.rh = q;
	}
	if (a >= 4)
	  F130_geqdefine (p, (char)110, defref);
	else
	  F128_eqdefine (p, (char)110, defref);
      }
      break;
    case 72: 
      p = curchr;
      F159_scanoptionalequals ();
      F162_scanint ();
      if (a >= 4)
	F131_geqworddefine (p, curval);
      else
	F129_eqworddefine (p, curval);
      break;
    case 73: 
      p = curchr;
      F159_scanoptionalequals ();
      F172_scandimen (FALSE, FALSE, FALSE);
      if (a >= 4)
	F131_geqworddefine (p, curval);
      else
	F129_eqworddefine (p, curval);
      break;
    case 74: 
    case 75: 
      p = curchr;
      n = curcmd;
      F159_scanoptionalequals ();
      if (n == 75)
	F173_scanglue (3);
      else
	F173_scanglue (2);
      F324_trapzeroglue ();
      if (a >= 4)
	F130_geqdefine (p, (char)116, (int)curval);
      else
	F128_eqdefine (p, (char)116, (int)curval);
      break;
    case 84: 
      if (curchr == 4627)
	n = 15;
      else
	if (curchr == 5139)
	  n = 32768L;
	else
	  if (curchr == 5011)
	    n = 32767;
	  else
	    if (curchr == 5573)
	      n = 16777215;
	    else
	      n = 127;
      p = curchr;
      F163_scansevenbitint ();
      p += curval;
      F159_scanoptionalequals ();
      F162_scanint ();
      if (((curval < 0L) && (p < 5573)) || (curval > n))
      {
	F19_printnl (134);
	F17_print (1050);
	F22_printint (curval);
	if (p < 5573)
	  F17_print (1051);
	else
	  F17_print (1052);
	F22_printint ((long)n);
	helpptr = 1;
	helpline[0] = 1053;
	F39_error ();
	curval = 0;
      }
      if (p < 5139)
	if (a >= 4)
	  F130_geqdefine (p, (char)119, (int)curval);
	else
	  F128_eqdefine (p, (char)119, (int)curval);
      else
	if (p < 5573)
	  if (a >= 4)
	    F130_geqdefine (p, (char)119, (int)(curval - 32768));
	  else
	    F128_eqdefine (p, (char)119, (int)(curval - 32768));
	else
	  if (a >= 4)
	    F131_geqworddefine (p, curval);
	  else
	    F129_eqworddefine (p, curval);
      break;
    case 85: 
      p = curchr;
      F165_scanfourbitint ();
      p += curval;
      F159_scanoptionalequals ();
      F169_scanfontident ();
      if (a >= 4)
	F130_geqdefine (p, (char)119, (int)curval);
      else
	F128_eqdefine (p, (char)119, (int)curval);
      break;
    case 88: 
    case 89: 
    case 90: 
    case 91: 
      F325_doregistercommand (a);
      break;
    case 97: 
      F164_scaneightbitint ();
      if (a >= 4)
	savestack[saveptr]._TAG._TAG1._int = 1073742080 + curval;
      else
	savestack[saveptr]._TAG._TAG1._int = 1073741824 + curval;
      F159_scanoptionalequals ();
      F287_scanbox ();
      break;
    case 78: 
      F326_alteraux ();
      break;
    case 79: 
      F327_alterprevgraf ();
      break;
    case 80: 
      F328_alterpagesofar ();
      break;
    case 81: 
      F329_alterinteger ();
      break;
    case 82: 
      F330_alterboxdimen ();
      break;
    case 83: 
      F159_scanoptionalequals ();
      F162_scanint ();
      n = curval;
      if (n <= 0)
	p = (int)(-32768);
      else
      {
	long help;
	help = n + n;
	p = F77_getnode (help + 1);
	memptr = &mem[p - C2_memmin];
	memptr->_TAG._TAG3.hh._TAG._TAG1.lh = n;
	for (j = 2; j <= help; j+=2)
	{
	  F172_scandimen (FALSE, FALSE, FALSE);
	  (++memptr)->_TAG._TAG1._int = curval;
	  F172_scandimen (FALSE, FALSE, FALSE);
	  (++memptr)->_TAG._TAG1._int = curval;
	}
      }
      if (a >= 4)
	F130_geqdefine (4056, (char)117, p);
      else
	F128_eqdefine (4056, (char)117, p);
      break;
    case 98: 
      if (curchr == 1)
      {
#if defined(INITEX) || defined(TRIPTEX)
	F267_newpatterns ();
	goto _30;
# endif
	F19_printnl (134);
	F17_print (1062);
	helpptr = 0;
	F39_error ();
	do
	  F29_gettoken (null)
	while (curcmd != 2);
	return;
      }
      else
      {
	F258_newhyphexceptions ();
	goto _30;
      }
      break;
    case 76: 
      F170_findfontdimen (TRUE);
      k = curval;
      F159_scanoptionalequals ();
      F172_scandimen (FALSE, FALSE, FALSE);
      fontinfo[k]._TAG._TAG1._int = curval;
      break;
    case 77: 
      n = curchr;
      F169_scanfontident ();
      f = curval;
      F159_scanoptionalequals ();
      F162_scanint ();
      if (n == 0)
	hyphenchar[f] = curval;
      else
	skewchar[f] = curval;
      break;
    case 87: 
      F331_newfont (a);
      break;
    case 99: 
      F332_newinteraction ();
      break;
    default: 
      F42_confusion (1026);
      break;
  }
_30: 
  if (aftertoken != 0)
  {
    curtok = aftertoken;
    F134_backinput ();
    aftertoken = 0;
  }
}

void F248_doassignments ()
/******************/
{
  while (TRUE)
  {
    do
      F153_getxtoken (null)
    while ((curcmd == 10) || (curcmd == 0));
    if (curcmd <= 69)
      return;
    F333_prefixedcommand ();
  }
}

void F334_openorclosein ()
/******************/
{
  register int   c;
  register long int   n;

  c = curchr;
  F165_scanfourbitint ();
  n = curval;
  if (readopen[n] != 2)
  {
    CLOSE_2(readfile[n]);
    readopen[n] = 2;
  }
  if (c != 0)
  {
    F159_scanoptionalequals ();
    F189_scanfilename ();
    if (curext == 207)
      curext = 644;
    F183_packfilename (curname, curarea, curext);
    if (F43_aopenin (&readfile[n], 2))
      readopen[n] = 1;
  }
}
