home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari FTP
/
ATARI_FTP_0693.zip
/
ATARI_FTP_0693
/
Tex
/
texsrc.arc
/
TEX8.C
< prev
next >
Wrap
C/C++ Source or Header
|
1988-09-14
|
56KB
|
2,235 lines
overlay "tex8"
#define EXTERN extern
#include "texd.h"
mathlimitswi () { /* 10 */ r_mathlimitswi
if ( curlist .headfield != curlist .tailfield )
if ( mem [(long) curlist .tailfield ] .hh.b0 == 17 )
{
mem [(long) curlist .tailfield ] .hh.b1 = curchr ;
return ;
}
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 978 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 979 ;
}
error () ;
}
zscandelimite ( p , r )
halfword p ;
boolean r ;
{r_scandelimite
if ( r )
scantwentyse () ;
else {
do { getxtoken () ;
} while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
switch ( curcmd )
{case 11 :
case 12 :
curval = eqtb [ 5573 + curchr ] .cint ;
break ;
case 15 :
scantwentyse () ;
break ;
default :
curval = - 1 ;
break ;
}
}
if ( curval < 0 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 980 ) ;
}
{
helpptr = 6 ;
helpline [ 5 ] = 981 ;
helpline [ 4 ] = 982 ;
helpline [ 3 ] = 983 ;
helpline [ 2 ] = 984 ;
helpline [ 1 ] = 985 ;
helpline [ 0 ] = 986 ;
}
backerror () ;
curval = 0 ;
}
mem [(long) p ] .qqqq .b0 = ( curval / 1048576 ) % 16 ;
mem [(long) p ] .qqqq .b1 = ( curval / 4096 ) % 256 ;
mem [(long) p ] .qqqq .b2 = ( curval / 256 ) % 16 ;
mem [(long) p ] .qqqq .b3 = curval % 256 ;
}
mathradical () { r_mathradical
{
mem [(long) curlist .tailfield ] .hh .v.RH = getnode ( 5 ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
mem [(long) curlist .tailfield ] .hh.b0 = 24 ;
mem [(long) curlist .tailfield ] .hh.b1 = 0 ;
mem [(long) curlist .tailfield + 1 ] .hh = emptyfield ;
mem [(long) curlist .tailfield + 3 ] .hh = emptyfield ;
mem [(long) curlist .tailfield + 2 ] .hh = emptyfield ;
scandelimite ( curlist .tailfield + 4 , true ) ;
scanmath ( curlist .tailfield + 1 ) ;
}
mathac () { r_mathac
if ( curcmd == 45 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 987 ) ;
}
printesc ( 382 ) ;
print ( 988 ) ;
{
helpptr = 2 ;
helpline [ 1 ] = 989 ;
helpline [ 0 ] = 990 ;
}
error () ;
}
{
mem [(long) curlist .tailfield ] .hh .v.RH = getnode ( 5 ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
mem [(long) curlist .tailfield ] .hh.b0 = 28 ;
mem [(long) curlist .tailfield ] .hh.b1 = 0 ;
mem [(long) curlist .tailfield + 1 ] .hh = emptyfield ;
mem [(long) curlist .tailfield + 3 ] .hh = emptyfield ;
mem [(long) curlist .tailfield + 2 ] .hh = emptyfield ;
mem [(long) curlist .tailfield + 4 ] .hh .v.RH = 1 ;
scanfifteenb () ;
mem [(long) curlist .tailfield + 4 ] .hh.b1 = curval % 256 ;
if ( ( curval >= 28672 ) && ( ( eqtb [ 5311 ] .cint >= 0 ) && ( eqtb [ 5311
] .cint < 16 ) ) )
mem [(long) curlist .tailfield + 4 ] .hh.b0 = eqtb [ 5311 ] .cint ;
else mem [(long) curlist .tailfield + 4 ] .hh.b0 = ( curval / 256 ) % 16 ;
scanmath ( curlist .tailfield + 1 ) ;
}
appendchoice () { r_appendchoice
{
mem [(long) curlist .tailfield ] .hh .v.RH = newchoice () ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
incr ( saveptr ) ;
savestack [ saveptr - 1 ] .cint = 0 ;
scanleftbrac () ;
pushmath ( 13 ) ;
}
halfword zfinmlist ( p )
halfword p ;
{register halfword Result; r_finmlist
halfword q ;
if ( curlist .auxfield != 0 )
{
mem [(long) curlist .auxfield + 3 ] .hh .v.RH = 3 ;
mem [(long) curlist .auxfield + 3 ] .hh .v.LH = mem [(long) curlist .headfield ] .hh
.v.RH ;
if ( p == 0 )
q = curlist .auxfield ;
else {
q = mem [(long) curlist .auxfield + 2 ] .hh .v.LH ;
if ( mem [(long) q ] .hh.b0 != 30 )
confusion ( 730 ) ;
mem [(long) curlist .auxfield + 2 ] .hh .v.LH = mem [(long) q ] .hh .v.RH ;
mem [(long) q ] .hh .v.RH = curlist .auxfield ;
mem [(long) curlist .auxfield ] .hh .v.RH = p ;
}
}
else {
mem [(long) curlist .tailfield ] .hh .v.RH = p ;
q = mem [(long) curlist .headfield ] .hh .v.RH ;
}
popnest () ;
Result = q ;
return(Result) ;
}
buildchoices () { /* 10 */ r_buildchoices
halfword p ;
unsave () ;
p = finmlist ( 0 ) ;
switch ( savestack [ saveptr - 1 ] .cint )
{case 0 :
mem [(long) curlist .tailfield + 1 ] .hh .v.LH = p ;
break ;
case 1 :
mem [(long) curlist .tailfield + 1 ] .hh .v.RH = p ;
break ;
case 2 :
mem [(long) curlist .tailfield + 2 ] .hh .v.LH = p ;
break ;
case 3 :
{
mem [(long) curlist .tailfield + 2 ] .hh .v.RH = p ;
decr ( saveptr ) ;
return ;
}
break ;
}
incr ( savestack [ saveptr - 1 ] .cint ) ;
scanleftbrac () ;
pushmath ( 13 ) ;
}
subsup () { r_subsup
smallnumber t ;
halfword p ;
t = 0 ;
p = 0 ;
if ( curlist .tailfield != curlist .headfield )
if ( ( mem [(long) curlist .tailfield ] .hh.b0 >= 16 ) && ( mem [(long) curlist
.tailfield ] .hh.b0 < 30 ) )
{
p = curlist .tailfield + 2 + curcmd - 7 ;
t = mem [(long) p ] .hh .v.RH ;
}
if ( ( p == 0 ) || ( t != 0 ) )
{
{
mem [(long) curlist .tailfield ] .hh .v.RH = newnoad () ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
p = curlist .tailfield + 2 + curcmd - 7 ;
if ( t != 0 )
{
if ( curcmd == 7 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 991 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 992 ;
}
}
else {
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 993 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 994 ;
}
}
error () ;
}
}
scanmath ( p ) ;
}
mathfraction () { r_mathfraction
smallnumber c ;
c = curchr ;
if ( curlist .auxfield != 0 )
{
if ( c >= 3 )
{
scandelimite ( memtop - 12 , false ) ;
scandelimite ( memtop - 12 , false ) ;
}
if ( c % 3 == 0 )
scandimen ( false , false , false ) ;
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1001 ) ;
}
{
helpptr = 3 ;
helpline [ 2 ] = 1002 ;
helpline [ 1 ] = 1003 ;
helpline [ 0 ] = 1004 ;
}
error () ;
}
else {
curlist .auxfield = getnode ( 6 ) ;
mem [(long) curlist .auxfield ] .hh.b0 = 25 ;
mem [(long) curlist .auxfield ] .hh.b1 = 0 ;
mem [(long) curlist .auxfield + 2 ] .hh .v.RH = 3 ;
mem [(long) curlist .auxfield + 2 ] .hh .v.LH = mem [(long) curlist .headfield ] .hh
.v.RH ;
mem [(long) curlist .auxfield + 3 ] .hh = emptyfield ;
mem [(long) curlist .auxfield + 4 ] .qqqq = nulldelimite ;
mem [(long) curlist .auxfield + 5 ] .qqqq = nulldelimite ;
mem [(long) curlist .headfield ] .hh .v.RH = 0 ;
curlist .tailfield = curlist .headfield ;
if ( c >= 3 )
{
scandelimite ( curlist .auxfield + 4 , false ) ;
scandelimite ( curlist .auxfield + 5 , false ) ;
}
switch ( c % 3 )
{case 0 :
{
scandimen ( false , false , false ) ;
mem [(long) curlist .auxfield + 1 ] .cint = curval ;
}
break ;
case 1 :
mem [(long) curlist .auxfield + 1 ] .cint = 1073741824 ;
break ;
case 2 :
mem [(long) curlist .auxfield + 1 ] .cint = 0 ;
break ;
}
}
}
mathleftrigh () { r_mathleftrigh
smallnumber t ;
halfword p ;
t = curchr ;
if ( ( t == 31 ) && ( curgroup != 16 ) )
{
if ( curgroup == 15 )
{
scandelimite ( memtop - 12 , false ) ;
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 633 ) ;
}
printesc ( 730 ) ;
{
helpptr = 1 ;
helpline [ 0 ] = 1005 ;
}
error () ;
}
else offsave () ;
}
else {
p = newnoad () ;
mem [(long) p ] .hh.b0 = t ;
scandelimite ( p + 1 , false ) ;
if ( t == 30 )
{
pushmath ( 16 ) ;
mem [(long) curlist .headfield ] .hh .v.RH = p ;
curlist .tailfield = p ;
}
else {
p = finmlist ( p ) ;
unsave () ;
{
mem [(long) curlist .tailfield ] .hh .v.RH = newnoad () ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
mem [(long) curlist .tailfield ] .hh.b0 = 23 ;
mem [(long) curlist .tailfield + 1 ] .hh .v.RH = 3 ;
mem [(long) curlist .tailfield + 1 ] .hh .v.LH = p ;
}
}
}
aftermath () { r_aftermath
boolean l ;
boolean danger ;
integer m ;
halfword p ;
halfword a ;
halfword b ;
scaled w ;
scaled z ;
scaled e ;
scaled q ;
scaled d ;
scaled s ;
smallnumber g1, g2 ;
halfword r ;
halfword t ;
danger = false ;
if ( ( fontparams [ eqtb [ 4581 ] .hh .v.RH ] < 22 ) || ( fontparams [ eqtb
[ 4597 ] .hh .v.RH ] < 22 ) || ( fontparams [ eqtb [ 4613 ] .hh .v.RH ] < 22
) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1006 ) ;
}
{
helpptr = 3 ;
helpline [ 2 ] = 1007 ;
helpline [ 1 ] = 1008 ;
helpline [ 0 ] = 1009 ;
}
error () ;
flushmath () ;
danger = true ;
}
else if ( ( fontparams [ eqtb [ 4582 ] .hh .v.RH ] < 13 ) || ( fontparams [
eqtb [ 4598 ] .hh .v.RH ] < 13 ) || ( fontparams [ eqtb [ 4614 ] .hh .v.RH ]
< 13 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1010 ) ;
}
{
helpptr = 3 ;
helpline [ 2 ] = 1011 ;
helpline [ 1 ] = 1012 ;
helpline [ 0 ] = 1013 ;
}
error () ;
flushmath () ;
danger = true ;
}
m = curlist .modefield ;
l = false ;
p = finmlist ( 0 ) ;
if ( curlist .modefield == - m )
{
curmlist = p ;
curstyle = 2 ;
mlistpenalti = false ;
mlisttohlist () ;
a = hpack ( mem [(long) memtop - 3 ] .hh .v.RH , 0 , 1 ) ;
unsave () ;
decr ( saveptr ) ;
if ( savestack [ saveptr + 0 ] .cint == 1 )
l = true ;
if ( danger )
flushmath () ;
m = curlist .modefield ;
p = finmlist ( 0 ) ;
}
else a = 0 ;
if ( m < 0 )
{
{
mem [(long) curlist .tailfield ] .hh .v.RH = newmath ( eqtb [ 5702 ] .cint , 0
) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
curmlist = p ;
curstyle = 2 ;
mlistpenalti = ( curlist .modefield > 0 ) ;
mlisttohlist () ;
mem [(long) curlist .tailfield ] .hh .v.RH = mem [(long) memtop - 3 ] .hh .v.RH ;
while ( mem [(long) curlist .tailfield ] .hh .v.RH != 0 ) curlist .tailfield =
mem [(long) curlist .tailfield ] .hh .v.RH ;
{
mem [(long) curlist .tailfield ] .hh .v.RH = newmath ( eqtb [ 5702 ] .cint , 1
) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
curlist .auxfield = 1000 ;
unsave () ;
}
else {
{
getxtoken () ;
if ( curcmd != 3 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1014 ) ;
}
{
helpptr = 2 ;
helpline [ 1 ] = 1015 ;
helpline [ 0 ] = 1016 ;
}
backerror () ;
}
}
curmlist = p ;
curstyle = 0 ;
mlistpenalti = false ;
mlisttohlist () ;
p = mem [(long) memtop - 3 ] .hh .v.RH ;
adjusttail = memtop - 5 ;
b = hpack ( p , 0 , 1 ) ;
t = adjusttail ;
adjusttail = 0 ;
w = mem [(long) b + 1 ] .cint ;
z = eqtb [ 5715 ] .cint ;
s = eqtb [ 5716 ] .cint ;
if ( ( a == 0 ) || danger )
{
e = 0 ;
q = 0 ;
}
else {
e = mem [(long) a + 1 ] .cint ;
q = e + fontinfo [ 6 + parambase [ eqtb [ 4581 ] .hh .v.RH ] ] .cint ;
}
if ( w + q > z )
{
if ( ( e != 0 ) && ( ( w - totalshrink [ 0 ] + q <= z ) || ( totalshrink
[ 1 ] != 0 ) || ( totalshrink [ 2 ] != 0 ) || ( totalshrink [ 3 ] != 0 )
) )
{
freenode ( b , 7 ) ;
b = hpack ( p , z - q , 0 ) ;
}
else {
e = 0 ;
if ( w > z )
{
freenode ( b , 7 ) ;
b = hpack ( p , z , 0 ) ;
}
}
w = mem [(long) b + 1 ] .cint ;
}
d = half ( z - w ) ;
if ( ( e > 0 ) && ( d < 2 * e ) )
{
d = half ( z - w - e ) ;
if ( p != 0 )
if ( mem [(long) p ] .hh.b0 == 10 )
d = 0 ;
}
{
mem [(long) curlist .tailfield ] .hh .v.RH = newpenalty ( eqtb [ 5278 ] .cint
) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
if ( ( d + s <= eqtb [ 5714 ] .cint ) || l )
{
g1 = 3 ;
g2 = 4 ;
}
else {
g1 = 5 ;
g2 = 6 ;
}
if ( l && ( e == 0 ) )
{
mem [(long) a + 4 ] .cint = s ;
appendtovlis ( a ) ;
{
mem [(long) curlist .tailfield ] .hh .v.RH = newpenalty ( 10000 ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
}
else {
mem [(long) curlist .tailfield ] .hh .v.RH = newparamglue ( g1 ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
if ( e != 0 )
{
r = newkern ( z - w - e - d ) ;
if ( l )
{
mem [(long) a ] .hh .v.RH = r ;
mem [(long) r ] .hh .v.RH = b ;
b = a ;
d = 0 ;
}
else {
mem [(long) b ] .hh .v.RH = r ;
mem [(long) r ] .hh .v.RH = a ;
}
b = hpack ( b , 0 , 1 ) ;
}
mem [(long) b + 4 ] .cint = s + d ;
appendtovlis ( b ) ;
if ( t != memtop - 5 )
{
mem [(long) curlist .tailfield ] .hh .v.RH = mem [(long) memtop - 5 ] .hh .v.RH ;
curlist .tailfield = t ;
}
if ( ( a != 0 ) && ( e == 0 ) && ! l )
{
{
mem [(long) curlist .tailfield ] .hh .v.RH = newpenalty ( 10000 ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
mem [(long) a + 4 ] .cint = s + z - mem [(long) a + 1 ] .cint ;
appendtovlis ( a ) ;
{
mem [(long) curlist .tailfield ] .hh .v.RH = newpenalty ( eqtb [ 5279 ]
.cint ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
}
else {
{
mem [(long) curlist .tailfield ] .hh .v.RH = newpenalty ( eqtb [ 5279 ]
.cint ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
{
mem [(long) curlist .tailfield ] .hh .v.RH = newparamglue ( g2 ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
}
resumeafterd () ;
}
}
resumeafterd () { r_resumeafterd
if ( curgroup != 15 )
confusion ( 1017 ) ;
unsave () ;
curlist .pgfield = curlist .pgfield + 3 ;
pushnest () ;
curlist .modefield = 101 ;
curlist .auxfield = 1000 ;
{
getxtoken () ;
if ( curcmd != 10 )
backinput () ;
}
if ( nestptr == 1 )
buildpage () ;
}
getrtoken () { /* 20 */ r_getrtoken
lab20: do { gettoken () ;
} while ( ! ( curtok != 2592 ) ) ;
if ( ( curcs == 0 ) || ( curcs > 3258 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1032 ) ;
}
{
helpptr = 5 ;
helpline [ 4 ] = 1033 ;
helpline [ 3 ] = 1034 ;
helpline [ 2 ] = 1035 ;
helpline [ 1 ] = 1036 ;
helpline [ 0 ] = 1037 ;
}
if ( curcs == 0 )
backinput () ;
curtok = 7354 ;
inserror () ;
goto lab20 ;
}
}
trapzeroglue () { r_trapzeroglue
if ( ( mem [(long) curval + 1 ] .cint == 0 ) && ( mem [(long) curval + 2 ] .cint == 0 )
&& ( mem [(long) curval + 3 ] .cint == 0 ) )
{
incr ( mem [(long) 0 ] .hh .v.RH ) ;
deletegluere ( curval ) ;
curval = 0 ;
}
}
zdoregisterco ( a )
smallnumber a ;
{/* 40 10 */ r_doregisterco
halfword l, q, r, s ;
quarterword p ;
q = curcmd ;
{
if ( q != 88 )
{
getxtoken () ;
if ( ( curcmd >= 72 ) && ( curcmd <= 75 ) )
{
l = curchr ;
p = curcmd - 72 ;
goto lab40 ;
}
if ( curcmd != 88 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 541 ) ;
}
printcmdchr ( curcmd , curchr ) ;
print ( 542 ) ;
printcmdchr ( q , 0 ) ;
{
helpptr = 1 ;
helpline [ 0 ] = 1058 ;
}
error () ;
return ;
}
}
p = curchr ;
scaneightbit () ;
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 ;
}
}
lab40: ;
if ( q == 88 )
scanoptional () ;
else if ( scankeyword ( 1054 ) )
;
aritherror = false ;
if ( q < 90 )
if ( p < 2 )
{
if ( p == 0 )
scanint () ;
else scandimen ( false , false , false ) ;
if ( q == 89 )
curval = curval + eqtb [ l ] .cint ;
}
else {
scanglue ( p ) ;
if ( q == 89 )
{
q = newspec ( curval ) ;
r = eqtb [ l ] .hh .v.RH ;
deletegluere ( curval ) ;
mem [(long) q + 1 ] .cint = mem [(long) q + 1 ] .cint + mem [(long) r + 1 ] .cint ;
if ( mem [(long) q + 2 ] .cint == 0 )
mem [(long) q ] .hh.b0 = 0 ;
if ( mem [(long) q ] .hh.b0 == mem [(long) r ] .hh.b0 )
mem [(long) q + 2 ] .cint = mem [(long) q + 2 ] .cint + mem [(long) r + 2 ] .cint ;
else if ( ( mem [(long) q ] .hh.b0 < mem [(long) r ] .hh.b0 ) && ( mem [(long) r + 2 ]
.cint != 0 ) )
{
mem [(long) q + 2 ] .cint = mem [(long) r + 2 ] .cint ;
mem [(long) q ] .hh.b0 = mem [(long) r ] .hh.b0 ;
}
if ( mem [(long) q + 3 ] .cint == 0 )
mem [(long) q ] .hh.b1 = 0 ;
if ( mem [(long) q ] .hh.b1 == mem [(long) r ] .hh.b1 )
mem [(long) q + 3 ] .cint = mem [(long) q + 3 ] .cint + mem [(long) r + 3 ] .cint ;
else if ( ( mem [(long) q ] .hh.b1 < mem [(long) r ] .hh.b1 ) && ( mem [(long) r + 3 ]
.cint != 0 ) )
{
mem [(long) q + 3 ] .cint = mem [(long) r + 3 ] .cint ;
mem [(long) q ] .hh.b1 = mem [(long) r ] .hh.b1 ;
}
curval = q ;
}
}
else {
scanint () ;
if ( p < 2 )
if ( q == 90 )
curval = nxplusy ( eqtb [ l ] .cint , curval , 0 ) ;
else curval = xovern ( eqtb [ l ] .cint , curval ) ;
else {
s = eqtb [ l ] .hh .v.RH ;
r = newspec ( s ) ;
if ( q == 90 )
{
mem [(long) r + 1 ] .cint = nxplusy ( mem [(long) s + 1 ] .cint , curval , 0 ) ;
mem [(long) r + 2 ] .cint = nxplusy ( mem [(long) s + 2 ] .cint , curval , 0 ) ;
mem [(long) r + 3 ] .cint = nxplusy ( mem [(long) s + 3 ] .cint , curval , 0 ) ;
}
else {
mem [(long) r + 1 ] .cint = xovern ( mem [(long) s + 1 ] .cint , curval ) ;
mem [(long) r + 2 ] .cint = xovern ( mem [(long) s + 2 ] .cint , curval ) ;
mem [(long) r + 3 ] .cint = xovern ( mem [(long) s + 3 ] .cint , curval ) ;
}
curval = r ;
}
}
if ( aritherror )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1055 ) ;
}
{
helpptr = 2 ;
helpline [ 1 ] = 1056 ;
helpline [ 0 ] = 1057 ;
}
error () ;
return ;
}
if ( p < 2 )
if ( ( a >= 4 ) )
geqworddefin ( l , curval ) ;
else eqworddefine ( l , curval ) ;
else {
trapzeroglue () ;
if ( ( a >= 4 ) )
geqdefine ( l , 116 , curval ) ;
else eqdefine ( l , 116 , curval ) ;
}
}
alteraux () { r_alteraux
halfword c ;
if ( curchr != abs ( curlist .modefield ) )
reportillega () ;
else {
c = curchr ;
scanoptional () ;
if ( c == 1 )
{
scandimen ( false , false , false ) ;
curlist .auxfield = curval ;
}
else {
scanint () ;
if ( ( curval <= 0 ) || ( curval > 32767 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1059 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 1060 ;
}
interror ( curval ) ;
}
else curlist .auxfield = curval ;
}
}
}
alterprevgra () { r_alterprevgra
integer p ;
nest [ nestptr ] = curlist ;
p = nestptr ;
while ( abs ( nest [ p ] .modefield ) != 1 ) decr ( p ) ;
scanoptional () ;
scanint () ;
if ( curval < 0 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 802 ) ;
}
printesc ( 390 ) ;
{
helpptr = 1 ;
helpline [ 0 ] = 1061 ;
}
interror ( curval ) ;
}
else {
nest [ p ] .pgfield = curval ;
curlist = nest [ nestptr ] ;
}
}
alterpagesof () { r_alterpagesof
quarterword c ;
c = curchr ;
scanoptional () ;
scandimen ( false , false , false ) ;
pagesofar [ c ] = curval ;
}
alterinteger () { r_alterinteger
quarterword c ;
c = curchr ;
scanoptional () ;
scanint () ;
if ( c == 0 )
deadcycles = curval ;
else insertpenalt = curval ;
}
alterboxdime () { r_alterboxdime
smallnumber c ;
eightbits b ;
c = curchr ;
scaneightbit () ;
b = curval ;
scanoptional () ;
scandimen ( false , false , false ) ;
if ( eqtb [ 4322 + b ] .hh .v.RH != 0 )
mem [(long) eqtb [ 4322 + b ] .hh .v.RH + c ] .cint = curval ;
}
znewfont ( a )
smallnumber a ;
{/* 50 */ r_newfont
halfword u ;
scaled s ;
internalfont f ;
strnumber t ;
quarterword oldsetting ;
if ( jobname == 0 )
openlogfile () ;
getrtoken () ;
u = curcs ;
if ( u >= 258 )
t = hash [ u ] .v.RH ;
else if ( u >= 129 )
if ( u == 257 )
t = 1065 ;
else t = u - 129 ;
else {
oldsetting = selector ;
selector = 21 ;
print ( 1065 ) ;
print ( u - 1 ) ;
selector = oldsetting ;
{
if ( poolptr + 1 > poolsize )
overflow ( 128 , poolsize - initpoolptr ) ;
}
t = makestring () ;
}
if ( ( a >= 4 ) )
geqdefine ( u , 86 , 0 ) ;
else eqdefine ( u , 86 , 0 ) ;
scanoptional () ;
scanfilename () ;
nameinprogre = true ;
if ( scankeyword ( 1066 ) )
{
scandimen ( false , false , false ) ;
s = curval ;
if ( ( s <= 0 ) || ( s >= 134217728 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1068 ) ;
}
printscaled ( s ) ;
print ( 1069 ) ;
{
helpptr = 2 ;
helpline [ 1 ] = 1070 ;
helpline [ 0 ] = 1071 ;
}
error () ;
s = 10 * 65536 ;
}
}
else if ( scankeyword ( 1067 ) )
{
scanint () ;
s = - curval ;
if ( ( curval <= 0 ) || ( curval > 32768 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 410 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 411 ;
}
interror ( curval ) ;
s = - 1000 ;
}
}
else s = - 1000 ;
nameinprogre = false ;
for ( f = 1 ; f <= fontptr ; f ++ )
if ( streqstr ( fontname [ f ] , curname ) && streqstr ( fontarea [ f ] ,
curarea ) )
{
if ( s > 0 )
{
if ( s == fontsize [ f ] )
goto lab50 ;
}
else if ( fontsize [ f ] == xnoverd ( fontdsize [ f ] , - s , 1000 ) )
goto lab50 ;
}
f = readfontinfo ( u , curname , curarea , s ) ;
lab50: eqtb [ u ] .hh .v.RH = f ;
eqtb [ 3268 + f ] = eqtb [ u ] ;
hash [ 3268 + f ] .v.RH = t ;
}
newinteracti () { r_newinteracti
println () ;
interaction = curchr ;
if ( interaction == 0 )
selector = 16 ;
else selector = 17 ;
if ( jobname != 0 )
selector = selector + 2 ;
}
prefixedcomm () { /* 30 10 */ r_prefixedcomm
smallnumber a ;
internalfont f ;
halfword j ;
integer k ;
halfword p, q ;
integer n ;
boolean e ;
a = 0 ;
while ( curcmd == 92 ) {
if ( ! odd ( a / curchr ) )
a = a + curchr ;
do { getxtoken () ;
} while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
if ( curcmd <= 69 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1027 ) ;
}
printcmdchr ( curcmd , curchr ) ;
printchar ( 39 ) ;
{
helpptr = 1 ;
helpline [ 0 ] = 1028 ;
}
backerror () ;
return ;
}
}
if ( ( curcmd != 96 ) && ( a % 4 != 0 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 541 ) ;
}
printesc ( 1019 ) ;
print ( 1029 ) ;
printesc ( 1020 ) ;
print ( 1030 ) ;
printcmdchr ( curcmd , curchr ) ;
printchar ( 39 ) ;
{
helpptr = 1 ;
helpline [ 0 ] = 1031 ;
}
error () ;
}
if ( eqtb [ 5310 ] .cint != 0 )
if ( eqtb [ 5310 ] .cint < 0 )
{
if ( ( a >= 4 ) )
a = a - 4 ;
}
else {
if ( ! ( a >= 4 ) )
a = a + 4 ;
}
switch ( curcmd )
{case 86 :
if ( ( a >= 4 ) )
geqdefine ( 4578 , 119 , curchr ) ;
else eqdefine ( 4578 , 119 , curchr ) ;
break ;
case 96 :
{
if ( odd ( curchr ) && ! ( a >= 4 ) && ( eqtb [ 5310 ] .cint >= 0 ) )
a = a + 4 ;
e = ( curchr >= 2 ) ;
getrtoken () ;
p = curcs ;
q = scantoks ( true , e ) ;
if ( ( a >= 4 ) )
geqdefine ( p , 110 + ( a % 4 ) , defref ) ;
else eqdefine ( p , 110 + ( a % 4 ) , defref ) ;
}
break ;
case 93 :
{
n = curchr ;
getrtoken () ;
p = curcs ;
if ( n == 0 )
{
do { gettoken () ;
} while ( ! ( curcmd != 10 ) ) ;
if ( curtok == 3133 )
{
gettoken () ;
if ( curcmd == 10 )
gettoken () ;
}
}
else {
gettoken () ;
q = curtok ;
gettoken () ;
backinput () ;
curtok = q ;
backinput () ;
}
if ( curcmd >= 110 )
incr ( mem [(long) curchr ] .hh .v.LH ) ;
if ( ( a >= 4 ) )
geqdefine ( p , curcmd , curchr ) ;
else eqdefine ( p , curcmd , curchr ) ;
}
break ;
case 94 :
{
n = curchr ;
getrtoken () ;
p = curcs ;
if ( ( a >= 4 ) )
geqdefine ( p , 0 , 256 ) ;
else eqdefine ( p , 0 , 256 ) ;
scanoptional () ;
switch ( n )
{case 0 :
{
scancharnum () ;
if ( ( a >= 4 ) )
geqdefine ( p , 67 , curval ) ;
else eqdefine ( p , 67 , curval ) ;
}
break ;
case 1 :
{
scanfifteenb () ;
if ( ( a >= 4 ) )
geqdefine ( p , 68 , curval ) ;
else eqdefine ( p , 68 , curval ) ;
}
break ;
default :
{
scaneightbit () ;
switch ( n )
{case 2 :
if ( ( a >= 4 ) )
geqdefine ( p , 72 , 5317 + curval ) ;
else eqdefine ( p , 72 , 5317 + curval ) ;
break ;
case 3 :
if ( ( a >= 4 ) )
geqdefine ( p , 73 , 5721 + curval ) ;
else eqdefine ( p , 73 , 5721 + curval ) ;
break ;
case 4 :
if ( ( a >= 4 ) )
geqdefine ( p , 74 , 3544 + curval ) ;
else eqdefine ( p , 74 , 3544 + curval ) ;
break ;
case 5 :
if ( ( a >= 4 ) )
geqdefine ( p , 75 , 3800 + curval ) ;
else eqdefine ( p , 75 , 3800 + curval ) ;
break ;
case 6 :
if ( ( a >= 4 ) )
geqdefine ( p , 71 , 4066 + curval ) ;
else eqdefine ( p , 71 , 4066 + curval ) ;
break ;
}
}
break ;
}
}
break ;
case 95 :
{
scanint () ;
n = curval ;
if ( ! scankeyword ( 695 ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 921 ) ;
}
{
helpptr = 2 ;
helpline [ 1 ] = 1048 ;
helpline [ 0 ] = 1049 ;
}
error () ;
}
getrtoken () ;
p = curcs ;
readtoks ( n , p ) ;
if ( ( a >= 4 ) )
geqdefine ( p , 110 , curval ) ;
else eqdefine ( p , 110 , curval ) ;
}
break ;
case 70 :
case 71 :
{
q = curcs ;
if ( curcmd == 70 )
{
scaneightbit () ;
p = 4066 + curval ;
}
else p = curchr ;
scanoptional () ;
do { getxtoken () ;
} while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
if ( curcmd != 1 )
{
if ( curcmd == 70 )
{
scaneightbit () ;
curcmd = 71 ;
curchr = 4066 + curval ;
}
if ( curcmd == 71 )
{
q = eqtb [ curchr ] .hh .v.RH ;
if ( q == 0 )
if ( ( a >= 4 ) )
geqdefine ( p , 100 , 0 ) ;
else eqdefine ( p , 100 , 0 ) ;
else {
incr ( mem [(long) q ] .hh .v.LH ) ;
if ( ( a >= 4 ) )
geqdefine ( p , 110 , q ) ;
else eqdefine ( p , 110 , q ) ;
}
goto lab30 ;
}
}
backinput () ;
curcs = q ;
q = scantoks ( false , false ) ;
if ( mem [(long) defref ] .hh .v.RH == 0 )
{
if ( ( a >= 4 ) )
geqdefine ( p , 100 , 0 ) ;
else eqdefine ( p , 100 , 0 ) ;
{
mem [(long) defref ] .hh .v.RH = avail ;
avail = defref ;
#ifdef STAT
decr ( dynused ) ;
#endif /* STAT */
}
}
else {
if ( p == 4057 )
{
mem [(long) q ] .hh .v.RH = getavail () ;
q = mem [(long) q ] .hh .v.RH ;
mem [(long) q ] .hh .v.LH = 637 ;
q = getavail () ;
mem [(long) q ] .hh .v.LH = 379 ;
mem [(long) q ] .hh .v.RH = mem [(long) defref ] .hh .v.RH ;
mem [(long) defref ] .hh .v.RH = q ;
}
if ( ( a >= 4 ) )
geqdefine ( p , 110 , defref ) ;
else eqdefine ( p , 110 , defref ) ;
}
}
break ;
case 72 :
{
p = curchr ;
scanoptional () ;
scanint () ;
if ( ( a >= 4 ) )
geqworddefin ( p , curval ) ;
else eqworddefine ( p , curval ) ;
}
break ;
case 73 :
{
p = curchr ;
scanoptional () ;
scandimen ( false , false , false ) ;
if ( ( a >= 4 ) )
geqworddefin ( p , curval ) ;
else eqworddefine ( p , curval ) ;
}
break ;
case 74 :
case 75 :
{
p = curchr ;
n = curcmd ;
scanoptional () ;
if ( n == 75 )
scanglue ( 3 ) ;
else scanglue ( 2 ) ;
trapzeroglue () ;
if ( ( a >= 4 ) )
geqdefine ( p , 116 , curval ) ;
else eqdefine ( p , 116 , curval ) ;
}
break ;
case 84 :
{
if ( curchr == 4627 )
n = 15 ;
else if ( curchr == 5139 )
n = 32768 ;
else if ( curchr == 5011 )
n = 32767 ;
else if ( curchr == 5573 )
n = 16777215 ;
else n = 127 ;
p = curchr ;
scansevenbit () ;
p = p + curval ;
scanoptional () ;
scanint () ;
if ( ( ( curval < 0 ) && ( p < 5573 ) ) || ( curval > n ) )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1050 ) ;
}
printint ( curval ) ;
if ( p < 5573 )
print ( 1051 ) ;
else print ( 1052 ) ;
printint ( n ) ;
{
helpptr = 1 ;
helpline [ 0 ] = 1053 ;
}
error () ;
curval = 0 ;
}
if ( p < 5139 )
if ( ( a >= 4 ) )
geqdefine ( p , 119 , curval ) ;
else eqdefine ( p , 119 , curval ) ;
else if ( p < 5573 )
if ( ( a >= 4 ) )
geqdefine ( p , 119 , curval ) ;
else eqdefine ( p , 119 , curval ) ;
else if ( ( a >= 4 ) )
geqworddefin ( p , curval ) ;
else eqworddefine ( p , curval ) ;
}
break ;
case 85 :
{
p = curchr ;
scanfourbiti () ;
p = p + curval ;
scanoptional () ;
scanfontiden () ;
if ( ( a >= 4 ) )
geqdefine ( p , 119 , curval ) ;
else eqdefine ( p , 119 , curval ) ;
}
break ;
case 88 :
case 89 :
case 90 :
case 91 :
doregisterco ( a ) ;
break ;
case 97 :
{
scaneightbit () ;
if ( ( a >= 4 ) )
savestack [ saveptr + 0 ] .cint = 1073742080 + curval ;
else savestack [ saveptr + 0 ] .cint = 1073741824 + curval ;
scanoptional () ;
scanbox () ;
}
break ;
case 78 :
alteraux () ;
break ;
case 79 :
alterprevgra () ;
break ;
case 80 :
alterpagesof () ;
break ;
case 81 :
alterinteger () ;
break ;
case 82 :
alterboxdime () ;
break ;
case 83 :
{
scanoptional () ;
scanint () ;
n = curval ;
if ( n <= 0 )
p = 0 ;
else {
p = getnode ( 2 * n + 1 ) ;
mem [(long) p ] .hh .v.LH = n ;
for ( j = 1 ; j <= n ; j ++ )
{
scandimen ( false , false , false ) ;
mem [(long) p + 2 * j - 1 ] .cint = curval ;
scandimen ( false , false , false ) ;
mem [(long) p + 2 * j ] .cint = curval ;
}
}
if ( ( a >= 4 ) )
geqdefine ( 4056 , 117 , p ) ;
else eqdefine ( 4056 , 117 , p ) ;
}
break ;
case 98 :
if ( curchr == 1 )
{
#ifdef INITEX
newpatterns () ;
goto lab30 ;
#endif /* INITEX */
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1062 ) ;
}
helpptr = 0 ;
error () ;
do { gettoken () ;
} while ( ! ( curcmd == 2 ) ) ;
return ;
}
else {
newhyphexcep () ;
goto lab30 ;
}
break ;
case 76 :
{
findfontdime ( true ) ;
k = curval ;
scanoptional () ;
scandimen ( false , false , false ) ;
fontinfo [ k ] .cint = curval ;
}
break ;
case 77 :
{
n = curchr ;
scanfontiden () ;
f = curval ;
scanoptional () ;
scanint () ;
if ( n == 0 )
hyphenchar [ f ] = curval ;
else skewchar [ f ] = curval ;
}
break ;
case 87 :
newfont ( a ) ;
break ;
case 99 :
newinteracti () ;
break ;
default :
confusion ( 1026 ) ;
break ;
}
lab30: if ( aftertoken != 0 )
{
curtok = aftertoken ;
backinput () ;
aftertoken = 0 ;
}
}
doassignment () { /* 10 */ r_doassignment
while ( true ) {
do { getxtoken () ;
} while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
if ( curcmd <= 69 )
return ;
prefixedcomm () ;
}
}
openorclosei () { r_openorclosei
quarterword c ;
quarterword n ;
c = curchr ;
scanfourbiti () ;
n = curval ;
if ( readopen [ n ] != 2 )
{
aclose ( readfile [ n ] ) ;
readopen [ n ] = 2 ;
}
if ( c != 0 )
{
scanoptional () ;
scanfilename () ;
if ( curext == 206 )
curext = 644 ;
packfilename ( curname , curarea , curext ) ;
if ( aopenin ( readfile [ n ] , readpathspec ) )
readopen [ n ] = 1 ;
}
}
issuemessage () { r_issuemessage
quarterword oldsetting ;
quarterword c ;
strnumber s ;
c = curchr ;
mem [(long) memtop - 12 ] .hh .v.RH = scantoks ( false , true ) ;
oldsetting = selector ;
selector = 21 ;
tokenshow ( defref ) ;
selector = oldsetting ;
flushlist ( defref ) ;
{
if ( poolptr + 1 > poolsize )
overflow ( 128 , poolsize - initpoolptr ) ;
}
s = makestring () ;
if ( c == 0 )
{
if ( termoffset + ( strstart [ s + 1 ] - strstart [ s ] ) > maxprintline -
2 )
println () ;
else if ( ( termoffset > 0 ) || ( fileoffset > 0 ) )
printchar ( 32 ) ;
print ( s ) ;
termflush ( output ) ;
}
else {
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( s ) ;
}
if ( eqtb [ 4065 ] .hh .v.RH != 0 )
useerrhelp = true ;
else if ( longhelpseen )
{
helpptr = 1 ;
helpline [ 0 ] = 1078 ;
}
else {
if ( interaction < 3 )
longhelpseen = true ;
{
helpptr = 4 ;
helpline [ 3 ] = 1079 ;
helpline [ 2 ] = 1080 ;
helpline [ 1 ] = 1081 ;
helpline [ 0 ] = 1082 ;
}
}
error () ;
useerrhelp = false ;
}
{
decr ( strptr ) ;
poolptr = strstart [ strptr ] ;
}
}
shiftcase () { r_shiftcase
halfword b ;
halfword p ;
halfword t ;
eightbits c ;
b = curchr ;
p = scantoks ( false , false ) ;
p = mem [(long) defref ] .hh .v.RH ;
while ( p != 0 ) {
t = mem [(long) p ] .hh .v.LH ;
if ( t < 4225 )
{
if ( t >= 4096 )
t = t - 1 ;
c = t % 256 ;
if ( c < 128 )
if ( eqtb [ b + c ] .hh .v.RH != 0 )
t = 256 * ( t / 256 ) + eqtb [ b + c ] .hh .v.RH ;
if ( t >= 4096 )
mem [(long) p ] .hh .v.LH = t + 1 ;
else mem [(long) p ] .hh .v.LH = t ;
}
p = mem [(long) p ] .hh .v.RH ;
}
begintokenli ( mem [(long) defref ] .hh .v.RH , 3 ) ;
{
mem [(long) defref ] .hh .v.RH = avail ;
avail = defref ;
#ifdef STAT
decr ( dynused ) ;
#endif /* STAT */
}
}
showwhatever () { /* 50 */ r_showwhatever
halfword p ;
switch ( curchr )
{case 3 :
{
begindiagnos () ;
showactiviti () ;
}
break ;
case 1 :
{
scaneightbit () ;
begindiagnos () ;
printnl ( 1100 ) ;
printint ( curval ) ;
printchar ( 61 ) ;
if ( eqtb [ 4322 + curval ] .hh .v.RH == 0 )
print ( 275 ) ;
else showbox ( eqtb [ 4322 + curval ] .hh .v.RH ) ;
}
break ;
case 0 :
{
gettoken () ;
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 1094 ) ;
if ( curcs != 0 )
{
sprintcs ( curcs ) ;
printchar ( 61 ) ;
}
printmeaning () ;
goto lab50 ;
}
break ;
default :
{
p = thetoks () ;
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 1094 ) ;
tokenshow ( memtop - 3 ) ;
flushlist ( mem [(long) memtop - 3 ] .hh .v.RH ) ;
goto lab50 ;
}
break ;
}
enddiagnosti ( true ) ;
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1101 ) ;
}
if ( selector == 19 )
if ( eqtb [ 5296 ] .cint <= 0 )
{
selector = 17 ;
print ( 1102 ) ;
selector = 19 ;
}
lab50: if ( interaction < 3 )
{
helpptr = 0 ;
decr ( errorcount ) ;
}
else if ( eqtb [ 5296 ] .cint > 0 )
{
{
helpptr = 3 ;
helpline [ 2 ] = 1089 ;
helpline [ 1 ] = 1090 ;
helpline [ 0 ] = 1091 ;
}
}
else {
{
helpptr = 5 ;
helpline [ 4 ] = 1089 ;
helpline [ 3 ] = 1090 ;
helpline [ 2 ] = 1091 ;
helpline [ 1 ] = 1092 ;
helpline [ 0 ] = 1093 ;
}
}
error () ;
}
#ifdef INITEX
storefmtfile () { /* 41 42 31 32 */ r_storefmtfile
integer j, k, l ;
halfword p, q ;
integer x ;
fourquarters w ;
if ( saveptr != 0 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1104 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 1105 ;
}
{
if ( interaction == 3 )
interaction = 2 ;
error () ;
#ifdef DEBUG
if ( interaction > 0 )
debughelp () ;
#endif /* DEBUG */
history = 3 ;
jumpout () ;
}
}
selector = 21 ;
print ( 1116 ) ;
print ( jobname ) ;
printchar ( 32 ) ;
printint ( eqtb [ 5290 ] .cint % 100 ) ;
printchar ( 46 ) ;
printint ( eqtb [ 5289 ] .cint ) ;
printchar ( 46 ) ;
printint ( eqtb [ 5288 ] .cint ) ;
printchar ( 41 ) ;
if ( interaction == 0 )
selector = 18 ;
else selector = 19 ;
{
if ( poolptr + 1 > poolsize )
overflow ( 128 , poolsize - initpoolptr ) ;
}
formatident = makestring () ;
packjobname ( 1117 ) ;
while ( ! wopenout ( fmtfile ) ) promptfilena ( 1118 , 1117 ) ;
printnl ( 1119 ) ;
print ( wmakenamestr ( fmtfile ) ) ;
{
decr ( strptr ) ;
poolptr = strstart [ strptr ] ;
}
printnl ( formatident ) ;
putfmtint ( 13634946 ) ;
putfmtint ( 0 ) ;
putfmtint ( memtop ) ;
putfmtint ( 5976 ) ;
putfmtint ( 2551 ) ;
putfmtint ( 307 ) ;
putfmtint ( poolptr ) ;
putfmtint ( strptr ) ;
dumpthings ( strstart [ 0 ] , strptr + 1 ) ;
dumpthings ( strpool [ 0 ] , poolptr ) ;
println () ;
printint ( strptr ) ;
print ( 1106 ) ;
printint ( poolptr ) ;
sortavail () ;
varused = 0 ;
putfmtint ( lomemmax ) ;
putfmtint ( rover ) ;
p = 0 ;
q = rover ;
x = 0 ;
do { dumpthings ( mem [(long) p ] , q + 2 - p ) ;
x = x + q + 2 - p ;
varused = varused + q - p ;
p = q + mem [(long) q ] .hh .v.LH ;
q = mem [(long) q + 1 ] .hh .v.RH ;
} while ( ! ( q == rover ) ) ;
varused = varused + lomemmax - p ;
dynused = memend + 1 - himemmin ;
dumpthings ( mem [(long) p ] , lomemmax + 1 - p ) ;
x = x + lomemmax + 1 - p ;
putfmtint ( himemmin ) ;
putfmtint ( avail ) ;
dumpthings ( mem [(long) himemmin ] , memend + 1 - himemmin ) ;
x = x + memend + 1 - himemmin ;
p = avail ;
while ( p != 0 ) {
decr ( dynused ) ;
p = mem [(long) p ] .hh .v.RH ;
}
putfmtint ( varused ) ;
putfmtint ( dynused ) ;
println () ;
printint ( x ) ;
print ( 1107 ) ;
printint ( varused ) ;
printchar ( 38 ) ;
printint ( dynused ) ;
k = 1 ;
do { j = k ;
while ( j < 5266 ) {
if ( ( eqtb [ j ] .hh .v.RH == eqtb [ j + 1 ] .hh .v.RH ) && ( eqtb [ j
] .hh.b0 == eqtb [ j + 1 ] .hh.b0 ) && ( eqtb [ j ] .hh.b1 == eqtb [ j +
1 ] .hh.b1 ) )
goto lab41 ;
incr ( j ) ;
}
l = 5267 ;
goto lab31 ;
lab41: incr ( j ) ;
l = j ;
while ( j < 5266 ) {
if ( ( eqtb [ j ] .hh .v.RH != eqtb [ j + 1 ] .hh .v.RH ) || ( eqtb [ j
] .hh.b0 != eqtb [ j + 1 ] .hh.b0 ) || ( eqtb [ j ] .hh.b1 != eqtb [ j +
1 ] .hh.b1 ) )
goto lab31 ;
incr ( j ) ;
}
lab31: putfmtint ( l - k ) ;
dumpthings ( eqtb [ k ] , l - k ) ;
k = j + 1 ;
putfmtint ( k - l ) ;
} while ( ! ( k == 5267 ) ) ;
do { j = k ;
while ( j < 5976 ) {
if ( eqtb [ j ] .cint == eqtb [ j + 1 ] .cint )
goto lab42 ;
incr ( j ) ;
}
l = 5977 ;
goto lab32 ;
lab42: incr ( j ) ;
l = j ;
while ( j < 5976 ) {
if ( eqtb [ j ] .cint != eqtb [ j + 1 ] .cint )
goto lab32 ;
incr ( j ) ;
}
lab32: putfmtint ( l - k ) ;
dumpthings ( eqtb [ k ] , l - k ) ;
k = j + 1 ;
putfmtint ( k - l ) ;
} while ( ! ( k > 5976 ) ) ;
putfmtint ( parloc ) ;
putfmtint ( writeloc ) ;
putfmtint ( hashused ) ;
cscount = 3257 - hashused ;
for ( p = 258 ; p <= hashused ; p ++ )
if ( hash [ p ] .v.RH != 0 )
{
putfmtint ( p ) ;
putfmthh ( hash [ p ] ) ;
incr ( cscount ) ;
}
dumpthings ( hash [ hashused + 1 ] , 3524 - hashused ) ;
putfmtint ( cscount ) ;
println () ;
printint ( cscount ) ;
print ( 1108 ) ;
putfmtint ( fmemptr ) ;
dumpthings ( fontinfo [ 0 ] , fmemptr ) ;
putfmtint ( fontptr ) ;
dumpthings ( fontsize [ 0 ] , fontptr + 1 ) ;
dumpthings ( fontdsize [ 0 ] , fontptr + 1 ) ;
dumpthings ( fontparams [ 0 ] , fontptr + 1 ) ;
dumpthings ( hyphenchar [ 0 ] , fontptr + 1 ) ;
dumpthings ( skewchar [ 0 ] , fontptr + 1 ) ;
dumpthings ( fontname [ 0 ] , fontptr + 1 ) ;
dumpthings ( fontarea [ 0 ] , fontptr + 1 ) ;
dumpthings ( fontbc [ 0 ] , fontptr + 1 ) ;
dumpthings ( fontec [ 0 ] , fontptr + 1 ) ;
dumpthings ( charbase [ 0 ] , fontptr + 1 ) ;
dumpthings ( widthbase [ 0 ] , fontptr + 1 ) ;
dumpthings ( heightbase [ 0 ] , fontptr + 1 ) ;
dumpthings ( depthbase [ 0 ] , fontptr + 1 ) ;
dumpthings ( italicbase [ 0 ] , fontptr + 1 ) ;
dumpthings ( ligkernbase [ 0 ] , fontptr + 1 ) ;
dumpthings ( kernbase [ 0 ] , fontptr + 1 ) ;
dumpthings ( extenbase [ 0 ] , fontptr + 1 ) ;
dumpthings ( parambase [ 0 ] , fontptr + 1 ) ;
for ( k = 0 ; k <= fontptr ; k ++ )
{
printnl ( 1109 ) ;
printesc ( hash [ 3268 + k ] .v.RH ) ;
printchar ( 61 ) ;
printfilenam ( fontname [ k ] , fontarea [ k ] , 206 ) ;
if ( fontsize [ k ] != fontdsize [ k ] )
{
print ( 598 ) ;
printscaled ( fontsize [ k ] ) ;
print ( 262 ) ;
}
}
println () ;
printint ( fmemptr - 7 ) ;
print ( 1110 ) ;
printint ( fontptr - 0 ) ;
print ( 1111 ) ;
if ( fontptr != 1 )
printchar ( 115 ) ;
putfmtint ( hyphcount ) ;
for ( k = 0 ; k <= 307 ; k ++ )
if ( hyphword [ k ] != 0 )
{
putfmtint ( k ) ;
putfmtint ( hyphword [ k ] ) ;
putfmtint ( hyphlist [ k ] ) ;
}
putfmtint ( triemax ) ;
dumpthings ( trie [ 0 ] , triemax + 1 ) ;
putfmtint ( trieopptr ) ;
dumpthings ( hyfdistance [ 1 ] , trieopptr - 0 ) ;
dumpthings ( hyfnum [ 1 ] , trieopptr - 0 ) ;
dumpthings ( hyfnext [ 1 ] , trieopptr - 0 ) ;
println () ;
printint ( hyphcount ) ;
print ( 1112 ) ;
if ( hyphcount != 1 )
printchar ( 115 ) ;
printnl ( 1113 ) ;
printint ( triemax ) ;
print ( 1114 ) ;
printint ( trieopptr ) ;
print ( 1115 ) ;
if ( trieopptr != 1 )
printchar ( 115 ) ;
putfmtint ( interaction ) ;
putfmtint ( formatident ) ;
putfmtint ( 69069 ) ;
eqtb [ 5298 ] .cint = 0 ;
wclose ( fmtfile ) ;
}
#endif /* INITEX */
znewwhatsit ( s , w )
smallnumber s ;
smallnumber w ;
{r_newwhatsit
halfword p ;
p = getnode ( w ) ;
mem [(long) p ] .hh.b0 = 8 ;
mem [(long) p ] .hh.b1 = s ;
mem [(long) curlist .tailfield ] .hh .v.RH = p ;
curlist .tailfield = p ;
}
znewwritewhat ( w )
smallnumber w ;
{r_newwritewhat
newwhatsit ( curchr , w ) ;
if ( w != 2 )
scanfourbiti () ;
else {
scanint () ;
if ( curval < 0 )
curval = 17 ;
else if ( curval > 15 )
curval = 16 ;
}
mem [(long) curlist .tailfield + 1 ] .hh .v.LH = curval ;
}
doextension () { r_doextension
integer i, j, k ;
halfword p, q, r ;
switch ( curchr )
{case 0 :
{
newwritewhat ( 3 ) ;
scanoptional () ;
scanfilename () ;
mem [(long) curlist .tailfield + 1 ] .hh .v.RH = curname ;
mem [(long) curlist .tailfield + 2 ] .hh .v.LH = curarea ;
mem [(long) curlist .tailfield + 2 ] .hh .v.RH = curext ;
}
break ;
case 1 :
{
k = curcs ;
newwritewhat ( 2 ) ;
curcs = k ;
p = scantoks ( false , false ) ;
mem [(long) curlist .tailfield + 1 ] .hh .v.RH = defref ;
}
break ;
case 2 :
{
newwritewhat ( 2 ) ;
mem [(long) curlist .tailfield + 1 ] .hh .v.RH = 0 ;
}
break ;
case 3 :
{
newwhatsit ( 3 , 2 ) ;
mem [(long) curlist .tailfield + 1 ] .hh .v.LH = 0 ;
p = scantoks ( false , true ) ;
mem [(long) curlist .tailfield + 1 ] .hh .v.RH = defref ;
}
break ;
case 4 :
{
getxtoken () ;
if ( ( curcmd == 59 ) && ( curchr <= 2 ) )
{
p = curlist .tailfield ;
doextension () ;
outwhat ( curlist .tailfield ) ;
flushnodelis ( curlist .tailfield ) ;
curlist .tailfield = p ;
mem [(long) p ] .hh .v.RH = 0 ;
}
else backinput () ;
}
break ;
default :
confusion ( 1134 ) ;
break ;
}
}
handlerightb () { r_handlerightb
halfword p, q ;
scaled d ;
integer f ;
switch ( curgroup )
{case 1 :
unsave () ;
break ;
case 0 :
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 892 ) ;
}
{
helpptr = 2 ;
helpline [ 1 ] = 893 ;
helpline [ 0 ] = 894 ;
}
error () ;
}
break ;
case 14 :
case 15 :
case 16 :
extrarightbr () ;
break ;
case 2 :
package ( 0 ) ;
break ;
case 3 :
{
adjusttail = memtop - 5 ;
package ( 0 ) ;
}
break ;
case 4 :
{
endgraf () ;
package ( 0 ) ;
}
break ;
case 5 :
{
endgraf () ;
package ( 4 ) ;
}
break ;
case 11 :
{
endgraf () ;
q = eqtb [ 3536 ] .hh .v.RH ;
incr ( mem [(long) q ] .hh .v.RH ) ;
d = eqtb [ 5707 ] .cint ;
f = eqtb [ 5309 ] .cint ;
unsave () ;
decr ( saveptr ) ;
p = vpackage ( mem [(long) curlist .headfield ] .hh .v.RH , 0 , 1 , 1073741823
) ;
popnest () ;
if ( savestack [ saveptr + 0 ] .cint < 255 )
{
{
mem [(long) curlist .tailfield ] .hh .v.RH = getnode ( 5 ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
mem [(long) curlist .tailfield ] .hh.b0 = 3 ;
mem [(long) curlist .tailfield ] .hh.b1 = savestack [ saveptr + 0 ] .cint ;
mem [(long) curlist .tailfield + 3 ] .cint = mem [(long) p + 3 ] .cint + mem [(long) p +
2 ] .cint ;
mem [(long) curlist .tailfield + 4 ] .hh .v.LH = mem [(long) p + 5 ] .hh .v.RH ;
mem [(long) curlist .tailfield + 4 ] .hh .v.RH = q ;
mem [(long) curlist .tailfield + 2 ] .cint = d ;
mem [(long) curlist .tailfield + 1 ] .cint = f ;
}
else {
{
mem [(long) curlist .tailfield ] .hh .v.RH = getnode ( 2 ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
mem [(long) curlist .tailfield ] .hh.b0 = 5 ;
mem [(long) curlist .tailfield ] .hh.b1 = 0 ;
mem [(long) curlist .tailfield + 1 ] .cint = mem [(long) p + 5 ] .hh .v.RH ;
deletegluere ( q ) ;
}
freenode ( p , 7 ) ;
if ( nestptr == 0 )
buildpage () ;
}
break ;
case 8 :
{
if ( curinput .locfield != 0 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 858 ) ;
}
{
helpptr = 2 ;
helpline [ 1 ] = 859 ;
helpline [ 0 ] = 860 ;
}
error () ;
do { gettoken () ;
} while ( ! ( curinput .locfield == 0 ) ) ;
}
endtokenlist () ;
endgraf () ;
unsave () ;
outputactive = false ;
insertpenalt = 0 ;
if ( eqtb [ 4577 ] .hh .v.RH != 0 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 861 ) ;
}
printesc ( 274 ) ;
printint ( 255 ) ;
{
helpptr = 3 ;
helpline [ 2 ] = 862 ;
helpline [ 1 ] = 863 ;
helpline [ 0 ] = 864 ;
}
boxerror ( 255 ) ;
}
if ( curlist .tailfield != curlist .headfield )
{
mem [(long) pagetail ] .hh .v.RH = mem [(long) curlist .headfield ] .hh .v.RH ;
pagetail = curlist .tailfield ;
}
if ( mem [(long) memtop - 2 ] .hh .v.RH != 0 )
{
if ( mem [(long) memtop - 1 ] .hh .v.RH == 0 )
nest [ 0 ] .tailfield = pagetail ;
mem [(long) pagetail ] .hh .v.RH = mem [(long) memtop - 1 ] .hh .v.RH ;
mem [(long) memtop - 1 ] .hh .v.RH = mem [(long) memtop - 2 ] .hh .v.RH ;
mem [(long) memtop - 2 ] .hh .v.RH = 0 ;
pagetail = memtop - 2 ;
}
popnest () ;
buildpage () ;
}
break ;
case 10 :
builddiscret () ;
break ;
case 6 :
{
backinput () ;
curtok = 7355 ;
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 483 ) ;
}
printesc ( 752 ) ;
print ( 484 ) ;
{
helpptr = 1 ;
helpline [ 0 ] = 973 ;
}
inserror () ;
}
break ;
case 7 :
{
endgraf () ;
unsave () ;
alignpeek () ;
}
break ;
case 12 :
{
endgraf () ;
unsave () ;
saveptr = saveptr - 2 ;
p = vpackage ( mem [(long) curlist .headfield ] .hh .v.RH , savestack [
saveptr + 1 ] .cint , savestack [ saveptr + 0 ] .cint , 1073741823 ) ;
popnest () ;
{
mem [(long) curlist .tailfield ] .hh .v.RH = newnoad () ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
mem [(long) curlist .tailfield ] .hh.b0 = 29 ;
mem [(long) curlist .tailfield + 1 ] .hh .v.RH = 2 ;
mem [(long) curlist .tailfield + 1 ] .hh .v.LH = p ;
}
break ;
case 13 :
buildchoices () ;
break ;
case 9 :
{
unsave () ;
decr ( saveptr ) ;
mem [(long) savestack [ saveptr + 0 ] .cint ] .hh .v.RH = 3 ;
p = finmlist ( 0 ) ;
mem [(long) savestack [ saveptr + 0 ] .cint ] .hh .v.LH = p ;
if ( p != 0 )
if ( mem [(long) p ] .hh .v.RH == 0 )
if ( mem [(long) p ] .hh.b0 == 16 )
{
if ( mem [(long) p + 3 ] .hh .v.RH == 0 )
if ( mem [(long) p + 2 ] .hh .v.RH == 0 )
{
mem [(long) savestack [ saveptr + 0 ] .cint ] .hh = mem [(long) p + 1 ] .hh ;
freenode ( p , 4 ) ;
}
}
else if ( mem [(long) p ] .hh.b0 == 28 )
if ( savestack [ saveptr + 0 ] .cint == curlist .tailfield + 1 )
if ( mem [(long) curlist .tailfield ] .hh.b0 == 16 )
{
q = curlist .headfield ;
while ( mem [(long) q ] .hh .v.RH != curlist .tailfield ) q = mem [(long) q ] .hh
.v.RH ;
mem [(long) q ] .hh .v.RH = p ;
freenode ( curlist .tailfield , 4 ) ;
curlist .tailfield = p ;
}
}
break ;
default :
confusion ( 895 ) ;
break ;
}
}