-- file: TexBuildPage3Impl.mesa
-- Pascal-to-Mesa translator output, translated at September 27, 1985 10:21:38 am PDT


DIRECTORY
  PascalBasic,
  TexTypes,
  TexInteraction,
  TexMemory,
  TexSymbols,
  TexScan,
  TexDvi,
  TexOps,
  TexParagraph,
  TexBuildPage,
  TexMath,
  TexRest,
  TexSysdepInline;

TexBuildPage3Impl: PROGRAM IMPORTS PascalBasic, TexTypes, TexInteraction, TexMemory, TexSymbols, TexScan, TexDvi, TexOps, TexParagraph, TexBuildPage, TexMath, TexRest, TexSysdepInline EXPORTS TexBuildPage = PUBLIC
BEGIN OPEN PascalBasic, TexTypes, TexInteraction, TexMemory, TexSymbols, TexScan, TexDvi, TexOps, TexParagraph, TexBuildPage, TexMath, TexRest, TexSysdepInline;
 AppendGlue: PROCEDURE
 = 
BEGIN S:SmallNumber; S←CurChr;SELECT S FROM 0 =>CurVal←4;1 =>CurVal←8;
2 =>CurVal←12;3 =>CurVal←16;4 =>ScanGlue[2];5 =>ScanGlue[3]; ENDCASE;
BEGIN Mem[CurList.TailField]↑.Hh.Rh←NewGlue[CurVal];
CurList.TailField←Mem[CurList.TailField]↑.Hh.Rh; END;
IF  INT[S]>=4  THEN BEGIN Mem[CurVal]↑.Hh.Rh← INT[Mem[CurVal]↑.Hh.Rh]-1;
IF  INT[S]>4  THEN Mem[CurList.TailField]↑.Hh.B1←99; END; END;--:1060----1061:
 AppendKern: PROCEDURE = 
BEGIN S:Quarterword; S←CurChr;
ScanDimen[S=99,FALSE,FALSE];
BEGIN Mem[CurList.TailField]↑.Hh.Rh←NewKern[CurVal];
CurList.TailField←Mem[CurList.TailField]↑.Hh.Rh; END;
Mem[CurList.TailField]↑.Hh.B1←S; END;--:1061----1064:-- OffSave: PROCEDURE
 = 
BEGIN P:Halfword; IF CurGroup=0  THEN--1066:
BEGIN BEGIN IF Interaction=3  THEN NULL;PrintNl[134];Print[636]; END;
PrintCmdChr[CurCmd,CurChr];BEGIN HelpPtr←1;HelpLine↑[0]←896; END;
Error[]; END--:1066-- ELSE BEGIN BackInput[];P←GetAvail[];Mem[64997]↑.Hh.Rh←P;
BEGIN IF Interaction=3  THEN NULL;PrintNl[134];Print[486]; END;--1065:
SELECT CurGroup FROM 14 =>BEGIN Mem[P]↑.Hh.Lh←6856;PrintEsc[378]; END;
15 =>BEGIN Mem[P]↑.Hh.Lh←804;PrintChar[36]; END;
16 =>BEGIN Mem[P]↑.Hh.Lh←6857;Mem[P]↑.Hh.Rh←GetAvail[];P←Mem[P]↑.Hh.Rh;
Mem[P]↑.Hh.Lh←3118;PrintEsc[895]; END; ENDCASE =>BEGIN Mem[P]↑.Hh.Lh←637;
PrintChar[125]; END --:1065--;Print[487];
BeginTokenList[Mem[64997]↑.Hh.Rh,4];BEGIN HelpPtr←5;
HelpLine↑[4]←890;HelpLine↑[3]←891;HelpLine↑[2]←892;HelpLine↑[1]←893;
HelpLine↑[0]←894; END;Error[]; END; END;--:1064----1069:
 ExtraRightBrace: PROCEDURE = 
BEGIN BEGIN IF Interaction=3  THEN NULL;
PrintNl[134];Print[901]; END;SELECT CurGroup FROM 14 =>PrintEsc[378];
15 =>PrintChar[36];16 =>PrintEsc[735]; ENDCASE;BEGIN HelpPtr←5;
HelpLine↑[4]←902;HelpLine↑[3]←903;HelpLine↑[2]←904;HelpLine↑[1]←905;
HelpLine↑[0]←906; END;Error[];AlignState←AlignState+1; END;--:1069
--1070:-- 

 NormalParagraph: PROCEDURE = 
BEGIN IF Eqtb↑[4786].Int#0  THEN EqWordDefine[4786,0];
IF Eqtb↑[5218].Int#0  THEN EqWordDefine[5218,0];
IF Eqtb↑[4808].Int#1  THEN EqWordDefine[4808,1];
IF Eqtb↑[3556].Hh.Rh#0  THEN EqDefine[3556,117,0]; END;--:1070----1075:
 BoxEnd: PROCEDURE = 
BEGIN P:Halfword;
 IF SaveStack↑[SavePtr+0].Int<1073741824  THEN--1076:
BEGIN IF CurBox#0  THEN BEGIN Mem[CurBox+4]↑.Int←SaveStack↑[SavePtr+0
].Int;IF ABS[CurList.ModeField]=1  THEN BEGIN AppendToVlist[CurBox];
IF AdjustTail#0  THEN BEGIN IF 64995#AdjustTail  THEN BEGIN Mem[
CurList.TailField]↑.Hh.Rh←Mem[64995]↑.Hh.Rh;
CurList.TailField←AdjustTail; END;AdjustTail←0; END;
IF  INT[CurList.ModeField]>0  THEN BuildPage[];
 END  ELSE BEGIN IF ABS[CurList.ModeField]=101  THEN CurList.AuxField←
1000  ELSE BEGIN P←NewNoad[];Mem[P+1]↑.Hh.Rh←2;Mem[P+1]↑.Hh.Lh←CurBox;
CurBox←P; END;Mem[CurList.TailField]↑.Hh.Rh←CurBox;
CurList.TailField←CurBox; END; END; END--:1076
 ELSE IF SaveStack↑[SavePtr+0].Int<1073742336  THEN--1077:
IF SaveStack↑[SavePtr+0].Int<1073742080  THEN EqDefine[
-1073738002+SaveStack↑[SavePtr+0].Int,118,CurBox] ELSE GeqDefine[
-1073738258+SaveStack↑[SavePtr+0].Int,118,CurBox]--:1077
 ELSE IF CurBox#0  THEN IF SaveStack↑[SavePtr+0].Int>1073742336  THEN--
-- 1078:--BEGIN--404:--DO GetXToken[];
 IF(CurCmd#10)AND (CurCmd#0)--:404-- THEN EXIT; ENDLOOP;
IF((CurCmd=26)AND (ABS[CurList.ModeField]#1))OR ((CurCmd=27)AND (
ABS[CurList.ModeField]=1))OR ((CurCmd=28)AND (ABS[CurList.ModeField]=201)
) THEN BEGIN AppendGlue[];
Mem[CurList.TailField]↑.Hh.B1←SaveStack↑[SavePtr+0].Int-(1073742237);
Mem[CurList.TailField+1]↑.Hh.Rh←CurBox;
 END  ELSE BEGIN BEGIN IF Interaction=3  THEN NULL;PrintNl[134];Print[919]; END;
BEGIN HelpPtr←3;HelpLine↑[2]←920;HelpLine↑[1]←921;HelpLine↑[0]←922;
 END;BackError[];FlushNodeList[CurBox]; END; END--:1078
 ELSE ShipOut[CurBox]; END;--:1075----1079:-- BeginBox: PROCEDURE = 
BEGIN 
 P:Halfword;K:Halfword;N:EightBits;
 {SELECT CurChr FROM 0 =>BEGIN ScanEightBitInt[];
CurBox←Eqtb↑[3822+CurVal].Hh.Rh;Eqtb↑[3822+CurVal].Hh.Rh←0; END;
1 =>BEGIN ScanEightBitInt[];
CurBox←CopyNodeList[Eqtb↑[3822+CurVal].Hh.Rh]; END;2 =>--1080:
BEGIN CurBox←0;IF ABS[CurList.ModeField]=201  THEN BEGIN YouCant[];
BEGIN HelpPtr←1;HelpLine↑[0]←923; END;Error[];
 END  ELSE IF(CurList.ModeField=1)AND (CurList.HeadField=CurList.
TailField) THEN--1081:--BEGIN YouCant[];BEGIN HelpPtr←2;
HelpLine↑[1]←924;HelpLine↑[0]←925; END;Error[]; END--:1081
 ELSE BEGIN IF NOT ( INT[CurList.TailField]>=HiMemMin) THEN IF(Mem[CurList.
TailField]↑.Hh.B0=0)OR (Mem[CurList.TailField]↑.Hh.B0=1) THEN BEGIN P←
CurList.HeadField;CurBox←CurList.TailField;Mem[CurBox+4]↑.Int←0;
WHILE Mem[P]↑.Hh.Rh#CurList.TailField DO P←Mem[P]↑.Hh.Rh ENDLOOP ;
CurList.TailField←P;Mem[P]↑.Hh.Rh←0; END; END; END--:1080--;3 =>--1082:
BEGIN ScanEightBitInt[];N←CurVal;
IF  NOT ScanKeyword[700] THEN BEGIN BEGIN IF Interaction=3  THEN NULL;
PrintNl[134];Print[926]; END;BEGIN HelpPtr←2;HelpLine↑[1]←927;
HelpLine↑[0]←928; END;Error[]; END;ScanDimen[FALSE,FALSE,FALSE];
CurBox←Vsplit[N,CurVal]; END--:1082--; ENDCASE =>--1083:--BEGIN K← INT[CurChr]-4;
SavePtr←SavePtr+1;ScanSpec[];
IF K=101  THEN IF(SaveStack↑[SavePtr-3].Int<1073741824)AND (ABS[CurList.
ModeField]=1) THEN NewSaveLevel[3] ELSE NewSaveLevel[2] ELSE BEGIN IF
K=1  THEN NewSaveLevel[4] ELSE BEGIN NewSaveLevel[5];K←1; END;
NormalParagraph[]; END;PushNest[];CurList.ModeField←- INT[K];
IF K=1  THEN BEGIN CurList.AuxField←-65536000;
IF Eqtb↑[3562].Hh.Rh#0  THEN BeginTokenList[Eqtb↑[3562].Hh.Rh,11];
 END  ELSE BEGIN CurList.AuxField←1000;
IF Eqtb↑[3561].Hh.Rh#0  THEN BeginTokenList[Eqtb↑[3561].Hh.Rh,10]; END;
 GOTO Label10; END--:1083--;BoxEnd[];EXITS Label10 => NULL}; END;--:1079----1084:-- ScanBox: PROCEDURE
 = 
BEGIN--404:--DO GetXToken[]; IF(CurCmd#10)AND (CurCmd#0)--:404-- THEN EXIT; ENDLOOP;
IF CurCmd=20  THEN BeginBox [] ELSE IF(
SaveStack↑[SavePtr+0].Int>=1073742337)AND ((CurCmd=36)OR (CurCmd=35)) THEN BEGIN CurBox←
ScanRuleSpec[];BoxEnd[]; END  ELSE BEGIN BEGIN IF Interaction=3  THEN NULL;
PrintNl[134];Print[929]; END;BEGIN HelpPtr←3;HelpLine↑[2]←930;
HelpLine↑[1]←931;HelpLine↑[0]←932; END;BackError[]; END; END;--:1084
--1086:-- Package: PROCEDURE[C: SmallNumber] = 
BEGIN H:Scaled;P:Halfword;
D:Scaled; D←Eqtb↑[5208].Int;Unsave[];SavePtr←SavePtr-3;
IF CurList.ModeField=-101  THEN CurBox←Hpack[Mem[CurList.HeadField]↑
.Hh.Rh,SaveStack↑[SavePtr+2].Int,SaveStack↑[SavePtr+1].Int] ELSE BEGIN
CurBox←Vpackage[Mem[CurList.HeadField]↑.Hh.Rh,SaveStack↑[SavePtr+2].
Int,SaveStack↑[SavePtr+1].Int,D];IF C=4  THEN--1087:--BEGIN H←0;
P←Mem[CurBox+5]↑.Hh.Rh;
IF P#0  THEN IF  INT[Mem[P]↑.Hh.B0]<=2  THEN H←Mem[P+3]↑.Int;
Mem[CurBox+2]↑.Int←Mem[CurBox+2]↑.Int-H+Mem[CurBox+3]↑.Int;
Mem[CurBox+3]↑.Int←H; END--:1087--; END;PopNest[];BoxEnd[]; END;--:1086----1091:
 NewGraf: PROCEDURE[Indented: PascalBoolean] = 
BEGIN CurList.PgField←0;
IF(CurList.ModeField=1)OR (CurList.HeadField#CurList.TailField)
 THEN BEGIN Mem[CurList.TailField]↑.Hh.Rh←NewParamGlue[2];
CurList.TailField←Mem[CurList.TailField]↑.Hh.Rh; END;PushNest[];
CurList.ModeField←101;CurList.AuxField←1000;
IF Indented  THEN BEGIN CurList.TailField←NewNullBox[];
Mem[CurList.HeadField]↑.Hh.Rh←CurList.TailField;
Mem[CurList.TailField+1]↑.Int←Eqtb↑[5201].Int; END;
IF Eqtb↑[3558].Hh.Rh#0  THEN BeginTokenList[Eqtb↑[3558].Hh.Rh,7];
IF NestPtr=1  THEN BuildPage[]; END;--:1091----1093:
 IndentInHmode: PROCEDURE = 
BEGIN P, Q:Halfword;
 IF  INT[CurChr]>0  THEN BEGIN P←NewNullBox[];
Mem[P+1]↑.Int←Eqtb↑[5201].Int;
IF ABS[CurList.ModeField]=101  THEN CurList.AuxField←1000  ELSE BEGIN
Q←NewNoad[];Mem[Q+1]↑.Hh.Rh←2;Mem[Q+1]↑.Hh.Lh←P;P←Q; END;
BEGIN Mem[CurList.TailField]↑.Hh.Rh←P;
CurList.TailField←Mem[CurList.TailField]↑.Hh.Rh; END; END; END;--:1093
--1095:-- HeadForVmode: PROCEDURE
 = 
BEGIN IF  INT[CurList.ModeField]<0  THEN IF CurCmd#36  THEN OffSave [] ELSE
BEGIN BEGIN IF Interaction=3  THEN NULL;PrintNl[134];Print[544]; END;
PrintEsc[383];Print[935];BEGIN HelpPtr←2;HelpLine↑[1]←936;
HelpLine↑[0]←937; END;Error[]; END  ELSE BEGIN BackInput[];
CurTok←ParToken;BackInput[];CurInput.IndexField←4; END; END;--:1095
--1096:-- EndGraf: PROCEDURE
 = 
BEGIN IF CurList.ModeField=101  THEN BEGIN IF 
CurList.HeadField=CurList.TailField  THEN PopNest [] ELSE LineBreak[Eqtb↑[4773].Int];
NormalParagraph[];ErrorCount←0; END; END;--:1096----1099:
 BeginInsertOrAdjust: PROCEDURE
 = 
BEGIN IF CurCmd=38  THEN CurVal←255  ELSE BEGIN ScanEightBitInt[];
IF CurVal=255  THEN BEGIN BEGIN IF Interaction=3  THEN NULL;PrintNl[134];
Print[938]; END;PrintEsc[202];PrintInt[255];BEGIN HelpPtr←1;
HelpLine↑[0]←939; END;Error[];CurVal←0; END; END;
SaveStack↑[SavePtr+0].Int←CurVal;SavePtr←SavePtr+1;
NewSaveLevel[11];ScanLeftBrace[];NormalParagraph[];PushNest[];
CurList.ModeField←-1;CurList.AuxField←-65536000; END;--:1099----1101:
 MakeMark: PROCEDURE = 
BEGIN P:Halfword; P←ScanToks[FALSE,TRUE];
P←GetNode[2];Mem[P]↑.Hh.B0←4;Mem[P]↑.Hh.B1←0;Mem[P+1]↑.Int←DefRef;
Mem[CurList.TailField]↑.Hh.Rh←P;CurList.TailField←P; END;--:1101
--1103:-- AppendPenalty: PROCEDURE = 
BEGIN ScanInt[];
BEGIN Mem[CurList.TailField]↑.Hh.Rh←NewPenalty[CurVal];
CurList.TailField←Mem[CurList.TailField]↑.Hh.Rh; END;
IF CurList.ModeField=1  THEN BuildPage[]; END;--:1103----1105:
 Unpackage: PROCEDURE
 = 
BEGIN  P:Halfword;C:PascalInteger[0..1]; C←CurChr;ScanEightBitInt[];
P←Eqtb↑[3822+CurVal].Hh.Rh;{IF P=0  THEN  GOTO Label10;
IF(ABS[CurList.ModeField]=201)OR ((ABS[CurList.ModeField]=1)AND (Mem[P
]↑.Hh.B0#1))OR ((ABS[CurList.ModeField]=101)AND (Mem[P]↑.Hh.B0#0)) THEN
BEGIN BEGIN IF Interaction=3  THEN NULL;PrintNl[134];Print[950]; END;
BEGIN HelpPtr←3;HelpLine↑[2]←951;HelpLine↑[1]←952;HelpLine↑[0]←953;
 END;Error[]; GOTO Label10; END;
IF C=1  THEN Mem[CurList.TailField]↑.Hh.Rh←CopyNodeList[Mem[P+5]↑.Hh.
Rh] ELSE BEGIN Mem[CurList.TailField]↑.Hh.Rh←Mem[P+5]↑.Hh.Rh;
Eqtb↑[3822+CurVal].Hh.Rh←0;FreeNode[P,7]; END;
WHILE Mem[CurList.TailField]↑.Hh.Rh#0 DO CurList.TailField←Mem[
CurList.TailField]↑.Hh.Rh ENDLOOP ;EXITS Label10 => NULL}; END;--:1110----1113:
 AppendItalicCorrection: PROCEDURE = 
BEGIN  P:Halfword;
F:InternalFontNumber;
 {IF CurList.TailField#CurList.HeadField  THEN BEGIN IF( INT[CurList
.TailField]>=HiMemMin) THEN P←CurList.TailField  ELSE IF Mem[CurList
.TailField]↑.Hh.B0=6  THEN P←CurList.TailField+1  ELSE  GOTO Label10;
F←Mem[P]↑.Hh.B0;
BEGIN Mem[CurList.TailField]↑.Hh.Rh←NewKern[FontInfo↑[
 ItalicBase↑[F]+PascalDIVPower2[(FontInfo↑[CharBase↑[F]+Mem[P]↑.Hh.B1].Qqqq.B2),2]].Int];
CurList.TailField←Mem[CurList.TailField]↑.Hh.Rh; END;
Mem[CurList.TailField]↑.Hh.B1←1; END;EXITS Label10 => NULL}; END;--:1113----1117:
 AppendDiscretionary: PROCEDURE = 
BEGIN C:PascalInteger;
 BEGIN Mem[CurList.TailField]↑.Hh.Rh←NewDisc[];
CurList.TailField←Mem[CurList.TailField]↑.Hh.Rh; END;
IF CurChr=1  THEN BEGIN C←HyphenChar↑[Eqtb↑[4078].Hh.Rh];
IF C>=0  THEN IF C<256  THEN Mem[CurList.TailField+1]↑.Hh.Lh←
NewCharacter[Eqtb↑[4078].Hh.Rh,C]; END  ELSE BEGIN SavePtr←SavePtr+1;
SaveStack↑[SavePtr-1].Int←0;ScanLeftBrace[];NewSaveLevel[10];
PushNest[];CurList.ModeField←-101;CurList.AuxField←1000; END; END;
--:1117----1119:-- BuildDiscretionary: PROCEDURE = 
BEGIN 
 P, Q:Halfword;N:PascalInteger; 
 Unsave[];--1121:--Q←CurList.HeadField;
P←Mem[Q]↑.Hh.Rh;N←0;
{WHILE P#0 DO BEGIN IF NOT ( INT[P]>=HiMemMin) THEN IF  INT[Mem[P]↑.Hh.B0]>2  THEN IF
Mem[P]↑.Hh.B0#11  THEN IF Mem[P]↑.Hh.B0#6  THEN BEGIN BEGIN IF Interaction
=3  THEN NULL;PrintNl[134];Print[960]; END;BEGIN HelpPtr←1;
HelpLine↑[0]←961; END;Error[];BeginDiagnostic[];PrintNl[962];ShowBox[P];
EndDiagnostic[TRUE];FlushNodeList[P];Mem[Q]↑.Hh.Rh←0; GOTO Label30; END;
Q←P;P←Mem[Q]↑.Hh.Rh;N←N+1; END ENDLOOP ;EXITS Label30 => NULL};--:1121--P←Mem[CurList.HeadField]↑.Hh.Rh;PopNest[];
{SELECT SaveStack↑[SavePtr-1].Int FROM 0 =>Mem[CurList.TailField+1]↑.Hh.Lh←P
;1 =>Mem[CurList.TailField+1]↑.Hh.Rh←P;2 =>--1120:
BEGIN IF(N>0)AND (ABS[CurList.ModeField]=201) THEN BEGIN BEGIN IF
Interaction=3  THEN NULL;PrintNl[134];Print[954]; END;PrintEsc[220];
BEGIN HelpPtr←2;HelpLine↑[1]←955;HelpLine↑[0]←956; END;
FlushNodeList[P];N←0;Error[];
 END  ELSE Mem[CurList.TailField]↑.Hh.Rh←P;
IF N<128  THEN Mem[CurList.TailField]↑.Hh.B1←N  ELSE BEGIN BEGIN IF
Interaction=3  THEN NULL;PrintNl[134];Print[957]; END;BEGIN HelpPtr←2;
HelpLine↑[1]←958;HelpLine↑[0]←959; END;Error[]; END;
IF N>0  THEN CurList.TailField←Q;SavePtr←SavePtr-1; GOTO Label10;
 END--:1120--; ENDCASE;SaveStack↑[SavePtr-1].Int←SaveStack↑[SavePtr-1].Int+1;
ScanLeftBrace[];NewSaveLevel[10];PushNest[];CurList.ModeField←-101;
CurList.AuxField←1000;EXITS Label10 => NULL}; END;--:1119----1123:-- MakeAccent: PROCEDURE
 = 
BEGIN S, T:PascalReal;P, Q, R:Halfword;F:InternalFontNumber;A, H, X, W, Delta:Scaled;
I:FourQuarters; ScanCharNum[];F←Eqtb↑[4078].Hh.Rh;
P←NewCharacter[F,CurVal];
IF P#0  THEN BEGIN X←FontInfo↑[5+ParamBase↑[F]].Int;
S←PascalFLOAT[FontInfo↑[1+ParamBase↑[F]].Int]/65536.0;
A←FontInfo↑[WidthBase↑[F]+FontInfo↑[CharBase↑[F]+Mem[P]↑.Hh.B1].Qqqq.B0]
.Int;DoAssignments[];--1124:--Q←0;F←Eqtb↑[4078].Hh.Rh;
IF(CurCmd=11)OR (CurCmd=12)OR (CurCmd=67) THEN Q←NewCharacter[F,
CurChr] ELSE IF CurCmd=16  THEN BEGIN ScanCharNum[];
Q←NewCharacter[F,CurVal]; END  ELSE BackInput--:1124--[];
IF Q#0  THEN--1125:--BEGIN T←PascalFLOAT[FontInfo↑[1+ParamBase↑[F]].Int]/65536.0;
I←FontInfo↑[CharBase↑[F]+Mem[Q]↑.Hh.B1].Qqqq;
W←FontInfo↑[WidthBase↑[F]+I.B0].Int;
H←FontInfo↑[ HeightBase↑[F]+PascalDIVPower2[(I.B1),4]].Int;
IF H#X  THEN BEGIN P←Hpack[P,0,1];Mem[P+4]↑.Int←X-H; END;
Delta←PascalROUND[PascalFLOAT[(W-A)]/2.0+PascalFLOAT[H]*T-PascalFLOAT[X]*S];R←NewKern[Delta];Mem[R]↑.Hh.B1←1;
Mem[CurList.TailField]↑.Hh.Rh←R;Mem[R]↑.Hh.Rh←P;
CurList.TailField←NewKern[-A-Delta];
Mem[CurList.TailField]↑.Hh.B1←1;Mem[P]↑.Hh.Rh←CurList.TailField;
P←Q; END--:1125--;Mem[CurList.TailField]↑.Hh.Rh←P;
CurList.TailField←P;CurList.AuxField←1000; END; END;--:1123----1127:
 HandleRightBrace: PROCEDURE = 
BEGIN P, Q:Halfword;D:Scaled;F:PascalInteger;
 SELECT CurGroup FROM 1 =>Unsave[];0 =>BEGIN BEGIN IF Interaction=3  THEN NULL;
PrintNl[134];Print[897]; END;BEGIN HelpPtr←2;HelpLine↑[1]←898;
HelpLine↑[0]←899; END;Error[]; END;14,15,16 =>ExtraRightBrace[];--1085:
2 =>Package[0];3 =>BEGIN AdjustTail←64995;Package[0]; END;4 =>BEGIN EndGraf[];
Package[0]; END;5 =>BEGIN EndGraf[];Package[4]; END;--:1085----1100:
11 =>BEGIN EndGraf[];Q←Eqtb↑[3036].Hh.Rh;Mem[Q]↑.Hh.Rh←Mem[Q]↑.Hh.Rh+1;
D←Eqtb↑[5207].Int;F←Eqtb↑[4809].Int;Unsave[];SavePtr←SavePtr-1;
P←Vpackage[Mem[CurList.HeadField]↑.Hh.Rh,0,1,1073741823];PopNest[];
IF SaveStack↑[SavePtr+0].Int<255  THEN BEGIN BEGIN Mem[CurList.
TailField]↑.Hh.Rh←GetNode[5];
CurList.TailField←Mem[CurList.TailField]↑.Hh.Rh; END;
Mem[CurList.TailField]↑.Hh.B0←3;
Mem[CurList.TailField]↑.Hh.B1←SaveStack↑[SavePtr+0].Int;
Mem[CurList.TailField+3]↑.Int←Mem[P+3]↑.Int+Mem[P+2]↑.Int;
Mem[CurList.TailField+4]↑.Hh.Lh←Mem[P+5]↑.Hh.Rh;
Mem[CurList.TailField+4]↑.Hh.Rh←Q;Mem[CurList.TailField+2]↑.Int←D;
Mem[CurList.TailField+1]↑.Int←F;
 END  ELSE BEGIN BEGIN Mem[CurList.TailField]↑.Hh.Rh←GetNode[2];
CurList.TailField←Mem[CurList.TailField]↑.Hh.Rh; END;
Mem[CurList.TailField]↑.Hh.B0←5;Mem[CurList.TailField]↑.Hh.B1←0;
Mem[CurList.TailField+1]↑.Int←Mem[P+5]↑.Hh.Rh;DeleteGlueRef[Q]; END;
FreeNode[P,7];IF NestPtr=0  THEN BuildPage[]; END;8 =>--1026:
BEGIN IF CurInput.LocField#0  THEN--1027:
BEGIN BEGIN IF Interaction=3  THEN NULL;PrintNl[134];Print[863]; END;
BEGIN HelpPtr←2;HelpLine↑[1]←864;HelpLine↑[0]←865; END;Error[];
DO GetToken[]; IF CurInput.LocField=0 THEN EXIT; ENDLOOP; END--:1027--;EndTokenList[];
EndGraf[];Unsave[];OutputActive←FALSE;InsertPenalties←0;--1028:
IF Eqtb↑[4077].Hh.Rh#0  THEN BEGIN BEGIN IF Interaction=3  THEN NULL;
PrintNl[134];Print[866]; END;PrintEsc[277];PrintInt[255];
BEGIN HelpPtr←3;HelpLine↑[2]←867;HelpLine↑[1]←868;HelpLine↑[0]←869;
 END;BoxError[255]; END--:1028--;
IF CurList.TailField#CurList.HeadField  THEN BEGIN Mem[PageTail]↑.Hh
.Rh←Mem[CurList.HeadField]↑.Hh.Rh;PageTail←CurList.TailField; END;
IF Mem[64998]↑.Hh.Rh#0  THEN BEGIN IF Mem[64999]↑.Hh.Rh=0  THEN Nest↑[0].
TailField←PageTail;Mem[PageTail]↑.Hh.Rh←Mem[64999]↑.Hh.Rh;
Mem[64999]↑.Hh.Rh←Mem[64998]↑.Hh.Rh;Mem[64998]↑.Hh.Rh←0;PageTail←64998;
 END;PopNest[];BuildPage[]; END--:1026--;--:1100----1118:--10 =>BuildDiscretionary[];
--:1118----1132:--6 =>BEGIN BackInput[];CurTok←6855;
BEGIN IF Interaction=3  THEN NULL;PrintNl[134];Print[486]; END;PrintEsc[757];
Print[487];BEGIN HelpPtr←1;HelpLine↑[0]←978; END;InsError[]; END;--:1132
--1133:--7 =>BEGIN EndGraf[];Unsave[];AlignPeek[]; END;--:1133----1168:
12 =>BEGIN EndGraf[];Unsave[];SavePtr←SavePtr-2;
P←Vpackage[Mem[CurList.HeadField]↑.Hh.Rh,SaveStack↑[SavePtr+1].Int,
SaveStack↑[SavePtr+0].Int,1073741823];PopNest[];
BEGIN Mem[CurList.TailField]↑.Hh.Rh←NewNoad[];
CurList.TailField←Mem[CurList.TailField]↑.Hh.Rh; END;
Mem[CurList.TailField]↑.Hh.B0←29;Mem[CurList.TailField+1]↑.Hh.Rh←2;
Mem[CurList.TailField+1]↑.Hh.Lh←P; END;--:1168----1173:--13 =>BuildChoices[];
--:1173----1186:--9 =>BEGIN Unsave[];SavePtr←SavePtr-1;
Mem[SaveStack↑[SavePtr+0].Int]↑.Hh.Rh←3;P←FinMlist[0];
Mem[SaveStack↑[SavePtr+0].Int]↑.Hh.Lh←P;
IF P#0  THEN IF Mem[P]↑.Hh.Rh=0  THEN IF Mem[P]↑.Hh.B0=16  THEN BEGIN IF Mem
[P+3]↑.Hh.Rh=0  THEN IF Mem[P+2]↑.Hh.Rh=0  THEN BEGIN Mem[SaveStack↑
[SavePtr+0].Int]↑.Hh←Mem[P+1]↑.Hh;FreeNode[P,4]; END;
 END  ELSE IF Mem[P]↑.Hh.B0=28  THEN IF SaveStack↑[SavePtr+0].Int=CurList.
TailField+1  THEN IF Mem[CurList.TailField]↑.Hh.B0=16  THEN--1187:
BEGIN Q←CurList.HeadField;
WHILE Mem[Q]↑.Hh.Rh#CurList.TailField DO Q←Mem[Q]↑.Hh.Rh ENDLOOP ;
Mem[Q]↑.Hh.Rh←P;FreeNode[CurList.TailField,4];CurList.TailField←P;
 END--:1187--; END;--:1186-- ENDCASE =>Confusion[900]; END;--:1068

END.