-- file: MFInitImpl2.mesa -- Pascal-to-Mesa translator output, translated at October 31, 1985 4:28:03 pm PST DIRECTORY PascalBasic, PascalWizardFiles, MFTypes, MFInit, MFInteraction, MFMath, MFSymbols, MFOctants, MFContours, MFScreen, MFEquations, MFInput, MFParsing, MFOps, MFTFM, MFGF, MFDebug; MFInitImpl2: PROGRAM IMPORTS PascalBasic, MFInit, MFInteraction, MFMath, MFSymbols, MFOctants, MFContours, MFScreen, MFEquations, MFInput, MFParsing, MFOps, MFTFM, MFGF, MFDebug EXPORTS MFInit = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, MFTypes, MFInit, MFInteraction, MFMath, MFSymbols, MFOctants, MFContours, MFScreen, MFEquations, MFInput, MFParsing, MFOps, MFTFM, MFGF, MFDebug; --:1213-- Initialize: PROCEDURE = BEGIN--19:--I:PascalInteger[0..255];--:19----130:--K:PascalInteger;--:130----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----22: FOR i:INT IN [ INT[1 ].. INT[31 ]] DO I ← i; Xchr↑[I]←PascalCHR[I] ENDLOOP;--:22----23: 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;--:23----69:--Interaction←3;--:69----72: DeletionsAllowed←TRUE;ErrorCount←0;--:72----75:--HelpPtr←0; UseErrHelp←FALSE;ErrHelp←0;--:75----92:--Interrupt←0; OkToInterrupt←TRUE;--:92----98:--ArithError←FALSE;--:98----131: TwoToThe↑[0]←1;FOR i:INT IN [ INT[1 ].. INT[30 ]] DO K ← i; TwoToThe↑[K]←2*TwoToThe↑[K-1] ENDLOOP; SpecLog↑[1]←93032640;SpecLog↑[2]←38612034;SpecLog↑[3]←17922280; SpecLog↑[4]←8662214;SpecLog↑[5]←4261238;SpecLog↑[6]←2113709; SpecLog↑[7]←1052693;SpecLog↑[8]←525315;SpecLog↑[9]←262400; SpecLog↑[10]←131136;SpecLog↑[11]←65552;SpecLog↑[12]←32772; SpecLog↑[13]←16385;FOR i:INT IN [ INT[14 ].. INT[27 ]] DO K ← i; SpecLog↑[K]←TwoToThe↑[27-K] ENDLOOP; SpecLog↑[28]←1;--:131----138:--SpecAtan↑[1]←27855475; SpecAtan↑[2]←14718068;SpecAtan↑[3]←7471121;SpecAtan↑[4]←3750058; SpecAtan↑[5]←1876857;SpecAtan↑[6]←938658;SpecAtan↑[7]←469357; SpecAtan↑[8]←234682;SpecAtan↑[9]←117342;SpecAtan↑[10]←58671; SpecAtan↑[11]←29335;SpecAtan↑[12]←14668;SpecAtan↑[13]←7334; SpecAtan↑[14]←3667;SpecAtan↑[15]←1833;SpecAtan↑[16]←917; SpecAtan↑[17]←458;SpecAtan↑[18]←229;SpecAtan↑[19]←115; SpecAtan↑[20]←57;SpecAtan↑[21]←29;SpecAtan↑[22]←14;SpecAtan↑[23]←7; SpecAtan↑[24]←4;SpecAtan↑[25]←2;SpecAtan↑[26]←1;--:138----179: WasMemEnd←0;WasLoMax←0;WasHiMin←MemMax;Panicking←FALSE;--:179 --191:--FOR i:INT IN [ INT[1 ].. INT[40 ]] DO K ← i; Internal↑[K]←0 ENDLOOP;IntPtr←40;--:191----199: FOR i:INT IN [ INT[48 ].. INT[57 ]] DO K ← i; CharClass↑[K]←0 ENDLOOP;CharClass↑[46]←1;CharClass↑[32]←2; CharClass↑[37]←3;CharClass↑[34]←4;CharClass↑[44]←5;CharClass↑[59]←6; CharClass↑[40]←7;CharClass↑[41]←8;FOR i:INT IN [ INT[65 ].. INT[90 ]] DO K ← i; CharClass↑[K]←9 ENDLOOP; FOR i:INT IN [ INT[97 ].. INT[122 ]] DO K ← i; CharClass↑[K]←9 ENDLOOP;CharClass↑[95]←9; CharClass↑[60]←10;CharClass↑[61]←10;CharClass↑[62]←10; CharClass↑[58]←10;CharClass↑[124]←10;CharClass↑[96]←11; CharClass↑[39]←11;CharClass↑[43]←12;CharClass↑[45]←12; CharClass↑[47]←13;CharClass↑[42]←13;CharClass↑[92]←13; CharClass↑[33]←14;CharClass↑[63]←14;CharClass↑[35]←15; CharClass↑[38]←15;CharClass↑[64]←15;CharClass↑[36]←15; CharClass↑[94]←16;CharClass↑[126]←16;CharClass↑[91]←17; CharClass↑[93]←18;CharClass↑[123]←19;CharClass↑[125]←19; FOR i:INT IN [ INT[0 ].. INT[31 ]] DO K ← i; CharClass↑[K]←20 ENDLOOP;CharClass↑[127]←20; CharClass↑[9]←2;CharClass↑[12]←2;--:199----202:--Hash↑[1].Lh←0; Hash↑[1].Rh←0;Eqtb↑[1].Lh←41;Eqtb↑[1].Rh←0; FOR i:INT IN [ INT[2 ].. INT[2241 ]] DO K ← i; Hash↑[K]←Hash↑[1];Eqtb↑[K]←Eqtb↑[1]; ENDLOOP;--:202 --231:--BigNodeSize↑[13]←12;BigNodeSize↑[14]←4;--:231----251: SavePtr←0;--:251----396:--OctantDir↑[1]←416;OctantDir↑[5]←417; OctantDir↑[6]←418;OctantDir↑[2]←419;OctantDir↑[4]←420; OctantDir↑[8]←421;OctantDir↑[7]←422;OctantDir↑[3]←423;--:396----428: MaxRoundingPtr←0;--:428----449:--OctantCode↑[1]←1;OctantCode↑[2]←5; OctantCode↑[3]←6;OctantCode↑[4]←2;OctantCode↑[5]←4;OctantCode↑[6]←8; OctantCode↑[7]←7;OctantCode↑[8]←3; FOR i:INT IN [ INT[1 ].. INT[8 ]] DO K ← i; OctantNumber↑[OctantCode↑[K]]←K ENDLOOP;--:449----456: RevTurns←FALSE;--:456----462:--XCorr↑[1]←0;YCorr↑[1]←0;XyCorr↑[1]←0; XCorr↑[5]←0;YCorr↑[5]←0;XyCorr↑[5]←1;XCorr↑[6]←-1;YCorr↑[6]←1; XyCorr↑[6]←0;XCorr↑[2]←1;YCorr↑[2]←0;XyCorr↑[2]←1;XCorr↑[4]←0; YCorr↑[4]←1;XyCorr↑[4]←1;XCorr↑[8]←0;YCorr↑[8]←1;XyCorr↑[8]←0; XCorr↑[7]←1;YCorr↑[7]←0;XyCorr↑[7]←1;XCorr↑[3]←-1;YCorr↑[3]←1; XyCorr↑[3]←0;FOR i:INT IN [ INT[1 ].. INT[8 ]] DO K ← i; ZCorr↑[K]←XyCorr↑[K]-XCorr↑[K] ENDLOOP;--:462 --570:--ScreenStarted←FALSE;ScreenOk←FALSE;--:570----573: FOR i:INT IN [ INT[0 ].. INT[15 ]] DO K ← i; WindowOpen↑[K]←FALSE;WindowTime↑[K]←0; ENDLOOP; --:573----592:--FixNeeded←FALSE;WatchCoefs←TRUE;--:592----738:--CondPtr←0; IfLimit←0;CurIf←0;IfLine←0;--:738----752:--LoopPtr←0;--:752----796: CurExp←0;--:796----821:--VarFlag←0;--:821----1077:--StartSym←0;--:1077 --1084:--LongHelpSeen←FALSE;--:1084----1096: FOR i:INT IN [ INT[0 ].. INT[255 ]] DO K ← i; TfmWidth↑[K]←0;TfmHeight↑[K]←0; TfmDepth↑[K]←0;TfmItalCorr↑[K]←0;CharExists↑[K]←FALSE; CharTag↑[K]←0;CharRemainder↑[K]←0; ENDLOOP; FOR i:INT IN [ INT[1 ].. INT[HeaderSize ]] DO K ← i; HeaderByte↑[K]←-1 ENDLOOP;Bc←255;Ec←0;Nl←0;Nk←0; Ne←0;Np←0;--:1096----1149:--GfPrevPtr←0;TotalChars←0;--:1149----1152: HalfBuf← PascalDIVPower2[GfBufSize ,1];GfLimit←GfBufSize;GfPtr←0; GfOffset←0;--:1152----1183:--BaseIdent←0;--:1183-- END;--57: END.