-- file: MFMain.mesa
-- Pascal-to-Mesa translator output, translated at October 31, 1985 4:28:03 pm PST
DIRECTORY
PascalBasic,
PascalWizardFiles,
MFTypes,
MFInit,
MFExternals,
MFInteraction,
MFMath,
MFSymbols,
MFInput,
MFFileNames,
MFOps,
MFRest;
MFMain: PROGRAM IMPORTS PascalBasic, PascalWizardFiles, MFInit, MFExternals, MFInteraction, MFMath, MFSymbols, MFInput, MFFileNames, MFOps, MFRest EXPORTS MFRest, MFTypes = PUBLIC
BEGIN OPEN PascalBasic, PascalWizardFiles, MFTypes, MFInit, MFExternals, MFInteraction, MFMath, MFSymbols, MFInput, MFFileNames, MFOps, MFRest;
--4:----9:----$C-,A+,D- ----$C+,D+----:9-- --6:----:6
--:679----698:--
BgLoc: PascalInteger[1..2241];
EgLoc: PascalInteger[1..2241];
--:1187----1202:--
StartLikeInimf: PascalBoolean;
--:1211----:1201----1203:-- TheRealMf: PROCEDURE =
BEGIN --1210:-- {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[GfBufSize ,7]#0 THEN Bad←3;
IF INT[1100]>50000 THEN Bad←4;IF INT[1777]>2100 THEN Bad←5;
IF PascalMODPower2Mask[HeaderSize ,3]#0 THEN Bad←6;--:14----154:
IF MemMax#50000 THEN Bad←10;IF INT[MemMax]<50000 THEN Bad←10;
IF( INT[0]>0)OR ( INT[255]<127) THEN Bad←11;IF( INT[0]>0)OR ( INT[65535]<32767) THEN Bad←12;
IF( INT[0]<0)OR ( INT[255]>65535) THEN Bad←13;IF( INT[0]<0)OR ( INT[MemMax]>=65535) THEN Bad←14;
IF INT[MaxStrings]>65535 THEN Bad←15;IF INT[BufSize]>65535 THEN Bad←16;
IF( INT[255]<255)OR ( INT[65535]<65535) THEN Bad←17;--:154----204:
IF INT[2241+MaxInternal]>65535 THEN Bad←21;--:204----214:
IF INT[2692]>65535 THEN Bad←22;--:214----310:
IF INT[15*11]>BistackSize THEN Bad←31;--:310----553:
IF INT[20+17*45]>BistackSize THEN Bad←32;--:553
IF Bad>0 THEN BEGIN {
PascalWriteLongString[file: @TermOut, item: "Ouch---my internal constants have been clobbered!"]; PascalWriteLongString[file: @TermOut, item: "---case "]; PascalWriteInteger[file: @TermOut, item: Bad, fieldMinLength: 1]; PascalWriteLn[file: @TermOut]};
ERROR Error9999; END;Initialize[];
IF StartLikeInimf THEN BEGIN IF NOT GetStringsStarted [] THEN ERROR Error9999
;InitTab[];InitPrim[]; END;--55:--Selector←1;Tally←0;TermOffset←0;
FileOffset←0;--:55----61:
PascalWriteLongString[file: @TermOut, item: "This is METAFONT 0.9999, for Cedar 6.0"];
IF BaseIdent=0 THEN {PascalWriteLongString[file: @TermOut, item: " (no base preloaded)"]; PascalWriteLn[file: @TermOut]} ELSE BEGIN
Print[BaseIdent];PrintLn[]; END;PascalTextBREAK[file: @TermOut];--:61----782:--JobName←0;
--:782----791:--OutputFileName←0;--:791--BEGIN--656:
BEGIN InputPtr←0;MaxInStack←0;InOpen←0;MaxBufStack←0;
ParamPtr←0;MaxParamStack←0;First←1;CurInput.StartField←1;
CurInput.IndexField←0;Line←0;CurInput.NameField←0;
ForceEof←FALSE;IF NOT InitTerminal [] THEN ERROR Error9999;
CurInput.LimitField←Last;First←Last+1; END;--:656----659:
ScannerStatus←0;--:659--IF(BaseIdent=0)OR (Buffer↑[CurInput.LocField]=38) THEN BEGIN IF
BaseIdent#0 THEN Initialize[];IF NOT OpenBaseFile [] THEN ERROR Error9999;
IF NOT LoadBaseFile [] THEN BEGIN WClose[@BaseFile]; ERROR Error9999; END;
WClose[@BaseFile];
WHILE( INT[CurInput.LocField]<CurInput.LimitField)AND (Buffer↑[CurInput.
LocField]=32)DO CurInput.LocField← INT[CurInput.LocField]+1 ENDLOOP ; END;
Buffer↑[CurInput.LimitField]←37;FixDateAndTime[];
InitRandoms[( PascalDIVPower2[Internal↑[17],16])+Internal↑[16]];--70:
IF Interaction=0 THEN Selector←0 ELSE Selector←1--:70--;
ReadProfileForDirectories[];
IF INT[CurInput.LocField]<CurInput.LimitField THEN IF Buffer↑[CurInput.
LocField]#92 THEN StartInput[]; END--:1210--;InitStrPtr←StrPtr;
InitPoolPtr←PoolPtr;MaxStrPtr←StrPtr;MaxPoolPtr←PoolPtr;
History←0;IF INT[StartSym]>0 THEN BEGIN CurSym←StartSym;BackInput[]; END;
MainControl[];FinalCleanup[];EXITS Label9998 => NULL};CloseFilesAndTerminate[];EXITS Label9999 => NULL}; END;
Error9998: ERROR = CODE;
Error9999: ERROR = CODE;
MFRun: UnsafeCommandProc = BEGIN
RegisterMfCommands[];--:1203
END;
PascalRegister["MF", MFRun];
END.