-- file: GFtoPressImpl4.mesa -- Pascal-to-Mesa translator output, translated at October 25, 1985 5:07:13 pm PDT DIRECTORY PascalBasic, PascalWizardFiles, GFtoPressPrivate, GFtoPressVars1, GFtoPressVars2, GFtoPressVars3; GFtoPressImpl4: PROGRAM IMPORTS PascalBasic, PascalWizardFiles, GFtoPressPrivate, GFtoPressVars1, GFtoPressVars2, GFtoPressVars3 EXPORTS GFtoPressPrivate = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, GFtoPressPrivate, GFtoPressVars1, GFtoPressVars2, GFtoPressVars3; DoPixels: PROCEDURE = BEGIN PaintBlack:PascalBoolean; StartingCol, FinishingCol:PascalInteger[0..WidestRow];J:PascalInteger[0..WidestRow];L:PascalInteger; I:FourQuarters;V:EightBits; PressSetFont[3]; DeltaX_DeltaX+PascalROUND[UnscXRatio*PascalFLOAT[MinX]]; FOR i:INT IN [ INT[0 ].. INT[MaxX-MinX ]] DO J _ i; A^[J]_0 ENDLOOP;L_1;Z_0;StartingCol_0; FinishingCol_0;Y_MaxY+12;PaintBlack_FALSE;BlankRows_0; CurGf_GetByte[];{WHILE TRUE DO BEGIN--211:-- --215: DO--212: IF BlankRows>0 THEN BlankRows_BlankRows-1 ELSE IF CurGf#69 THEN BEGIN X_Z;IF StartingCol>X THEN StartingCol_X;--213: {WHILE TRUE DO BEGIN DO {--Label22:--SELECT CurGf FROM 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 ,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38 ,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62 ,63 =>K_CurGf;64 =>K_GetByte[];65 =>K_GetTwoBytes[];66 =>K_GetThreeBytes[]; 69 => GOTO Label31;70 =>BEGIN BlankRows_0;Z_0;PaintBlack_FALSE; CurGf_GetByte[]; GOTO Label31; END;71 =>BEGIN BlankRows_GetByte[];Z_0; PaintBlack_FALSE;CurGf_GetByte[]; GOTO Label31; END; 72 =>BEGIN BlankRows_GetTwoBytes[];Z_0;PaintBlack_FALSE; CurGf_GetByte[]; GOTO Label31; END;73 =>BEGIN BlankRows_GetThreeBytes[];Z_0; PaintBlack_FALSE;CurGf_GetByte[]; GOTO Label31; END; 74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97, 98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115, 116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133, 134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151, 152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169, 170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187, 188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205, 206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238 =>BEGIN Z_ CurGf-74;PaintBlack_TRUE;CurGf_GetByte[]; GOTO Label31; END; 239,240,241,242,243,244 =>BEGIN SkipNop[]; GOTO Label22; END; ENDCASE =>BEGIN {PascalWriteLongString[file: @TermOut, item: " "]; PascalWriteLongString[file: @TermOut, item: "Bad GF file: "]; PascalWriteLongString[file: @TermOut, item: "Improper opcode"] ; PascalWriteLongString[file: @TermOut, item: "! (at byte "]; PascalWriteInteger[file: @TermOut, item: CurLoc-1, fieldMinLength: 1]; PascalWriteLongString[file: @TermOut, item: ")"]};JumpOut[]; END ;--214: IF X+K>FinishingCol THEN FinishingCol_X+K; IF PaintBlack THEN FOR i:INT IN [ INT[X ].. INT[X+K-1 ]] DO J _ i; A^[J]_A^[J]+L ENDLOOP; PaintBlack_ NOT PaintBlack;X_X+K;CurGf_GetByte--:214--[];EXIT; EXITS Label22 => NULL} ENDLOOP; END ENDLOOP ;EXITS Label31 => NULL};--:213 END;--:212--L_L+L;Y_Y-1; IF L=4096 THEN EXIT; ENDLOOP;--:211--PressGoto[0,DeltaY-PascalROUND[UnscYRatio*PascalFLOAT[Y]]];--206:--J_StartingCol; {WHILE TRUE DO BEGIN WHILE( INT[J]<=FinishingCol)AND (B^[A^[J]]=0)DO J_J+1 ENDLOOP ; IF INT[J]>FinishingCol THEN GOTO Label30;PressPushPos[];--207: PressMoveX[PascalROUND[UnscXRatio*PascalFLOAT[J]+UnscSlantRatio*PascalFLOAT[Y]]+DeltaX]--:207--; DO V_B^[A^[J]];A^[J]_A^[J]-C^[V];K_J;J_J+1; WHILE B^[A^[J]]=V DO BEGIN A^[J]_A^[J]-C^[V];J_J+1; END ENDLOOP ;K_J-K;--208: DO {--Label21:--IF K=1 THEN PressSetChar[V] ELSE BEGIN I_FontInfo^[CharBase^[3]+V]. Qqqq;IF( PascalMODPower2Mask[(I.B2-0),3])=2 THEN BEGIN IF PascalODD[K] THEN PressSetChar[V]; K_ PascalDIVPower2[K ,1];V_I.B3-0; GOTO Label21; END ELSE DO PressSetChar[V];K_K-1; IF K=0 THEN EXIT; ENDLOOP; END--:208--;EXIT; EXITS Label21 => NULL} ENDLOOP; IF B^[A^[J]]=0 THEN EXIT; ENDLOOP;PressPopPos[]; END ENDLOOP ;EXITS Label30 => NULL};--:206--L_R^[A^[StartingCol]]; FOR i:INT IN [ INT[StartingCol+1 ].. INT[FinishingCol ]] DO J _ i; IF L>R^[A^[J]] THEN L_R^[A^[J]] ENDLOOP; IF L=4096 THEN IF CurGf=69 THEN GOTO Label10 ELSE BEGIN Y_Y-BlankRows; BlankRows_0;L_1;StartingCol_Z;FinishingCol_Z; END ELSE BEGIN WHILE A^[StartingCol]=0 DO StartingCol_StartingCol+1 ENDLOOP ; WHILE A^[FinishingCol]=0 DO FinishingCol_FinishingCol-1 ENDLOOP ; FOR i:INT IN [ INT[StartingCol ].. INT[FinishingCol ]] DO J _ i; A^[J]_ A^[J]/L ENDLOOP;L_ 4096 /L; END--:215--; END ENDLOOP ;EXITS Label10 => NULL}; END;--:216----217:-- END.