home *** CD-ROM | disk | FTP | other *** search
/ Atari FTP / ATARI_FTP_0693.zip / ATARI_FTP_0693 / Tex / texsrc.arc / TEX9.C < prev    next >
C/C++ Source or Header  |  1988-09-14  |  46KB  |  1,820 lines

  1. overlay "tex9"
  2. #define EXTERN extern
  3. #include "texd.h"
  4.  
  5. maincontrol () { /* 60 21 70 71 72 73 74 10 */ r_maincontrol 
  6.   integer t ; 
  7.   quarterword l ; 
  8.   eightbits c ; 
  9.   internalfont f ; 
  10.   halfword r ; 
  11.   halfword p ; 
  12.   integer k ; 
  13.   halfword q ; 
  14.   fourquarters i ; 
  15.   fourquarters j ; 
  16.   integer s ; 
  17.   boolean ligaturepres ; 
  18.   if ( eqtb [ 4063 ] .hh .v.RH != 0 ) 
  19.   begintokenli ( eqtb [ 4063 ] .hh .v.RH , 12 ) ; 
  20.   lab60: getxtoken () ; 
  21.   lab21: if ( interrupt != 0 ) 
  22.   if ( OKtointerrup ) 
  23.   {
  24.     backinput () ; 
  25.     {
  26.       if ( interrupt != 0 ) 
  27.       pauseforinst () ; 
  28.     } 
  29.     goto lab60 ; 
  30.   } 
  31.  
  32. #ifdef DEBUG
  33.   if ( panicking ) 
  34.   checkmem ( false ) ; 
  35. #endif /* DEBUG */
  36.   if ( eqtb [ 5303 ] .cint > 0 ) 
  37.   showcurcmdch () ; 
  38.   switch ( abs ( curlist .modefield ) + curcmd ) 
  39.   {case 112 : 
  40.   case 113 : 
  41.   case 168 : 
  42.     goto lab70 ; 
  43.     break ; 
  44.   case 117 : 
  45.     {
  46.       scancharnum () ; 
  47.       curchr = curval ; 
  48.       goto lab70 ; 
  49.     } 
  50.     break ; 
  51.   case 111 : 
  52.     if ( curlist .auxfield == 1000 ) 
  53.     goto lab74 ; 
  54.     else appspace () ; 
  55.     break ; 
  56.   case 165 : 
  57.   case 265 : 
  58.     goto lab74 ; 
  59.     break ; 
  60.   case 1 : 
  61.   case 101 : 
  62.   case 201 : 
  63.   case 11 : 
  64.   case 211 : 
  65.     ; 
  66.     break ; 
  67.   case 40 : 
  68.   case 140 : 
  69.   case 240 : 
  70.     {
  71.       do { getxtoken () ; 
  72.       } while ( ! ( curcmd != 10 ) ) ; 
  73.       goto lab21 ; 
  74.     } 
  75.     break ; 
  76.   case 15 : 
  77.     if ( itsallover () ) 
  78.     return ; 
  79.     break ; 
  80.   case 23 : 
  81.   case 122 : 
  82.   case 222 : 
  83.   case 70 : 
  84.   case 170 : 
  85.   case 270 : 
  86.   case 39 : 
  87.   case 45 : 
  88.   case 49 : 
  89.   case 149 : 
  90.   case 7 : 
  91.   case 107 : 
  92.   case 207 : 
  93.     reportillega () ; 
  94.     break ; 
  95.   case 8 : 
  96.   case 108 : 
  97.   case 9 : 
  98.   case 109 : 
  99.   case 18 : 
  100.   case 118 : 
  101.   case 69 : 
  102.   case 169 : 
  103.   case 51 : 
  104.   case 151 : 
  105.   case 16 : 
  106.   case 116 : 
  107.   case 50 : 
  108.   case 150 : 
  109.   case 53 : 
  110.   case 153 : 
  111.   case 66 : 
  112.   case 166 : 
  113.   case 54 : 
  114.   case 154 : 
  115.   case 55 : 
  116.   case 155 : 
  117.   case 57 : 
  118.   case 157 : 
  119.   case 56 : 
  120.   case 156 : 
  121.   case 31 : 
  122.   case 131 : 
  123.   case 52 : 
  124.   case 152 : 
  125.   case 29 : 
  126.   case 129 : 
  127.   case 47 : 
  128.   case 147 : 
  129.   case 210 : 
  130.   case 214 : 
  131.   case 215 : 
  132.   case 228 : 
  133.   case 225 : 
  134.   case 234 : 
  135.   case 237 : 
  136.     insertdollar () ; 
  137.     break ; 
  138.   case 37 : 
  139.   case 136 : 
  140.   case 236 : 
  141.     {
  142.       {
  143.     mem [(long) curlist .tailfield ] .hh .v.RH = scanrulespec () ; 
  144.     curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ; 
  145.       } 
  146.       if ( abs ( curlist .modefield ) == 1 ) 
  147.       curlist .auxfield = - 65536000 ; 
  148.       else if ( abs ( curlist .modefield ) == 101 ) 
  149.       curlist .auxfield = 1000 ; 
  150.     } 
  151.     break ; 
  152.   case 28 : 
  153.   case 127 : 
  154.   case 227 : 
  155.   case 229 : 
  156.     appendglue () ; 
  157.     break ; 
  158.   case 30 : 
  159.   case 130 : 
  160.   case 230 : 
  161.   case 231 : 
  162.     appendkern () ; 
  163.     break ; 
  164.   case 2 : 
  165.   case 102 : 
  166.     newsavelevel ( 1 ) ; 
  167.     break ; 
  168.   case 62 : 
  169.   case 162 : 
  170.   case 262 : 
  171.     newsavelevel ( 14 ) ; 
  172.     break ; 
  173.   case 63 : 
  174.   case 163 : 
  175.   case 263 : 
  176.     if ( curgroup == 14 ) 
  177.     unsave () ; 
  178.     else offsave () ; 
  179.     break ; 
  180.   case 3 : 
  181.   case 103 : 
  182.   case 203 : 
  183.     handlerightb () ; 
  184.     break ; 
  185.   case 22 : 
  186.   case 123 : 
  187.   case 223 : 
  188.     {
  189.       t = curchr ; 
  190.       scandimen ( false , false , false ) ; 
  191.       if ( t == 0 ) 
  192.       savestack [ saveptr + 0 ] .cint = curval ; 
  193.       else savestack [ saveptr + 0 ] .cint = - curval ; 
  194.       scanbox () ; 
  195.     } 
  196.     break ; 
  197.   case 32 : 
  198.   case 132 : 
  199.   case 232 : 
  200.     {
  201.       savestack [ saveptr + 0 ] .cint = 1073742237 + curchr ; 
  202.       scanbox () ; 
  203.     } 
  204.     break ; 
  205.   case 21 : 
  206.   case 121 : 
  207.   case 221 : 
  208.     {
  209.       savestack [ saveptr + 0 ] .cint = 0 ; 
  210.       beginbox () ; 
  211.     } 
  212.     break ; 
  213.   case 44 : 
  214.     newgraf ( curchr > 0 ) ; 
  215.     break ; 
  216.   case 12 : 
  217.   case 13 : 
  218.   case 17 : 
  219.   case 68 : 
  220.   case 4 : 
  221.   case 24 : 
  222.   case 36 : 
  223.   case 46 : 
  224.   case 48 : 
  225.   case 27 : 
  226.   case 34 : 
  227.   case 65 : 
  228.     {
  229.       backinput () ; 
  230.       newgraf ( true ) ; 
  231.     } 
  232.     break ; 
  233.   case 144 : 
  234.   case 244 : 
  235.     indentinhmod () ; 
  236.     break ; 
  237.   case 14 : 
  238.     {
  239.       normalparagr () ; 
  240.       if ( curlist .modefield > 0 ) 
  241.       buildpage () ; 
  242.     } 
  243.     break ; 
  244.   case 114 : 
  245.     {
  246.       if ( alignstate < 0 ) 
  247.       offsave () ; 
  248.       endgraf () ; 
  249.       if ( curlist .modefield == 1 ) 
  250.       buildpage () ; 
  251.     } 
  252.     break ; 
  253.   case 115 : 
  254.   case 128 : 
  255.   case 137 : 
  256.   case 125 : 
  257.   case 133 : 
  258.     headforvmode () ; 
  259.     break ; 
  260.   case 38 : 
  261.   case 138 : 
  262.   case 238 : 
  263.   case 139 : 
  264.   case 239 : 
  265.     begininserto () ; 
  266.     break ; 
  267.   case 19 : 
  268.   case 119 : 
  269.   case 219 : 
  270.     makemark () ; 
  271.     break ; 
  272.   case 43 : 
  273.   case 143 : 
  274.   case 243 : 
  275.     appendpenalt () ; 
  276.     break ; 
  277.   case 26 : 
  278.   case 126 : 
  279.   case 226 : 
  280.     deletelast () ; 
  281.     break ; 
  282.   case 25 : 
  283.   case 124 : 
  284.   case 224 : 
  285.     unpackage () ; 
  286.     break ; 
  287.   case 145 : 
  288.     appenditalic () ; 
  289.     break ; 
  290.   case 245 : 
  291.     {
  292.       mem [(long) curlist .tailfield ] .hh .v.RH = newkern ( 0 ) ; 
  293.       curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ; 
  294.     } 
  295.     break ; 
  296.   case 148 : 
  297.   case 248 : 
  298.     appenddiscre () ; 
  299.     break ; 
  300.   case 146 : 
  301.     makeaccent () ; 
  302.     break ; 
  303.   case 6 : 
  304.   case 106 : 
  305.   case 206 : 
  306.   case 5 : 
  307.   case 105 : 
  308.   case 205 : 
  309.     alignerror () ; 
  310.     break ; 
  311.   case 35 : 
  312.   case 135 : 
  313.   case 235 : 
  314.     noalignerror () ; 
  315.     break ; 
  316.   case 64 : 
  317.   case 164 : 
  318.   case 264 : 
  319.     omiterror () ; 
  320.     break ; 
  321.   case 33 : 
  322.   case 134 : 
  323.     initalign () ; 
  324.     break ; 
  325.   case 233 : 
  326.     if ( privileged () ) 
  327.     initalign () ; 
  328.     break ; 
  329.   case 10 : 
  330.   case 110 : 
  331.     doendv () ; 
  332.     break ; 
  333.   case 67 : 
  334.   case 167 : 
  335.   case 267 : 
  336.     cserror () ; 
  337.     break ; 
  338.   case 104 : 
  339.     initmath () ; 
  340.     break ; 
  341.   case 249 : 
  342.     if ( privileged () ) 
  343.     starteqno () ; 
  344.     break ; 
  345.   case 202 : 
  346.     {
  347.       {
  348.     mem [(long) curlist .tailfield ] .hh .v.RH = newnoad () ; 
  349.     curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ; 
  350.       } 
  351.       backinput () ; 
  352.       scanmath ( curlist .tailfield + 1 ) ; 
  353.     } 
  354.     break ; 
  355.   case 212 : 
  356.   case 213 : 
  357.   case 268 : 
  358.     if ( curchr < 128 ) 
  359.     setmathchar ( eqtb [ 5139 + curchr ] .hh .v.RH ) ; 
  360.     else setmathchar ( curchr ) ; 
  361.     break ; 
  362.   case 217 : 
  363.     {
  364.       scancharnum () ; 
  365.       curchr = curval ; 
  366.       if ( curchr < 128 ) 
  367.       setmathchar ( eqtb [ 5139 + curchr ] .hh .v.RH ) ; 
  368.       else setmathchar ( curchr ) ; 
  369.     } 
  370.     break ; 
  371.   case 218 : 
  372.     {
  373.       scanfifteenb () ; 
  374.       setmathchar ( curval ) ; 
  375.     } 
  376.     break ; 
  377.   case 269 : 
  378.     setmathchar ( curchr ) ; 
  379.     break ; 
  380.   case 216 : 
  381.     {
  382.       scantwentyse () ; 
  383.       setmathchar ( curval / 4096 ) ; 
  384.     } 
  385.     break ; 
  386.   case 251 : 
  387.     {
  388.       {
  389.     mem [(long) curlist .tailfield ] .hh .v.RH = newnoad () ; 
  390.     curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ; 
  391.       } 
  392.       mem [(long) curlist .tailfield ] .hh.b0 = curchr ; 
  393.       scanmath ( curlist .tailfield + 1 ) ; 
  394.     } 
  395.     break ; 
  396.   case 252 : 
  397.     mathlimitswi () ; 
  398.     break ; 
  399.   case 266 : 
  400.     mathradical () ; 
  401.     break ; 
  402.   case 246 : 
  403.   case 247 : 
  404.     mathac () ; 
  405.     break ; 
  406.   case 257 : 
  407.     {
  408.       scanspec () ; 
  409.       newsavelevel ( 12 ) ; 
  410.       normalparagr () ; 
  411.       pushnest () ; 
  412.       curlist .modefield = - 1 ; 
  413.       curlist .auxfield = - 65536000 ; 
  414.       if ( eqtb [ 4062 ] .hh .v.RH != 0 ) 
  415.       begintokenli ( eqtb [ 4062 ] .hh .v.RH , 11 ) ; 
  416.     } 
  417.     break ; 
  418.   case 254 : 
  419.     {
  420.       mem [(long) curlist .tailfield ] .hh .v.RH = newstyle ( curchr ) ; 
  421.       curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ; 
  422.     } 
  423.     break ; 
  424.   case 256 : 
  425.     {
  426.       {
  427.     mem [(long) curlist .tailfield ] .hh .v.RH = newglue ( 0 ) ; 
  428.     curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ; 
  429.       } 
  430.       mem [(long) curlist .tailfield ] .hh.b1 = 98 ; 
  431.     } 
  432.     break ; 
  433.   case 255 : 
  434.     appendchoice () ; 
  435.     break ; 
  436.   case 209 : 
  437.   case 208 : 
  438.     subsup () ; 
  439.     break ; 
  440.   case 253 : 
  441.     mathfraction () ; 
  442.     break ; 
  443.   case 250 : 
  444.     mathleftrigh () ; 
  445.     break ; 
  446.   case 204 : 
  447.     if ( curgroup == 15 ) 
  448.     aftermath () ; 
  449.     else offsave () ; 
  450.     break ; 
  451.   case 71 : 
  452.   case 171 : 
  453.   case 271 : 
  454.   case 72 : 
  455.   case 172 : 
  456.   case 272 : 
  457.   case 73 : 
  458.   case 173 : 
  459.   case 273 : 
  460.   case 74 : 
  461.   case 174 : 
  462.   case 274 : 
  463.   case 75 : 
  464.   case 175 : 
  465.   case 275 : 
  466.   case 76 : 
  467.   case 176 : 
  468.   case 276 : 
  469.   case 77 : 
  470.   case 177 : 
  471.   case 277 : 
  472.   case 78 : 
  473.   case 178 : 
  474.   case 278 : 
  475.   case 79 : 
  476.   case 179 : 
  477.   case 279 : 
  478.   case 80 : 
  479.   case 180 : 
  480.   case 280 : 
  481.   case 81 : 
  482.   case 181 : 
  483.   case 281 : 
  484.   case 82 : 
  485.   case 182 : 
  486.   case 282 : 
  487.   case 83 : 
  488.   case 183 : 
  489.   case 283 : 
  490.   case 84 : 
  491.   case 184 : 
  492.   case 284 : 
  493.   case 85 : 
  494.   case 185 : 
  495.   case 285 : 
  496.   case 86 : 
  497.   case 186 : 
  498.   case 286 : 
  499.   case 87 : 
  500.   case 187 : 
  501.   case 287 : 
  502.   case 88 : 
  503.   case 188 : 
  504.   case 288 : 
  505.   case 89 : 
  506.   case 189 : 
  507.   case 289 : 
  508.   case 90 : 
  509.   case 190 : 
  510.   case 290 : 
  511.   case 91 : 
  512.   case 191 : 
  513.   case 291 : 
  514.   case 92 : 
  515.   case 192 : 
  516.   case 292 : 
  517.   case 93 : 
  518.   case 193 : 
  519.   case 293 : 
  520.   case 94 : 
  521.   case 194 : 
  522.   case 294 : 
  523.   case 95 : 
  524.   case 195 : 
  525.   case 295 : 
  526.   case 96 : 
  527.   case 196 : 
  528.   case 296 : 
  529.   case 97 : 
  530.   case 197 : 
  531.   case 297 : 
  532.   case 98 : 
  533.   case 198 : 
  534.   case 298 : 
  535.   case 99 : 
  536.   case 199 : 
  537.   case 299 : 
  538.   case 100 : 
  539.   case 200 : 
  540.   case 300 : 
  541.     prefixedcomm () ; 
  542.     break ; 
  543.   case 41 : 
  544.   case 141 : 
  545.   case 241 : 
  546.     {
  547.       gettoken () ; 
  548.       aftertoken = curtok ; 
  549.     } 
  550.     break ; 
  551.   case 42 : 
  552.   case 142 : 
  553.   case 242 : 
  554.     {
  555.       gettoken () ; 
  556.       saveforafter ( curtok ) ; 
  557.     } 
  558.     break ; 
  559.   case 61 : 
  560.   case 161 : 
  561.   case 261 : 
  562.     openorclosei () ; 
  563.     break ; 
  564.   case 59 : 
  565.   case 159 : 
  566.   case 259 : 
  567.     issuemessage () ; 
  568.     break ; 
  569.   case 58 : 
  570.   case 158 : 
  571.   case 258 : 
  572.     shiftcase () ; 
  573.     break ; 
  574.   case 20 : 
  575.   case 120 : 
  576.   case 220 : 
  577.     showwhatever () ; 
  578.     break ; 
  579.   case 60 : 
  580.   case 160 : 
  581.   case 260 : 
  582.     doextension () ; 
  583.     break ; 
  584.   } 
  585.   goto lab60 ; 
  586.   lab70: f = eqtb [ 4578 ] .hh .v.RH ; 
  587.   c = curchr ; 
  588.   lab71: if ( ( c < fontbc [ f ] ) || ( c > fontec [ f ] ) ) 
  589.   {
  590.     charwarning ( f , c ) ; 
  591.     goto lab60 ; 
  592.   } 
  593.   lab72: q = curlist .tailfield ; 
  594.   ligaturepres = false ; 
  595.   l = c ; 
  596.   lab73: if ( c < 128 ) 
  597.   {
  598.     s = eqtb [ 5011 + c ] .hh .v.RH ; 
  599.     if ( s == 1000 ) 
  600.     curlist .auxfield = 1000 ; 
  601.     else if ( s < 1000 ) 
  602.     {
  603.       if ( s > 0 ) 
  604.       curlist .auxfield = s ; 
  605.     } 
  606.     else if ( curlist .auxfield < 1000 ) 
  607.     curlist .auxfield = 1000 ; 
  608.     else curlist .auxfield = s ; 
  609.   } 
  610.   else curlist .auxfield = 1000 ; 
  611.   i = fontinfo [ charbase [ f ] + l ] .qqqq ; 
  612.   if ( ( i .b0 > 0 ) ) 
  613.   {
  614.     {
  615.       p = avail ; 
  616.       if ( p == 0 ) 
  617.       p = getavail () ; 
  618.       else { 
  619.     avail = mem [(long) p ] .hh .v.RH ; 
  620.     mem [(long) p ] .hh .v.RH = 0 ; 
  621.  
  622. #ifdef STAT
  623.     incr ( dynused ) ; 
  624. #endif /* STAT */
  625.       } 
  626.     } 
  627.     mem [(long) p ] .hh.b0 = f ; 
  628.     mem [(long) p ] .hh.b1 = c ; 
  629.     mem [(long) curlist .tailfield ] .hh .v.RH = p ; 
  630.     curlist .tailfield = p ; 
  631.   } 
  632.   else charwarning ( f , l ) ; 
  633.   getnext () ; 
  634.   if ( curcmd == 11 ) 
  635.   r = curchr ; 
  636.   else if ( curcmd == 12 ) 
  637.   r = curchr ; 
  638.   else if ( curcmd == 67 ) 
  639.   r = curchr ; 
  640.   else { 
  641.     xtoken () ; 
  642.     if ( ( curcmd == 11 ) || ( curcmd == 12 ) || ( curcmd == 67 ) ) 
  643.     r = curchr ; 
  644.     else if ( curcmd == 16 ) 
  645.     {
  646.       scancharnum () ; 
  647.       r = curval ; 
  648.     } 
  649.     else r = 256 ; 
  650.   } 
  651.   if ( ( ( i .b2 ) % 4 ) == 1 ) 
  652.   if ( r != 256 ) 
  653.   {
  654.     k = ligkernbase [ f ] + i .b3 ; 
  655.     do { j = fontinfo [ k ] .qqqq ; 
  656.       if ( j .b1 == r ) 
  657.       if ( j .b2 < 128 ) 
  658.       {
  659.     ligaturepres = true ; 
  660.     l = j .b3 ; 
  661.     c = r ; 
  662.     goto lab73 ; 
  663.       } 
  664.       else { 
  665.     if ( ligaturepres ) 
  666.     {
  667.       p = newligature ( f , l , mem [(long) q ] .hh .v.RH ) ; 
  668.       mem [(long) q ] .hh .v.RH = p ; 
  669.       curlist .tailfield = p ; 
  670.     } 
  671.     if ( c == hyphenchar [ f ] ) 
  672.     if ( curlist .modefield == 101 ) 
  673.     {
  674.       mem [(long) curlist .tailfield ] .hh .v.RH = newdisc () ; 
  675.       curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ; 
  676.     } 
  677.     {
  678.       mem [(long) curlist .tailfield ] .hh .v.RH = newkern ( fontinfo [ kernbase 
  679.       [ f ] + j .b3 ] .cint ) ; 
  680.       curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ; 
  681.     } 
  682.     c = r ; 
  683.     goto lab72 ; 
  684.       } 
  685.       incr ( k ) ; 
  686.     } while ( ! ( j .b0 >= 128 ) ) ; 
  687.   } 
  688.   if ( ligaturepres ) 
  689.   {
  690.     p = newligature ( f , l , mem [(long) q ] .hh .v.RH ) ; 
  691.     mem [(long) q ] .hh .v.RH = p ; 
  692.     curlist .tailfield = p ; 
  693.   } 
  694.   if ( c == hyphenchar [ f ] ) 
  695.   if ( curlist .modefield == 101 ) 
  696.   {
  697.     mem [(long) curlist .tailfield ] .hh .v.RH = newdisc () ; 
  698.     curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ; 
  699.   } 
  700.   if ( r == 256 ) 
  701.   goto lab21 ; 
  702.   c = r ; 
  703.   goto lab71 ; 
  704.   lab74: if ( eqtb [ 3538 ] .hh .v.RH == 0 ) 
  705.   {
  706.     {
  707.       p = fontglue [ eqtb [ 4578 ] .hh .v.RH ] ; 
  708.       if ( p == 0 ) 
  709.       {
  710.     f = eqtb [ 4578 ] .hh .v.RH ; 
  711.     p = newspec ( 0 ) ; 
  712.     k = parambase [ f ] + 2 ; 
  713.     mem [(long) p + 1 ] .cint = fontinfo [ k ] .cint ; 
  714.     mem [(long) p + 2 ] .cint = fontinfo [ k + 1 ] .cint ; 
  715.     mem [(long) p + 3 ] .cint = fontinfo [ k + 2 ] .cint ; 
  716.     fontglue [ f ] = p ; 
  717.       } 
  718.     } 
  719.     q = newglue ( p ) ; 
  720.   } 
  721.   else q = newparamglue ( 12 ) ; 
  722.   mem [(long) curlist .tailfield ] .hh .v.RH = q ; 
  723.   curlist .tailfield = q ; 
  724.   goto lab60 ; 
  725. giveerrhelp () { r_giveerrhelp 
  726.   tokenshow ( eqtb [ 4065 ] .hh .v.RH ) ; 
  727. boolean openfmtfile () { /* 40 10 */ register boolean Result; 
  728.   r_openfmtfile 
  729.   integer j ; 
  730.   j = curinput .locfield ; 
  731.   if ( buffer [ curinput .locfield ] == 38 ) 
  732.   {
  733.     incr ( curinput .locfield ) ; 
  734.     j = curinput .locfield ; 
  735.     buffer [ last ] = 32 ; 
  736.     while ( buffer [ j ] != 32 ) incr ( j ) ; 
  737.     packbuffered ( 0 , curinput .locfield , j - 1 ) ; 
  738.     if ( wopenin ( fmtfile ) ) 
  739.     goto lab40 ; 
  740.     wakeuptermin () ; 
  741.     fprintf( output , "%s%s\n",  "Sorry, I can't find that format;" , " will try PLAIN."     ) ; 
  742.     termflush ( output ) ; 
  743.   } 
  744.   packbuffered ( 5 , 1 , 0 ) ; 
  745.   if ( ! wopenin ( fmtfile ) ) 
  746.   {
  747.     wakeuptermin () ; 
  748.     fprintf( output , "%s\n",  "I can't find the PLAIN format file!" ) ; 
  749.     Result = false ; 
  750.     return(Result) ; 
  751.   } 
  752.   lab40: curinput .locfield = j ; 
  753.   Result = true ; 
  754.   return(Result) ; 
  755. boolean loadfmtfile () { /* 6666 10 */ register boolean Result; 
  756.   r_loadfmtfile 
  757.   integer j, k ; 
  758.   halfword p, q ; 
  759.   integer x ; 
  760.   fourquarters w ; 
  761.   getfmtint ( x ) ; 
  762.   if ( x != 13634946 ) 
  763.   goto lab6666 ; 
  764.   getfmtint ( x ) ; 
  765.   if ( x != 0 ) 
  766.   goto lab6666 ; 
  767.   getfmtint ( x ) ; 
  768.   if ( x != memtop ) 
  769.   goto lab6666 ; 
  770.   getfmtint ( x ) ; 
  771.   if ( x != 5976 ) 
  772.   goto lab6666 ; 
  773.   getfmtint ( x ) ; 
  774.   if ( x != 2551 ) 
  775.   goto lab6666 ; 
  776.   getfmtint ( x ) ; 
  777.   if ( x != 307 ) 
  778.   goto lab6666 ; 
  779.   {
  780.     getfmtint ( x ) ; 
  781.     if ( x < 0 ) 
  782.     goto lab6666 ; 
  783.     if ( x > poolsize ) 
  784.     {
  785.       wakeuptermin () ; 
  786.       fprintf( output , "%s%s\n",  "---! Must increase the " , "string pool size" ) ; 
  787.       goto lab6666 ; 
  788.     } 
  789.     else poolptr = x ; 
  790.   } 
  791.   {
  792.     getfmtint ( x ) ; 
  793.     if ( x < 0 ) 
  794.     goto lab6666 ; 
  795.     if ( x > maxstrings ) 
  796.     {
  797.       wakeuptermin () ; 
  798.       fprintf( output , "%s%s\n",  "---! Must increase the " , "max strings" ) ; 
  799.       goto lab6666 ; 
  800.     } 
  801.     else strptr = x ; 
  802.   } 
  803.   undumpthings ( strstart [ 0 ] , strptr + 1 ) ; 
  804.   undumpthings ( strpool [ 0 ] , poolptr ) ; 
  805.   {
  806.     getfmtint ( x ) ; 
  807.     if ( ( x < 1019 ) || ( x > memtop - 14 ) ) 
  808.     goto lab6666 ; 
  809.     else lomemmax = x ; 
  810.   } 
  811.   {
  812.     getfmtint ( x ) ; 
  813.     if ( ( x < 20 ) || ( x > lomemmax ) ) 
  814.     goto lab6666 ; 
  815.     else rover = x ; 
  816.   } 
  817.   p = 0 ; 
  818.   q = rover ; 
  819.   x = 0 ; 
  820.   do { undumpthings ( mem [(long) p ] , q + 2 - p ) ; 
  821.     p = q + mem [(long) q ] .hh .v.LH ; 
  822.     if ( ( p > lomemmax ) || ( ( q >= mem [(long) q + 1 ] .hh .v.RH ) && ( mem [(long) q + 
  823.     1 ] .hh .v.RH != rover ) ) ) 
  824.     goto lab6666 ; 
  825.     q = mem [(long) q + 1 ] .hh .v.RH ; 
  826.   } while ( ! ( q == rover ) ) ; 
  827.   undumpthings ( mem [(long) p ] , lomemmax + 1 - p ) ; 
  828.   if ( memmin < - 2 ) 
  829.   {
  830.     p = mem [(long) rover + 1 ] .hh .v.LH ; 
  831.     q = memmin + 1 ; 
  832.     mem [(long) memmin ] .hh .v.RH = 0 ; 
  833.     mem [(long) memmin ] .hh .v.LH = 0 ; 
  834.     mem [(long) p + 1 ] .hh .v.RH = q ; 
  835.     mem [(long) rover + 1 ] .hh .v.LH = q ; 
  836.     mem [(long) q + 1 ] .hh .v.RH = rover ; 
  837.     mem [(long) q + 1 ] .hh .v.LH = p ; 
  838.     mem [(long) q ] .hh .v.RH = 65535L ; 
  839.     mem [(long) q ] .hh .v.LH = - 0 - q ; 
  840.   } 
  841.   {
  842.     getfmtint ( x ) ; 
  843.     if ( ( x < lomemmax + 1 ) || ( x > memtop - 13 ) ) 
  844.     goto lab6666 ; 
  845.     else himemmin = x ; 
  846.   } 
  847.   {
  848.     getfmtint ( x ) ; 
  849.     if ( ( x < 0 ) || ( x > memtop ) ) 
  850.     goto lab6666 ; 
  851.     else avail = x ; 
  852.   } 
  853.   memend = memtop ; 
  854.   undumpthings ( mem [(long) himemmin ] , memend + 1 - himemmin ) ; 
  855.   getfmtint ( varused ) ; 
  856.   getfmtint ( dynused ) ; 
  857.   k = 1 ; 
  858.   do { getfmtint ( x ) ; 
  859.     if ( ( x < 1 ) || ( k + x > 5977 ) ) 
  860.     goto lab6666 ; 
  861.     undumpthings ( eqtb [ k ] , x ) ; 
  862.     k = k + x ; 
  863.     getfmtint ( x ) ; 
  864.     if ( ( x < 0 ) || ( k + x > 5977 ) ) 
  865.     goto lab6666 ; 
  866.     for ( j = k ; j <= k + x - 1 ; j ++ ) 
  867.     eqtb [ j ] = eqtb [ k - 1 ] ; 
  868.     k = k + x ; 
  869.   } while ( ! ( k > 5976 ) ) ; 
  870.   {
  871.     getfmtint ( x ) ; 
  872.     if ( ( x < 258 ) || ( x > 3258 ) ) 
  873.     goto lab6666 ; 
  874.     else parloc = x ; 
  875.   } 
  876.   partoken = 4096 + parloc ; 
  877.   {
  878.     getfmtint ( x ) ; 
  879.     if ( ( x < 258 ) || ( x > 3258 ) ) 
  880.     goto lab6666 ; 
  881.     else writeloc = x ; 
  882.   } 
  883.   {
  884.     getfmtint ( x ) ; 
  885.     if ( ( x < 258 ) || ( x > 3258 ) ) 
  886.     goto lab6666 ; 
  887.     else hashused = x ; 
  888.   } 
  889.   p = 257 ; 
  890.   do { { 
  891.       getfmtint ( x ) ; 
  892.       if ( ( x < p + 1 ) || ( x > hashused ) ) 
  893.       goto lab6666 ; 
  894.       else p = x ; 
  895.     } 
  896.     getfmthh ( hash [ p ] ) ; 
  897.   } while ( ! ( p == hashused ) ) ; 
  898.   undumpthings ( hash [ hashused + 1 ] , 3524 - hashused ) ; 
  899.   getfmtint ( cscount ) ; 
  900.   {
  901.     getfmtint ( x ) ; 
  902.     if ( x < 7 ) 
  903.     goto lab6666 ; 
  904.     if ( x > fontmemsize ) 
  905.     {
  906.       wakeuptermin () ; 
  907.       fprintf( output , "%s%s\n",  "---! Must increase the " , "font mem size" ) ; 
  908.       goto lab6666 ; 
  909.     } 
  910.     else fmemptr = x ; 
  911.   } 
  912.   undumpthings ( fontinfo [ 0 ] , fmemptr ) ; 
  913.   {
  914.     getfmtint ( x ) ; 
  915.     if ( x < 0 ) 
  916.     goto lab6666 ; 
  917.     if ( x > fontmax ) 
  918.     {
  919.       wakeuptermin () ; 
  920.       fprintf( output , "%s%s\n",  "---! Must increase the " , "font max" ) ; 
  921.       goto lab6666 ; 
  922.     } 
  923.     else fontptr = x ; 
  924.   } 
  925.   undumpthings ( fontsize [ 0 ] , fontptr + 1 ) ; 
  926.   undumpthings ( fontdsize [ 0 ] , fontptr + 1 ) ; 
  927.   undumpthings ( fontparams [ 0 ] , fontptr + 1 ) ; 
  928.   undumpthings ( hyphenchar [ 0 ] , fontptr + 1 ) ; 
  929.   undumpthings ( skewchar [ 0 ] , fontptr + 1 ) ; 
  930.   undumpthings ( fontname [ 0 ] , fontptr + 1 ) ; 
  931.   undumpthings ( fontarea [ 0 ] , fontptr + 1 ) ; 
  932.   undumpthings ( fontbc [ 0 ] , fontptr + 1 ) ; 
  933.   undumpthings ( fontec [ 0 ] , fontptr + 1 ) ; 
  934.   undumpthings ( charbase [ 0 ] , fontptr + 1 ) ; 
  935.   undumpthings ( widthbase [ 0 ] , fontptr + 1 ) ; 
  936.   undumpthings ( heightbase [ 0 ] , fontptr + 1 ) ; 
  937.   undumpthings ( depthbase [ 0 ] , fontptr + 1 ) ; 
  938.   undumpthings ( italicbase [ 0 ] , fontptr + 1 ) ; 
  939.   undumpthings ( ligkernbase [ 0 ] , fontptr + 1 ) ; 
  940.   undumpthings ( kernbase [ 0 ] , fontptr + 1 ) ; 
  941.   undumpthings ( extenbase [ 0 ] , fontptr + 1 ) ; 
  942.   undumpthings ( parambase [ 0 ] , fontptr + 1 ) ; 
  943.   {
  944.     getfmtint ( x ) ; 
  945.     if ( ( x < 0 ) || ( x > 307 ) ) 
  946.     goto lab6666 ; 
  947.     else hyphcount = x ; 
  948.   } 
  949.   for ( k = 1 ; k <= hyphcount ; k ++ ) 
  950.   {
  951.     {
  952.       getfmtint ( x ) ; 
  953.       if ( ( x < 0 ) || ( x > 307 ) ) 
  954.       goto lab6666 ; 
  955.       else j = x ; 
  956.     } 
  957.     {
  958.       getfmtint ( x ) ; 
  959.       if ( ( x < 0 ) || ( x > strptr ) ) 
  960.       goto lab6666 ; 
  961.       else hyphword [ j ] = x ; 
  962.     } 
  963.     {
  964.       getfmtint ( x ) ; 
  965.       if ( ( x < 0 ) || ( x > 65535L ) ) 
  966.       goto lab6666 ; 
  967.       else hyphlist [ j ] = x ; 
  968.     } 
  969.   } 
  970.   {
  971.     getfmtint ( x ) ; 
  972.     if ( x < 0 ) 
  973.     goto lab6666 ; 
  974.     if ( x > triesize ) 
  975.     {
  976.       wakeuptermin () ; 
  977.       fprintf( output , "%s%s\n",  "---! Must increase the " , "trie size" ) ; 
  978.       goto lab6666 ; 
  979.     } 
  980.     else triemax = x ; 
  981.   } 
  982.   undumpthings ( trie [ 0 ] , triemax + 1 ) ; 
  983.   {
  984.     getfmtint ( x ) ; 
  985.     if ( ( x < 0 ) || ( x > 255 ) ) 
  986.     goto lab6666 ; 
  987.     else trieopptr = x ; 
  988.   } 
  989.   undumpthings ( hyfdistance [ 1 ] , trieopptr - 0 ) ; 
  990.   undumpthings ( hyfnum [ 1 ] , trieopptr - 0 ) ; 
  991.   undumpthings ( hyfnext [ 1 ] , trieopptr - 0 ) ; 
  992.   {
  993.     getfmtint ( x ) ; 
  994.     if ( ( x < 0 ) || ( x > 3 ) ) 
  995.     goto lab6666 ; 
  996.     else interaction = x ; 
  997.   } 
  998.   {
  999.     getfmtint ( x ) ; 
  1000.     if ( ( x < 0 ) || ( x > strptr ) ) 
  1001.     goto lab6666 ; 
  1002.     else formatident = x ; 
  1003.   } 
  1004.   getfmtint ( x ) ; 
  1005.   if ( ( x != 69069 ) || eof ( fmtfile ) ) 
  1006.   goto lab6666 ; 
  1007.   Result = true ; 
  1008.   return(Result) ; 
  1009.   lab6666: wakeuptermin () ; 
  1010.   fprintf( output , "%s\n",  "(Fatal format file error; I'm stymied)" ) ; 
  1011.   Result = false ; 
  1012.   return(Result) ; 
  1013. closefilesan () { r_closefilesan 
  1014.   integer k ; 
  1015.   for ( k = 0 ; k <= 15 ; k ++ ) 
  1016.   if ( writeopen [ k ] ) 
  1017.   aclose ( writefile [ k ] ) ; 
  1018.  
  1019. #ifdef STAT
  1020.   if ( eqtb [ 5298 ] .cint > 0 ) 
  1021.   if ( jobname > 0 ) 
  1022.   {
  1023.     fprintf( logfile , "%c\n",  ' ' ) ; 
  1024.     fprintf( logfile , "%s%s\n",  "Here is how much of TeX's memory" , " you used:" ) ; 
  1025.     fprintf( logfile , "%c%ld%s",  ' ' , (long)(strptr - initstrptr) , " string" ) ; 
  1026.     if ( strptr != initstrptr + 1 ) 
  1027.     putc( 's' ,  logfile );
  1028.     fprintf( logfile , "%s%ld\n",  " out of " , (long)(maxstrings - initstrptr) ) ; 
  1029.     fprintf( logfile , "%c%ld%s%ld\n",  ' ' ,(long)( poolptr - initpoolptr) ,     " string characters out of " , (long)(poolsize - initpoolptr) ) ; 
  1030.     fprintf( logfile , "%c%ld%s%ld\n",  ' ' , 
  1031. (long)(lomemmax - memmin + memend - himemmin) + 2 ,
  1032.      " words of memory out of " , (long)(memend + 1 - memmin) ) ; 
  1033.     fprintf( logfile , "%c%ld%s%ld\n",  ' ' , (long)cscount ,
  1034.      " multiletter control sequences out of " , 3000L ) ; 
  1035.     fprintf( logfile , "%c%ld%s%ld%s",  ' ' , (long)fmemptr , " words of font info for " , (long)fontptr - 0     , " font" ) ; 
  1036.     if ( fontptr != 1 ) 
  1037.     putc( 's' ,  logfile );
  1038.     fprintf( logfile , "%s%ld%s%ld\n",  ", out of " , (long)fontmemsize ,
  1039.  " for " , (long)fontmax - 0 ) ; 
  1040.     fprintf( logfile , "%c%ld%s",  ' ' ,(long) hyphcount , " hyphenation exception" ) ; 
  1041.     if ( hyphcount != 1 ) 
  1042.     putc( 's' ,  logfile );
  1043.     fprintf( logfile , "%s%d\n",  " out of " , 307 ) ; 
  1044.     fprintf( logfile , "%c%ld%s%ld%s%ld%s%ld%s%ld%s%ld%s%ld%s%ld%s%ld%s%ld%c]",
  1045.   ' ' , (long)maxinstack , "i," ,(long) maxneststack , "n," ,    (long) maxparamstac , "p," , 
  1046. (long)maxbufstack + 1 , "b," ,(long) maxsavestack + 6 ,     
  1047.   "s stack positions out of " , (long)stacksize , "i," ,(long) nestsize , "n," ,
  1048.      (long)paramsize , "p," , (long)bufsize , "b," , (long)savesize , 's' ) ; 
  1049.   } 
  1050. #endif /* STAT */
  1051.   wakeuptermin () ; 
  1052.   while ( curs > - 1 ) { 
  1053.     if ( curs > 0 ) 
  1054.     {
  1055.       dvibuf [ dviptr ] = 142 ; 
  1056.       incr ( dviptr ) ; 
  1057.       if ( dviptr == dvilimit ) 
  1058.       dviswap () ; 
  1059.     } 
  1060.     else { 
  1061.       {
  1062.     dvibuf [ dviptr ] = 140 ; 
  1063.     incr ( dviptr ) ; 
  1064.     if ( dviptr == dvilimit ) 
  1065.     dviswap () ; 
  1066.       } 
  1067.       incr ( totalpages ) ; 
  1068.     } 
  1069.     decr ( curs ) ; 
  1070.   } 
  1071.   if ( totalpages == 0 ) 
  1072.   printnl ( 690 ) ; 
  1073.   else { 
  1074.     {
  1075.       dvibuf [ dviptr ] = 248 ; 
  1076.       incr ( dviptr ) ; 
  1077.       if ( dviptr == dvilimit ) 
  1078.       dviswap () ; 
  1079.     } 
  1080.     dvifour ( lastbop ) ; 
  1081.     lastbop = dvioffset + dviptr - 5 ; 
  1082.     dvifour ( 25400000 ) ; 
  1083.     dvifour ( 473628672 ) ; 
  1084.     preparemag () ; 
  1085.     dvifour ( eqtb [ 5284 ] .cint ) ; 
  1086.     dvifour ( maxv ) ; 
  1087.     dvifour ( maxh ) ; 
  1088.     {
  1089.       dvibuf [ dviptr ] = maxpush / 256 ; 
  1090.       incr ( dviptr ) ; 
  1091.       if ( dviptr == dvilimit ) 
  1092.       dviswap () ; 
  1093.     } 
  1094.     {
  1095.       dvibuf [ dviptr ] = maxpush % 256 ; 
  1096.       incr ( dviptr ) ; 
  1097.       if ( dviptr == dvilimit ) 
  1098.       dviswap () ; 
  1099.     } 
  1100.     {
  1101.       dvibuf [ dviptr ] = totalpages / 256 ; 
  1102.       incr ( dviptr ) ; 
  1103.       if ( dviptr == dvilimit ) 
  1104.       dviswap () ; 
  1105.     } 
  1106.     {
  1107.       dvibuf [ dviptr ] = totalpages % 256 ; 
  1108.       incr ( dviptr ) ; 
  1109.       if ( dviptr == dvilimit ) 
  1110.       dviswap () ; 
  1111.     } 
  1112.     while ( fontptr > 0 ) { 
  1113.       if ( fontused [ fontptr ] ) 
  1114.       dvifontdef ( fontptr ) ; 
  1115.       decr ( fontptr ) ; 
  1116.     } 
  1117.     {
  1118.       dvibuf [ dviptr ] = 249 ; 
  1119.       incr ( dviptr ) ; 
  1120.       if ( dviptr == dvilimit ) 
  1121.       dviswap () ; 
  1122.     } 
  1123.     dvifour ( lastbop ) ; 
  1124.     {
  1125.       dvibuf [ dviptr ] = 2 ; 
  1126.       incr ( dviptr ) ; 
  1127.       if ( dviptr == dvilimit ) 
  1128.       dviswap () ; 
  1129.     } 
  1130.     k = 4 + ( ( dvibufsize - dviptr ) % 4 ) ; 
  1131.     while ( k > 0 ) { 
  1132.       {
  1133.     dvibuf [ dviptr ] = 223 ; 
  1134.     incr ( dviptr ) ; 
  1135.     if ( dviptr == dvilimit ) 
  1136.     dviswap () ; 
  1137.       } 
  1138.       decr ( k ) ; 
  1139.     } 
  1140. #ifdef VMS
  1141. if((k=dviptr % 512) >0){
  1142.     k = 512-k;
  1143.     while ( k > 0 ) { 
  1144.       {
  1145.     dvibuf [ dviptr ] = 223 ; 
  1146.     incr ( dviptr ) ; 
  1147.     if ( dviptr == dvilimit ) 
  1148.     dviswap () ; 
  1149.       } 
  1150.       decr ( k ) ; 
  1151.     } 
  1152. }
  1153. #endif /* vms */
  1154.     if ( dvilimit == halfbuf ) 
  1155.     writedvi ( halfbuf , dvibufsize - 1 ) ; 
  1156.     if ( dviptr > 0 ) 
  1157.     writedvi ( 0 , dviptr - 1 ) ; 
  1158.     printnl ( 691 ) ; 
  1159.     print ( outputfilena ) ; 
  1160.     print ( 155 ) ; 
  1161.     printint ( totalpages ) ; 
  1162.     print ( 692 ) ; 
  1163.     if ( totalpages != 1 ) 
  1164.     printchar ( 115 ) ; 
  1165.     print ( 693 ) ; 
  1166.     printint ( dvioffset + dviptr ) ; 
  1167.     print ( 694 ) ; 
  1168.     bclose ( dvifile ) ; 
  1169.   } 
  1170.   if ( jobname > 0 ) 
  1171.   {
  1172.     putc('\n',  logfile );
  1173.     aclose ( logfile ) ; 
  1174.     selector = selector - 2 ; 
  1175.     if ( selector == 17 ) 
  1176.     {
  1177.       printnl ( 1120 ) ; 
  1178.       print ( logname ) ; 
  1179.       printchar ( 46 ) ; 
  1180.     } 
  1181.   } 
  1182.   println () ; 
  1183.   if ( ( editnamestar != 0 ) && ( interaction > 0 ) ) 
  1184.   calledit ( strpool , editnamestar , editnameleng , editline ) ; 
  1185. finalcleanup () { /* 10 */ r_finalcleanup 
  1186.   smallnumber c ; 
  1187.   c = curchr ; 
  1188.   if ( jobname == 0 ) 
  1189.   openlogfile () ; 
  1190.   if ( curlevel > 1 ) 
  1191.   {
  1192.     printnl ( 40 ) ; 
  1193.     printesc ( 1121 ) ; 
  1194.     print ( 1122 ) ; 
  1195.     printint ( curlevel - 1 ) ; 
  1196.     printchar ( 41 ) ; 
  1197.   } 
  1198.   while ( condptr != 0 ) { 
  1199.     printnl ( 40 ) ; 
  1200.     printesc ( 1121 ) ; 
  1201.     print ( 1123 ) ; 
  1202.     printcmdchr ( 104 , curif ) ; 
  1203.     if ( ifline != 0 ) 
  1204.     {
  1205.       print ( 1124 ) ; 
  1206.       printint ( ifline ) ; 
  1207.     } 
  1208.     print ( 1125 ) ; 
  1209.     ifline = mem [(long) condptr + 1 ] .cint ; 
  1210.     curif = mem [(long) condptr ] .hh.b1 ; 
  1211.     condptr = mem [(long) condptr ] .hh .v.RH ; 
  1212.   } 
  1213.   if ( history != 0 ) 
  1214.   if ( ( ( history == 1 ) || ( interaction < 3 ) ) ) 
  1215.   if ( selector == 19 ) 
  1216.   {
  1217.     selector = 17 ; 
  1218.     printnl ( 1126 ) ; 
  1219.     selector = 19 ; 
  1220.   } 
  1221.   if ( c == 1 ) 
  1222.   {
  1223.  
  1224. #ifdef INITEX
  1225.     storefmtfile () ; 
  1226.     return ; 
  1227. #endif /* INITEX */
  1228.     printnl ( 1127 ) ; 
  1229.     return ; 
  1230.   } 
  1231.  
  1232. #ifdef INITEX
  1233. initprim () { r_initprim 
  1234.   nonewcontrol = false ; 
  1235.   primitive ( 241 , 74 , 3526 ) ; 
  1236.   primitive ( 242 , 74 , 3527 ) ; 
  1237.   primitive ( 243 , 74 , 3528 ) ; 
  1238.   primitive ( 244 , 74 , 3529 ) ; 
  1239.   primitive ( 245 , 74 , 3530 ) ; 
  1240.   primitive ( 246 , 74 , 3531 ) ; 
  1241.   primitive ( 247 , 74 , 3532 ) ; 
  1242.   primitive ( 248 , 74 , 3533 ) ; 
  1243.   primitive ( 249 , 74 , 3534 ) ; 
  1244.   primitive ( 250 , 74 , 3535 ) ; 
  1245.   primitive ( 251 , 74 , 3536 ) ; 
  1246.   primitive ( 252 , 74 , 3537 ) ; 
  1247.   primitive ( 253 , 74 , 3538 ) ; 
  1248.   primitive ( 254 , 74 , 3539 ) ; 
  1249.   primitive ( 255 , 74 , 3540 ) ; 
  1250.   primitive ( 256 , 75 , 3541 ) ; 
  1251.   primitive ( 257 , 75 , 3542 ) ; 
  1252.   primitive ( 258 , 75 , 3543 ) ; 
  1253.   primitive ( 263 , 71 , 4057 ) ; 
  1254.   primitive ( 264 , 71 , 4058 ) ; 
  1255.   primitive ( 265 , 71 , 4059 ) ; 
  1256.   primitive ( 266 , 71 , 4060 ) ; 
  1257.   primitive ( 267 , 71 , 4061 ) ; 
  1258.   primitive ( 268 , 71 , 4062 ) ; 
  1259.   primitive ( 269 , 71 , 4063 ) ; 
  1260.   primitive ( 270 , 71 , 4064 ) ; 
  1261.   primitive ( 271 , 71 , 4065 ) ; 
  1262.   primitive ( 285 , 72 , 5267 ) ; 
  1263.   primitive ( 286 , 72 , 5268 ) ; 
  1264.   primitive ( 287 , 72 , 5269 ) ; 
  1265.   primitive ( 288 , 72 , 5270 ) ; 
  1266.   primitive ( 289 , 72 , 5271 ) ; 
  1267.   primitive ( 290 , 72 , 5272 ) ; 
  1268.   primitive ( 291 , 72 , 5273 ) ; 
  1269.   primitive ( 292 , 72 , 5274 ) ; 
  1270.   primitive ( 293 , 72 , 5275 ) ; 
  1271.   primitive ( 294 , 72 , 5276 ) ; 
  1272.   primitive ( 295 , 72 , 5277 ) ; 
  1273.   primitive ( 296 , 72 , 5278 ) ; 
  1274.   primitive ( 297 , 72 , 5279 ) ; 
  1275.   primitive ( 298 , 72 , 5280 ) ; 
  1276.   primitive ( 299 , 72 , 5281 ) ; 
  1277.   primitive ( 300 , 72 , 5282 ) ; 
  1278.   primitive ( 301 , 72 , 5283 ) ; 
  1279.   primitive ( 302 , 72 , 5284 ) ; 
  1280.   primitive ( 303 , 72 , 5285 ) ; 
  1281.   primitive ( 304 , 72 , 5286 ) ; 
  1282.   primitive ( 305 , 72 , 5287 ) ; 
  1283.   primitive ( 306 , 72 , 5288 ) ; 
  1284.   primitive ( 307 , 72 , 5289 ) ; 
  1285.   primitive ( 308 , 72 , 5290 ) ; 
  1286.   primitive ( 309 , 72 , 5291 ) ; 
  1287.   primitive ( 310 , 72 , 5292 ) ; 
  1288.   primitive ( 311 , 72 , 5293 ) ; 
  1289.   primitive ( 312 , 72 , 5294 ) ; 
  1290.   primitive ( 313 , 72 , 5295 ) ; 
  1291.   primitive ( 314 , 72 , 5296 ) ; 
  1292.   primitive ( 315 , 72 , 5297 ) ; 
  1293.   primitive ( 316 , 72 , 5298 ) ; 
  1294.   primitive ( 317 , 72 , 5299 ) ; 
  1295.   primitive ( 318 , 72 , 5300 ) ; 
  1296.   primitive ( 319 , 72 , 5301 ) ; 
  1297.   primitive ( 320 , 72 , 5302 ) ; 
  1298.   primitive ( 321 , 72 , 5303 ) ; 
  1299.   primitive ( 322 , 72 , 5304 ) ; 
  1300.   primitive ( 323 , 72 , 5305 ) ; 
  1301.   primitive ( 324 , 72 , 5306 ) ; 
  1302.   primitive ( 325 , 72 , 5307 ) ; 
  1303.   primitive ( 326 , 72 , 5308 ) ; 
  1304.   primitive ( 327 , 72 , 5309 ) ; 
  1305.   primitive ( 328 , 72 , 5310 ) ; 
  1306.   primitive ( 329 , 72 , 5311 ) ; 
  1307.   primitive ( 330 , 72 , 5312 ) ; 
  1308.   primitive ( 331 , 72 , 5313 ) ; 
  1309.   primitive ( 332 , 72 , 5314 ) ; 
  1310.   primitive ( 333 , 72 , 5315 ) ; 
  1311.   primitive ( 334 , 72 , 5316 ) ; 
  1312.   primitive ( 338 , 73 , 5701 ) ; 
  1313.   primitive ( 339 , 73 , 5702 ) ; 
  1314.   primitive ( 340 , 73 , 5703 ) ; 
  1315.   primitive ( 341 , 73 , 5704 ) ; 
  1316.   primitive ( 342 , 73 , 5705 ) ; 
  1317.   primitive ( 343 , 73 , 5706 ) ; 
  1318.   primitive ( 344 , 73 , 5707 ) ; 
  1319.   primitive ( 345 , 73 , 5708 ) ; 
  1320.   primitive ( 346 , 73 , 5709 ) ; 
  1321.   primitive ( 347 , 73 , 5710 ) ; 
  1322.   primitive ( 348 , 73 , 5711 ) ; 
  1323.   primitive ( 349 , 73 , 5712 ) ; 
  1324.   primitive ( 350 , 73 , 5713 ) ; 
  1325.   primitive ( 351 , 73 , 5714 ) ; 
  1326.   primitive ( 352 , 73 , 5715 ) ; 
  1327.   primitive ( 353 , 73 , 5716 ) ; 
  1328.   primitive ( 354 , 73 , 5717 ) ; 
  1329.   primitive ( 355 , 73 , 5718 ) ; 
  1330.   primitive ( 356 , 73 , 5719 ) ; 
  1331.   primitive ( 357 , 73 , 5720 ) ; 
  1332.   primitive ( 32 , 64 , 0 ) ; 
  1333.   primitive ( 47 , 44 , 0 ) ; 
  1334.   primitive ( 367 , 45 , 0 ) ; 
  1335.   primitive ( 368 , 89 , 0 ) ; 
  1336.   primitive ( 369 , 40 , 0 ) ; 
  1337.   primitive ( 370 , 41 , 0 ) ; 
  1338.   primitive ( 371 , 61 , 0 ) ; 
  1339.   primitive ( 372 , 16 , 0 ) ; 
  1340.   primitive ( 363 , 106 , 0 ) ; 
  1341.   primitive ( 373 , 15 , 0 ) ; 
  1342.   primitive ( 374 , 91 , 0 ) ; 
  1343.   primitive ( 364 , 66 , 0 ) ; 
  1344.   primitive ( 375 , 62 , 0 ) ; 
  1345.   hash [ 3260 ] .v.RH = 375 ; 
  1346.   eqtb [ 3260 ] = eqtb [ curval ] ; 
  1347.   primitive ( 376 , 101 , 0 ) ; 
  1348.   primitive ( 377 , 87 , 0 ) ; 
  1349.   primitive ( 378 , 76 , 0 ) ; 
  1350.   primitive ( 379 , 32 , 0 ) ; 
  1351.   primitive ( 380 , 36 , 0 ) ; 
  1352.   primitive ( 381 , 39 , 0 ) ; 
  1353.   primitive ( 198 , 37 , 0 ) ; 
  1354.   primitive ( 219 , 18 , 0 ) ; 
  1355.   primitive ( 382 , 46 , 0 ) ; 
  1356.   primitive ( 383 , 17 , 0 ) ; 
  1357.   primitive ( 384 , 54 , 0 ) ; 
  1358.   primitive ( 385 , 90 , 0 ) ; 
  1359.   primitive ( 386 , 34 , 0 ) ; 
  1360.   primitive ( 387 , 102 , 0 ) ; 
  1361.   primitive ( 203 , 55 , 0 ) ; 
  1362.   primitive ( 388 , 63 , 0 ) ; 
  1363.   primitive ( 273 , 83 , 0 ) ; 
  1364.   primitive ( 389 , 42 , 0 ) ; 
  1365.   primitive ( 390 , 79 , 0 ) ; 
  1366.   primitive ( 391 , 65 , 0 ) ; 
  1367.   primitive ( 392 , 95 , 0 ) ; 
  1368.   primitive ( 393 , 0 , 256 ) ; 
  1369.   hash [ 3265 ] .v.RH = 393 ; 
  1370.   eqtb [ 3265 ] = eqtb [ curval ] ; 
  1371.   primitive ( 394 , 97 , 0 ) ; 
  1372.   primitive ( 395 , 108 , 0 ) ; 
  1373.   primitive ( 272 , 70 , 0 ) ; 
  1374.   primitive ( 220 , 38 , 0 ) ; 
  1375.   primitive ( 396 , 33 , 0 ) ; 
  1376.   primitive ( 397 , 56 , 0 ) ; 
  1377.   primitive ( 398 , 35 , 0 ) ; 
  1378.   primitive ( 455 , 13 , 0 ) ; 
  1379.   parloc = curval ; 
  1380.   partoken = 4096 + parloc ; 
  1381.   primitive ( 487 , 103 , 0 ) ; 
  1382.   primitive ( 488 , 103 , 1 ) ; 
  1383.   primitive ( 489 , 109 , 0 ) ; 
  1384.   primitive ( 490 , 109 , 1 ) ; 
  1385.   primitive ( 491 , 109 , 2 ) ; 
  1386.   primitive ( 492 , 109 , 3 ) ; 
  1387.   primitive ( 493 , 109 , 4 ) ; 
  1388.   primitive ( 336 , 88 , 0 ) ; 
  1389.   primitive ( 359 , 88 , 1 ) ; 
  1390.   primitive ( 260 , 88 , 2 ) ; 
  1391.   primitive ( 261 , 88 , 3 ) ; 
  1392.   primitive ( 526 , 78 , 101 ) ; 
  1393.   primitive ( 527 , 78 , 1 ) ; 
  1394.   primitive ( 528 , 81 , 0 ) ; 
  1395.   primitive ( 529 , 81 , 1 ) ; 
  1396.   primitive ( 530 , 82 , 1 ) ; 
  1397.   primitive ( 531 , 82 , 3 ) ; 
  1398.   primitive ( 532 , 82 , 2 ) ; 
  1399.   primitive ( 533 , 69 , 0 ) ; 
  1400.   primitive ( 534 , 69 , 1 ) ; 
  1401.   primitive ( 535 , 69 , 2 ) ; 
  1402.   primitive ( 592 , 107 , 0 ) ; 
  1403.   primitive ( 593 , 107 , 1 ) ; 
  1404.   primitive ( 594 , 107 , 2 ) ; 
  1405.   primitive ( 595 , 107 , 3 ) ; 
  1406.   primitive ( 596 , 107 , 4 ) ; 
  1407.   primitive ( 597 , 107 , 5 ) ; 
  1408.   primitive ( 613 , 104 , 0 ) ; 
  1409.   primitive ( 614 , 104 , 1 ) ; 
  1410.   primitive ( 615 , 104 , 2 ) ; 
  1411.   primitive ( 616 , 104 , 3 ) ; 
  1412.   primitive ( 617 , 104 , 4 ) ; 
  1413.   primitive ( 618 , 104 , 5 ) ; 
  1414.   primitive ( 619 , 104 , 6 ) ; 
  1415.   primitive ( 620 , 104 , 7 ) ; 
  1416.   primitive ( 621 , 104 , 8 ) ; 
  1417.   primitive ( 622 , 104 , 9 ) ; 
  1418.   primitive ( 623 , 104 , 10 ) ; 
  1419.   primitive ( 624 , 104 , 11 ) ; 
  1420.   primitive ( 625 , 104 , 12 ) ; 
  1421.   primitive ( 626 , 104 , 13 ) ; 
  1422.   primitive ( 627 , 104 , 14 ) ; 
  1423.   primitive ( 628 , 104 , 15 ) ; 
  1424.   primitive ( 629 , 104 , 16 ) ; 
  1425.   primitive ( 630 , 105 , 2 ) ; 
  1426.   hash [ 3262 ] .v.RH = 630 ; 
  1427.   eqtb [ 3262 ] = eqtb [ curval ] ; 
  1428.   primitive ( 631 , 105 , 4 ) ; 
  1429.   primitive ( 632 , 105 , 3 ) ; 
  1430.   primitive ( 654 , 86 , 0 ) ; 
  1431.   hash [ 3268 ] .v.RH = 654 ; 
  1432.   eqtb [ 3268 ] = eqtb [ curval ] ; 
  1433.   primitive ( 751 , 4 , 128 ) ; 
  1434.   primitive ( 752 , 5 , 129 ) ; 
  1435.   hash [ 3259 ] .v.RH = 752 ; 
  1436.   eqtb [ 3259 ] = eqtb [ curval ] ; 
  1437.   primitive ( 753 , 5 , 130 ) ; 
  1438.   hash [ 3263 ] .v.RH = 754 ; 
  1439.   hash [ 3264 ] .v.RH = 754 ; 
  1440.   eqtb [ 3264 ] .hh.b0 = 9 ; 
  1441.   eqtb [ 3264 ] .hh .v.RH = memtop - 11 ; 
  1442.   eqtb [ 3264 ] .hh.b1 = 1 ; 
  1443.   eqtb [ 3263 ] = eqtb [ 3264 ] ; 
  1444.   eqtb [ 3263 ] .hh.b0 = 114 ; 
  1445.   primitive ( 818 , 80 , 0 ) ; 
  1446.   primitive ( 819 , 80 , 1 ) ; 
  1447.   primitive ( 820 , 80 , 2 ) ; 
  1448.   primitive ( 821 , 80 , 3 ) ; 
  1449.   primitive ( 822 , 80 , 4 ) ; 
  1450.   primitive ( 823 , 80 , 5 ) ; 
  1451.   primitive ( 824 , 80 , 6 ) ; 
  1452.   primitive ( 825 , 80 , 7 ) ; 
  1453.   primitive ( 873 , 14 , 0 ) ; 
  1454.   primitive ( 874 , 14 , 1 ) ; 
  1455.   primitive ( 875 , 26 , 4 ) ; 
  1456.   primitive ( 876 , 26 , 0 ) ; 
  1457.   primitive ( 877 , 26 , 1 ) ; 
  1458.   primitive ( 878 , 26 , 2 ) ; 
  1459.   primitive ( 879 , 26 , 3 ) ; 
  1460.   primitive ( 880 , 27 , 4 ) ; 
  1461.   primitive ( 881 , 27 , 0 ) ; 
  1462.   primitive ( 882 , 27 , 1 ) ; 
  1463.   primitive ( 883 , 27 , 2 ) ; 
  1464.   primitive ( 884 , 27 , 3 ) ; 
  1465.   primitive ( 204 , 28 , 5 ) ; 
  1466.   primitive ( 208 , 29 , 1 ) ; 
  1467.   primitive ( 210 , 30 , 99 ) ; 
  1468.   primitive ( 902 , 21 , 1 ) ; 
  1469.   primitive ( 903 , 21 , 0 ) ; 
  1470.   primitive ( 904 , 22 , 1 ) ; 
  1471.   primitive ( 905 , 22 , 0 ) ; 
  1472.   primitive ( 274 , 20 , 0 ) ; 
  1473.   primitive ( 906 , 20 , 1 ) ; 
  1474.   primitive ( 907 , 20 , 2 ) ; 
  1475.   primitive ( 813 , 20 , 3 ) ; 
  1476.   primitive ( 908 , 20 , 4 ) ; 
  1477.   primitive ( 815 , 20 , 5 ) ; 
  1478.   primitive ( 909 , 20 , 105 ) ; 
  1479.   primitive ( 910 , 31 , 99 ) ; 
  1480.   primitive ( 911 , 31 , 100 ) ; 
  1481.   primitive ( 912 , 31 , 101 ) ; 
  1482.   primitive ( 913 , 31 , 102 ) ; 
  1483.   primitive ( 928 , 43 , 1 ) ; 
  1484.   primitive ( 929 , 43 , 0 ) ; 
  1485.   primitive ( 938 , 25 , 12 ) ; 
  1486.   primitive ( 939 , 25 , 11 ) ; 
  1487.   primitive ( 940 , 25 , 10 ) ; 
  1488.   primitive ( 941 , 23 , 0 ) ; 
  1489.   primitive ( 942 , 23 , 1 ) ; 
  1490.   primitive ( 943 , 24 , 0 ) ; 
  1491.   primitive ( 944 , 24 , 1 ) ; 
  1492.   primitive ( 45 , 47 , 1 ) ; 
  1493.   primitive ( 217 , 47 , 0 ) ; 
  1494.   primitive ( 975 , 48 , 0 ) ; 
  1495.   primitive ( 976 , 48 , 1 ) ; 
  1496.   primitive ( 719 , 50 , 16 ) ; 
  1497.   primitive ( 720 , 50 , 17 ) ; 
  1498.   primitive ( 721 , 50 , 18 ) ; 
  1499.   primitive ( 722 , 50 , 19 ) ; 
  1500.   primitive ( 723 , 50 , 20 ) ; 
  1501.   primitive ( 724 , 50 , 21 ) ; 
  1502.   primitive ( 725 , 50 , 22 ) ; 
  1503.   primitive ( 726 , 50 , 23 ) ; 
  1504.   primitive ( 728 , 50 , 26 ) ; 
  1505.   primitive ( 727 , 50 , 27 ) ; 
  1506.   primitive ( 977 , 51 , 0 ) ; 
  1507.   primitive ( 731 , 51 , 1 ) ; 
  1508.   primitive ( 732 , 51 , 2 ) ; 
  1509.   primitive ( 714 , 53 , 0 ) ; 
  1510.   primitive ( 715 , 53 , 2 ) ; 
  1511.   primitive ( 716 , 53 , 4 ) ; 
  1512.   primitive ( 717 , 53 , 6 ) ; 
  1513.   primitive ( 995 , 52 , 0 ) ; 
  1514.   primitive ( 996 , 52 , 1 ) ; 
  1515.   primitive ( 997 , 52 , 2 ) ; 
  1516.   primitive ( 998 , 52 , 3 ) ; 
  1517.   primitive ( 999 , 52 , 4 ) ; 
  1518.   primitive ( 1000 , 52 , 5 ) ; 
  1519.   primitive ( 729 , 49 , 30 ) ; 
  1520.   primitive ( 730 , 49 , 31 ) ; 
  1521.   hash [ 3261 ] .v.RH = 730 ; 
  1522.   eqtb [ 3261 ] = eqtb [ curval ] ; 
  1523.   primitive ( 1019 , 92 , 1 ) ; 
  1524.   primitive ( 1020 , 92 , 2 ) ; 
  1525.   primitive ( 1021 , 92 , 4 ) ; 
  1526.   primitive ( 1022 , 96 , 0 ) ; 
  1527.   primitive ( 1023 , 96 , 1 ) ; 
  1528.   primitive ( 1024 , 96 , 2 ) ; 
  1529.   primitive ( 1025 , 96 , 3 ) ; 
  1530.   primitive ( 1039 , 93 , 0 ) ; 
  1531.   primitive ( 1040 , 93 , 1 ) ; 
  1532.   primitive ( 1041 , 94 , 0 ) ; 
  1533.   primitive ( 1042 , 94 , 1 ) ; 
  1534.   primitive ( 1043 , 94 , 2 ) ; 
  1535.   primitive ( 1044 , 94 , 3 ) ; 
  1536.   primitive ( 1045 , 94 , 4 ) ; 
  1537.   primitive ( 1046 , 94 , 5 ) ; 
  1538.   primitive ( 1047 , 94 , 6 ) ; 
  1539.   primitive ( 280 , 84 , 4627 ) ; 
  1540.   primitive ( 284 , 84 , 5139 ) ; 
  1541.   primitive ( 281 , 84 , 4755 ) ; 
  1542.   primitive ( 282 , 84 , 4883 ) ; 
  1543.   primitive ( 283 , 84 , 5011 ) ; 
  1544.   primitive ( 337 , 84 , 5573 ) ; 
  1545.   primitive ( 277 , 85 , 4579 ) ; 
  1546.   primitive ( 278 , 85 , 4595 ) ; 
  1547.   primitive ( 279 , 85 , 4611 ) ; 
  1548.   primitive ( 793 , 98 , 0 ) ; 
  1549.   primitive ( 803 , 98 , 1 ) ; 
  1550.   primitive ( 1063 , 77 , 0 ) ; 
  1551.   primitive ( 1064 , 77 , 1 ) ; 
  1552.   primitive ( 143 , 99 , 0 ) ; 
  1553.   primitive ( 144 , 99 , 1 ) ; 
  1554.   primitive ( 145 , 99 , 2 ) ; 
  1555.   primitive ( 1073 , 99 , 3 ) ; 
  1556.   primitive ( 1074 , 60 , 1 ) ; 
  1557.   primitive ( 1075 , 60 , 0 ) ; 
  1558.   primitive ( 1076 , 58 , 0 ) ; 
  1559.   primitive ( 1077 , 58 , 1 ) ; 
  1560.   primitive ( 1083 , 57 , 4755 ) ; 
  1561.   primitive ( 1084 , 57 , 4883 ) ; 
  1562.   primitive ( 1085 , 19 , 0 ) ; 
  1563.   primitive ( 1086 , 19 , 1 ) ; 
  1564.   primitive ( 1087 , 19 , 2 ) ; 
  1565.   primitive ( 1088 , 19 , 3 ) ; 
  1566.   primitive ( 1129 , 59 , 0 ) ; 
  1567.   primitive ( 452 , 59 , 1 ) ; 
  1568.   writeloc = curval ; 
  1569.   primitive ( 1130 , 59 , 2 ) ; 
  1570.   primitive ( 1131 , 59 , 3 ) ; 
  1571.   primitive ( 1132 , 59 , 4 ) ; 
  1572.   nonewcontrol = true ; 
  1573. #endif /* INITEX */
  1574.  
  1575. #ifdef DEBUG
  1576. debughelp () { /* 888 10 */ r_debughelp 
  1577.   integer k, l, m, n ; 
  1578.   while ( true ) { 
  1579.     wakeuptermin () ; 
  1580.     printnl ( 1128 ) ; 
  1581.     termflush ( output ) ; 
  1582.     m = getint();
  1583.     if ( m < 0 ) 
  1584.     return ; 
  1585.     else if ( m == 0 ) 
  1586.     dumpcore () ; 
  1587.     else { 
  1588.       n = getint();
  1589.       switch ( m ) 
  1590.       {case 1 : 
  1591.     printword ( mem [(long) n ] ) ; 
  1592.     break ; 
  1593.       case 2 : 
  1594.     printint ( mem [(long) n ] .hh .v.LH ) ; 
  1595.     break ; 
  1596.       case 3 : 
  1597.     printint ( mem [(long) n ] .hh .v.RH ) ; 
  1598.     break ; 
  1599.       case 4 : 
  1600.     printword ( eqtb [ n ] ) ; 
  1601.     break ; 
  1602.       case 5 : 
  1603.     printword ( fontinfo [ n ] ) ; 
  1604.     break ; 
  1605.       case 6 : 
  1606.     printword ( savestack [ n ] ) ; 
  1607.     break ; 
  1608.       case 7 : 
  1609.     showbox ( n ) ; 
  1610.     break ; 
  1611.       case 8 : 
  1612.     {
  1613.       breadthmax = 10000 ; 
  1614.       depththresho = poolsize - poolptr - 10 ; 
  1615.       shownodelist ( n ) ; 
  1616.     } 
  1617.     break ; 
  1618.       case 9 : 
  1619.     showtokenlis ( n , 0 , 1000 ) ; 
  1620.     break ; 
  1621.       case 10 : 
  1622.     print ( n ) ; 
  1623.     break ; 
  1624.       case 11 : 
  1625.     checkmem ( n > 0 ) ; 
  1626.     break ; 
  1627.       case 12 : 
  1628.     searchmem ( n ) ; 
  1629.     break ; 
  1630.       case 13 : 
  1631.     {
  1632.       l = getint();
  1633.       printcmdchr ( n , l ) ; 
  1634.     } 
  1635.     break ; 
  1636.       case 14 : 
  1637.     for ( k = 0 ; k <= n ; k ++ ) 
  1638.     print ( buffer [ k ] ) ; 
  1639.     break ; 
  1640.       case 15 : 
  1641.     {
  1642.       fontinshortd = 0 ; 
  1643.       shortdisplay ( n ) ; 
  1644.     } 
  1645.     break ; 
  1646.       case 16 : 
  1647.     panicking = ! panicking ; 
  1648.     break ; 
  1649.       default : 
  1650.     print ( 63 ) ; 
  1651.     break ; 
  1652.       } 
  1653.     } 
  1654.   } 
  1655. #endif /* DEBUG */
  1656. texbody () { /* 1 9998 9999 */ r_texbody 
  1657.   integer bufindx ; 
  1658. /* printf("eqtb a3 %lx %lx\n",(long)zeqtb,(long)eqtb);*/
  1659.   history = 3 ; 
  1660.   setpaths () ; 
  1661.   if ( readyalready == 314159 ) 
  1662.   goto lab1 ; 
  1663.   bad = 0 ; 
  1664.   if ( ( halferrorlin < 30 ) || ( halferrorlin > errorline - 15 ) ) 
  1665.   bad = 1 ; 
  1666.   if ( maxprintline < 60 ) 
  1667.   bad = 2 ; 
  1668.   if ( dvibufsize % 8 != 0 ) 
  1669.   bad = 3 ; 
  1670.   if ( 1100 > memtop ) 
  1671.   bad = 4 ; 
  1672.   if ( 2551 > 3000 ) 
  1673.   bad = 5 ; 
  1674.   if ( maxinopen >= 128 ) 
  1675.   bad = 6 ; 
  1676.  
  1677. #ifdef INITEX
  1678.   if ( ( memmin != 0 ) || ( memmax != memtop ) ) 
  1679.   bad = 10 ; 
  1680. #endif /* INITEX */
  1681.   if ( ( memmin > 0 ) || ( memmax < memtop ) ) 
  1682.   bad = 10 ; 
  1683.   if ( ( 0 > 0 ) || ( 255 < 127 ) ) 
  1684.   bad = 11 ; 
  1685.   if ( ( 0 > 0 ) || ( 65535L < 32767 ) ) 
  1686.   bad = 12 ; 
  1687.   if ( ( 0 < 0 ) || ( 255 > 65535L ) ) 
  1688.   bad = 13 ; 
  1689.   if ( ( memmin < 0 ) || ( memmax >= 65535L ) || ( - 0 - memmin > 65536L ) ) 
  1690.   bad = 14 ; 
  1691.   if ( ( 0 < 0 ) || ( fontmax > 255 ) ) 
  1692.   bad = 15 ; 
  1693.   if ( fontmax > 256 ) 
  1694.   bad = 16 ; 
  1695.   if ( ( savesize > 65535L ) || ( maxstrings > 65535L ) ) 
  1696.   bad = 17 ; 
  1697.   if ( bufsize > 65535L ) 
  1698.   bad = 18 ; 
  1699.   if ( 255 < 255 ) 
  1700.   bad = 19 ; 
  1701.   if ( 7621 > 65535L ) 
  1702.   bad = 21 ; 
  1703.   if ( 9 > filenamesize ) 
  1704.   bad = 31 ; 
  1705.   if ( 2 * 65535L < memtop - memmin ) 
  1706.   bad = 41 ; 
  1707.   if ( bad > 0 ) 
  1708.   {
  1709.     fprintf( output , "%s%s%ld\n",  "Ouch---my internal constants have been clobbered!" ,     "---case " , bad ) ; 
  1710.     goto lab9999 ; 
  1711.   } 
  1712. /*printf(" initialize eqtb a3 %lx %lx\n",(long)zeqtb,(long)eqtb);*/
  1713.   initialize () ; 
  1714.  
  1715. #ifdef INITEX
  1716. /*printf(" getstring eqtb a3 %lx %lx\n",(long)zeqtb,(long)eqtb);*/
  1717.  
  1718.   if ( ! getstringsst () ) 
  1719.   goto lab9999 ; 
  1720. /*printf("initprim eqtb a3 %lx %lx\n",(long)zeqtb,(long)eqtb);*/
  1721.   initprim () ; 
  1722. /*printf(" after initprim eqtb a3 %lx %lx\n",(long)zeqtb,(long)eqtb);*/
  1723.  
  1724. #endif /* INITEX */
  1725.   readyalready = 314159 ; 
  1726.   lab1: selector = 17 ; 
  1727.   tally = 0 ; 
  1728.   termoffset = 0 ; 
  1729.   fileoffset = 0 ; 
  1730.   Fputs( output ,  "This is TeX, C Version 2.9" ) ; 
  1731.   if ( formatident == 0 ) 
  1732.   fprintf( output , "%s\n",  " (no format preloaded)" ) ; 
  1733.   else { 
  1734.     print ( formatident ) ; 
  1735.     println () ; 
  1736.   } 
  1737. /*printf("termflush eqtb a3 %lx %lx\n",(long)zeqtb,(long)eqtb);*/
  1738.   termflush ( output ) ; 
  1739.   jobname = 0 ; 
  1740.   nameinprogre = false ; 
  1741.   outputfilena = 0 ; 
  1742.   {
  1743.     {
  1744.       inputptr = 0 ; 
  1745.       maxinstack = 0 ; 
  1746.       inopen = 0 ; 
  1747.       maxbufstack = 0 ; 
  1748.       paramptr = 0 ; 
  1749.       maxparamstac = 0 ; 
  1750.       bufindx = bufsize ; 
  1751.       do { buffer [ bufindx ] = 0 ; 
  1752.     decr ( bufindx ) ; 
  1753.       } while ( ! ( bufindx == 0 ) ) ; 
  1754.       scannerstatu = 0 ; 
  1755.       warningindex = 0 ; 
  1756.       first = 1 ; 
  1757.       curinput .statefield = 33 ; 
  1758.       curinput .startfield = 1 ; 
  1759.       curinput .indexfield = 0 ; 
  1760.       line = 0 ; 
  1761.       curinput .namefield = 0 ; 
  1762.       forceeof = false ; 
  1763.       alignstate = 1000000 ; 
  1764.       if ( ! initterminal () ) 
  1765.       goto lab9999 ; 
  1766.       curinput .limitfield = last ; 
  1767.       first = last + 1 ; 
  1768.     } 
  1769.     if ( ( formatident == 0 ) || ( buffer [ curinput .locfield ] == 38 ) ) 
  1770.     {
  1771.       if ( formatident != 0 ) 
  1772.       initialize () ; 
  1773.       if ( ! openfmtfile () ) 
  1774.       goto lab9999 ; 
  1775.       if ( ! loadfmtfile () ) 
  1776.       {
  1777.     wclose ( fmtfile ) ; 
  1778.     goto lab9999 ; 
  1779.       } 
  1780.       wclose ( fmtfile ) ; 
  1781.       while ( ( curinput .locfield < curinput .limitfield ) && ( buffer [ 
  1782.       curinput .locfield ] == 32 ) ) incr ( curinput .locfield ) ; 
  1783.     } 
  1784. /*printf("eqtb a3 %lx %lx\n",(long)zeqtb,(long)eqtb);*/
  1785.     if ( ( eqtb [ 5315 ] .cint < 0 ) || ( eqtb [ 5315 ] .cint > 127 ) ) 
  1786.     decr ( curinput .limitfield ) ; 
  1787.     else buffer [ curinput .limitfield ] = eqtb [ 5315 ] .cint ; 
  1788.     dateandtime ( eqtb [ 5287 ] .cint , eqtb [ 5288 ] .cint , eqtb [ 5289 ] 
  1789.     .cint , eqtb [ 5290 ] .cint ) ; 
  1790.     magicoffset = strstart [ 745 ] - 9 * 16 ; 
  1791.     if ( interaction == 0 ) 
  1792.     selector = 16 ; 
  1793.     else selector = 17 ; 
  1794.     if ( ( curinput .locfield < curinput .limitfield ) && ( eqtb [ 4627 + 
  1795.     buffer [ curinput .locfield ] ] .hh .v.RH != 0 ) ) 
  1796.     startinput () ; 
  1797.   } 
  1798.   initstrptr = strptr ; 
  1799.   initpoolptr = poolptr ; 
  1800.   history = 0 ; 
  1801.   maincontrol () ; 
  1802.   finalcleanup () ; 
  1803.   lab9998: closefilesan () ; 
  1804.   lab9999: { 
  1805.     termflush ( output ) ; 
  1806.     readyalready = 0 ; 
  1807.     if ( ( history != 0 ) && ( history != 1 ) ) 
  1808.     uexit ( 1 ) ; 
  1809.     else uexit ( 0 ) ; 
  1810.   } 
  1811.