-- file: GFtoPressImpl5.mesa -- Pascal-to-Mesa translator output, translated at October 25, 1985 5:07:13 pm PDT DIRECTORY PascalBasic, PascalWizardFiles, GFtoPressPrivate, GFtoPressVars1, GFtoPressVars2, GFtoPressVars3; GFtoPressImpl5: PROGRAM IMPORTS PascalBasic, PascalWizardFiles, GFtoPressPrivate, GFtoPressVars1, GFtoPressVars2, GFtoPressVars3 EXPORTS GFtoPressPrivate = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, GFtoPressPrivate, GFtoPressVars1, GFtoPressVars2, GFtoPressVars3; --3:-- --4:----:4-- InitStrings: PROCEDURE = BEGIN--77: StrPtr_0;PoolPtr_0;StrStart^[0]_0;L_0;FirstString[0];L_9; Buffer^[9]_116;Buffer^[8]_105;Buffer^[7]_116;Buffer^[6]_108; Buffer^[5]_101;Buffer^[4]_102;Buffer^[3]_111;Buffer^[2]_110; Buffer^[1]_116;FirstString[1];L_9;Buffer^[9]_108;Buffer^[8]_97; Buffer^[7]_98;Buffer^[6]_101;Buffer^[5]_108;Buffer^[4]_102; Buffer^[3]_111;Buffer^[2]_110;Buffer^[1]_116;FirstString[2];L_8; Buffer^[8]_103;Buffer^[7]_114;Buffer^[6]_97;Buffer^[5]_121; Buffer^[4]_102;Buffer^[3]_111;Buffer^[2]_110;Buffer^[1]_116; FirstString[3];L_9;Buffer^[9]_115;Buffer^[8]_108;Buffer^[7]_97; Buffer^[6]_110;Buffer^[5]_116;Buffer^[4]_102;Buffer^[3]_111; Buffer^[2]_110;Buffer^[1]_116;FirstString[4];L_13;Buffer^[13]_116; Buffer^[12]_105;Buffer^[11]_116;Buffer^[10]_108;Buffer^[9]_101; Buffer^[8]_102;Buffer^[7]_111;Buffer^[6]_110;Buffer^[5]_116; Buffer^[4]_97;Buffer^[3]_114;Buffer^[2]_101;Buffer^[1]_97; FirstString[5];L_13;Buffer^[13]_108;Buffer^[12]_97;Buffer^[11]_98; Buffer^[10]_101;Buffer^[9]_108;Buffer^[8]_102;Buffer^[7]_111; Buffer^[6]_110;Buffer^[5]_116;Buffer^[4]_97;Buffer^[3]_114; Buffer^[2]_101;Buffer^[1]_97;FirstString[6];L_12;Buffer^[12]_103; Buffer^[11]_114;Buffer^[10]_97;Buffer^[9]_121;Buffer^[8]_102; Buffer^[7]_111;Buffer^[6]_110;Buffer^[5]_116;Buffer^[4]_97; Buffer^[3]_114;Buffer^[2]_101;Buffer^[1]_97;FirstString[7];L_13; Buffer^[13]_115;Buffer^[12]_108;Buffer^[11]_97;Buffer^[10]_110; Buffer^[9]_116;Buffer^[8]_102;Buffer^[7]_111;Buffer^[6]_110; Buffer^[5]_116;Buffer^[4]_97;Buffer^[3]_114;Buffer^[2]_101; Buffer^[1]_97;FirstString[8];L_11;Buffer^[11]_116;Buffer^[10]_105; Buffer^[9]_116;Buffer^[8]_108;Buffer^[7]_101;Buffer^[6]_102; Buffer^[5]_111;Buffer^[4]_110;Buffer^[3]_116;Buffer^[2]_97; Buffer^[1]_116;FirstString[9];L_11;Buffer^[11]_108;Buffer^[10]_97; Buffer^[9]_98;Buffer^[8]_101;Buffer^[7]_108;Buffer^[6]_102; Buffer^[5]_111;Buffer^[4]_110;Buffer^[3]_116;Buffer^[2]_97; Buffer^[1]_116;FirstString[10];L_10;Buffer^[10]_103;Buffer^[9]_114; Buffer^[8]_97;Buffer^[7]_121;Buffer^[6]_102;Buffer^[5]_111; Buffer^[4]_110;Buffer^[3]_116;Buffer^[2]_97;Buffer^[1]_116; FirstString[11];L_11;Buffer^[11]_115;Buffer^[10]_108;Buffer^[9]_97; Buffer^[8]_110;Buffer^[7]_116;Buffer^[6]_102;Buffer^[5]_111; Buffer^[4]_110;Buffer^[3]_116;Buffer^[2]_97;Buffer^[1]_116; FirstString[12];L_4;Buffer^[4]_114;Buffer^[3]_117;Buffer^[2]_108; Buffer^[1]_101;FirstString[13];L_5;Buffer^[5]_116;Buffer^[4]_105; Buffer^[3]_116;Buffer^[2]_108;Buffer^[1]_101;FirstString[14];L_13; Buffer^[13]_114;Buffer^[12]_117;Buffer^[11]_108;Buffer^[10]_101; Buffer^[9]_116;Buffer^[8]_104;Buffer^[7]_105;Buffer^[6]_99; Buffer^[5]_107;Buffer^[4]_110;Buffer^[3]_101;Buffer^[2]_115; Buffer^[1]_115;FirstString[15];L_6;Buffer^[6]_111;Buffer^[5]_102; Buffer^[4]_102;Buffer^[3]_115;Buffer^[2]_101;Buffer^[1]_116; FirstString[16];L_7;Buffer^[7]_120;Buffer^[6]_111;Buffer^[5]_102; Buffer^[4]_102;Buffer^[3]_115;Buffer^[2]_101;Buffer^[1]_116; FirstString[17];L_7;Buffer^[7]_121;Buffer^[6]_111;Buffer^[5]_102; Buffer^[4]_102;Buffer^[3]_115;Buffer^[2]_101;Buffer^[1]_116; FirstString[18];--:77----78:--L_3;Buffer^[3]_46;Buffer^[2]_103; Buffer^[1]_102;FirstString[19];L_6;Buffer^[6]_46;Buffer^[5]_112; Buffer^[4]_114;Buffer^[3]_101;Buffer^[2]_115;Buffer^[1]_115; FirstString[20];L_4;Buffer^[4]_46;Buffer^[3]_116;Buffer^[2]_102; Buffer^[1]_109;FirstString[21];L_7;Buffer^[7]_32;Buffer^[6]_32; Buffer^[5]_80;Buffer^[4]_97;Buffer^[3]_103;Buffer^[2]_101;Buffer^[1]_32; FirstString[22];L_12;Buffer^[12]_32;Buffer^[11]_32;Buffer^[10]_67; Buffer^[9]_104;Buffer^[8]_97;Buffer^[7]_114;Buffer^[6]_97;Buffer^[5]_99; Buffer^[4]_116;Buffer^[3]_101;Buffer^[2]_114;Buffer^[1]_32; FirstString[23];L_9;Buffer^[9]_32;Buffer^[8]_32;Buffer^[7]_70; Buffer^[6]_97;Buffer^[5]_109;Buffer^[4]_105;Buffer^[3]_108; Buffer^[2]_121;Buffer^[1]_32;FirstString[24];L_4;Buffer^[4]_32; Buffer^[3]_32;Buffer^[2]_96;Buffer^[1]_96;FirstString[25];L_2; Buffer^[2]_39;Buffer^[1]_39;FirstString[26];L_3;Buffer^[3]_32; Buffer^[2]_61;Buffer^[1]_32;FirstString[27];L_4;Buffer^[4]_32; Buffer^[3]_43;Buffer^[2]_32;Buffer^[1]_40;FirstString[28];L_4; Buffer^[4]_97;Buffer^[3]_109;Buffer^[2]_114;Buffer^[1]_56; FirstString[29];L_6;Buffer^[6]_97;Buffer^[5]_109;Buffer^[4]_116; Buffer^[3]_116;Buffer^[2]_49;Buffer^[1]_48;FirstString[30];L_4; Buffer^[4]_103;Buffer^[3]_114;Buffer^[2]_97;Buffer^[1]_121; FirstString[31];L_6;Buffer^[6]_109;Buffer^[5]_97;Buffer^[4]_110; Buffer^[3]_102;Buffer^[2]_110;Buffer^[1]_116;FirstString[32];L_8; Buffer^[8]_111;Buffer^[7]_112;Buffer^[6]_113;Buffer^[5]_114; Buffer^[4]_115;Buffer^[3]_116;Buffer^[2]_117;Buffer^[1]_113; FirstString[33];--:78----88:--L_21;Buffer^[21]_47;Buffer^[20]_47; Buffer^[19]_47;Buffer^[18]_70;Buffer^[17]_111;Buffer^[16]_110; Buffer^[15]_116;Buffer^[14]_115;Buffer^[13]_47;Buffer^[12]_70; Buffer^[11]_111;Buffer^[10]_110;Buffer^[9]_116;Buffer^[8]_77; Buffer^[7]_101;Buffer^[6]_116;Buffer^[5]_114;Buffer^[4]_105; Buffer^[3]_99;Buffer^[2]_115;Buffer^[1]_47;FirstString[34];--:88-- END; ProcessACharacter: PROCEDURE = BEGIN--165: BEGIN --173:-- --174: IF FontsNotLoaded THEN LoadFonts[];--166: IF CurGf=67 THEN BEGIN Fam_SignedQuad[];CharCode_ PascalMODPower2Mask[Fam ,255]; IF CharCode<0 THEN CharCode_CharCode+256; Fam_ PascalDIVPower2[(Fam-CharCode),8];K_SignedQuad[];MinX_SignedQuad[]; MaxX_SignedQuad[];MinY_SignedQuad[];MaxY_SignedQuad[]; END ELSE BEGIN Fam_0;CharCode_GetByte[];MinX_GetByte[]; MaxX_GetByte[];MinX_MaxX-MinX;MinY_GetByte[];MaxY_GetByte[]; MinY_MaxY-MinY; END; IF MaxX-MinX>WidestRow THEN BEGIN {PascalWriteLongString[file: @TermOut, item: " "] ; PascalWriteLongString[file: @TermOut, item: "Character too wide!"]};JumpOut[]; END--:166--;--171: IF PreMinXMaxY*65536 THEN OffsetY_OffsetY+MaxY*65536-PreMaxY; IF PreMaxX>MaxX*65536 THEN PreMaxX_ PascalDIVPower2[PreMaxX ,16] ELSE PreMaxX_MaxX; IF PreMinY=PascalFLOAT[0 ] THEN OverCol_ PascalROUND[UnscXRatio*PascalFLOAT[PreMaxX]+UnscSlantRatio*PascalFLOAT[MaxY]] ELSE OverCol_ PascalROUND[UnscXRatio*PascalFLOAT[PreMaxX]+UnscSlantRatio*PascalFLOAT[MinY]];OverCol_OverCol+DeltaX+10000000;--:171--TotalPages_TotalPages+1; IF UseLogo THEN BEGIN PressSetFont[5];Hbox[33,5,TRUE]; END; PressSetFont[1];Hbox[TimeStamp,1,TRUE];Hbox[22,1,TRUE]; DviScaled[PascalFLOAT[TotalPages]*65536.0]; IF(CharCode#0)OR (Fam#0) THEN BEGIN Hbox[23,1,TRUE]; DviScaled[PascalFLOAT[CharCode]*65536.0];IF Fam#0 THEN BEGIN Hbox[24,1,TRUE]; DviScaled[PascalFLOAT[Fam]*65536.0]; END; END; IF TitleHead#0 THEN BEGIN Right^[TitleTail]_0;DO Hbox[25,1,TRUE]; Hbox[Info^[TitleHead],1,TRUE];Hbox[26,1,TRUE]; TitleHead_Right^[TitleHead]; IF TitleHead=0 THEN EXIT; ENDLOOP; END;--:173--{PascalWriteLongString[file: @TermOut, item: "["]; PascalWriteInteger[file: @TermOut, item: TotalPages, fieldMinLength: 1]};IF RuleSlant#PascalFLOAT[0 ] THEN PressSetFont[4]; WHILE RulePtr#0 DO BEGIN P_RulePtr;RulePtr_Right^[P]; IF Xx^[P]=0 THEN Xx^[P]_GrayRuleThickness; IF Xx^[P]>0 THEN BEGIN Convert[Xl^[P],Yt^[P]];TempX_DviX;TempY_DviY; Convert[Xr^[P],Yb^[P]];IF ABS[TempX-DviX]<6554 THEN--177: BEGIN IF TempY>DviY THEN BEGIN K_TempY;TempY_DviY;DviY_K; END; PressGoto[DviX-( PascalDIVPower2[Xx^[P],1]),DviY];PressSetRule[DviY-TempY,Xx^[P]]; END--:177-- ELSE IF ABS[TempY-DviY]<6554 THEN--178: BEGIN IF TempXPascalFLOAT[Xx^[P]]) THEN SlantComplaint[PascalFLOAT[(DviX-TempX)]/PascalFLOAT[(TempY-DviY)]] ELSE BEGIN IF TempY>DviY THEN BEGIN K_TempY;TempY_DviY;DviY_K;K_TempX; TempX_DviX;DviX_K; END;M_PascalROUND[PascalFLOAT[(DviY-TempY)]/SlantUnit]; IF M>0 THEN BEGIN PressGoto[DviX,DviY];Q_( (M-1)/SlantN)+1; K_ M /Q;P_ M MOD Q;Q_Q-P;--180:--PressSetChar[K]; Dy_PascalROUND[PascalFLOAT[K]*SlantUnit];PressMoveY[-Dy]; WHILE Q>1 DO BEGIN PressSetChar[K];PressMoveY[-Dy];Q_Q-1; END--:180-- ENDLOOP ; --181:--IF P>0 THEN BEGIN K_K+1;PressSetChar[K]; Dy_PascalROUND[PascalFLOAT[K]*SlantUnit];PressMoveY[-Dy]; WHILE P>1 DO BEGIN PressSetChar[K];PressMoveY[-Dy];P_P-1; END ENDLOOP ; END--:181--; END; END--:179--; END; END--:174-- ENDLOOP ;--182:--OverflowLine_1; IF LabelTail#0 THEN BEGIN Right^[LabelTail]_0;PressSetFont[3]; --188:--P_Right^[0];FirstDot_0; WHILE P#0 DO BEGIN IF INT[Left^[P]]<53 THEN DoDot[P] ELSE BEGIN Convert[Xx^[P] ,Yy^[P]];Xx^[P]_DviX;Yy^[P]_DviY;DlTie^[P]_0; END;P_Right^[P]; END--:188 ENDLOOP ;NearestDot[];PressSetFont[2];--189:--Q_0; WHILE Right^[Q]#0 DO BEGIN P_Right^[Q]; IF INT[Left^[P]]>48 THEN BEGIN Right^[Q]_Right^[P];DoALabel[P]; END ELSE Q_Right^[Q]; END--:189-- ENDLOOP ;--190:--Q_0; WHILE Right^[Q]#0 DO BEGIN P_Right^[Q];QSave_Right^[P];DoBLabel[P]; IF OvFlag=TRUE THEN Q_Right^[Q] ELSE Right^[Q]_QSave; END--:190-- ENDLOOP ;--191: P_0;WHILE Right^[P]#0 DO BEGIN P_Right^[P];--200:--BEGIN Q_DlTie^[P]; NLDot[Q];OverflowLine_OverflowLine+1; PressGoto[OverCol,OverflowLine*ThriceXHeight+655360]; Hbox[Info^[P],2,TRUE];Hbox[27,2,TRUE];Hbox[-Info^[QDot],2,TRUE]; Hbox[28,2,TRUE]; DviScaled[PascalFLOAT[(Xx^[P]-Xx^[QDot])]/XRatio+PascalFLOAT[(Yy^[P]-Yy^[QDot])]*FudgeFactor]; PressSetChar[44];DviScaled[PascalFLOAT[(Yy^[QDot]-Yy^[P])]/YRatio]; PressSetChar[41]; END--:200--; END--:191-- ENDLOOP ; END--:182--;DoPixels[]; PressWritePage[];PascalWriteLongString[file: @TermOut, item: "]"]; END--:165--; END; Error9999: ERROR = CODE; GFtoPressRun: UnsafeCommandProc = BEGIN {ENABLE Error9999 => GOTO Label9999;Initialize[]; InitStrings[];StartGf[];--219: IF GetByte[]#247 THEN BEGIN {PascalWriteLongString[file: @TermOut, item: " "]; PascalWriteLongString[file: @TermOut, item: "Bad GF file: "] ; PascalWriteLongString[file: @TermOut, item: "No preamble"]; PascalWriteLongString[file: @TermOut, item: "! (at byte "]; PascalWriteInteger[file: @TermOut, item: CurLoc-1, fieldMinLength: 1]; PascalWriteLongString[file: @TermOut, item: ")"]};JumpOut[]; END; IF GetByte[]#131 THEN BEGIN {PascalWriteLongString[file: @TermOut, item: " "]; PascalWriteLongString[file: @TermOut, item: "Bad GF file: "] ; PascalWriteLongString[file: @TermOut, item: "Wrong ID"]; PascalWriteLongString[file: @TermOut, item: "! (at byte "]; PascalWriteInteger[file: @TermOut, item: CurLoc-1, fieldMinLength: 1]; PascalWriteLongString[file: @TermOut, item: ")"]};JumpOut[]; END;K_GetByte[]; FOR i:INT IN [ INT[1 ].. INT[K ]] DO M _ i; StrPool^[PoolPtr]_GetByte[]; PoolPtr_PoolPtr+1; ENDLOOP;UseLogo_FALSE;S_StrStart^[StrPtr]; IF StrPool^[S]=32 THEN IF StrPool^[S+1]=77 THEN IF StrPool^[S+2]=69 THEN IF StrPool^[S+3]=84 THEN IF StrPool^[S+4]=65 THEN IF StrPool^[S+5]=70 THEN IF StrPool^[S+6]=79 THEN IF StrPool^[S+7]=78 THEN IF StrPool^[S+8]=84 THEN BEGIN StrPtr_StrPtr+1;StrStart^[StrPtr]_S+9;UseLogo_TRUE; END;TimeStamp_MakeString--:219--[];CurGf_GetByte[]; InitStrPtr_StrPtr;WHILE TRUE DO BEGIN--156:-- RuleThickness_0; OffsetX_0;OffsetY_0;XOffset_0;YOffset_0;PreMinX_268435456; PreMaxX_-268435456;PreMinY_268435456;PreMaxY_-268435456;--:156 --159:--RulePtr_0;MaxNode_0;--:159----162:--TitleHead_0;TitleTail_0; LabelTail_0;Root_0;--:162--WHILE( INT[CurGf]>=239)AND ( INT[CurGf]<=244)DO--154: BEGIN K_InterpretXxx[];SELECT K FROM 19 => NULL; 1,2,3,4 =>IF FontsNotLoaded THEN BEGIN FontName^[K]_CurString; FontArea^[K]_0;FontAt^[K]_0;InitStrPtr_StrPtr; END ELSE BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "(Tardy font change will be ignored (byte "]; PascalWriteInteger[file: @TermOut, item: CurLoc, fieldMinLength: 1] ; PascalWriteLongString[file: @TermOut, item: ")!)"]}; END; 5,6,7,8 =>IF FontsNotLoaded THEN BEGIN FontArea^[K-4]_CurString; InitStrPtr_StrPtr; END ELSE BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "(Tardy font change will be ignored (byte "]; PascalWriteInteger[file: @TermOut, item: CurLoc, fieldMinLength: 1] ; PascalWriteLongString[file: @TermOut, item: ")!)"]}; END; 9,10,11,12 =>IF FontsNotLoaded THEN BEGIN FontAt^[K-8]_GetYyy[]; InitStrPtr_StrPtr; END ELSE BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "(Tardy font change will be ignored (byte "]; PascalWriteInteger[file: @TermOut, item: CurLoc, fieldMinLength: 1] ; PascalWriteLongString[file: @TermOut, item: ")!)"]}; END;15 =>RuleThickness_GetYyy[];13 =>--160:--BEGIN P_GetAvail[]; Right^[P]_RulePtr;RulePtr_P;Xl^[P]_GetYyy[];Yt^[P]_GetYyy[]; Xr^[P]_GetYyy[];Yb^[P]_GetYyy[];IF Xl^[P]PreMaxX THEN PreMaxX_Xl^[P]; IF Yt^[P]PreMaxY THEN PreMaxY_Yt^[P]; IF Xr^[P]PreMaxX THEN PreMaxX_Xr^[P]; IF Yb^[P]PreMaxY THEN PreMaxY_Yb^[P];Xx^[P]_RuleThickness; END--:160 ;16 =>--157:--BEGIN OffsetX_GetYyy[];OffsetY_GetYyy[]; END--:157--; 17 =>XOffset_GetYyy[];18 =>YOffset_GetYyy[];14 =>--163:--BEGIN P_GetAvail[]; Info^[P]_CurString; IF TitleHead=0 THEN TitleHead_P ELSE Right^[TitleTail]_P; TitleTail_P; END--:163--;0 =>--164: IF( INT[LabelType]<47)OR ( INT[LabelType]>56) THEN BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "Bad label type precedes byte "]; PascalWriteInteger[file: @TermOut, item: CurLoc, fieldMinLength: 1]; PascalWriteLongString[file: @TermOut, item: "!"]}; END ELSE BEGIN P_GetAvail[];Right^[LabelTail]_P;LabelTail_P; Left^[P]_LabelType;Info^[P]_CurString;Xx^[P]_GetYyy[];Yy^[P]_GetYyy[]; IF Xx^[P]PreMaxX THEN PreMaxX_Xx^[P]; IF Yy^[P]PreMaxY THEN PreMaxY_Yy^[P]; END--:164--; ENDCASE; END--:154-- ENDLOOP ; IF CurGf=248 THEN--115:--BEGIN PressCloseFile[]; GOTO Label9999; END--:115--; IF CurGf#67 THEN IF CurGf#68 THEN BEGIN {PascalWriteLongString[file: @TermOut, item: " "] ; PascalWriteLongString[file: @TermOut, item: "Missing boc!"]};JumpOut[]; END;ProcessACharacter[];CurGf_GetByte[]; StrPtr_InitStrPtr;PoolPtr_StrStart^[StrPtr]; END ENDLOOP ; EXITS Label9999 => NULL};{PascalWriteLongString[file: @TermOut, item: ""]; PascalWriteLn[file: @TermOut]};--:217 END; PascalRegister["GFtoPress", GFtoPressRun]; END.