-- 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.