-- file: TexMath2Impl.mesa -- Pascal-to-Mesa translator output, translated at September 27, 1985 10:21:38 am PDT DIRECTORY PascalBasic, TexTypes, TexInteraction, TexMath, TexMemory, TexSymbols, TexOps, TexSysdepInline; TexMath2Impl: PROGRAM IMPORTS PascalBasic, TexInteraction, TexMemory, TexSymbols, TexOps, TexSysdepInline EXPORTS TexMath = PUBLIC BEGIN OPEN PascalBasic, TexTypes, TexInteraction, TexMath, TexMemory, TexSymbols, TexOps, TexSysdepInline; --704:-- FractionRule: PROCEDURE[T: Scaled] RETURNS[FractionRuleResult: Halfword] = BEGIN P:Halfword; P_NewRule[];Mem[P+3]^.Int_T;Mem[P+2]^.Int_0;FractionRuleResult_P; END; --:704----705:-- Overbar: PROCEDURE[B: Halfword,K,T: Scaled] RETURNS[OverbarResult: Halfword] = BEGIN P, Q:Halfword; P_NewKern[K];Mem[P]^.Hh.Rh_B; Q_FractionRule[T];Mem[Q]^.Hh.Rh_P;P_NewKern[T];Mem[P]^.Hh.Rh_Q; OverbarResult_Vpackage[P,0,1,1073741823]; END;--:705----706:----709: --:715----716:-- MathGlue: PROCEDURE[G: Halfword,M: Scaled] RETURNS[MathGlueResult: Halfword] = BEGIN P:Halfword;N:PascalInteger;F:Scaled; N_XOverN[M,65536]; F_Remainder;P_GetNode[4]; Mem[P+1]^.Int_NxPlusY[N,Mem[G+1]^.Int,XnOverD[Mem[G+1]^.Int,F,65536]]; Mem[P]^.Hh.B0_Mem[G]^.Hh.B0; IF Mem[P]^.Hh.B0=0 THEN Mem[P+2]^.Int_NxPlusY[N,Mem[G+2]^.Int,XnOverD[ Mem[G+2]^.Int,F,65536]] ELSE Mem[P+2]^.Int_Mem[G+2]^.Int; Mem[P]^.Hh.B1_Mem[G]^.Hh.B1; IF Mem[P]^.Hh.B1=0 THEN Mem[P+3]^.Int_NxPlusY[N,Mem[G+3]^.Int,XnOverD[ Mem[G+3]^.Int,F,65536]] ELSE Mem[P+3]^.Int_Mem[G+3]^.Int;MathGlueResult_P; END; --:716----717:-- MathKern: PROCEDURE[P: Halfword,M: Scaled] = BEGIN N:PascalInteger; F:Scaled; IF Mem[P]^.Hh.B1=99 THEN BEGIN N_XOverN[M,65536]; F_Remainder; Mem[P+1]^.Int_NxPlusY[N,Mem[P+1]^.Int,XnOverD[Mem[P+1]^.Int,F,65536]]; Mem[P]^.Hh.B1_0; END; END;--:717----718:-- MakeOver: PROCEDURE[Q: Halfword] = BEGIN Mem[Q+1]^.Hh.Lh_Overbar[CleanBox[Q+1,2*( PascalDIVPower2[CurStyle ,1])+1], 3*FontInfo^[8+ParamBase^[Eqtb^[4082+CurSize].Hh.Rh]].Int,FontInfo^[ 8+ParamBase^[Eqtb^[4082+CurSize].Hh.Rh]].Int];Mem[Q+1]^.Hh.Rh_2; END;--:734 --735:-- MakeUnder: PROCEDURE[Q: Halfword] = BEGIN P, X, Y:Halfword;Delta:Scaled; X_CleanBox[Q+1,CurStyle]; P_NewKern[3*FontInfo^[8+ParamBase^[Eqtb^[4082+CurSize].Hh.Rh]].Int]; Mem[X]^.Hh.Rh_P; Mem[P]^.Hh.Rh_FractionRule[FontInfo^[8+ParamBase^[Eqtb^[4082+CurSize]. Hh.Rh]].Int];Y_Vpackage[X,0,1,1073741823]; Delta_Mem[Y+3]^.Int+Mem[Y+2]^.Int+FontInfo^[8+ParamBase^[Eqtb^[ 4082+CurSize].Hh.Rh]].Int;Mem[Y+3]^.Int_Mem[X+3]^.Int; Mem[Y+2]^.Int_Delta-Mem[Y+3]^.Int;Mem[Q+1]^.Hh.Lh_Y;Mem[Q+1]^.Hh.Rh_2; END;--:735----736:-- MakeVcenter: PROCEDURE[Q: Halfword] = BEGIN V:Halfword; Delta:Scaled; V_Mem[Q+1]^.Hh.Lh; IF Mem[V]^.Hh.B0#1 THEN Confusion[400];Delta_Mem[V+3]^.Int+Mem[V+2]^.Int; Mem[V+3]^.Int_ FontInfo^[22+ParamBase^[Eqtb^[4081+CurSize].Hh.Rh]].Int+Half[Delta];Mem[V+2]^.Int_Delta-Mem[V+3]^.Int; END;--:736----737: MakeOp: PROCEDURE[Q: Halfword] RETURNS[MakeOpResult: Scaled] = BEGIN Delta:Scaled;P, V, X, Y, Z:Halfword; ShiftUp, ShiftDown:Scaled; IF(Mem[Q]^.Hh.B1=0)AND ( INT[CurStyle]<2) THEN Mem[Q]^.Hh.B1_1; IF Mem[Q+1]^.Hh.Rh=1 THEN BEGIN Fetch[Q+1]; IF( INT[CurStyle]<2)AND (( PascalMODPower2Mask[(CurI.B2),3])=2) THEN BEGIN CurC_CurI.B3; Mem[Q+1]^.Hh.B1_CurC;CurI_FontInfo^[CharBase^[CurF]+CurC].Qqqq; END; Delta_FontInfo^[ ItalicBase^[CurF]+PascalDIVPower2[(CurI.B2),2]].Int; X_CleanBox[Q+1,CurStyle]; IF(Mem[Q+3]^.Hh.Rh#0)AND (Mem[Q]^.Hh.B1#1) THEN Mem[X+1]^.Int_Mem[X+1]^.Int -Delta; Mem[X+4]^.Int_Half[Mem[X+3]^.Int-Mem[X+2]^.Int]-FontInfo^[22+ParamBase^ [Eqtb^[4081+CurSize].Hh.Rh]].Int;Mem[Q+1]^.Hh.Rh_2;Mem[Q+1]^.Hh.Lh_X; END ELSE Delta_0;IF Mem[Q]^.Hh.B1=1 THEN--750: BEGIN X_CleanBox[Q+2,2*( PascalDIVPower2[CurStyle ,2])+4+( PascalMODPower2Mask[CurStyle ,1])]; Y_CleanBox[Q+1,CurStyle];Z_CleanBox[Q+3,2*( PascalDIVPower2[CurStyle ,2])+5]; V_NewNullBox[];Mem[V]^.Hh.B0_1;Mem[V+1]^.Int_Mem[Y+1]^.Int; IF Mem[X+1]^.Int>Mem[V+1]^.Int THEN Mem[V+1]^.Int_Mem[X+1]^.Int; IF Mem[Z+1]^.Int>Mem[V+1]^.Int THEN Mem[V+1]^.Int_Mem[Z+1]^.Int; X_Rebox[X,Mem[V+1]^.Int];Y_Rebox[Y,Mem[V+1]^.Int]; Z_Rebox[Z,Mem[V+1]^.Int];Mem[X+4]^.Int_Half[Delta]; Mem[Z+4]^.Int_-Mem[X+4]^.Int;Mem[V+3]^.Int_Mem[Y+3]^.Int; Mem[V+2]^.Int_Mem[Y+2]^.Int;--751: IF Mem[Q+2]^.Hh.Rh=0 THEN BEGIN FreeNode[X,7];Mem[V+5]^.Hh.Rh_Y; END ELSE BEGIN ShiftUp_FontInfo^[11+ParamBase^[Eqtb^[4082+CurSize].Hh. Rh]].Int-Mem[X+2]^.Int; IF ShiftUp