home *** CD-ROM | disk | FTP | other *** search
- #define EXTERN extern
- #include "texd.h"
-
- void firmuptheline ( )
- {firmuptheline_regmem
- integer k ;
- curinput .limitfield = last ;
- if ( eqtb [ 6191 ] .cint > 0 )
- if ( interaction > 1 )
- {
- wakeupterminal () ;
- println () ;
- if ( curinput .startfield < curinput .limitfield )
- {register integer for_end; k = curinput .startfield ; for_end = curinput
- .limitfield - 1 ; if ( k <= for_end) do
- print ( buffer [ k ] ) ;
- while ( k++ < for_end ) ; }
- first = curinput .limitfield ;
- {
- wakeupterminal () ;
- print ( 614 ) ;
- terminput () ;
- }
- if ( last > first )
- {
- {register integer for_end; k = first ; for_end = last - 1 ; if ( k <=
- for_end) do
- buffer [ k + curinput .startfield - first ] = buffer [ k ] ;
- while ( k++ < for_end ) ; }
- curinput .limitfield = curinput .startfield + last - first ;
- }
- }
- }
- void gettoken ( )
- {gettoken_regmem
- nonewcontrolsequence = false ;
- getnext () ;
- nonewcontrolsequence = true ;
- if ( curcs == 0 )
- curtok = ( curcmd * 256 ) + curchr ;
- else curtok = 4095 + curcs ;
- }
- void macrocall ( )
- {/* 10 22 30 31 40 */ macrocall_regmem
- halfword r ;
- halfword p ;
- halfword q ;
- halfword s ;
- halfword t ;
- halfword u, v ;
- halfword rbraceptr ;
- smallnumber n ;
- halfword unbalance ;
- halfword m ;
- halfword refcount ;
- smallnumber savescannerstatus ;
- halfword savewarningindex ;
- ASCIIcode matchchr ;
- savescannerstatus = scannerstatus ;
- savewarningindex = warningindex ;
- warningindex = curcs ;
- refcount = curchr ;
- r = mem [ refcount ] .hh .v.RH ;
- n = 0 ;
- if ( eqtb [ 6193 ] .cint > 0 )
- {
- begindiagnostic () ;
- println () ;
- printcs ( warningindex ) ;
- tokenshow ( refcount ) ;
- enddiagnostic ( false ) ;
- }
- if ( mem [ r ] .hh .v.LH != 3584 )
- {
- scannerstatus = 3 ;
- unbalance = 0 ;
- longstate = eqtb [ curcs ] .hh.b0 ;
- if ( longstate >= 113 )
- longstate = longstate - 2 ;
- do {
- mem [ memtop - 3 ] .hh .v.RH = 0 ;
- if ( ( mem [ r ] .hh .v.LH > 3583 ) || ( mem [ r ] .hh .v.LH < 3328 ) )
- s = 0 ;
- else {
-
- matchchr = mem [ r ] .hh .v.LH - 3328 ;
- s = mem [ r ] .hh .v.RH ;
- r = s ;
- p = memtop - 3 ;
- m = 0 ;
- }
- lab22: gettoken () ;
- if ( curtok == mem [ r ] .hh .v.LH )
- {
- r = mem [ r ] .hh .v.RH ;
- if ( ( mem [ r ] .hh .v.LH >= 3328 ) && ( mem [ r ] .hh .v.LH <= 3584
- ) )
- {
- if ( curtok < 512 )
- decr ( alignstate ) ;
- goto lab40 ;
- }
- else goto lab22 ;
- }
- if ( s != r )
- if ( s == 0 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 646 ) ;
- }
- sprintcs ( warningindex ) ;
- print ( 647 ) ;
- {
- helpptr = 4 ;
- helpline [ 3 ] = 648 ;
- helpline [ 2 ] = 649 ;
- helpline [ 1 ] = 650 ;
- helpline [ 0 ] = 651 ;
- }
- error () ;
- goto lab10 ;
- }
- else {
-
- t = s ;
- do {
- {
- q = getavail () ;
- mem [ p ] .hh .v.RH = q ;
- mem [ q ] .hh .v.LH = mem [ t ] .hh .v.LH ;
- p = q ;
- }
- incr ( m ) ;
- u = mem [ t ] .hh .v.RH ;
- v = s ;
- while ( true ) {
-
- if ( u == r )
- if ( curtok != mem [ v ] .hh .v.LH )
- goto lab30 ;
- else {
-
- r = mem [ v ] .hh .v.RH ;
- goto lab22 ;
- }
- if ( mem [ u ] .hh .v.LH != mem [ v ] .hh .v.LH )
- goto lab30 ;
- u = mem [ u ] .hh .v.RH ;
- v = mem [ v ] .hh .v.RH ;
- }
- lab30: t = mem [ t ] .hh .v.RH ;
- } while ( ! ( t == r ) ) ;
- r = s ;
- }
- if ( curtok == partoken )
- if ( longstate != 112 )
- {
- if ( longstate == 111 )
- {
- runaway () ;
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 641 ) ;
- }
- sprintcs ( warningindex ) ;
- print ( 642 ) ;
- {
- helpptr = 3 ;
- helpline [ 2 ] = 643 ;
- helpline [ 1 ] = 644 ;
- helpline [ 0 ] = 645 ;
- }
- backerror () ;
- }
- pstack [ n ] = mem [ memtop - 3 ] .hh .v.RH ;
- alignstate = alignstate - unbalance ;
- {register integer for_end; m = 0 ; for_end = n ; if ( m <= for_end)
- do
- flushlist ( pstack [ m ] ) ;
- while ( m++ < for_end ) ; }
- goto lab10 ;
- }
- if ( curtok < 768 )
- if ( curtok < 512 )
- {
- unbalance = 1 ;
- while ( true ) {
-
- {
- {
- q = avail ;
- if ( q == 0 )
- q = getavail () ;
- else {
-
- avail = mem [ q ] .hh .v.RH ;
- mem [ q ] .hh .v.RH = 0 ;
- ;
- #ifdef STAT
- incr ( dynused ) ;
- #endif /* STAT */
- }
- }
- mem [ p ] .hh .v.RH = q ;
- mem [ q ] .hh .v.LH = curtok ;
- p = q ;
- }
- gettoken () ;
- if ( curtok == partoken )
- if ( longstate != 112 )
- {
- if ( longstate == 111 )
- {
- runaway () ;
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 641 ) ;
- }
- sprintcs ( warningindex ) ;
- print ( 642 ) ;
- {
- helpptr = 3 ;
- helpline [ 2 ] = 643 ;
- helpline [ 1 ] = 644 ;
- helpline [ 0 ] = 645 ;
- }
- backerror () ;
- }
- pstack [ n ] = mem [ memtop - 3 ] .hh .v.RH ;
- alignstate = alignstate - unbalance ;
- {register integer for_end; m = 0 ; for_end = n ; if ( m <=
- for_end) do
- flushlist ( pstack [ m ] ) ;
- while ( m++ < for_end ) ; }
- goto lab10 ;
- }
- if ( curtok < 768 )
- if ( curtok < 512 )
- incr ( unbalance ) ;
- else {
-
- decr ( unbalance ) ;
- if ( unbalance == 0 )
- goto lab31 ;
- }
- }
- lab31: rbraceptr = p ;
- {
- q = getavail () ;
- mem [ p ] .hh .v.RH = q ;
- mem [ q ] .hh .v.LH = curtok ;
- p = q ;
- }
- }
- else {
-
- backinput () ;
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 633 ) ;
- }
- sprintcs ( warningindex ) ;
- print ( 634 ) ;
- {
- helpptr = 6 ;
- helpline [ 5 ] = 635 ;
- helpline [ 4 ] = 636 ;
- helpline [ 3 ] = 637 ;
- helpline [ 2 ] = 638 ;
- helpline [ 1 ] = 639 ;
- helpline [ 0 ] = 640 ;
- }
- incr ( alignstate ) ;
- longstate = 111 ;
- curtok = partoken ;
- inserror () ;
- }
- else {
-
- if ( curtok == 2592 )
- if ( mem [ r ] .hh .v.LH <= 3584 )
- if ( mem [ r ] .hh .v.LH >= 3328 )
- goto lab22 ;
- {
- q = getavail () ;
- mem [ p ] .hh .v.RH = q ;
- mem [ q ] .hh .v.LH = curtok ;
- p = q ;
- }
- }
- incr ( m ) ;
- if ( mem [ r ] .hh .v.LH > 3584 )
- goto lab22 ;
- if ( mem [ r ] .hh .v.LH < 3328 )
- goto lab22 ;
- lab40: if ( s != 0 )
- {
- if ( ( m == 1 ) && ( mem [ p ] .hh .v.LH < 768 ) && ( p != memtop - 3
- ) )
- {
- mem [ rbraceptr ] .hh .v.RH = 0 ;
- {
- mem [ p ] .hh .v.RH = avail ;
- avail = p ;
- ;
- #ifdef STAT
- decr ( dynused ) ;
- #endif /* STAT */
- }
- p = mem [ memtop - 3 ] .hh .v.RH ;
- pstack [ n ] = mem [ p ] .hh .v.RH ;
- {
- mem [ p ] .hh .v.RH = avail ;
- avail = p ;
- ;
- #ifdef STAT
- decr ( dynused ) ;
- #endif /* STAT */
- }
- }
- else pstack [ n ] = mem [ memtop - 3 ] .hh .v.RH ;
- incr ( n ) ;
- if ( eqtb [ 6193 ] .cint > 0 )
- {
- begindiagnostic () ;
- printnl ( matchchr ) ;
- printint ( n ) ;
- print ( 652 ) ;
- showtokenlist ( pstack [ n - 1 ] , 0 , 1000 ) ;
- enddiagnostic ( false ) ;
- }
- }
- } while ( ! ( mem [ r ] .hh .v.LH == 3584 ) ) ;
- }
- while ( ( curinput .statefield == 0 ) && ( curinput .locfield == 0 ) )
- endtokenlist () ;
- begintokenlist ( refcount , 5 ) ;
- curinput .namefield = warningindex ;
- curinput .locfield = mem [ r ] .hh .v.RH ;
- if ( n > 0 )
- {
- if ( paramptr + n > maxparamstack )
- {
- maxparamstack = paramptr + n ;
- if ( maxparamstack > paramsize )
- overflow ( 632 , paramsize ) ;
- }
- {register integer for_end; m = 0 ; for_end = n - 1 ; if ( m <= for_end)
- do
- paramstack [ paramptr + m ] = pstack [ m ] ;
- while ( m++ < for_end ) ; }
- paramptr = paramptr + n ;
- }
- lab10: scannerstatus = savescannerstatus ;
- warningindex = savewarningindex ;
- }
- void insertrelax ( )
- {insertrelax_regmem
- curtok = 4095 + curcs ;
- backinput () ;
- curtok = 7616 ;
- backinput () ;
- curinput .indexfield = 4 ;
- }
- void expand ( )
- {expand_regmem
- halfword t ;
- halfword p, q, r ;
- integer j ;
- integer cvbackup ;
- smallnumber cvlbackup, radixbackup, cobackup ;
- halfword backupbackup ;
- smallnumber savescannerstatus ;
- cvbackup = curval ;
- cvlbackup = curvallevel ;
- radixbackup = radix ;
- cobackup = curorder ;
- backupbackup = mem [ memtop - 13 ] .hh .v.RH ;
- if ( curcmd < 111 )
- {
- if ( eqtb [ 6199 ] .cint > 1 )
- showcurcmdchr () ;
- switch ( curcmd )
- {case 110 :
- {
- if ( curmark [ curchr ] != 0 )
- begintokenlist ( curmark [ curchr ] , 14 ) ;
- }
- break ;
- case 102 :
- {
- gettoken () ;
- t = curtok ;
- gettoken () ;
- if ( curcmd > 100 )
- expand () ;
- else backinput () ;
- curtok = t ;
- backinput () ;
- }
- break ;
- case 103 :
- {
- savescannerstatus = scannerstatus ;
- scannerstatus = 0 ;
- gettoken () ;
- scannerstatus = savescannerstatus ;
- t = curtok ;
- backinput () ;
- if ( t >= 4095 )
- {
- p = getavail () ;
- mem [ p ] .hh .v.LH = 7618 ;
- mem [ p ] .hh .v.RH = curinput .locfield ;
- curinput .startfield = p ;
- curinput .locfield = p ;
- }
- }
- break ;
- case 107 :
- {
- r = getavail () ;
- p = r ;
- do {
- getxtoken () ;
- if ( curcs == 0 )
- {
- q = getavail () ;
- mem [ p ] .hh .v.RH = q ;
- mem [ q ] .hh .v.LH = curtok ;
- p = q ;
- }
- } while ( ! ( curcs != 0 ) ) ;
- if ( curcmd != 67 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 621 ) ;
- }
- printesc ( 501 ) ;
- print ( 622 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 623 ;
- helpline [ 0 ] = 624 ;
- }
- backerror () ;
- }
- j = first ;
- p = mem [ r ] .hh .v.RH ;
- while ( p != 0 ) {
-
- if ( j >= maxbufstack )
- {
- maxbufstack = j + 1 ;
- if ( maxbufstack == bufsize )
- overflow ( 256 , bufsize ) ;
- }
- buffer [ j ] = mem [ p ] .hh .v.LH % 256 ;
- incr ( j ) ;
- p = mem [ p ] .hh .v.RH ;
- }
- if ( j > first + 1 )
- {
- nonewcontrolsequence = false ;
- curcs = idlookup ( first , j - first ) ;
- nonewcontrolsequence = true ;
- }
- else if ( j == first )
- curcs = 513 ;
- else curcs = 257 + buffer [ first ] ;
- flushlist ( r ) ;
- if ( eqtb [ curcs ] .hh.b0 == 101 )
- {
- eqdefine ( curcs , 0 , 256 ) ;
- }
- curtok = curcs + 4095 ;
- backinput () ;
- }
- break ;
- case 108 :
- convtoks () ;
- break ;
- case 109 :
- insthetoks () ;
- break ;
- case 105 :
- conditional () ;
- break ;
- case 106 :
- if ( curchr > iflimit )
- if ( iflimit == 1 )
- insertrelax () ;
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 772 ) ;
- }
- printcmdchr ( 106 , curchr ) ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 773 ;
- }
- error () ;
- }
- else {
-
- while ( curchr != 2 ) passtext () ;
- {
- p = condptr ;
- ifline = mem [ p + 1 ] .cint ;
- curif = mem [ p ] .hh.b1 ;
- iflimit = mem [ p ] .hh.b0 ;
- condptr = mem [ p ] .hh .v.RH ;
- freenode ( p , 2 ) ;
- }
- }
- break ;
- case 104 :
- if ( curchr > 0 )
- forceeof = true ;
- else if ( nameinprogress )
- insertrelax () ;
- else startinput () ;
- break ;
- default:
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 615 ) ;
- }
- {
- helpptr = 5 ;
- helpline [ 4 ] = 616 ;
- helpline [ 3 ] = 617 ;
- helpline [ 2 ] = 618 ;
- helpline [ 1 ] = 619 ;
- helpline [ 0 ] = 620 ;
- }
- error () ;
- }
- break ;
- }
- }
- else if ( curcmd < 115 )
- macrocall () ;
- else {
-
- curtok = 7615 ;
- backinput () ;
- }
- curval = cvbackup ;
- curvallevel = cvlbackup ;
- radix = radixbackup ;
- curorder = cobackup ;
- mem [ memtop - 13 ] .hh .v.RH = backupbackup ;
- }
- void getxtoken ( )
- {/* 20 30 */ getxtoken_regmem
- lab20: getnext () ;
- if ( curcmd <= 100 )
- goto lab30 ;
- if ( curcmd >= 111 )
- if ( curcmd < 115 )
- macrocall () ;
- else {
-
- curcs = 3520 ;
- curcmd = 9 ;
- goto lab30 ;
- }
- else expand () ;
- goto lab20 ;
- lab30: if ( curcs == 0 )
- curtok = ( curcmd * 256 ) + curchr ;
- else curtok = 4095 + curcs ;
- }
- void xtoken ( )
- {xtoken_regmem
- while ( curcmd > 100 ) {
-
- expand () ;
- getnext () ;
- }
- if ( curcs == 0 )
- curtok = ( curcmd * 256 ) + curchr ;
- else curtok = 4095 + curcs ;
- }
- void scanleftbrace ( )
- {scanleftbrace_regmem
- do {
- getxtoken () ;
- } while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
- if ( curcmd != 1 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 653 ) ;
- }
- {
- helpptr = 4 ;
- helpline [ 3 ] = 654 ;
- helpline [ 2 ] = 655 ;
- helpline [ 1 ] = 656 ;
- helpline [ 0 ] = 657 ;
- }
- backerror () ;
- curtok = 379 ;
- curcmd = 1 ;
- curchr = 123 ;
- incr ( alignstate ) ;
- }
- }
- void scanoptionalequals ( )
- {scanoptionalequals_regmem
- do {
- getxtoken () ;
- } while ( ! ( curcmd != 10 ) ) ;
- if ( curtok != 3133 )
- backinput () ;
- }
- boolean zscankeyword ( s )
- strnumber s ;
- {/* 10 */ register boolean Result; scankeyword_regmem
- halfword p ;
- halfword q ;
- poolpointer k ;
- p = memtop - 13 ;
- mem [ p ] .hh .v.RH = 0 ;
- k = strstart [ s ] ;
- while ( k < strstart [ s + 1 ] ) {
-
- getxtoken () ;
- if ( ( curcs == 0 ) && ( ( curchr == strpool [ k ] ) || ( curchr ==
- strpool [ k ] - 32 ) ) )
- {
- {
- q = getavail () ;
- mem [ p ] .hh .v.RH = q ;
- mem [ q ] .hh .v.LH = curtok ;
- p = q ;
- }
- incr ( k ) ;
- }
- else if ( ( curcmd != 10 ) || ( p != memtop - 13 ) )
- {
- backinput () ;
- if ( p != memtop - 13 )
- begintokenlist ( mem [ memtop - 13 ] .hh .v.RH , 3 ) ;
- Result = false ;
- return(Result) ;
- }
- }
- flushlist ( mem [ memtop - 13 ] .hh .v.RH ) ;
- Result = true ;
- return(Result) ;
- }
- void muerror ( )
- {muerror_regmem
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 658 ) ;
- }
- {
- helpptr = 1 ;
- helpline [ 0 ] = 659 ;
- }
- error () ;
- }
- void scaneightbitint ( )
- {scaneightbitint_regmem
- scanint () ;
- if ( ( curval < 0 ) || ( curval > 255 ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 683 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 684 ;
- helpline [ 0 ] = 685 ;
- }
- interror ( curval ) ;
- curval = 0 ;
- }
- }
- void scancharnum ( )
- {scancharnum_regmem
- scanint () ;
- if ( ( curval < 0 ) || ( curval > 255 ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 686 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 687 ;
- helpline [ 0 ] = 685 ;
- }
- interror ( curval ) ;
- curval = 0 ;
- }
- }
- void scanfourbitint ( )
- {scanfourbitint_regmem
- scanint () ;
- if ( ( curval < 0 ) || ( curval > 15 ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 688 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 689 ;
- helpline [ 0 ] = 685 ;
- }
- interror ( curval ) ;
- curval = 0 ;
- }
- }
- void scanfifteenbitint ( )
- {scanfifteenbitint_regmem
- scanint () ;
- if ( ( curval < 0 ) || ( curval > 32767 ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 690 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 691 ;
- helpline [ 0 ] = 685 ;
- }
- interror ( curval ) ;
- curval = 0 ;
- }
- }
- void scantwentysevenbitint ( )
- {scantwentysevenbitint_regmem
- scanint () ;
- if ( ( curval < 0 ) || ( curval > 134217727L ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 692 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 693 ;
- helpline [ 0 ] = 685 ;
- }
- interror ( curval ) ;
- curval = 0 ;
- }
- }
- void scanfontident ( )
- {scanfontident_regmem
- internalfontnumber f ;
- halfword m ;
- do {
- getxtoken () ;
- } while ( ! ( curcmd != 10 ) ) ;
- if ( curcmd == 88 )
- f = eqtb [ 4834 ] .hh .v.RH ;
- else if ( curcmd == 87 )
- f = curchr ;
- else if ( curcmd == 86 )
- {
- m = curchr ;
- scanfourbitint () ;
- f = eqtb [ m + curval ] .hh .v.RH ;
- }
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 810 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 811 ;
- helpline [ 0 ] = 812 ;
- }
- backerror () ;
- f = 0 ;
- }
- curval = f ;
- }
- void zfindfontdimen ( writing )
- boolean writing ;
- {findfontdimen_regmem
- internalfontnumber f ;
- integer n ;
- scanint () ;
- n = curval ;
- scanfontident () ;
- f = curval ;
- if ( n <= 0 )
- curval = fmemptr ;
- else {
-
- if ( writing && ( n <= 4 ) && ( n >= 2 ) && ( fontglue [ f ] != 0 ) )
- {
- deleteglueref ( fontglue [ f ] ) ;
- fontglue [ f ] = 0 ;
- }
- if ( n > fontparams [ f ] )
- if ( f < fontptr )
- curval = fmemptr ;
- else {
-
- do {
- if ( fmemptr == fontmemsize )
- overflow ( 817 , fontmemsize ) ;
- fontinfo [ fmemptr ] .cint = 0 ;
- incr ( fmemptr ) ;
- incr ( fontparams [ f ] ) ;
- } while ( ! ( n == fontparams [ f ] ) ) ;
- curval = fmemptr - 1 ;
- }
- else curval = n + parambase [ f ] ;
- }
- if ( curval == fmemptr )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 795 ) ;
- }
- printesc ( hash [ 3524 + f ] .v.RH ) ;
- print ( 813 ) ;
- printint ( fontparams [ f ] ) ;
- print ( 814 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 815 ;
- helpline [ 0 ] = 816 ;
- }
- error () ;
- }
- }
- void zscansomethinginternal ( level , negative )
- smallnumber level ;
- boolean negative ;
- {scansomethinginternal_regmem
- halfword m ;
- integer p ;
- m = curchr ;
- switch ( curcmd )
- {case 85 :
- {
- scancharnum () ;
- if ( m == 5907 )
- {
- curval = eqtb [ 5907 + curval ] .hh .v.RH ;
- curvallevel = 0 ;
- }
- else if ( m < 5907 )
- {
- curval = eqtb [ m + curval ] .hh .v.RH ;
- curvallevel = 0 ;
- }
- else {
-
- curval = eqtb [ m + curval ] .cint ;
- curvallevel = 0 ;
- }
- }
- break ;
- case 71 :
- case 72 :
- case 86 :
- case 87 :
- case 88 :
- if ( level != 5 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 660 ) ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 661 ;
- helpline [ 1 ] = 662 ;
- helpline [ 0 ] = 663 ;
- }
- backerror () ;
- {
- curval = 0 ;
- curvallevel = 1 ;
- }
- }
- else if ( curcmd <= 72 )
- {
- if ( curcmd < 72 )
- {
- scaneightbitint () ;
- m = 4322 + curval ;
- }
- {
- curval = eqtb [ m ] .hh .v.RH ;
- curvallevel = 5 ;
- }
- }
- else {
-
- backinput () ;
- scanfontident () ;
- {
- curval = 3524 + curval ;
- curvallevel = 4 ;
- }
- }
- break ;
- case 73 :
- {
- curval = eqtb [ m ] .cint ;
- curvallevel = 0 ;
- }
- break ;
- case 74 :
- {
- curval = eqtb [ m ] .cint ;
- curvallevel = 1 ;
- }
- break ;
- case 75 :
- {
- curval = eqtb [ m ] .hh .v.RH ;
- curvallevel = 2 ;
- }
- break ;
- case 76 :
- {
- curval = eqtb [ m ] .hh .v.RH ;
- curvallevel = 3 ;
- }
- break ;
- case 79 :
- if ( abs ( curlist .modefield ) != m )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 676 ) ;
- }
- printcmdchr ( 79 , m ) ;
- {
- helpptr = 4 ;
- helpline [ 3 ] = 677 ;
- helpline [ 2 ] = 678 ;
- helpline [ 1 ] = 679 ;
- helpline [ 0 ] = 680 ;
- }
- error () ;
- if ( level != 5 )
- {
- curval = 0 ;
- curvallevel = 1 ;
- }
- else {
-
- curval = 0 ;
- curvallevel = 0 ;
- }
- }
- else if ( m == 1 )
- {
- curval = curlist .auxfield .cint ;
- curvallevel = 1 ;
- }
- else {
-
- curval = curlist .auxfield .hh .v.LH ;
- curvallevel = 0 ;
- }
- break ;
- case 80 :
- if ( curlist .modefield == 0 )
- {
- curval = 0 ;
- curvallevel = 0 ;
- }
- else {
-
- nest [ nestptr ] = curlist ;
- p = nestptr ;
- while ( abs ( nest [ p ] .modefield ) != 1 ) decr ( p ) ;
- {
- curval = nest [ p ] .pgfield ;
- curvallevel = 0 ;
- }
- }
- break ;
- case 82 :
- {
- if ( m == 0 )
- curval = deadcycles ;
- else curval = insertpenalties ;
- curvallevel = 0 ;
- }
- break ;
- case 81 :
- {
- if ( ( pagecontents == 0 ) && ( ! outputactive ) )
- if ( m == 0 )
- curval = 1073741823L ;
- else curval = 0 ;
- else curval = pagesofar [ m ] ;
- curvallevel = 1 ;
- }
- break ;
- case 84 :
- {
- if ( eqtb [ 4312 ] .hh .v.RH == 0 )
- curval = 0 ;
- else curval = mem [ eqtb [ 4312 ] .hh .v.RH ] .hh .v.LH ;
- curvallevel = 0 ;
- }
- break ;
- case 83 :
- {
- scaneightbitint () ;
- if ( eqtb [ 4578 + curval ] .hh .v.RH == 0 )
- curval = 0 ;
- else curval = mem [ eqtb [ 4578 + curval ] .hh .v.RH + m ] .cint ;
- curvallevel = 1 ;
- }
- break ;
- case 68 :
- case 69 :
- {
- curval = curchr ;
- curvallevel = 0 ;
- }
- break ;
- case 77 :
- {
- findfontdimen ( false ) ;
- fontinfo [ fmemptr ] .cint = 0 ;
- {
- curval = fontinfo [ curval ] .cint ;
- curvallevel = 1 ;
- }
- }
- break ;
- case 78 :
- {
- scanfontident () ;
- if ( m == 0 )
- {
- curval = hyphenchar [ curval ] ;
- curvallevel = 0 ;
- }
- else {
-
- curval = skewchar [ curval ] ;
- curvallevel = 0 ;
- }
- }
- break ;
- case 89 :
- {
- scaneightbitint () ;
- switch ( m )
- {case 0 :
- curval = eqtb [ 6218 + curval ] .cint ;
- break ;
- case 1 :
- curval = eqtb [ 6751 + curval ] .cint ;
- break ;
- case 2 :
- curval = eqtb [ 3800 + curval ] .hh .v.RH ;
- break ;
- case 3 :
- curval = eqtb [ 4056 + curval ] .hh .v.RH ;
- break ;
- }
- curvallevel = m ;
- }
- break ;
- case 70 :
- if ( curchr > 2 )
- {
- if ( curchr == 3 )
- curval = line ;
- else curval = lastbadness ;
- curvallevel = 0 ;
- }
- else {
-
- if ( curchr == 2 )
- curval = 0 ;
- else curval = 0 ;
- curvallevel = curchr ;
- if ( ! ( curlist .tailfield >= himemmin ) && ( curlist .modefield != 0 )
- )
- switch ( curchr )
- {case 0 :
- if ( mem [ curlist .tailfield ] .hh.b0 == 12 )
- curval = mem [ curlist .tailfield + 1 ] .cint ;
- break ;
- case 1 :
- if ( mem [ curlist .tailfield ] .hh.b0 == 11 )
- curval = mem [ curlist .tailfield + 1 ] .cint ;
- break ;
- case 2 :
- if ( mem [ curlist .tailfield ] .hh.b0 == 10 )
- {
- curval = mem [ curlist .tailfield + 1 ] .hh .v.LH ;
- if ( mem [ curlist .tailfield ] .hh.b1 == 99 )
- curvallevel = 3 ;
- }
- break ;
- }
- else if ( ( curlist .modefield == 1 ) && ( curlist .tailfield == curlist
- .headfield ) )
- switch ( curchr )
- {case 0 :
- curval = lastpenalty ;
- break ;
- case 1 :
- curval = lastkern ;
- break ;
- case 2 :
- if ( lastglue != 65535L )
- curval = lastglue ;
- break ;
- }
- }
- break ;
- default:
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 681 ) ;
- }
- printcmdchr ( curcmd , curchr ) ;
- print ( 682 ) ;
- printesc ( 533 ) ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 680 ;
- }
- error () ;
- if ( level != 5 )
- {
- curval = 0 ;
- curvallevel = 1 ;
- }
- else {
-
- curval = 0 ;
- curvallevel = 0 ;
- }
- }
- break ;
- }
- while ( curvallevel > level ) {
-
- if ( curvallevel == 2 )
- curval = mem [ curval + 1 ] .cint ;
- else if ( curvallevel == 3 )
- muerror () ;
- decr ( curvallevel ) ;
- }
- if ( negative )
- if ( curvallevel >= 2 )
- {
- curval = newspec ( curval ) ;
- {
- mem [ curval + 1 ] .cint = - (integer) mem [ curval + 1 ] .cint ;
- mem [ curval + 2 ] .cint = - (integer) mem [ curval + 2 ] .cint ;
- mem [ curval + 3 ] .cint = - (integer) mem [ curval + 3 ] .cint ;
- }
- }
- else curval = - (integer) curval ;
- else if ( ( curvallevel >= 2 ) && ( curvallevel <= 3 ) )
- incr ( mem [ curval ] .hh .v.RH ) ;
- }
-