-- file: TexRest2Impl.mesa -- Pascal-to-Mesa translator output, translated at September 27, 1985 10:21:38 am PDT DIRECTORY PascalBasic, PascalWizardFiles, TexTypes, TexSysdep, TexSysdepInline, TexInit, TexInteraction, TexMemory, TexSymbols, TexScan, TexOps, TexParagraph, TexBuildPage, TexRest; TexRest2Impl: PROGRAM IMPORTS PascalBasic, PascalWizardFiles, TexTypes, TexSysdep, TexSysdepInline, TexInit, TexInteraction, TexMemory, TexSymbols, TexScan, TexOps, TexParagraph, TexBuildPage, TexRest EXPORTS TexRest = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, TexTypes, TexSysdep, TexSysdepInline, TexInit, TexInteraction, TexMemory, TexSymbols, TexScan, TexOps, TexParagraph, TexBuildPage, TexRest; GetRToken: PROCEDURE = BEGIN DO {--Label20:--DO GetToken[]; IF CurTok#2592 THEN EXIT; ENDLOOP; IF(CurCs=0)OR ( INT[CurCs]>2758) THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[134];Print[1037]; END;BEGIN HelpPtr_5;HelpLine^[4]_1038; HelpLine^[3]_1039;HelpLine^[2]_1040;HelpLine^[1]_1041; HelpLine^[0]_1042; END;IF CurCs=0 THEN BackInput[];CurTok_6854; InsError[]; GOTO Label20; END;EXIT; EXITS Label20 => NULL} ENDLOOP; END;--:1215----1229:-- TrapZeroGlue: PROCEDURE = BEGIN IF(Mem[CurVal+1]^.Int=0)AND (Mem[CurVal+2]^.Int=0)AND (Mem[CurVal+3 ]^.Int=0) THEN BEGIN Mem[0]^.Hh.Rh_Mem[0]^.Hh.Rh+1; DeleteGlueRef[CurVal];CurVal_0; END; END;--:1229----1236: DoRegisterCommand: PROCEDURE[A: SmallNumber] = BEGIN L, Q, R, S:Halfword;P:PascalInteger[0..3]; Q_CurCmd;--1237: {{BEGIN IF Q#88 THEN BEGIN GetXToken[]; IF( INT[CurCmd]>=72)AND ( INT[CurCmd]<=75) THEN BEGIN L_CurChr;P_CurCmd-72; GOTO Label40; END;IF CurCmd#88 THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[134];Print[544]; END;PrintCmdChr[CurCmd,CurChr];Print[545]; PrintCmdChr[Q,0];BEGIN HelpPtr_1;HelpLine^[0]_1063; END;Error[]; GOTO Label10; END; END;P_CurChr;ScanEightBitInt[]; SELECT P FROM 0 =>L_CurVal+4817;1 =>L_CurVal+5221;2 =>L_CurVal+3044; 3 =>L_CurVal+3300; ENDCASE; END;EXITS Label40 => NULL};--:1237--IF Q=88 THEN ScanOptionalEquals [] ELSE IF ScanKeyword[1059] THEN NULL; ArithError_FALSE;IF INT[Q]<90 THEN--1238: IF INT[P]<2 THEN BEGIN IF P=0 THEN ScanInt [] ELSE ScanDimen[FALSE,FALSE,FALSE ];IF Q=89 THEN CurVal_CurVal+Eqtb^[L].Int; END ELSE BEGIN ScanGlue[P]; IF Q=89 THEN--1239:--BEGIN Q_NewSpec[CurVal];R_Eqtb^[L].Hh.Rh; DeleteGlueRef[CurVal];Mem[Q+1]^.Int_Mem[Q+1]^.Int+Mem[R+1]^.Int; IF Mem[Q+2]^.Int=0 THEN Mem[Q]^.Hh.B0_0; IF Mem[Q]^.Hh.B0=Mem[R]^.Hh.B0 THEN Mem[Q+2]^.Int_Mem[Q+2]^.Int+Mem[R+2]^. Int ELSE IF( INT[Mem[Q]^.Hh.B0]=4) THEN GeqWordDefine[L,CurVal] ELSE EqWordDefine[L ,CurVal] ELSE BEGIN TrapZeroGlue[]; IF( INT[A]>=4) THEN GeqDefine[L,116,CurVal] ELSE EqDefine[L,116,CurVal]; END; EXITS Label10 => NULL}; END;--:1236----1243:-- AlterAux: PROCEDURE = BEGIN C:Halfword; IF CurChr#ABS[CurList.ModeField] THEN ReportIllegalCase [] ELSE BEGIN C_CurChr;ScanOptionalEquals[]; IF C=1 THEN BEGIN ScanDimen[FALSE,FALSE,FALSE]; CurList.AuxField_CurVal; END ELSE BEGIN ScanInt[]; IF(CurVal<=0)OR (CurVal>32767) THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[134];Print[1064]; END;BEGIN HelpPtr_1;HelpLine^[0]_1065; END; IntError[CurVal]; END ELSE CurList.AuxField_CurVal; END; END; END; --:1243----1244:-- AlterPrevGraf: PROCEDURE = BEGIN P:PascalInteger[0..NestSize]; Nest^[NestPtr]_CurList;P_NestPtr; WHILE ABS[Nest^[P].ModeField]#1 DO P_P-1 ENDLOOP ;ScanOptionalEquals[]; ScanInt[];IF CurVal<0 THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[134];Print[807]; END;PrintEsc[393];BEGIN HelpPtr_1; HelpLine^[0]_1066; END;IntError[CurVal]; END ELSE BEGIN Nest^[P].PgField_CurVal;CurList_Nest^[NestPtr]; END; END;--:1244----1245:-- AlterPageSoFar: PROCEDURE = BEGIN C:PascalInteger[0..7]; C_CurChr;ScanOptionalEquals[];ScanDimen[FALSE,FALSE,FALSE]; PageSoFar^[C]_CurVal; END;--:1245----1246:-- AlterInteger: PROCEDURE = BEGIN C:PascalInteger[0..1]; C_CurChr;ScanOptionalEquals[];ScanInt[]; IF C=0 THEN DeadCycles_CurVal ELSE InsertPenalties_CurVal; END; --:1246----1247:-- AlterBoxDimen: PROCEDURE = BEGIN C:SmallNumber;B:EightBits; C_CurChr;ScanEightBitInt[];B_CurVal;ScanOptionalEquals[]; ScanDimen[FALSE,FALSE,FALSE]; IF Eqtb^[3822+B].Hh.Rh#0 THEN Mem[ INT[Eqtb^[3822+B].Hh.Rh]+C]^.Int_CurVal; END;--:1247----1257:-- NewFont: PROCEDURE[A: SmallNumber] = BEGIN U:Halfword;S:Scaled;F:InternalFontNumber;T:StrNumber; OldSetting:PascalInteger[0..21]; IF JobName=0 THEN OpenLogFile[];GetRToken[]; U_CurCs; IF INT[U]>=258 THEN T_Hash^[U].Rh ELSE IF INT[U]>=129 THEN IF U=257 THEN T_1070 ELSE T_ INT[U]-129 ELSE BEGIN OldSetting_Selector;Selector_21;Print[1070]; Print[ INT[U]-1];Selector_OldSetting; BEGIN IF INT[PoolPtr+1]>PoolSize THEN Overflow[129,PoolSize-InitPoolPtr] ; END;T_MakeString[]; END; IF( INT[A]>=4) THEN GeqDefine[U,86,0] ELSE EqDefine[U,86,0]; ScanOptionalEquals[];ScanFileName[];--1258:--NameInProgress_TRUE; IF ScanKeyword[1071] THEN--1259:--BEGIN ScanDimen[FALSE,FALSE,FALSE]; S_CurVal; IF(S<=0)OR (S>=134217728) THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[134];Print[1073]; END;PrintScaled[S];Print[1074]; BEGIN HelpPtr_2;HelpLine^[1]_1075;HelpLine^[0]_1076; END;Error[]; S_10*65536; END; END--:1259-- ELSE IF ScanKeyword[1072] THEN BEGIN ScanInt[]; S_-CurVal; IF(CurVal<=0)OR (CurVal>32768) THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[134];Print[414]; END;BEGIN HelpPtr_1;HelpLine^[0]_415; END; IntError[CurVal];S_-1000; END; END ELSE S_-1000; NameInProgress_FALSE--:1258--;--1260: {FOR i:INT IN [ INT[1 ].. INT[FontPtr ]] DO F _ i; IF StrEqStr[FontName^[F],CurName]AND StrEqStr[FontArea^[F],CurArea] THEN BEGIN IF S>0 THEN BEGIN IF S=FontSize^[F] THEN GOTO Label50; END ELSE IF FontSize^[F]=XnOverD[FontDsize^[F],-S,1000] THEN GOTO Label50; END--:1260-- ENDLOOP;F_ReadFontInfo[U,CurName,CurArea,S];EXITS Label50 => NULL};Eqtb^[U].Hh.Rh_F; Eqtb^[2768+F]_Eqtb^[U];Hash^[2768+F].Rh_T; END;--:1257----1265: NewInteraction: PROCEDURE = BEGIN PrintLn[];Interaction_CurChr;--75: IF Interaction=0 THEN Selector_16 ELSE Selector_17--:75--; IF JobName#0 THEN Selector_Selector+2; END;--:1265 PrefixedCommand: PROCEDURE = BEGIN A:SmallNumber; F:InternalFontNumber;J:Halfword;K:PascalInteger[0..FontMemSize];P, Q:Halfword; N:PascalInteger;E:PascalBoolean; A_0; {WHILE CurCmd=92 DO BEGIN IF NOT PascalODD[ A /CurChr] THEN A_ INT[A]+CurChr; --404:--DO GetXToken[]; IF(CurCmd#10)AND (CurCmd#0)--:404-- THEN EXIT; ENDLOOP; IF INT[CurCmd]<=69 THEN--1212:--BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[134];Print[1032]; END;PrintCmdChr[CurCmd,CurChr]; PrintChar[39];BEGIN HelpPtr_1;HelpLine^[0]_1033; END;BackError[]; GOTO Label10; END--:1212--; END ENDLOOP ;--1213: IF(CurCmd#96)AND ( PascalMODPower2Mask[A ,3]#0) THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[134];Print[544]; END;PrintEsc[1024];Print[1034]; PrintEsc[1025];Print[1035];PrintCmdChr[CurCmd,CurChr]; PrintChar[39];BEGIN HelpPtr_1;HelpLine^[0]_1036; END;Error[]; END--:1213 ;--1214: IF Eqtb^[4810].Int#0 THEN IF Eqtb^[4810].Int<0 THEN BEGIN IF( INT[A]>=4) THEN A _A-4; END ELSE BEGIN IF NOT ( INT[A]>=4) THEN A_A+4; END--:1214--; {SELECT CurCmd FROM--1217: 86 =>IF( INT[A]>=4) THEN GeqDefine[4078,119,CurChr] ELSE EqDefine[4078,119, CurChr];--:1217----1218: 96 =>BEGIN IF PascalODD[CurChr]AND NOT ( INT[A]>=4)AND (Eqtb^[4810].Int>=0) THEN A_A+4; E_( INT[CurChr]>=2);GetRToken[];P_CurCs;Q_ScanToks[TRUE,E]; IF( INT[A]>=4) THEN GeqDefine[P,110+( PascalMODPower2Mask[A ,3]),DefRef] ELSE EqDefine[P,110+( PascalMODPower2Mask[A ,3]),DefRef]; END;--:1218----1221:--93 =>BEGIN N_CurChr;GetRToken[]; P_CurCs;IF N=0 THEN BEGIN DO GetToken[]; IF CurCmd#10 THEN EXIT; ENDLOOP; IF CurTok=3133 THEN BEGIN GetToken[];IF CurCmd=10 THEN GetToken[]; END; END ELSE BEGIN GetToken[];Q_CurTok;GetToken[];BackInput[];CurTok_Q; BackInput[]; END; IF INT[CurCmd]>=110 THEN Mem[CurChr]^.Hh.Lh_Mem[CurChr]^.Hh.Lh+1; IF( INT[A]>=4) THEN GeqDefine[P,CurCmd,CurChr] ELSE EqDefine[P,CurCmd, CurChr]; END;--:1221----1224:--94 =>BEGIN N_CurChr;GetRToken[];P_CurCs; IF( INT[A]>=4) THEN GeqDefine[P,0,256] ELSE EqDefine[P,0,256]; ScanOptionalEquals[];SELECT N FROM 0 =>BEGIN ScanCharNum[]; IF( INT[A]>=4) THEN GeqDefine[P,67,CurVal] ELSE EqDefine[P,67,CurVal]; END; 1 =>BEGIN ScanFifteenBitInt[]; IF( INT[A]>=4) THEN GeqDefine[P,68,CurVal] ELSE EqDefine[P,68,CurVal]; END; ENDCASE =>BEGIN ScanEightBitInt[]; SELECT N FROM 0 =>IF( INT[A]>=4) THEN GeqDefine[P,67,CurVal] ELSE EqDefine[P,67, CurVal]; 1 =>IF( INT[A]>=4) THEN GeqDefine[P,68,CurVal] ELSE EqDefine[P,68,CurVal]; 2 =>IF( INT[A]>=4) THEN GeqDefine[P,72,4817+CurVal] ELSE EqDefine[P,72, 4817+CurVal]; 3 =>IF( INT[A]>=4) THEN GeqDefine[P,73,5221+CurVal] ELSE EqDefine[P,73, 5221+CurVal]; 4 =>IF( INT[A]>=4) THEN GeqDefine[P,74,3044+CurVal] ELSE EqDefine[P,74, 3044+CurVal]; 5 =>IF( INT[A]>=4) THEN GeqDefine[P,75,3300+CurVal] ELSE EqDefine[P,75, 3300+CurVal]; 6 =>IF( INT[A]>=4) THEN GeqDefine[P,71,3566+CurVal] ELSE EqDefine[P,71, 3566+CurVal]; ENDCASE; END ; END;--:1224----1225:--95 =>BEGIN ScanInt[];N_CurVal; IF NOT ScanKeyword[700] THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[134];Print[926]; END;BEGIN HelpPtr_2;HelpLine^[1]_1053; HelpLine^[0]_1054; END;Error[]; END;GetRToken[];P_CurCs;ReadToks[N,P]; IF( INT[A]>=4) THEN GeqDefine[P,110,CurVal] ELSE EqDefine[P,110,CurVal]; END; --:1225----1226:--70,71 =>BEGIN Q_CurCs; IF CurCmd=70 THEN BEGIN ScanEightBitInt[];P_3566+CurVal; END ELSE P_CurChr;ScanOptionalEquals[];--404:--DO GetXToken[]; IF(CurCmd#10)AND (CurCmd#0)--:404-- THEN EXIT; ENDLOOP;IF CurCmd#1 THEN--1227: BEGIN IF CurCmd=70 THEN BEGIN ScanEightBitInt[];CurCmd_71; CurChr_3566+CurVal; END; IF CurCmd=71 THEN BEGIN Q_Eqtb^[CurChr].Hh.Rh; IF Q=0 THEN IF( INT[A]>=4) THEN GeqDefine[P,100,0] ELSE EqDefine[P,100,0] ELSE BEGIN Mem[Q]^.Hh.Lh_Mem[Q]^.Hh.Lh+1; IF( INT[A]>=4) THEN GeqDefine[P,110,Q] ELSE EqDefine[P,110,Q]; END; GOTO Label30; END; END--:1227--;BackInput[];CurCs_Q;Q_ScanToks[FALSE,FALSE]; IF Mem[DefRef]^.Hh.Rh=0 THEN BEGIN IF( INT[A]>=4) THEN GeqDefine[P,100,0] ELSE EqDefine[P,100,0];BEGIN Mem[DefRef]^.Hh.Rh_Avail;Avail_DefRef; DynUsed_DynUsed-1; END; END ELSE BEGIN IF P=3557 THEN BEGIN Mem[Q]^.Hh.Rh_GetAvail[]; Q_Mem[Q]^.Hh.Rh;Mem[Q]^.Hh.Lh_637;Q_GetAvail[];Mem[Q]^.Hh.Lh_379; Mem[Q]^.Hh.Rh_Mem[DefRef]^.Hh.Rh;Mem[DefRef]^.Hh.Rh_Q; END; IF( INT[A]>=4) THEN GeqDefine[P,110,DefRef] ELSE EqDefine[P,110,DefRef]; END; END;--:1226----1228:--72 =>BEGIN P_CurChr;ScanOptionalEquals[];ScanInt[]; IF( INT[A]>=4) THEN GeqWordDefine[P,CurVal] ELSE EqWordDefine[P,CurVal]; END;73 =>BEGIN P_CurChr;ScanOptionalEquals[]; ScanDimen[FALSE,FALSE,FALSE]; IF( INT[A]>=4) THEN GeqWordDefine[P,CurVal] ELSE EqWordDefine[P,CurVal]; END;74,75 =>BEGIN P_CurChr;N_CurCmd;ScanOptionalEquals[]; IF N=75 THEN ScanGlue[3] ELSE ScanGlue[2];TrapZeroGlue[]; IF( INT[A]>=4) THEN GeqDefine[P,116,CurVal] ELSE EqDefine[P,116,CurVal]; END; --:1228----1232:--84 =>BEGIN--1233: IF CurChr=4127 THEN N_15 ELSE IF CurChr=4639 THEN N_32768 ELSE IF CurChr=4511 THEN N_32767 ELSE IF CurChr=5073 THEN N_16777215 ELSE N _127--:1233--;P_CurChr;ScanSevenBitInt[];P_P+CurVal; ScanOptionalEquals[];ScanInt[]; IF((CurVal<0)AND ( INT[P]<5073))OR (CurVal>N) THEN BEGIN BEGIN IF Interaction=3 THEN NULL;PrintNl[134];Print[1055]; END;PrintInt[CurVal]; IF INT[P]<5073 THEN Print[1056] ELSE Print[1057];PrintInt[N]; BEGIN HelpPtr_1;HelpLine^[0]_1058; END;Error[];CurVal_0; END; IF INT[P]<4639 THEN IF( INT[A]>=4) THEN GeqDefine[P,119,CurVal] ELSE EqDefine[P, 119,CurVal] ELSE IF INT[P]<5073 THEN IF( INT[A]>=4) THEN GeqDefine[P,119,CurVal] ELSE EqDefine[P,119,CurVal] ELSE IF( INT[A]>=4) THEN GeqWordDefine[P,CurVal ] ELSE EqWordDefine[P,CurVal]; END;--:1232----1234:--85 =>BEGIN P_CurChr; ScanFourBitInt[];P_P+CurVal;ScanOptionalEquals[];ScanFontIdent[]; IF( INT[A]>=4) THEN GeqDefine[P,119,CurVal] ELSE EqDefine[P,119,CurVal]; END; --:1234----1235:--88,89,90,91 =>DoRegisterCommand[A];--:1235----1241: 97 =>BEGIN ScanEightBitInt[]; IF( INT[A]>=4) THEN SaveStack^[SavePtr+0].Int_1073742080+CurVal ELSE SaveStack^[SavePtr+0].Int_1073741824+CurVal;ScanOptionalEquals[]; ScanBox[]; END;--:1241----1242:--78 =>AlterAux[];79 =>AlterPrevGraf[]; 80 =>AlterPageSoFar[];81 =>AlterInteger[];82 =>AlterBoxDimen[];--:1242----1248: 83 =>BEGIN ScanOptionalEquals[];ScanInt[];N_CurVal; IF N<=0 THEN P_0 ELSE BEGIN P_GetNode[2*N+1];Mem[P]^.Hh.Lh_N; FOR i:INT IN [ INT[1 ].. INT[N ]] DO J _ i; ScanDimen[FALSE,FALSE,FALSE]; Mem[P+ INT[2]*J-1]^.Int_CurVal;ScanDimen[FALSE,FALSE,FALSE]; Mem[P+ INT[2]*J]^.Int_CurVal; ENDLOOP; END; IF( INT[A]>=4) THEN GeqDefine[3556,117,P] ELSE EqDefine[3556,117,P]; END; --:1248----1252:--98 =>IF CurChr=1 THEN BEGIN NewPatterns[]; GOTO Label30; BEGIN IF Interaction=3 THEN NULL;PrintNl[134];Print[1067]; END;HelpPtr_0; Error[];DO GetToken[]; IF CurCmd=2 THEN EXIT; ENDLOOP; GOTO Label10; END ELSE BEGIN NewHyphExceptions[]; GOTO Label30; END;--:1252----1253: 76 =>BEGIN FindFontDimen[TRUE];K_CurVal;ScanOptionalEquals[]; ScanDimen[FALSE,FALSE,FALSE];FontInfo^[K].Int_CurVal; END; 77 =>BEGIN N_CurChr;ScanFontIdent[];F_CurVal;ScanOptionalEquals[]; ScanInt[];IF N=0 THEN HyphenChar^[F]_CurVal ELSE SkewChar^[F]_CurVal; END;--:1253----1256:--87 =>NewFont[A];--:1256----1264:--99 =>NewInteraction[]; --:1264-- ENDCASE =>Confusion[1031];EXITS Label30 => NULL};--1269: IF AfterToken#0 THEN BEGIN CurTok_AfterToken;BackInput[]; AfterToken_0; END--:1269--;EXITS Label10 => NULL}; END;--:1211----1270:-- DoAssignments: PROCEDURE = BEGIN {WHILE TRUE DO BEGIN--404:--DO GetXToken[]; IF(CurCmd#10)AND (CurCmd#0)--:404-- THEN EXIT; ENDLOOP;IF INT[CurCmd]<=69 THEN GOTO Label10; PrefixedCommand[]; END ENDLOOP ;EXITS Label10 => NULL}; END;--:1270----1275:-- OpenOrCloseIn: PROCEDURE = BEGIN C:PascalInteger[0..1];N:PascalInteger[0..15]; C_CurChr;ScanFourBitInt[];N_CurVal; IF ReadOpen^[N]#2 THEN BEGIN AClose[@ReadFile^[N]];ReadOpen^[N]_2; END; IF C#0 THEN BEGIN ScanOptionalEquals[];ScanFileName[]; IF CurExt=210 THEN CurExt_647; PackFileName[CurName,CurArea,CurExt]; IF AOpenIn[@ReadFile^[N]] THEN ReadOpen^[N]_1; END; END;--:1275----1279: IssueMessage: PROCEDURE = BEGIN OldSetting:PascalInteger[0..21];C:PascalInteger[0..1];S:StrNumber; C_CurChr;Mem[64988]^.Hh.Rh_ScanToks[FALSE,TRUE]; OldSetting_Selector;Selector_21;TokenShow[DefRef]; Selector_OldSetting;FlushList[DefRef]; BEGIN IF INT[PoolPtr+1]>PoolSize THEN Overflow[129,PoolSize-InitPoolPtr] ; END;S_MakeString[];IF C=0 THEN--1280: BEGIN IF TermOffset+( INT[StrStart^[S+1]]-StrStart^[S])>MaxPrintLine-2 THEN PrintLn [] ELSE IF( INT[TermOffset]>0)OR ( INT[FileOffset]>0) THEN PrintChar[32]; Print[S];PascalTextBREAK[file: @TermOut]; END--:1280-- ELSE--1283: BEGIN BEGIN IF Interaction=3 THEN NULL;PrintNl[134];Print[S]; END; IF Eqtb^[3565].Hh.Rh#0 THEN UseErrHelp_TRUE ELSE IF LongHelpSeen THEN BEGIN HelpPtr_1;HelpLine^[0]_1083; END ELSE BEGIN IF INT[Interaction]<3 THEN LongHelpSeen_TRUE; BEGIN HelpPtr_4;HelpLine^[3]_1084;HelpLine^[2]_1085; HelpLine^[1]_1086;HelpLine^[0]_1087; END; END;Error[];UseErrHelp_FALSE; END--:1283--;BEGIN StrPtr_StrPtr-1;PoolPtr_StrStart^[StrPtr]; END; END;--:1279----1288:-- ShiftCase: PROCEDURE = BEGIN B:Halfword;P:Halfword; T:Halfword;C:EightBits; B_CurChr;P_ScanToks[FALSE,FALSE]; P_Mem[DefRef]^.Hh.Rh;WHILE P#0 DO BEGIN--1289:--T_Mem[P]^.Hh.Lh; IF INT[T]<4225 THEN BEGIN IF INT[T]>=4096 THEN T_ INT[T]-1;C_ PascalMODPower2Mask[T ,255]; IF INT[C]<128 THEN IF Eqtb^[ INT[B]+C].Hh.Rh#0 THEN T_256*( PascalDIVPower2[T ,8])+Eqtb^[ INT[B]+C].Hh .Rh;IF INT[T]>=4096 THEN Mem[P]^.Hh.Lh_T+1 ELSE Mem[P]^.Hh.Lh_T; END--:1289--; P_Mem[P]^.Hh.Rh; END ENDLOOP ;BeginTokenList[Mem[DefRef]^.Hh.Rh,3]; BEGIN Mem[DefRef]^.Hh.Rh_Avail;Avail_DefRef;DynUsed_DynUsed-1; END; END;--:1288----1293:-- ShowWhatever: PROCEDURE = BEGIN P:Halfword; {SELECT CurChr FROM 3 =>BEGIN BeginDiagnostic[];ShowActivities[]; END; 1 =>--1296:--BEGIN ScanEightBitInt[];BeginDiagnostic[];PrintNl[1105]; PrintInt[CurVal];PrintChar[61]; IF Eqtb^[3822+CurVal].Hh.Rh=0 THEN Print[278] ELSE ShowBox[Eqtb^[ 3822+CurVal].Hh.Rh]; END--:1296--;0 =>--1294:--BEGIN GetToken[];PrintNl[1099]; IF CurCs#0 THEN BEGIN SprintCs[CurCs];PrintChar[61]; END; PrintMeaning[]; GOTO Label50; END--:1294--; ENDCASE =>--1297:--BEGIN P_TheToks[]; PrintNl[1099];TokenShow[64997];FlushList[Mem[64997]^.Hh.Rh]; GOTO Label50; END--:1297--;--1298:--EndDiagnostic[TRUE];BEGIN IF Interaction=3 THEN NULL; PrintNl[134];Print[1106]; END; IF Selector=19 THEN IF Eqtb^[4796].Int<=0 THEN BEGIN Selector_17; Print[1107];Selector_19; END--:1298--; EXITS Label50 => NULL};IF INT[Interaction]<3 THEN BEGIN HelpPtr_0;ErrorCount_ErrorCount-1; END ELSE IF Eqtb^[4796].Int>0 THEN BEGIN BEGIN HelpPtr_3; HelpLine^[2]_1094;HelpLine^[1]_1095;HelpLine^[0]_1096; END; END ELSE BEGIN BEGIN HelpPtr_5;HelpLine^[4]_1094;HelpLine^[3]_1095; HelpLine^[2]_1096;HelpLine^[1]_1097;HelpLine^[0]_1098; END; END;Error[]; END;--:1293----1302:-- GiveErrHelp: PROCEDURE = BEGIN TokenShow[Eqtb^[3565].Hh.Rh]; END;--:1284----1303:----524: TheRealTex: PROCEDURE = BEGIN --1337: {ENABLE Error9999 => GOTO Label9999;{ENABLE Error9998 => GOTO Label9998;History_3;RewriteTermOut[@TermOut]; SetBackgroundPriority[];--14:--Bad_0; IF( INT[HalfErrorLine]<30)OR ( INT[HalfErrorLine]>ErrorLine-15) THEN Bad_1; IF INT[MaxPrintLine]<60 THEN Bad_2;IF PascalMODPower2Mask[DviBufSize ,7]#0 THEN Bad_3; IF INT[1100]>65000 THEN Bad_4;IF INT[2129]>2500 THEN Bad_5;--:14----111: IF(MemMin#0)OR (MemMax#65000) THEN Bad_10; IF( INT[MemMin]>0)OR ( INT[MemMax]<65000) THEN Bad_10; IF( INT[0]>0)OR ( INT[255]<127) THEN Bad_11;IF( INT[0]>0)OR ( INT[65515]<32767) THEN Bad_12; IF( INT[0]<0)OR ( INT[255]>65515) THEN Bad_13; IF( INT[MemMin]<0)OR ( INT[MemMax]>=65515) THEN Bad_14; IF( INT[0]<0)OR ( INT[FontMax]>255) THEN Bad_15;IF INT[FontMax]>256 THEN Bad_16; IF( INT[SaveSize]>65515)OR ( INT[MaxStrings]>65515) THEN Bad_17; IF INT[BufSize]>65515 THEN Bad_18;IF INT[255]<255 THEN Bad_19;--:111----290: IF INT[7121]>65515 THEN Bad_21;--:290----1249: IF INT[2]*65515<65000-MemMin THEN Bad_41;--:1249 IF Bad>0 THEN BEGIN RewriteTermOut[@TermOut]; {PascalWriteLongString[file: @TermOut, item: "Ouch---my internal constants have been"] ; PascalWriteLongString[file: @TermOut, item: " clobbered!---case "]; PascalWriteInteger[file: @TermOut, item: Bad, fieldMinLength: 1]}; ERROR Error9999; END;Initialize[]; IF StartLikeInitex THEN BEGIN IF NOT GetStringsStarted [] THEN ERROR Error9999;InitPrim[]; END;--55:--Selector_17;Tally_0;TermOffset_0; FileOffset_0;--:55----61: PascalWriteLongString[file: @TermOut, item: "This is TeX 1.3 for Cedar 6.0"]; IF FormatIdent=0 THEN {PascalWriteLongString[file: @TermOut, item: " (no format preloaded)"]; PascalWriteLn[file: @TermOut]} ELSE BEGIN Print[FormatIdent];PrintLn[]; END;--:61----528:--JobName_0; NameInProgress_FALSE;--:528----533:--OutputFileName_0;--:533--BEGIN--331:--BEGIN InputPtr_0;MaxInStack_0;InOpen_0; MaxBufStack_0;ParamPtr_0;MaxParamStack_0; FOR i:INT IN [ INT[0 ].. INT[BufSize ]] DO First _ i; Buffer^[First]_0 ENDLOOP;ScannerStatus_0; WarningIndex_0;First_1;CurInput.StateField_33; CurInput.StartField_1;CurInput.IndexField_0;Line_0; CurInput.NameField_0;ForceEof_FALSE;AlignState_1000000; IF NOT InitTerminal [] THEN ERROR Error9999;CurInput.LimitField_Last; First_Last+1; END--:331--; IF(FormatIdent=0)OR (Buffer^[CurInput.LocField]=38) THEN BEGIN IF FormatIdent#0 THEN Initialize[];IF NOT OpenFmtFile [] THEN ERROR Error9999; IF NOT LoadFmtFile [] THEN BEGIN WClose[@FmtFile]; ERROR Error9999; END; WClose[@FmtFile]; WHILE( INT[CurInput.LocField]127) THEN CurInput.LimitField_ INT[CurInput.LimitField]-1 ELSE Buffer^[CurInput.LimitField]_Eqtb^[4815]. Int;FixDateAndTime[];--765:--MagicOffset_ INT[StrStart^[750]]-9*16--:765--; --75:--IF Interaction=0 THEN Selector_16 ELSE Selector_17--:75--; ReadProfileForDirectories[]; IF( INT[CurInput.LocField] NULL};CloseFilesAndTerminate[];EXITS Label9999 => NULL};SetNormalPriority[]; END; END.