-- file: TexInitImpl.mesa -- Pascal-to-Mesa translator output, translated at September 27, 1985 10:21:36 am PDT DIRECTORY PascalBasic, PascalWizardFiles, TexTypes, TexInit, TexSysdep, TexSysdepInline, TexInteraction, TexMemory, TexSymbols, TexScan, TexDvi, TexOps, TexParagraph, TexBuildPage, TexRest; TexInitImpl: PROGRAM IMPORTS PascalBasic, PascalWizardFiles, TexTypes, TexSysdep, TexSysdepInline, TexInteraction, TexMemory, TexSymbols, TexDvi, TexOps, TexParagraph, TexBuildPage, TexRest EXPORTS TexInit = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, TexTypes, TexInit, TexSysdep, TexSysdepInline, TexInteraction, TexMemory, TexSymbols, TexScan, TexDvi, TexOps, TexParagraph, TexBuildPage, TexRest; --:1399----13:-- Bad: PascalInteger; --:1400-- Initialize: PROCEDURE = BEGIN--19:--I:PascalInteger[0..255];--:19----163:--K:PascalInteger;--:163----927:--Z:HyphPointer;--:927 --8:----21:--Xchr^[32]_' ;Xchr^[33]_'!;Xchr^[34]_'";Xchr^[35]_'#; Xchr^[36]_'$;Xchr^[37]_'%;Xchr^[38]_'&;Xchr^[39]_'';Xchr^[40]_'(; Xchr^[41]_');Xchr^[42]_'*;Xchr^[43]_'+;Xchr^[44]_',;Xchr^[45]_'-; Xchr^[46]_'.;Xchr^[47]_'/;Xchr^[48]_'0;Xchr^[49]_'1;Xchr^[50]_'2; Xchr^[51]_'3;Xchr^[52]_'4;Xchr^[53]_'5;Xchr^[54]_'6;Xchr^[55]_'7; Xchr^[56]_'8;Xchr^[57]_'9;Xchr^[58]_':;Xchr^[59]_';;Xchr^[60]_'<; Xchr^[61]_'=;Xchr^[62]_'>;Xchr^[63]_'?;Xchr^[64]_'@;Xchr^[65]_'A; Xchr^[66]_'B;Xchr^[67]_'C;Xchr^[68]_'D;Xchr^[69]_'E;Xchr^[70]_'F; Xchr^[71]_'G;Xchr^[72]_'H;Xchr^[73]_'I;Xchr^[74]_'J;Xchr^[75]_'K; Xchr^[76]_'L;Xchr^[77]_'M;Xchr^[78]_'N;Xchr^[79]_'O;Xchr^[80]_'P; Xchr^[81]_'Q;Xchr^[82]_'R;Xchr^[83]_'S;Xchr^[84]_'T;Xchr^[85]_'U; Xchr^[86]_'V;Xchr^[87]_'W;Xchr^[88]_'X;Xchr^[89]_'Y;Xchr^[90]_'Z; Xchr^[91]_'[;Xchr^[92]_'\\;Xchr^[93]_'];Xchr^[94]_'^;Xchr^[95]_'_; Xchr^[96]_'`;Xchr^[97]_'a;Xchr^[98]_'b;Xchr^[99]_'c;Xchr^[100]_'d; Xchr^[101]_'e;Xchr^[102]_'f;Xchr^[103]_'g;Xchr^[104]_'h; Xchr^[105]_'i;Xchr^[106]_'j;Xchr^[107]_'k;Xchr^[108]_'l; Xchr^[109]_'m;Xchr^[110]_'n;Xchr^[111]_'o;Xchr^[112]_'p; Xchr^[113]_'q;Xchr^[114]_'r;Xchr^[115]_'s;Xchr^[116]_'t; Xchr^[117]_'u;Xchr^[118]_'v;Xchr^[119]_'w;Xchr^[120]_'x; Xchr^[121]_'y;Xchr^[122]_'z;Xchr^[123]_'{;Xchr^[124]_'|; Xchr^[125]_'};Xchr^[126]_'~;Xchr^[0]_' ;Xchr^[127]_' ;--:21----23: FOR i:INT IN [ INT[1 ].. INT[31 ]] DO I _ i; Xchr^[I]_PascalCHR[I] ENDLOOP;--:23----24: FOR i:INT IN [ INT[0 ].. INT[255 ]] DO I _ i; Xord^[PascalCHR[I]]_127 ENDLOOP; FOR i:INT IN [ INT[1 ].. INT[126 ]] DO I _ i; Xord^[Xchr^[I]]_I ENDLOOP;--:24----74:--Interaction_3;--:74----77: DeletionsAllowed_TRUE;ErrorCount_0;--:77----80:--HelpPtr_0; UseErrHelp_FALSE;--:80----97:--Interrupt_0;OkToInterrupt_TRUE;--:97 --166:--WasMemEnd_MemMin;WasLoMax_MemMin;WasHiMin_MemMax; Panicking_FALSE;--:166----215:--NestPtr_0;MaxNestStack_0; CurList.ModeField_1;CurList.HeadField_64999; CurList.TailField_64999;CurList.AuxField_-65536000; CurList.MlField_0;CurList.PgField_0;ShownMode_0;--991: PageContents_0;PageTail_64998;Mem[64998]^.Hh.Rh_0;LastGlue_65515; LastPenalty_0;LastKern_0;PageSoFar^[7]_0;PageMaxDepth_0--:991--; --:215----254:--FOR i:INT IN [ INT[4767 ].. INT[5476 ]] DO K _ i; XeqLevel^[K]_1 ENDLOOP;--:254----257: NoNewControlSequence_TRUE;Hash^[258].Lh_0;Hash^[258].Rh_0; FOR i:INT IN [ INT[259 ].. INT[3024 ]] DO K _ i; Hash^[K]_Hash^[258] ENDLOOP;--:257----272:--SavePtr_0; CurLevel_1;CurGroup_0;CurBoundary_0;MaxSaveStack_0;--:272----287: MagSet_0;--:287----383:--CurMark^[0]_0;CurMark^[1]_0;CurMark^[2]_0; CurMark^[3]_0;CurMark^[4]_0;--:383----439:--CurVal_0;CurValLevel_0; Radix_0;--:439----481:--FOR i:INT IN [ INT[0 ].. INT[16 ]] DO K _ i; ReadOpen^[K]_2 ENDLOOP;--:481----490: CondPtr_0;IfLimit_0;CurIf_0;IfLine_0;--:490----551: FOR i:INT IN [ INT[0 ].. INT[FontMax ]] DO K _ i; FontUsed^[K]_FALSE ENDLOOP;--:551----556: NullCharacter.B0_0;NullCharacter.B1_0;NullCharacter.B2_0; NullCharacter.B3_0;--:556----593:--TotalPages_0;MaxV_0;MaxH_0; MaxPush_0;LastBop_-1;DoingLeaders_FALSE;DeadCycles_0;--:593 --596:--HalfBuf_ PascalDIVPower2[DviBufSize ,1];DviLimit_DviBufSize;DviPtr_0; DviOffset_0;DviGone_0;--:596----606:--DownPtr_0;RightPtr_0;--:606 --648:--AdjustTail_0;--:648----662:--PackBeginLine_0;--:662----685: EmptyField.Rh_0;EmptyField.Lh_0;NullDelimiter.B0_0; NullDelimiter.B1_0;NullDelimiter.B2_0;NullDelimiter.B3_0;--:685 --771:--AlignPtr_0;CurAlign_0;CurSpan_0;CurLoop_0;CurHead_0; CurTail_0;--:771----928:--FOR i:INT IN [ INT[0 ].. INT[307 ]] DO Z _ i; HyphWord^[Z]_0; HyphList^[Z]_0; ENDLOOP;HyphCount_0;--:928----990:--OutputActive_FALSE; InsertPenalties_0;--:990----1267:--AfterToken_0;--:1267----1282: LongHelpSeen_FALSE;--:1282----1300:--FormatIdent_0;--:1300----1343: FOR i:INT IN [ INT[0 ].. INT[17 ]] DO K _ i; WriteOpen^[K]_FALSE ENDLOOP;--:1343 IF StartLikeInitex THEN BEGIN--164:-- FOR i:INT IN [ INT[1 ].. INT[19 ]] DO K _ i; Mem[K]^.Int_0 ENDLOOP; K_0;WHILE K<=19 DO BEGIN Mem[K]^.Hh.Rh_1;Mem[K]^.Hh.B0_0; Mem[K]^.Hh.B1_0;K_K+4; END ENDLOOP ;Mem[6]^.Int_65536;Mem[4]^.Hh.B0_1; Mem[10]^.Int_65536;Mem[8]^.Hh.B0_2;Mem[14]^.Int_65536;Mem[12]^.Hh.B0_1; Mem[15]^.Int_65536;Mem[12]^.Hh.B1_1;Mem[18]^.Int_-65536; Mem[16]^.Hh.B0_1;Rover_20;Mem[Rover]^.Hh.Rh_65515; Mem[Rover]^.Hh.Lh_1000;Mem[Rover+1]^.Hh.Lh_Rover; Mem[Rover+1]^.Hh.Rh_Rover;LoMemMax_ INT[Rover]+1000; Mem[LoMemMax]^.Hh.Rh_0;Mem[LoMemMax]^.Hh.Lh_0; FOR i:INT IN [ INT[64987 ].. INT[65000 ]] DO K _ i; Mem[K]^_Mem[LoMemMax]^ ENDLOOP;--790: Mem[64990]^.Hh.Lh_6859;--:790----797:--Mem[64991]^.Hh.Rh_256; Mem[64991]^.Hh.Lh_0;--:797----820:--Mem[64994]^.Hh.B0_1; Mem[64995]^.Hh.Lh_65515;Mem[64994]^.Hh.B1_0;--:820----981: Mem[65000]^.Hh.B1_255;Mem[65000]^.Hh.B0_1;Mem[65000]^.Hh.Rh_65000;--:981 --988:--Mem[64998]^.Hh.B0_10;Mem[64998]^.Hh.B1_0;--:988--Avail_0; MemEnd_65000;HiMemMin_64987;VarUsed_20;DynUsed_-12;--:164----222: Eqtb^[3025].Hh.B0_100;Eqtb^[3025].Hh.Rh_0;Eqtb^[3025].Hh.B1_0; FOR i:INT IN [ INT[1 ].. INT[3024 ]] DO K _ i; Eqtb^[K]_Eqtb^[3025] ENDLOOP;--:222----228:--Eqtb^[3026].Hh.Rh_0; Eqtb^[3026].Hh.B1_1;Eqtb^[3026].Hh.B0_116; FOR i:INT IN [ INT[3027 ].. INT[3555 ]] DO K _ i; Eqtb^[K]_Eqtb^[3026] ENDLOOP; Mem[0]^.Hh.Rh_ INT[Mem[0]^.Hh.Rh]+530;--:228----232:--Eqtb^[3556].Hh.Rh_0; Eqtb^[3556].Hh.B0_117;Eqtb^[3556].Hh.B1_1; FOR i:INT IN [ INT[3557 ].. INT[3821 ]] DO K _ i; Eqtb^[K]_Eqtb^[3025] ENDLOOP;Eqtb^[3822].Hh.Rh_0; Eqtb^[3822].Hh.B0_118;Eqtb^[3822].Hh.B1_1; FOR i:INT IN [ INT[3823 ].. INT[4077 ]] DO K _ i; Eqtb^[K]_Eqtb^[3822] ENDLOOP;Eqtb^[4078].Hh.Rh_0; Eqtb^[4078].Hh.B0_119;Eqtb^[4078].Hh.B1_1; FOR i:INT IN [ INT[4079 ].. INT[4126 ]] DO K _ i; Eqtb^[K]_Eqtb^[4078] ENDLOOP;Eqtb^[4127].Hh.Rh_0; Eqtb^[4127].Hh.B0_119;Eqtb^[4127].Hh.B1_1; FOR i:INT IN [ INT[4128 ].. INT[4766 ]] DO K _ i; Eqtb^[K]_Eqtb^[4127] ENDLOOP; FOR i:INT IN [ INT[0 ].. INT[127 ]] DO K _ i; Eqtb^[4127+K].Hh.Rh_12;Eqtb^[4639+K].Hh.Rh_K; Eqtb^[4511+K].Hh.Rh_1000; ENDLOOP;Eqtb^[4140].Hh.Rh_5;Eqtb^[4159].Hh.Rh_10; Eqtb^[4219].Hh.Rh_0;Eqtb^[4164].Hh.Rh_14;Eqtb^[4254].Hh.Rh_15; Eqtb^[4127].Hh.Rh_9;FOR i:INT IN [ INT[48 ].. INT[57 ]] DO K _ i; Eqtb^[4639+K].Hh.Rh_K+28672 ENDLOOP; FOR i:INT IN [ INT[65 ].. INT[90 ]] DO K _ i; Eqtb^[4127+K].Hh.Rh_11; Eqtb^[4127+K+32].Hh.Rh_11;Eqtb^[4639+K].Hh.Rh_K+28928; Eqtb^[4639+K+32].Hh.Rh_K+28960;Eqtb^[4255+K].Hh.Rh_K+32; Eqtb^[4255+K+32].Hh.Rh_K+32;Eqtb^[4383+K].Hh.Rh_K; Eqtb^[4383+K+32].Hh.Rh_K;Eqtb^[4511+K].Hh.Rh_999; ENDLOOP;--:232----240: FOR i:INT IN [ INT[4767 ].. INT[5072 ]] DO K _ i; Eqtb^[K].Int_0 ENDLOOP;Eqtb^[4784].Int_1000; Eqtb^[4768].Int_10000;Eqtb^[4808].Int_1;Eqtb^[4807].Int_25; Eqtb^[4812].Int_92;Eqtb^[4815].Int_13; FOR i:INT IN [ INT[0 ].. INT[127 ]] DO K _ i; Eqtb^[5073+K].Int_-1 ENDLOOP;Eqtb^[5119].Int_0;--:240----250: FOR i:INT IN [ INT[5201 ].. INT[5476 ]] DO K _ i; Eqtb^[K].Int_0 ENDLOOP;--:250----258:--HashUsed_2758; CsCount_0;Eqtb^[2767].Hh.B0_115;Hash^[2767].Rh_364;--:258----552: FontPtr_0;FmemPtr_7;FontName^[0]_658;FontArea^[0]_210; HyphenChar^[0]_45;SkewChar^[0]_-1;FontBc^[0]_1;FontEc^[0]_0; FontSize^[0]_0;FontDsize^[0]_0;CharBase^[0]_0;WidthBase^[0]_0; HeightBase^[0]_0;DepthBase^[0]_0;ItalicBase^[0]_0; LigKernBase^[0]_0;KernBase^[0]_0;ExtenBase^[0]_0;FontGlue^[0]_0; FontParams^[0]_7;ParamBase^[0]_-1; FOR i:INT IN [ INT[0 ].. INT[6 ]] DO K _ i; FontInfo^[K].Int_0 ENDLOOP;--:552----952:--TrieOpPtr_0; Trie^[0].Rh_0;Trie^[0].B1_0;Trie^[0].B0_0; FOR i:INT IN [ INT[1 ].. INT[127 ]] DO K _ i; Trie^[K]_Trie^[0] ENDLOOP;TrieMax_127;--:952----1216: Hash^[2758].Rh_1043;--:1216----1301:--FormatIdent_1108;--:1301----1369: Hash^[2766].Rh_1143;Eqtb^[2766].Hh.B1_1;Eqtb^[2766].Hh.B0_112; Eqtb^[2766].Hh.Rh_0;--:1369-- END;--:8-- END;--57:-- InitTerminal: PROCEDURE RETURNS[InitTerminalResult: PascalBoolean] = BEGIN CmdBlank: PascalInteger =0;CmdOk: PascalInteger =1;CmdOverflow: PascalInteger =-1; CmdStatus:PascalInteger; ResetTermIn[@TermIn]; CmdStatus_StuffOnCmdLine[]; IF CmdStatus=CmdOverflow THEN Overflow[128,BufSize]; {IF CmdStatus=CmdOk THEN BEGIN InitTerminalResult_TRUE; GOTO Label10 ; END; WHILE TRUE DO BEGIN PascalWriteLongString[file: @TermOut, item: "**"];PascalTextBREAK[file: @TermOut]; IF NOT InputLn[@TermIn,TRUE] THEN BEGIN PascalWriteLn[file: @TermOut]; PascalWriteLongString[file: @TermOut, item: "! End of file on the terminal... why?"]; InitTerminalResult_FALSE; GOTO Label10; END;CurInput.LocField_First; WHILE( INT[CurInput.LocField] NULL}; END; GetStringsStarted: PROCEDURE RETURNS[GetStringsStartedResult: PascalBoolean] = BEGIN K, L:PascalInteger[0..127]; M, N:PascalChar;G:StrNumber;A:PascalInteger;C:PascalBoolean; PoolPtr_0;StrPtr_0; StrStart^[0]_0;--48:--FOR i:INT IN [ INT[0 ].. INT[127 ]] DO K _ i; IF(--49: ( INT[K]<32)OR ( INT[K]>126)--:49--) THEN BEGIN BEGIN StrPool^[PoolPtr]_94; PoolPtr_PoolPtr+1; END;BEGIN StrPool^[PoolPtr]_94; PoolPtr_PoolPtr+1; END;IF INT[K]<64 THEN BEGIN StrPool^[PoolPtr]_K+64; PoolPtr_PoolPtr+1; END ELSE BEGIN StrPool^[PoolPtr]_K-64; PoolPtr_PoolPtr+1; END; END ELSE BEGIN StrPool^[PoolPtr]_K; PoolPtr_PoolPtr+1; END;G_MakeString[];--:48-- ENDLOOP;--51:--SetPoolName[]; {IF AOpenIn[@PoolFile] THEN BEGIN C_FALSE;DO--52: BEGIN IF PascalTextEOF[file: @PoolFile] THEN BEGIN {PascalWriteLongString[file: @TermOut, item: "! TEX.POOL has no check sum."]; PascalWriteLn[file: @TermOut]};AClose[@PoolFile]; GetStringsStartedResult_FALSE; GOTO Label10; END;{M_PascalReadChar[file: @PoolFile]; N_PascalReadChar[file: @PoolFile]}; IF M='* THEN--53:--BEGIN A_0;K_1; {WHILE TRUE DO BEGIN IF( INT[Xord^[N]]<48)OR ( INT[Xord^[N]]>57) THEN BEGIN {PascalWriteLongString[file: @TermOut, item: "! TEX.POOL check sum doesn't have nine digits."]; PascalWriteLn[file: @TermOut]}; AClose[@PoolFile];GetStringsStartedResult_FALSE; GOTO Label10; END; A_10*A+Xord^[N]-48;IF K=9 THEN GOTO Label30;K_K+1;N_PascalReadChar[file: @PoolFile]; END ENDLOOP ; EXITS Label30 => NULL};IF A#94919885 THEN BEGIN {PascalWriteLongString[file: @TermOut, item: "! TEX.POOL doesn't match; TANGLE me again."]; PascalWriteLn[file: @TermOut]}; AClose[@PoolFile];GetStringsStartedResult_FALSE; GOTO Label10; END;C_TRUE; END--:53 ELSE BEGIN IF( INT[Xord^[M]]<48)OR ( INT[Xord^[M]]>57)OR ( INT[Xord^[N]]<48)OR ( INT[Xord^[N]]>57) THEN BEGIN {PascalWriteLongString[file: @TermOut, item: "! TEX.POOL line doesn't begin with two digits."]; PascalWriteLn[file: @TermOut]}; AClose[@PoolFile];GetStringsStartedResult_FALSE; GOTO Label10; END; L_Xord^[M]*10+Xord^[N]-48*11; IF INT[PoolPtr+L+StringVacancies]>PoolSize THEN BEGIN {PascalWriteLongString[file: @TermOut, item: "! You have to increase POOLSIZE."]; PascalWriteLn[file: @TermOut]};AClose[@PoolFile]; GetStringsStartedResult_FALSE; GOTO Label10; END; FOR i:INT IN [ INT[1 ].. INT[L ]] DO K _ i; IF PascalTextEOLN[file: @PoolFile] THEN M_' ELSE M_PascalReadChar[file: @PoolFile];BEGIN StrPool^[PoolPtr]_Xord^[M];PoolPtr_PoolPtr+1; END; ENDLOOP; PascalReadLn[file: @PoolFile];G_MakeString[]; END; END--:52--; IF C THEN EXIT; ENDLOOP; AClose[@PoolFile];GetStringsStartedResult_TRUE; END ELSE BEGIN {PascalWriteLongString[file: @TermOut, item: "! I can't read TEX.POOL."]; PascalWriteLn[file: @TermOut]};AClose[@PoolFile]; GetStringsStartedResult_FALSE; GOTO Label10; END--:51--;EXITS Label10 => NULL}; END;--:47----66: InitPatternMemory: PROCEDURE = BEGIN H:PascalInteger[0..510];P:TriePointer; FOR i:INT IN [ INT[0 ].. INT[510 ]] DO H _ i; TrieOpHash^[H]_0 ENDLOOP;TrieOpPtr_0;TrieL^[0]_0; TrieC^[0]_0;TriePtr_0;FOR i:INT IN [ INT[0 ].. INT[TrieSize ]] DO P _ i; TrieHash^[P]_0 ENDLOOP; END; END.