IMD 1.18: 14/11/2012 8:24:30 ticom 1k x 1k graphics addon 1983  >  ~rC``      ʀʀʀdh dl hl4!!j+~!!d!f!ӈ!!h!È dl      00 bBBx`df` `x`Bzʠdʂ||ʁ`z`z`x`h   `z| ` ̱ TL SYSTEM.99YSTEM.PASCAL d    l np*rvj %= Cxezt*t4B  jttd  [ f l0jH09F09 4~H27b,`rf[ hF49h[2628 `h[ !00\̠`APܱ 00 b(dB Bb0Bb0B b0B b0  LOAD ERROR  TICOMZZC ' SYSTEM.997RSN<q'(SYSTEM.MISCINFOq( SYSTEM.PASCAL<q SYSTEM.TICEDI<A SYSTEM.FILERI< SYSTEM.TICRAT<q SYSTEM.TICFRM<T SYSTEM.TICINS< SYSTEM.TICCAL<  SYSTEM.TICMIS< SYSTEM.TICPFI< SYSTEM.NEWS < SYSTEM.SYSENV<2W SYSTEM.TICWRI< W]SYSTEM.STARTUPRL] SYSTEM.INST <L SYSTEM.TICMAP<L SYSTEM.SYSMSK<BSYSTEM.LIBRARYR2gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg TICOMZZC ' SYSTEM.997RSN<q'(SYSTEM.MISCINFOq( SYSTEM.PASCAL<q SYSTEM.TICEDI<A SYSTEM.FILERI< SYSTEM.TICRAT<q SYSTEM.TICFRM<T SYSTEM.TICINS< SYSTEM.TICCAL< DE b/$APC.CODE2 b/$ READ.ME.TEXT b/  GRDEMO.CODE b/ڦ BNGRAFDRAW.CODE/B\ BOAT.TEXTZ b/$\b BOAT.CODE4 b/$BOAT.CODE4 b/$2BOAT.CODE4 b/ȳ SYSTEM.INFO b/ GRAFICSY  PAT.COMP.CODEb/ PAT.A.TEXT b/ܤ PAT.B.TEXT b/ܤ PAT.C.TEXT b/L PAT.D.TEXT b/ܥ PAT00.PTRN b/  PAT02.PTRN b/ ! PAT03.PTRN b/!" PAT01.PTRN b/", PONG.TEXT b/r,/ PONG.CODE b/$/2 FONT00.FONT b/{2> DEMO.TEXT b/L>B DEMO.CODE  { Cursob/$BJ HOT.DOG.TEXT b/RJM HOT.DOG.CODE b/$MN PAT05.PTRN b/GN GRAFTEST.TEXTb/ڦ GRAFTEST.CO GRAFICSY  PAT.COMP.CODEb/ PAT.A.TEXT b/ܤ PAT.B.TEXT b/ܤ PAT.C.TEXT b/DEb/ڦ GRAFDRAW.CODEb/ PAT.E.TEXT b/G CHARTS.TEXT b/APC.TEXT1 b/S CHARTS.COL PAT.D.TEXT b/ܥ PAT00.PTRN b/  PAT02.PTRN b/ ! PAT03.PTRN b/!" PAT01.PTRN b/ ĆրpĆրtĆրwĆ[p[p[p10֥4ֲծrp>r prpPr pr p1,"upr pOr prp@1ץ3ײ1[0423ֆ3x34J3[20up`r prp3sp3ssPattern sourc", PONG.TEXT b/r,/ PONG.CODE b/$/2 FONT00.FONT b/{2> DEMO.TEXT b/L>B DEMO.CODE b/$BJ HOT.DOG.TEXT b/RJM HOT.DOG.CODE b/$MN PAT05.PTRN b/GN GRAFTEST.TEXTb/ڦ GRAFTEST.COjPATCOMPI DEb/ڦ GRAFDRAW.CODEb/ PAT.E.TEXT b/G CHARTS.TEXT b/APC.TEXT1 b/S CHARTS.CO DE b/$APC.CODE2 b/$ READ.ME.TEXT b/  GRDEMO.CODE b/ڦ BNGRAFDRAW.CODE/B\ BOAT.TE XTZ b/$\b BOAT.CODE4 b/$BOAT.CODE4 b/$2BOAT.CODE4 b/ȳ SYSTEM.INFO b/ &GRAFICS@@@ @  @@@  0iPATCOMPI+r p,Pr pr p,0-s-h`,Pt`Ut`sp -,sp,Ԝ,.-3_s2s[prprpr pr p[r pr p1rp*r p0rprprp,r pPr pr p: [Pp지.3t֘s&3ֆֆPtւ;Ut֘spfpրDĆրRĆրGĆրYĆրBĆրPĆրTĆրWĆրdĆրrĆրgĆրyĆրb O^ܤܤ 10 10 (X direction size, Y direction size)  b b b b b b b b b b  b b b b b b b b b .  b b b e name ? .TextPat name file ! contains a pattern of dimension  x Pattern destination name ? $.Ptrn!Warning -- premature b b b b b . .  b b b b b b b . . .  b b b b b b . . . .  b b b b b . . . . .  b b b b .end of input " is not long enough to be a rowwI/O error writing pattern filee EEXTRAIO STRINGOPFILEOPS PASCALIO  . . . . .  b b b . . . . . . .  b b . . . . . . . .  b . . . . . . . . .   O^ܤܤ  g y y y y . r . g g g g  y y y . r r r . g g g  y y . r r r r r . g g  y . r r r r r r  r . g  . r r r r r r r r r .  3 3 (X direction size, Y direction size)  . r .  r . r  . r . O^ܤL  11 11 (X direction size, Y direction size)  . b b b b b b b b b .  y . b b b b b b b . g  y y . b b b b b . g g  y y y . b b b . g g g  y y y y . b . g g g g  y y y y y . g g g g  y y y y y . b  y y y y y y y y y y y y y y y .  O^ܥܥ DDDDDDDDDDDDDDDDDDDDDDDDD 16 16 (X direction size, Y direction size)  . b b b b b b b b b b b b b b b  y . b b b b b b b b b b b b b b  y y . b b b b b b b b b b b b b  y y y . b b b b b b b b b b b b  y y y y . b b b b b b b b b b b  y y y y y . b b b b b b b b b b  y y y y y y . b b b b b b b b b  y y y y y y y . b b b b b b b b  y y y y y y y y . b b b b b b b  y y y y y 33333333333333@333333D333333@D33333DD33333@DD3333DDD3333@DDD333DDDD333@DDDD33DDDDD33@DDDDD3DDDDDD3@DDDDDDDDDDDDD@DDD y y y y . b b b b b b  y y y y y y y y y y . b b b b b  y y y y y y y y y y y . b b b DDDD b  y y y y y y y y y y y y . b b b  y y y y y y y y y y y y y . b b y y y y y y y y y  := New_X + Delta_X * Ball_Speed; $If (New_X < Ball_Size) Or (New_X > Paddle_X) Then &Begin (If ((Old_Y > Paddle_Y_Top) Or (Old_Y < Paddle_Y_Bottom)) And +(New_X > Paddle_X) Then *Exit (Pong); (Write (Chr (Bell)); (Delta_X := -Delta_X; (New_X := New Program Pong;  {$U GrafDraw.Code}  Uses Graf_Draw;  Const Paddle_X_Size = 10; &Paddle_Y_Size = 50; &Ball_Size = 10; &Key 3 3"33 "33""33@ "3D"3@DD DDD@DDDD_Up = 31; &Key_Down = 10;  Bell = 7;  Var Delta_X, $Delta_Y, $New_X, $New_Y, $Old_X, $Old_Y, $Save_Index, $Paddle_X, $Paddle_Y_Top, $Paddle_Y_Bottom, $Paddle_Speed, $Ball_Speed : Integer; $Ch : Char; $Save_Edge  : Edge_Type; $Stat_Rec : Array [0..29] Of Integer;  Begin "Repeat $Write ('Ball Speed (1-10) ? '); $Readln (Ball_Speed); "Until Ball_Speed In [1..10]; "Paddle_Speed := Ball_Speed * 4; Ch := ' '; "Core^.Display_Mode := Fill; "Core^.Fill_Ind$CURSOR $EQUAL $TAG ex := 4; Core^.Polygon_Edge := Interior; "Paddle_X := Core^.X_Max - Paddle_X_Size; "Paddle_Y_Bottom := (Core^.Y_Max - Paddle_Y_Size) Div 2; "Paddle_Y_Top := Paddle_Y_Bottom + Paddle_Y_Size; "Move_Abs (Paddle_X - 1, Paddle_Y_Bottom - 1); "Box_Rel (Pa\ddle_X_Size, Paddle_Y_Size + 1); " "Delta_X := -Ball_Speed; "Delta_Y := -Ball_Speed; "Core^.Line_Index := 1; O.rr"Core^.Polygon_Edge := Solid_Line; "Core^.Overlay_Mode := Xor; "Core^.Fill_Index := 2; New_X := Core^.X_Max Div 2; "New_Y := Core^.Y_Max Div 2; "Move_Abs (New_X, New_Y); "Circle_Rel (Ball_Size); "Repeat $Old_X := New_X; $Old_Y := New_Y; $New_X  Paddle_Y_Top}; (If Ord (Ch) = Key_Down Then *If Paddle_Y_Bottom > Paddle_Speed Then ,Begin .Move_Abs (Paddle_X - 1, Paddle_Y _Bottom - Paddle_Speed - 1); .Box_Rel (Paddle_X_Size, Paddle_Speed + 1); .Paddle_Y_Bottom := Paddle_Y_Bottom - Paddle_Speed; ,.Move_Abs (Paddle_X - 1, Paddle_Y_Top - Paddle_Speed - 1); .Box_Rel (Paddle_X_Size, Paddle_Speed + 1); .Paddle_Y_Top := Paddle ~~&DEMO" @@   @@  1_Y_Top - Paddle_Speed; ,End {of If Paddle_Y_Bottom}; (Core^.Polygon_Edge := Save_Edge; (Core^.Fill_Index := Save_Index; PONG s psps p00  Ě ĚĚ~ |22242r &End {of If}; "Until False;  End. 2r 0 0  ĚĚĚ Ě~ | 98r r989;0 9 94)636294ptp; _X + 2 * Delta_X; &End {of If (New_X}; $New_Y := New_Y + Delta_Y * Ball_Speed; $If (New_Y < Ball_Size) Or (New_Y > Core^.Y_Max - Ball_Size) Then &Begin (Write (Chr (Bell)); (Delta_Y := -Delta_Y; (New_Y := New_Y + 2 * Delta_Y; &End {of If (New_Y}; $Move_Abs (New_X, New_Y); $Circle_Rel (Ball_Size); {Draw new one} $Move_Abs (Old_X, Old_Y); $Circle_Rel (Ball_Size); {Wipe out old one} $Unitstatus (2, Stat_Rec, 1); $If Stat_Rec[0] <> 0 Then &Begin (Unitread (2, Ch, 1); (Save_Edge := Core^.Polygon_Edge; (Save_Index := Core^.Fill_Index; (Core^.Polygon_Edge := Interior; (Core^.Fill_Index := 4; (If Ord (Ch) = Key_Up Then *If Paddle_Y_Top < Core^.Y_Max - Paddle_Speed Then ,Begin .Move_Abs (Paddle_X - 1, Paddle_Y_Bottom - 1); .Box_Rel (Paddle_X_Size, Paddle_Speed + 1); .Paddle_Y_Bottom := Paddle_Y_Bottom + Paddle_Speed; .Move_Abs (Paddle_X - 1, Paddle_Y_Top - 1); .Box_Rel (Paddle_X_Size, Paddle_Speed + 1); .Paddle_Y_Top := Paddle_Y_Top + Paddle_Speed; ,End {of If PONG  A  $66""""""""">IIH> II> QQ""EENQ!Q    I**I @>ACCEEIQQa>O^{L   8@AA""A@  @A" ""$$((0 "A@@"~"AAA#A"!A"AA""AA""A@\bAAA"   0@AA"6IIIIIF@A"AAAAAAA"!AA!!AA!"AA""BBBBBBB"?\bAAAqA"AAAAAAAAAA! pA!  !A~AAAAAIIIUcAAAaQQIIEECA"AAAAAAA"!AAA!\"c]AAAAA"A! !AA!"A@ A""AAAAAAAAA"AAAAAAAA""UUIIAAAAAAAA""AAA"AAA @@88@ A"9; 8:0 8 8| tp: 8: 98r r76r rp$xՔ p Ě <*.1!!> !&BBBB&"AA",2!!!!2, "A"$!@\bAAAb\BBBBBB3|1 42r 1r 2143r 1r 31< )21$421r 1r 21431r 1r 31=Ě 5Ball Speed (1& B" "BIIIIIII7BBBBBBF:"AAAA"&BBBB& ,2!!!!2,-10) ? EXTRAIO PASCALIOGRAFDRAW &>A@@>A>$.1!!!!!!""AA""UIIAAAA""A$$BBBBB 000I  Draw_Grid; "Begin $Height_Of_Frame := Core^.Y_Max - 20; $Width_Of_Frame := Core^.X_Max - 20;  Size_Grid := Core^.X_Max Did Div 2); $Core^.Display_Mode := Fast; $Circle_Abs (Core^.X_CP + Radius, Core^.Y_CP); $Move_Rel (Size_Grid, 0); iv 8; $Height_Grid := 3 * Size_Grid; $Width_Grid := 6 * Size_Grid; $Core^.Line_Index := 2; $Set_Linestyle (On, On, On, On, O$Core^.Display_Mode := Fill; $Core^.Polygon_Interior := Plain; $Core^.Polygon_Edge := Solid_Line; $Circle_Abs (Core^.X_CP + n, Off, Off, Off); $My_X_Value[1] := Width_Of_Frame; $My_Y_Value[1] := 0; $My_X_Value[2] := 0; $My_Y_Value[2] := Height_Of_FRadius, Core^.Y_CP); $Move_Rel (Size_Grid, 0); $Core^.Polygon_Edge := Interior; $Circle_Abs (Core^.X_CP + Radius, Core^.Y_CP)rame; $My_X_Value[3] := -Width_Of_Frame; $My_Y_Value[3] := 0; $My_X_Value[4] := 0; $My_Y_Value[4] := -Height_Of_Frame;  ; $Move_Rel (Size_Grid, 0); $Core^.Polygon_Interior := Patterned; $Core^.Polygon_Edge := Solid_Line; $Circle_Abs (Core^.X_CP Move_Abs (10, 10); $PLine_Rel (My_X_Value, My_Y_Value, 4); $Core^.Line_Index := 6; $Set_Line_Style (On, On, On, On, On, On,  + Radius, Core^.Y_CP); " Move_Rel (Size_Grid, 0); $Core^.Polygon_Edge := Interior; $Circle_Abs (Core^.X_CP + Radius, Core^.On, On); $For Line_Number := 0 To 2 Do &Begin (My_X_Value [3 * Line_Number + 1] := Width_Grid; Y_CP); $Box_Width := Size_Grid - 10; $Box_Height := Size_Grid - 20; $Move_Abs (5 * Size_Grid Div 2 - Box_Width Div 2, .5 * S(My_Y_Value [3 * Line_Number + 1] := 0; (My_X_Value [3 * Line_Number + 2] := 0; (My_Y_Value [3 * Line_Number + 2] := 0; (My_ize_Grid Div 2 - Box_Height Div 2); Core^.Display_Mode := Fast; $Core^.Polygon_Edge := Solid_Line; $Box_Rel (Box_Width, BoX_Value [3 * Line_Number + 3] := -Width_Grid; (My_Y_Value [3 * Line_Number + 3] := Size_Grid; &End;  Move_Abs (Size_Grid,x_Height); $Move_Rel (Size_Grid, 0); $Core^.Display_Mode := Fill; $Core^.Polygon_Interior := Plain; $Box_Rel (Box_Width, Box Size_Grid); $PLine_Rel (My_X_Value, My_Y_Value, 9); $For Line_Number := 0 To 5 Do &Begin (My_X_Value [3 * Line_Number + 1] _Height); $Move_Rel (Size_Grid, 0); $Core^.Polygon_Edge := Interior; $Box_Rel (Box_Width, Box_Height); := 0; (My_Y_Value [3 * Line_Number + 1] := Height_Grid; (My_X_Value [3 * Line_Number + 2] := 0; (My_Y_Value [3 * Line_Number $Move_Rel (Size_Grid, 0); $Core^.Polygon_Interior := Patterned; $Core^.Polygon_Edge := Solid_Line; $Box_Rel (Box_Width, Box_+ 2] := 0; (My_X_Value [3 * Line_Number + 3] := Size_Grid; (My_Y_Value [3 * Line_Number + 3] := -Height_Grid; &End;  MovHeight); $Move_Rel (Size_Grid, 0); $Core^.Polygon_Edge := Interior; $Box_Rel (Box_Width, Box_Height); "End; " "  Proced Program Example;  {$U Grafdraw.Code}  Uses Graf_Draw;  Var Box_Width, Box_Height, Radius, Height_Grid, Width_Grid, Size_Grie_Abs (2 * Size_Grid, Size_Grid); $PLine_Rel (My_X_Value, My_Y_Value, 18);  End; " "  Procedure Draw_Solids; "Begin $d, $Height_Of_Frame, Width_Of_Frame : Integer; $My_X_Value, My_Y_Value : Point_Array; $Line_Number : Integer;  "Procedure Core^.Line_Index := 7; $Core^.Fill_Index := 1; $Radius := (Size_Grid - 10) Div 2; $Move_Abs (5 * Size_Grid Div 2, 3 * Size_Gr   "End; " "  Begin "Set_Fill_Pattern (1); "Set_Font (0); "Draw_Grid;  Draw_Solids; "Label_It; "Readln;  End. r rrrrr2rrrrrr2rrr!rure Label_It; "Begin $Core^.Char_Width := Core^.Font_Cols; $Core^.Char_Height := Core^.X_Max Div 40; $Core^.Text_Index := 3; $Core^.Left_Right := Center; $Core^.Top_Bottom := Center; $Move_Abs (3 * Size_Grid Div 2, 3 * Size_Grid Div 2); $Text ('CirEXAMPLE cle'); $Move_Rel (0, Size_Grid); $Text ('Box'); $Move_Rel (0, Size_Grid + Core^.Char_Height); $Text ('Mode'); $Move_Rel (0,  -Core^.Char_Height); $Text ('Interior'); $Move_Rel (0, -Core^.Char_Height); $Text ('Edge'); $Move_Rel (Size_Grid, 2 * Core^ .Char_Height); $Text ('fast'); $Move_Rel (0, -Core^.Char_Height); $Text ('---'); $Move_Rel (0, -Core^.Char_Height); $Text ( ~~&DEMO" @@ D  @@ D 1'---'); $Move_Rel (Size_Grid, 2 * Core^.Char_Height); $Text ('fill'); $Move_Rel (0, -Core^.Char_Height); $Text ('plain'); EXAMPLE z|~~22 r0Ć ĆĆ $Move_Rel (0, -Core^.Char_Height); $Text ('solid'); $Move_Rel (Size_Grid, 2 * Core^.Char_Height); $Text ('fill'); $Move_Rel1Ć0Ć ĆĆ 1 r r rh w 3Ć   (0, -Core^.Char_Height); $Text ('plain'); $Move_Rel (0, -Core^.Char_Height); $Text ('interior'); $Move_Rel (Size_Grid, 2 * Ć Ć  Ć 3Ć  2ą 22r rh w Core^.Char_Height); $Text ('fill'); $Move_Rel (0, -Core^.Char_Height); $Text ('pattern'); $Move_Rel (0, -Core^.Char_Height);Ć  4Ć Ć  Ć 2Ć  4ą 22r r# $Text ('solid'); $Move_Rel (Size_Grid, 2 * Core^.Char_Height); $Text ('fill'); $Move_Rel (0, -Core^.Char_Height); $Text (' Ě 2 22r Ěy5xr2r ĚĚĚy5xr2rĚy5xr2rĚpattern'); $Move_Rel (0, -Core^.Char_Height); $Text ('interior'); " Move_Abs (4 * Size_Grid, 5 * Size_Grid); $Core^.Text_InĚy5xr2rĚy5xr2 22726r Ě76r 2r Ě76r 2r76r 2dex := 7; $Core^.Char_Width := Core^.Font_Cols * 2; $Core^.Char_Spacing := -0.2; $Text ('GRAFDRAW Filled Object Parameters');rĚ76r 2r76r Ě~(Ě ĚĚ22rr2r r2  ocedure Draw_Bun; "Var I : Integer; "Begin $Core^.Line_Index := 3; $Core^.Fill_Index := 3; $Move_Abs (Bun_X + Bun_Half, Bun_Y + Bun_Half); $For I := 0 To Bun_Half Do &Circle_Rel (I); $Move_Abs (Bun_X + Bun_Length - Bun_Half, Bun_Y + Bun_Half); $For I := 0 To Bun_Half Do &Circle_Rel (I); $Move_Abs (Bun_X + Bun_Half, Bun_Y); $Core^.Display_Mode := Fill; $Box_Rel (Bun_Len Program Test;  Uses Grafdraw;  Const Row_Size = 500; &Hot_Dog_Width = 76; &Hot_Dog_Length = 500; &Hot_Dog_Half = 38; &Hogth - Bun_Width, Bun_Width); $Core^.Display_Mode := Fast; "End {of Draw_Bun}; " " "Procedure Draw_Message; " $Procedure Dr$r2r'rr*rr-r2r2rr5rr9r2r<rt_Dog_X = 70; &Hot_Dog_Y = 202; &Bun_Width = 200; &Bun_Length = 450; &Bun_Half = 100; &Bun_X = 95; &Bun_Y = 140; &Plate_Rr?rrCr22r ĚĚHrcrcr t padius = 237; &Plate_X_Center = 320; &Plate_Y_Center = 240;  Var Message : String; " "Procedure Draw_Plate; "Begin " MoveCircleeBoxModeeInteriorrEdgeefastt------filllplainsolidfilllplaininteriorrfilllpatternsolidfilllpatterninter_Abs (Plate_X_Center, Plate_Y_Center); $Core^.Line_Index := 6; $Core^.Display_Mode := Fill; $Core^.Fill_Index := 7; $Circle_iorr!GRAFDRAW Filled Object Parameters iPASCALIOREALOPS GRAFDRAW Rel (Plate_Radius); $Core^.Fill_Index := 0; $Circle_Rel (Plate_Radius * 8 Div 9); $Core^.Fill_Index := 7; $Circle_Rel (Plate$CURSOR $EQUAL $TAG $SYNTAX _Radius * 3 Div 4); $Core^.Display_Mode := Fast; "End {of Draw_Plate}; " " "Procedure Draw_Hot_Dog; "Var I : Integer; "Begin $Core^.Line_Index := 1; $Core^.Fill_Index := 1; $Move_Abs (Hot_Dog_X + Hot_Dog_Half, Hot_Dog_Y + Hot_Dog_Half); $For I :~= 0 To Hot_Dog_Half Do &Circle_Rel (I); $Move_Abs (Hot_Dog_X + Hot_Dog_Length - Hot_Dog_Half, .Hot_Dog_Y + Hot_Dog_Half); O.RR $For I := 0 To Hot_Dog_Half Do &Circle_Rel (I); $Move_Abs (Hot_Dog_X + Hot_Dog_Half, Hot_Dog_Y); " Core^.Display_Mode := Fill; $Box_Rel (Hot_Dog_Length - Hot_Dog_Width, Hot_Dog_Width); $Core^.Display_Mode := Fast; "End {of Draw_Hot_Dog}; " " "Pr  PASCALIOGRAFDRAW  fffff333#""# # # #""333fffff;TEST  )elay; $Var A, (B, (C : Integer; " Begin &Time (A, B); &Repeat (Time (A, C); &Until C > B + 180; $End {of Delay}; $ " ~~&DEMO" @@   @@  1Begin {of Draw_Message} $Core^.Char_Width := Core^.Font_Cols * 4; $Core^.Char_Height := Core^.Font_Rows * 4; :TEST ,k@r Ě Ě Ār Ā r Ār Ė Ě$Move_Abs (Hot_Dog_X + Hot_Dog_Length Div 2 - .(Length (Message) * Core^.Char_Width) Div 2, .Hot_Dog_Y + Hot_Dog_Half Div 2); ĀF&ʀ&r&ih ! r hF&ʀ&r&ih ! r hF&r āLLr  Ėc Ě  $Repeat $ Core^.Text_Index := 4; $ Text (Message); &Delay; &Core^.Text_Index := 1; &Text (Message); &Delay; $Until FaĀ_ddrdih ! r h_ddrdih ! r h_dr āȣr  Ėzbapb`p !lse; "End {of Draw_Message}; " "  Begin "Set_Font (0); "Write ('Message ? '); "Readln (Message); "Page (Output); "WriteĚĀFʀ&r Ćr ĆrۖUcr s pP (Chr (26), 'G', Chr (26), 'N', Chr (26), 'P'); "Draw_Plate; "Draw_Bun; "Draw_Hot_Dog; "Draw_Message;  End. s ps p tptpGtptpNtptpPtp Message ? v8 EXTRAIO   O.#ڦk*Down_Key : Win_Y_Org := Win_Y_Org + Move_Mult; *Up_Key : Win_Y_Org := Win_Y_Org - Move_Mult; *Right_Key : Win_X_Org := Win_X_Org - Move_Mult; *BS_Key, *Left_Key : Win_X_Org := Win_X_Org + Move_Mult; ( Home_Key : Begin 8Win_X_Org := 0; 8Win_Y_Org := 0; 6End {of Home_Key}; *48, 49, 50, {'0'..'9'} *51, 52, 53, *54, 55, 56, *57 : Begin 8If Not Hit_Digit Then :Move_Mult := 0; 8Move_Mult := Move_Mult * 10 + Ord (Ch) - Ord ('0'); 6 Hit_Digit := True; 6End {of '0'..'9'}; (End {of Case}; $ If W <> Core^.Window_List^ Then (Begin *Hit_Digit := False; *Set_Window (Core^.Window_List); *If (Core^.Draw_Res Program Test_Core;  Uses {$U Grafdraw.Code} Graf_Draw;  Const Print_Errors = False; &Esc = 27; { Escape key }  ult <> Draw_OK) And Print_Errors Then ,Writeln (' Draw result on window movement was ', Core^.Draw_Result); *If Core^.Draw_Res CR = 13; { Return key } &Print_Key = 17; { Print screen key } &Up_Key = 31; { Up arrow key } &Down_Key = 1ult >= Draw_Overflow Then ,Core^.Window_List^ := W; (End {of If W}; $Until Ch In Allowed; " Read_Key := Ch; "End {of Read_0; { Down arrow key } &Right_Key = 28; { Right arrow key } &Left_Key = 15; { Left arrow key }  BS_Key = 8; Key}; " " " "Procedure Check_Result (Expected : Result_Set); "Var Ch : Char; "Begin  { Backspace key } &Home_Key = 25; { Home key }  Type Result_Set = Set Of Draw_OK..Draw_Max;  Char_Set = Set Of Char" If Not (Core^.Draw_Result In Expected) Then &Begin (If Print_Errors Then *Begin ,Write ('Unexpected draw result ', Core^;  Var Font_ID : Font_Type; $Pat_ID : Pat_Type;  Planes, $X_Max_2, $Y_Max_2, $Reg_X, $Reg_Y, $Reg_X_Size, $Reg_Y_S.Draw_Result, '; Hit [RETURN]'); ,Ch := Read_Key ([Chr (CR)]); *End {of Print_Errors}; &End {of If}; " Core^.Draw_Result :=$TAG $CURSOR $EQUAL $LAST $SYNTAX ize : Integer;   "Function Read_Key (Allowed : Char_Set) : Char; "Var Ch : Char; &Hit_Digit : Boolean; &Move_Mult : Integer; &W : Win_Rec; "Begin $Move_Mult := 1; $Hit_Digit := False; $Repeat &Read (Keyboard, Ch); $ If Eoln (Keyboard) Then (Ch := Chr (CR); $ W := Core^.Window_List^; &With Core^.Window_List^ Do (Case Ord (Ch) Of   9; {Just to see if it changes} "End {of Check_Result}; " " " "Function Do_Test (S : String) : Boolean; "Var Ch : Char; &Continue; $End {of Box_Cursor}; $ "Begin {of Test_Cursor} $Set_Cursor (Cur_Enable); $Check_Result ([Draw_OK]); "Begin $Write ('Test ', S, ' (Y/N/Esc) ? '); $Ch := Read_Key (['y', 'Y', 'n', 'N', Chr (Esc)]); $If Ch = Chr (Esc) Then &Exi$Set_Cursor (Cur_Visible); $Check_Result ([Draw_OK, Draw_Clipped]); $Continue; $Box_Cursor (15); $Box_Cursor (30); $Box_Cut (Test_Core); $Do_Test := Ch In ['Y', 'y']; $Writeln (Ch); $If Ch In ['Y', 'y'] Then &Erase; $Erase_Alpha; $Goto_XY (0, 2rsor (2000); " Set_Cursor (Cur_Invisible); $Check_Result ([Draw_OK]); $Set_Cursor (Cur_Small); $Check_Result ([Draw_OK]); 4); "End {of Do_Test}; " " " "Procedure Continue; "Var Ch : Char; "Begin $Write ('Type to continue'); $Ch := R$Move_Cursor (Succ (X_Max_2), Succ (Y_Max_2)); $Check_Result ([Draw_OK]); $Set_Cursor (Cur_Visible); $Check_Result ([Draw_OK,ead_Key ([Chr (CR), Chr (Esc)]); $If Ch = Chr (Esc) Then &Exit (Test_Core); $Erase_Alpha; $Goto_XY (0, 24); "End {of Contin Draw_Clipped]); $Continue; $Set_Cursor (Cur_Disable); $Check_Result ([Draw_OK]); "End {of Test_Cursor};   " "Procedurue}; " " " "Procedure Test_Cursor; " $Procedure Box_Cursor (Size : Integer); $Var I : Integer; $Begin e Test_Line; "Var I : Integer; " X, &Y : Point_Array; "Begin $With Core^ Do &Begin (Line_Index := 1; (Set_Line_Style &Size_Cursor (Size); &Check_Result ([Draw_OK, Draw_Clipped]); &For I := 0 To Core^.X_Max Do (Begin *Move_Cursor (I, 0); *C(On, On, Off, On, On, Off, On, On); (Check_Result ([Draw_OK]); (Overlay_Mode := Xor; (For I := Y_Min To Y_Max Div 4 Do *Begiheck_Result ([Draw_OK, Draw_Clipped]); (End {of For}; &For I := 0 To Core^.Y_Max Do (Begin *Move_Cursor (Core^.X_Max, I); *n ,Move_Abs (I * 2, I * 2); ,Check_Result ([Draw_OK]); ,Line_Abs (I * 2, Y_Max - I * 2); ,Check_Result ([Draw_OK]); ,Line_ACheck_Result ([Draw_OK, Draw_Clipped]); (End {of For}; &For I := Core^.X_Max Downto 0 Do (Begin *Move_Cursor (I, Core^.Y_Maxbs (X_Max - I * 2, I * 2); ,Check_Result ([Draw_OK]); ,Line_Abs (X_Max - I * 2, Y_Max - I * 2); ,Check_Result ([Draw_OK]); ); *Check_Result ([Draw_OK, Draw_Clipped]); (End {of For}; &For I := Core^.Y_Max Downto 0 Do (Begin *Move_Cursor (0, I); *,Line_Abs (I * 2, I * 2); ,Check_Result ([Draw_OK]); *End {of For}; ( (Continue; (Line_Index := Succ (Line_Index); (Move_Check_Result ([Draw_OK, Draw_Clipped]); (End {of For}; &For I := 0 To Core^.X_Max Do (Begin *Move_Cursor (I, Round (Core^.Y_Abs (X_Min, Y_Min); (Check_Result ([Draw_OK]); (For I := Y_Min To Y_Max Div 4 Do *Begin ,Line_Rel (0, Y_Max - 4 * I); ,ChecMax / Core^.X_Max * I)); *Check_Result ([Draw_OK, Draw_Clipped]); (End {of For}; &For I := Core^.X_Max Downto 0 Do (Begin *k_Result ([Draw_OK]); ,Line_Rel (X_Max - 4 * I, 0); ,Check_Result ([Draw_OK]); ,Line_Rel (0, -Y_Max + 4 * I); ,Check_Result Move_Cursor (Core^.X_Max - I, Round (Core^.Y_Max / Core^.X_Max * I)); *Check_Result ([Draw_OK, Draw_Clipped]); (End {of For}; ([Draw_OK]); ,Line_Rel (-X_Max + 4 * I, 0); ,Check_Result ([Draw_OK]); ,Move_Rel (2, 2); ,Check_Result ([Draw_OK]); *End {o ] := 2; { Move_Rel (2, 2) } ,Y[6] := 2; * PLine_Rel (X, Y, 6); ,Check_Result ([Draw_OK]); *End {of For};  8; ,Move_Abs (X_Max_2, Y_Max_2); ,Check_Result ([Draw_OK]); ,Line_Abs (Pred (X_Max), Round (Glob_Y_Max / Glob_X_Max * I)); (Continue;  (Erase; (Check_Result ([Draw_OK]); (Set_Line_Style (On, On, On, On, On, On, On, On); ,Check_Result ([Draw_OK]); ,Move_Abs (X_Max_2, Y_Max_2); ,Check_Result ([Draw_OK]); ,Line_Abs (1, Round (Glob_Y_Max / Glob_X_(Check_Result ([Draw_OK]); (Overlay_Mode := Replace; (Line_Index := 0; (For I := -1 To Succ (X_Max) Do *Begin ,Line_Index Max * I)); ,Check_Result ([Draw_OK]); *End {of For};  &End {of With}; "End {of Test_Line};    "Procedure Test_Boxf For}; ( (Continue; (Line_Index := Succ (Line_Index); (Overlay_Mode := Replace; (For I := Y_Min To Y_Max Div 4 Do *Begin := Succ (Line_Index) Mod 8; ,Move_Abs (X_Max_2, Y_Max_2); ,Check_Result ([Draw_OK]); ,Line_Abs (Round (Glob_X_Max / Glob_Y_Ma,X[1] := X_CP; { Penup command } ,Y[1] := Y_CP; ,X[2] := I * 2; { Move_Abs (I * 2, I * 2) } ,Y[2]x * I), Succ (Y_Max)); ,Check_Result ([Draw_Clipped]); ,Move_Abs (X_Max_2, Y_Max_2); ,Check_Result ([Draw_OK]); ,Line_Abs (R := I * 2; ,X[3] := I * 2; { Line_Abs (I * 2, Y_Max - I * 2) } ,Y[3] := Y_Max - I * 2; ,X[4] := X_Max - I * 2; ound (Glob_X_Max / Glob_Y_Max * I), -1); ,Check_Result ([Draw_Clipped]); *End {of For}; (For I := -1 To Succ (Y_Max) Do *Beg { Line_Abs (X_Max - I * 2, I * 2) } ,Y[4] := I * 2; ,X[5] := X_Max - I * 2; { Line_Abs (X_Max - I * 2, } in ,Line_Index := Succ (Line_Index) Mod 8; ,Move_Abs (X_Max_2, Y_Max_2); ,Check_Result ([Draw_OK]); ,Line_Abs (Succ (X_Max),,Y[5] := Y_Max - I * 2; { Y_Max - I * 2) } ,X[6] := I * 2; { Line_Abs (I * 2, I * 2) } * Y[6] := Round (Glob_Y_Max / Glob_X_Max * I)); ,Check_Result ([Draw_Clipped]); ,Move_Abs (X_Max_2, Y_Max_2); ,Check_Result ([Draw_OK] I * 2; * PLine_Abs (X, Y, 6); ,Check_Result ([Draw_OK]); *End {of For}; ( (Continue; (Line_Index := Succ (Line_Index); ); ,Line_Abs (-1, Round (Glob_Y_Max / Glob_X_Max * I)); ,Check_Result ([Draw_Clipped]); *End {of For}; Continue;  (Overlay_Mode := Xor; (Move_Abs (X_Min, Y_Min); (Check_Result ([Draw_OK]); (For I := Y_Min To Y_Max Div 4 Do *Begin ,X[1] :(Overlay_Mode := Xor; (Line_Index := 0; (For I := 1 To Pred (X_Max) Do *Begin ,Line_Index := Succ (Line_Index) Mod 8; = 0; { Line_Rel (0, Y_Max - 4 * I) } ,Y[1] := Y_Max - 4 * I; ,X[2] := X_Max - 4 * I; { Line_Rel (X_Max -,Move_Abs (X_Max_2, Y_Max_2); ,Check_Result ([Draw_OK]); ,Line_Abs (Round (Glob_X_Max / Glob_Y_Max * I), Pred (Y_Max)); ,Che 4 * I, 0) } ,Y[2] := 0; ,X[3] := 0; { Line_Rel (0, -Y_Max + 4 * I) } ,Y[3] := -Y_Max + 4 * I; ,X[4] := -X_ck_Result ([Draw_OK]); ,Move_Abs (X_Max_2, Y_Max_2); ,Check_Result ([Draw_OK]); ,Line_Abs (Round (Glob_X_Max / Glob_Y_Max * IMax + 4 * I; { Line_Rel (-X_Max + 4 * I, 0) } ,Y[4] := 0; ,X[5] := 0; { Penup command} ,Y[5] := 0; ,X[6), 1); ,Check_Result ([Draw_OK]); *End {of For}; (For I := 1 To Pred (Y_Max) Do *Begin ,Line_Index := Succ (Line_Index) Mod  ,Check_Result ([Draw_OK]); ,Box_Abs (X_CP + X_Max Div 3, Y_CP + Y_Max Div 3); ,Check_Result ([Draw_OK]); ,Move_Rel (0, -3);inue; (Box_Rel (X_Max_2, Y_Max_2); (Check_Result ([Draw_OK]); (Box_Rel (-(X_Max_2), Y_Max_2); (Check_Result ([Draw_OK]); (B ,Check_Result ([Draw_OK]); ,Box_Abs (X_CP + X_Max Div 3, Y_CP - 2); ,Check_Result ([Draw_OK]); ,Move_Rel (-3, 0); ,Check_Rox_Rel (-(X_Max_2), -(Y_Max_2)); (Check_Result ([Draw_OK]); (Box_Rel (X_Max_2, -(Y_Max_2)); (Check_Result ([Draw_OK]); ( (Cesult ([Draw_OK]); ,Box_Abs (X_CP - 2, Y_CP - Y_Max Div 3); ,Check_Result ([Draw_OK]); ,Move_Rel (0, 3); ontinue; (For I := Y_Min To Y_Max Div 4 Do *Begin ,Move_Abs (I * 2, I * 2); ,Check_Result ([Draw_OK]); ,Box_Abs (X_Max - I ,Check_Result ([Draw_OK]); ,Box_Abs (X_CP - 2, Y_CP + 2); ,Check_Result ([Draw_OK]); *End {of With}; &End {of Draw_Boxes}; * 2, Y_Max - I * 2); ,Check_Result ([Draw_OK]); ,Line_Index := Succ (Line_Index) Mod 8; *End {of For}; ( (Continue; (Set_L& $Procedure Test_Clipping (Int : Int_Type); $Begin &With Core^ Do (Begin *Polygon_Interior := Int; *Continue; *Erase; ine_Style (On, On, On, On, On, On, On, On); (Check_Result ([Draw_OK]); (For I := Y_Min To Y_Max Div 4 Do *Begin ,Move_Abs (I*Check_Result ([Draw_OK]); *Move_Abs (X_Max - 10, Y_Max - 10); *Check_Result ([Draw_OK]); *Box_Rel (11, 11); *Check_Result ( * 2, I * 2); ,Check_Result ([Draw_OK]); ,Box_Rel (X_Max - I * 4, Y_Max - I * 4); ,Check_Result ([Draw_OK]); ; "Var I : Integer; & &Procedure Draw_Boxes (Display : Display_Type; ?@ABCDEFGHIJKLMNO'); ,Text_Index := Succ (inue; *Erase; *Check_Result ([Draw_OK]); *Clip_Circle (0, Y_Max, Succ (X_Max)); *Continue; *Erase; *Check_Result ([Draw_OK' Patterned'); 2Check_Result ([Draw_OK]); 2Text_Index := Succ (Text_Index) Mod 8; 2If Text_Index = Background Then  t, Center); &Test_Position (Left, Top); &Erase; &Test_Position (Center, Bottom); &Test_Position (Center, Center); (Line_Rel (-(X_Max Div 6), Y_Max Div 5); (Check_Result ([Draw_OK]); (Line_Rel (-(X_Max Div 6), -(Y_Max Div 5)); (Check_Result&Test_Position (Center, Top); &Erase; &Test_Position (Right, Bottom); &Test_Position (Right, Center); &Test_Position (Right ([Draw_OK]); (Line_Rel (-(X_Max Div 6), Y_Max Div 5); (Check_Result ([Draw_OK]); (Line_Rel (-(X_Max Div 6), -(Y_Max Div 5));Text_Index) Mod 8; ,Continue; , ,Move_Abs (Start_X + Font_Cols * 24 * Mag, 6Start_Y - (24 * Font_Cols + Font_Rows) * Mag); , Top); &Erase; $End {of Test_Direction}; $ $ " "Begin {of Test_Text} " With Core^ Do &Begin (Char_Spacing := 0; (Tex,Char_Path := Left; ,Top_Bottom := Bottom; ,Left_Right := Right; ,Set_Charup (0, -1); ,Text ('PQRSTUVWXYZ[\]^_`abcdefg'); t_Index := 1; (Char_Width := Font_Cols * 2; (Char_Height := Font_Rows * 1; (Set_Cursor (Cur_Enable); (Set_Cursor (Cur_Visibl,Text_Index := Succ (Text_Index) Mod 8; ,Continue; 4 ,Move_Abs (Start_X - Font_Rows * Mag, 6Start_Y - 24 * Font_Cols * Mag)e); (Move_Abs (X_Max_2, Y_Max_2); (Move_Cursor (X_Max_2, Y_Max_2); (Test_Direction (Right); (Test_Direction (Left); (Test_D; ,Char_Path := Up; ,Top_Bottom := Bottom; ,Left_Right := Left; ,Set_Charup (-1, 0); ,S := 'hijklmnopqrstuvwxyz{|}~ '; irection (Up); (Test_Direction (Down); (Set_Cursor (Cur_Disable); (Erase_Alpha; (Test_Rotations; &End {of With}; "End {of  S[Length(S)] := Chr (127); ,Text (S); ,Text_Index := Succ (Text_Index) Mod 8; ,Continue; * *End {of For}; Test_Text}; " " Procedure Test_Flood; "Begin $Set_Line_Style (On, On, On, On, On, On, On, On); $Check_Result ([Draw_OK]);$End {of Test_Rotations}; & & " $Procedure Test_Direction (Dir : Direction); $ &Procedure Test_Position (Horiz, Vert : D $With Core^ Do &Begin (Overlay_Mode := Replace; (Display_Mode := Fill; (Line_Index := 6; ( (Move_Abs (0, Y_Max Div 5 * 3irections); &Var Horiz_Name, *Vert_Name : String; &Begin (Case Horiz Of *Left : Horiz_Name := 'Left - '; *Center : Hor); {Draw upper zig zag} (Check_Result ([Draw_OK]); (Line_Rel (X_Max Div 6, Y_Max Div 5); iz_Name := 'Center - '; *Right : Horiz_Name := 'Right - '; (End {of Case}; (Case Vert Of *Top : Vert_Name := 'Top'; *Ce(Check_Result ([Draw_OK]); (Line_Rel (X_Max Div 6, -(Y_Max Div 5)); (Check_Result ([Draw_OK]); (Line_Rel (X_Max Div 6, Y_Maxnter : Vert_Name := 'Center'; *Bottom : Vert_Name := 'Bottom'; (End {of Case}; (Core^.Top_Bottom := Vert; (Core^.Left_Right  Div 5); (Check_Result ([Draw_OK]); (Line_Rel (X_Max Div 6, -(Y_Max Div 5)); (Check_Result ([Draw_OK]); (Line_Rel (X_Max Div:= Horiz; (Text (Concat (Horiz_Name, Vert_Name)); (Core^.Text_Index := Succ (Core^.Text_Index) Mod 8; (Continue; &End {of Te 6, Y_Max Div 5); (Check_Result ([Draw_OK]); (Line_Rel (X_Max Div 6, -(Y_Max Div 5)); (Check_Result ([Draw_OK]); ( (Move_Rest_Position}; $ $ $Begin {of Test_Direction} $ Core^.Char_Path := Dir; &Test_Position (Left, Bottom); &Test_Position (Lefl (0, -Y_Max Div 5); {Draw lower zig zag} (Line_Rel (-(X_Max Div 6), -(Y_Max Div 5)); (Check_Result ([Draw_OK]);  cedure Test_Arcs; "Const PI_8 = 0.39269907; (PI_4 = 0.78539815; (PI_2 = 1.5707963; (PI = 3.1415926278; (PI_x2 = 6.2831852; ius := Core^.Y_Max Div 17; $Set_Line_Style (On, On, On, On, On, On, On, On); $Check_Result ([Draw_OK]); $Core^.Polygon_Edge :(PI_x3_2 = 4.7123889; (PI_x3_4 = 2.3561944; (PI_x7_4 = 5.497787; (PI_x5_4 = 3.9269907; "Var X_Start, &Y_Start, &X_End, = Solid_Line; $Core^.Overlay_Mode := Replace; $For I := 0 To 7 Do &For J := 0 To 7 Do (Begin *Core^.Line_Index := Succ (Cor&Y_End, &Pac_X_Open, &Pac_Y_Open, &Pac_X_Closed, &Pac_Y_Closed, &Combo_Radius, &Radius, &J, &I : Integer; &Oe^.Line_Index) Mod 8; *If Core^.Line_Index = Core^.Background Then ,Core^.Line_Index := Succ (Core^.Line_Index) Mod 8; *Move_pen_Mouth : Boolean; &Start_Angle, &End_Angle : Real; " $Procedure Clip_Test (Radius : Integer; Start_Angle, End_Angle : Abs (J * (Core^.X_Max Div 8) + Combo_Radius, 4I * (Core^.Y_Max Div 8) + Combo_Radius); *Check_Result ([Draw_OK]); *Arc_Rel (CReal); $Var Start_X, (Start_Y, (End_X, (End_Y : Integer; $Begin &Move_Abs (Core^.X_Max Div 64, Y_Max_2); &Check_Result ombo_Radius, I * PI_8, J * PI_8, 3X_Start, Y_Start, X_End, Y_End); *Check_Result ([Draw_OK]); (End {of For J}; $Continue;  (Check_Result ([Draw_OK]); (Line_Rel (-(X_Max Div 6), Y_Max Div 5); (Check_Result ([Draw_OK]); ( (Polygon_Interior := Patt([Draw_OK]); &Arc_Rel (Radius, Start_Angle, End_Angle, Start_X, Start_Y, End_X, End_Y); &Check_Result ([Draw_Clipped]); &Moveerned; {Draw circles} (Overlay_Mode := Replace; (Polygon_Edge := Interior; (Move_Abs (X_Max_2 Div 3, Y_Max_2); _Abs (X_Max_2, Core^.Y_Max - Core^.X_Max Div 64); &Check_Result ([Draw_OK]); &Arc_Rel (Radius, Start_Angle + PI_x3_2, End_Angl(Check_Result ([Draw_OK]); (Line_Index := 2; (Circle_Rel (Y_Max Div 8); (Check_Result ([Draw_OK]); (Move_Rel (X_Max Div 3, e + PI_x3_2, /Start_X, Start_Y, End_X, End_Y); &Check_Result ([Draw_Clipped]); &Move_Abs (Core^.X_Max - Core^.X_Max Div 64, Y0); (Check_Result ([Draw_OK]); (Line_Index := 4; (Circle_Rel (Y_Max Div 8); (Check_Result ([Draw_OK]); (Move_Rel (X_Max Div_Max_2); &Check_Result ([Draw_OK]); &Arc_Rel (Radius, Start_Angle + PI, End_Angle + PI, /Start_X, Start_Y, End_X, End_Y); &C 3, 0); (Check_Result ([Draw_OK]); (Line_Index := 6; (Circle_Rel (Y_Max Div 8); (Check_Result ([Draw_OK]); ( (Polygon_Inteheck_Result ([Draw_Clipped]); &Move_Abs (X_Max_2, Core^.X_Max Div 64); &Check_Result ([Draw_OK]); rior := Plain; (Fill_Index := 2; {Fill pattern} (Move_Abs (X_Max_2, Y_Max Div 8 * 5 + 7); (Che&Arc_Rel (Radius, Start_Angle + PI_2, End_Angle + PI_2, /Start_X, Start_Y, End_X, End_Y); &Check_Result ([Draw_Clipped]); &Cck_Result ([Draw_OK]); (Flood; (Check_Result ([Draw_OK]); (Continue; (Flood; (Check_Result ([Draw_OK]); (Continue; (Fill_ontinue; &Core^.Line_Index := Succ (Core^.Line_Index) Mod 8; &If Core^.Line_Index = Core^.Background Then (Core^.Line_Index :Index := 3; (Overlay_Mode := Xor; (Flood; (Check_Result ([Draw_OK]); &End {of With}; "End {of Test_Flood}; $ " "  Pro= Succ (Core^.Line_Index) Mod 8; &Erase; &Check_Result ([Draw_OK]); $End {of Clip_Test}; $ "Begin {of Arc_Test} $Combo_Rad Core^.Y_Max Div 12, PI_x3_4, -PI_2); $Clip_Test (Core^.Y_Max Div 8, PI_2, -PI_x3_4); $Clip_Test (Core^.Y_Max Div 6, PI_2, -PI_, Y_Offset * New_Length); (Check_Result ([Draw_OK]); (Write_Block_Pixels (Pattern.S, New_Length, New_Length); (Check_Result (2); $ $Move_Abs (Core^.Y_Max Div 6, Y_Max_2); $Check_Result ([Draw_OK]); $Core^.Line_Index := 2; $Pac_X_Open := Core^.X_Max[Draw_OK]); (If Level > 0 Then *Breakup (Sect_X + X_Offset * New_Length, 3Sect_Y + Y_Offset * New_Length, New_Length, Pred ( Div 12; $Pac_Y_Open := Core^.Y_Max Div 9; $Pac_X_Closed := Core^.X_Max Div 10; $Pac_Y_Closed := Core^.Y_Max Div 18; Level)); &End {of Draw_Section}; & $Begin {of Breakup} &New_Length := Side_Length Div 2; &If Var_New (Pattern.P, New_Length$Open_Mouth := True; $Repeat &If Open_Mouth Then (Arc_Abs (Radius, Start_Angle, End_Angle, 1Core^.X_CP + Pac_X_Open, Core^ * ((New_Length + 3) Div 4)) <> 0 Then; &Draw_Section (X, Y, -2, -2); &Draw_Section (X, Y + Side_Length - New_Length, -2, 2); .Y_CP - Pac_Y_Open, 1Core^.X_CP + Pac_X_Open, Core^.Y_CP + Pac_Y_Open) &Else (Arc_Abs (Radius, Start_Angle, End_Angle, 1Cor&Draw_Section (X + Side_Length - New_Length, Y, 2, -2); &Draw_Section (X + Side_Length - New_Length, Y + Side_Length - New_Lene^.X_CP + Pac_X_Closed, Core^.Y_CP - Pac_Y_Closed, 1Core^.X_CP + Pac_X_Closed, Core^.Y_CP + Pac_Y_Closed); &Open_Mouth := Not gth, 42, 2); &Var_Dispose (Pattern.P, New_Length * ((New_Length + 3) Div 4)); $End {of Breakup}; $ " Open_Mouth; &Check_Result ([Draw_OK]); &Arc_Rel (Radius, Start_Angle, End_Angle, /X_Start, Y_Start, X_End, Y_End); &Check_Re"Begin {of Test_Block} $With Core^ Do &Begin (Display_Mode := Fill; (Overlay_Mode := Xor; (Polygon_Interior := Patterned; sult ([Draw_OK]); &Move_Rel (Core^.X_Max Div 22, 0); &Check_Result ([Draw_OK]); " Until Core^.X_CP + Radius >= Core^.X_Max; (Polygon_Edge := Interior; (Move_Abs (X_Max_2 - (Y_Max Div 5), 2Y_Max_2 - (Y_Max Div 5)); (Check_Result ([Draw_OK]); (Box_R$Erase; $Check_Result ([Draw_OK]); $Core^.Overlay_Mode := Xor; $For I := 0 To 7 Do &For J := 0 To 7 Do (Begin *Core^.Line"End {of Test_Arcs};    "Procedure Test_Block; " $Procedure Breakup (X, Y, Side_Length, Level : Integer); $Type Color_Index := Succ (Core^.Line_Index) Mod 8; *If Core^.Line_Index = Core^.Background Then ,Core^.Line_Index := Succ (Core^.Line_In_Array = Packed Array [0..30000] Of Color_Index; $Var New_Length : Integer; (Pattern : Record 7Case Integer Of 90 : (S : dex) Mod 8; *Move_Abs (J * (Core^.X_Max Div 8) + Combo_Radius, 4I * (Core^.Y_Max Div 8) + Combo_Radius); *Check_Result ([DrawSorcery); 91 : (P : ^Color_Array); 5End {of Pattern}; $ _OK]); *Arc_Rel (Combo_Radius, PI_x2 / (J + 1), I * PI_8, 3X_Start, Y_Start, X_End, Y_End); *Check_Result ([Draw_OK]); (End&Procedure Draw_Section (Sect_X, Sect_Y, X_Offset, Y_Offset : Integer); &Begin (Move_Abs (Sect_X, Sect_Y); (Check_Result ([D {of For J}; $Continue; $Erase; $Check_Result ([Draw_OK]); $Clip_Test (Core^.Y_Max Div 24, PI_x3_4, -PI_x3_4); $Clip_Test (raw_OK]); (Read_Block_Pixels (Pattern.S, New_Length, New_Length); (Check_Result ([Draw_OK]); (Move_Rel (X_Offset * New_Length ger; " Old_Window, &Window : Win_Rec_P; "Begin $With Core^ Do &Begin (Old_Window := Window_List; ({Set_Window (Nil); x) Mod 8; (Polygon_Interior := Plain; (Polygon_Edge := Interior; (For I := 0 To 19 Do *For J := 0 To 19 Do ,Begin .Move_Ab(Check_Result ([Draw_OK]);} ( (Char_Width := Font_Cols; (Char_Height := Font_Rows; (Char_Spacing := 0; (Char_Path := Rights (I * X_Max Div 20, J * Y_Max Div 20); .Check_Result ([Draw_OK]); .Circle_Rel (Y_Max Div 50); .Check_Result ([Draw_OK, Draw_; (Set_Charup (0, 1); (Check_Result ([Draw_OK]); (Top_Bottom := Bottom; (Left_Right := Center; (Move_Abs (X_Max Div 2, 0); Clipped]); .Fill_Index := Succ (Fill_Index) Mod 8; .If Fill_Index = Background_Index Then 0Fill_Index := Succ (Fill_Index) Mo(Check_Result ([Draw_OK]); (Text_Index := Succ (Background_Index) Mod 8; (Text ('Hi, mom!'); (Check_Result ([Draw_OK]); ( d 8; ,End {of For J}; ( (For I := Region_Y_Org To Succ (Glob_Y_Max - Window^.Win_Y_Size) Do ( Begin * Window^.Win_Y_Org :(Overlay_Mode := Replace; (Line_Index := Succ (Background_Index) Mod 8; (Move_Rel (0, 0); (Check_Result ([Draw_OK]); (New (= I; ,Set_Window (Window); ,If Window^.Win_Y_Org Mod Win_Y_Res = 0 Then .Check_Result ([Draw_OK]) ,Else .Check_Result ([DWindow); (New (Window^.Next_Window); (Window^.Win_X_Org := 0; (Window^.Win_Y_Org := Char_Height; (Window^.Disp_X_Org := 0; raw_Clipped]); *End {of For}; (For I := Region_X_Org To Succ (Glob_X_Max - Window^.Win_X_Size) Do ( Begin ,Window^.Win_X_Or(Window^.Disp_Y_Org := Char_Height; (Window^.Win_X_Size := Window_List^.Win_X_Size; (Window^.Win_Y_Size := Window_List^.Win_Y_g := I; ,Set_Window (Window); ,If Window^.Win_X_Org Mod Win_X_Res = 0 Then .Check_Result ([Draw_OK]) ,Else Size - Char_Height; (With Window^.Next_Window^ Do *Begin ,Next_Window := Nil; ,Win_X_Org := 0; ,Win_Y_Org := 0; ,Disp_X_Or.Check_Result ([Draw_Clipped]); *End {of For}; ( (Continue; (Window^.Win_X_Org := Region_X_Org; (For I := 0 To 5 Do ( Fog := 0; ,Disp_Y_Org := 0; * Win_X_Size := Window_List^.Win_X_Size; ,Win_Y_Size := Char_Height; *End {of With Window}; (Setr J := 0 To 7 Do ,Begin .Window^.Win_Y_Org := J * Y_Max Div 20; .Set_Window (Window); ,End {of For J}; ( (Continue; (Set__Region (Region_X_Org, Region_Y_Org + Char_Height, 4Succ (X_Max), Succ (Y_Max - Char_Height)); (Check_Result ([Draw_OK]); ( Region (Region_X_Org, Region_Y_Org - Char_Height, 4Succ (X_Max), Succ (Y_Max + Char_Height)); (Check_Result ([Draw_OK]); (Set(For I := 0 To 19 Do *Begin ,Move_Abs (I * X_Max Div 20, 0); ,Check_Result ([Draw_OK]); ,Line_Rel (0, Y_Max); ,Check_Result_Window (Old_Window); (Check_Result ([Draw_OK]); (Dispose (Window^.Next_Window); (Dispose (Window); &End {of With}; "End {oel (Succ (Y_Max Div 5), Succ (Y_Max Div 5)); (Check_Result ([Draw_OK]); (Move_Rel (1, 1); (Check_Result ([Draw_OK]); (Breaku ([Draw_OK]); *End {of For}; (For I := 0 To 19 Do *Begin ,Move_Abs (0, I * Y_Max Div 20); ,Check_Result ([Draw_OK]); p (X_CP, Y_CP, Y_Max Div 5, 1); &End {of With}; "End {of Test_Block}; $ $ "Procedure Test_Windows; "Var J, &I : Inte,Line_Rel (X_Max, 0); ,Check_Result ([Draw_OK]); *End {of For}; (Display_Mode := Fill; (Fill_Index := Succ (Background_Inde  If Do_Test ('Circle') Then $Test_Circle; "If Do_Test ('Block') Then $Test_Block; "If Do_Test ('Area Fill') Then $Test_Flo 0jiրLc(Gi(r#/!s p/spsp/ (c 3 =/a3f Test_Windows}; $ $  Begin {of Test_Core} "Check_Result ([Draw_Init]); "Goto_XY (0, 24); "Write ('Background color ? '); od; "If Do_Test ('Arc') Then $Test_Arcs; "If Do_Test ('Windows') Then $Test_Windows; "Continue; "Erase_Alpha;  End {of Te"Readln (Core^.Background); "Write ('Pattern number ? '); "Readln (Pat_ID); "Set_Fill_Pattern (Pat_ID); "Check_Result ([Drast_Core}. w_OK]); "Write ('Font number ? '); "Readln (Font_ID); "Set_Font (Font_ID); "Check_Result ([Draw_OK]); "Write ('Planes enabled ? '); "Readln (Planes); "Plane_Enable (Planes); "Check_Result ([Draw_OK]); "Writeln ('Global space at (', Core^.Glob_X_Min, ', ', Core^.Glob_Y_Min, +') to (', Core^.Glob_X_Max, ', ', Core^.Glob_Y_Max, ')'); "With Core^.Window_List^ Do $Writeln ('Display at (', Win_X_Org, ', ', Win_Y_Org, ') to (', -Pred (Win_X_Org + Win_X_Size), ', ', -Pred (Win_Y_Org + Win_Y_Size), ')'); "Writeln ('Clipping region at (', Core^.X_Min, ', ', Core^.Y_Min, +') to (', Core^.X_Max, ', ', Core^.Y_Max, ')'); "Write ('Clipping region lower left corner (X, Y) ? '); "Readln (Reg_X, Reg_Y); "WriCTESTCORE te ('Clipping region size (X'', Y'') ? '); "Readln (Reg_X_Size, Reg_Y_Size); "Set_Region (Reg_X, Reg_Y, Reg_X_Size, Reg_Y_Size ); "Check_Result ([Draw_OK]); "Erase; "Check_Result ([Draw_OK]); "Erase_Alpha; "Check_Result ([Draw_OK]); "Goto_XY (0, 24) - ; "X_Max_2 := Core^.X_Max Div 2; "Y_Max_2 := Core^.Y_Max Div 2; "If Do_Test ('Cursor') Then $Test_Cursor;  If Do_Test ('L &GRAFICS@@   @@  0ine') Then $Test_Line; If Do_Test ('Box') Then $Test_Box; "If Do_Test ('Text') Then $Test_Text; BTESTCORE< ji`s psp hc(( F**}"Ċ?**}"Ċ5**~"Ċ+**~"Ċ!**Ċ!j"  a| Ą~ aĄa| Ą~ aĄi! $!#!! ! 76r!!| jh "&!y !xr! ! ˏ hՑ! !| jh "! raĄaĄar h7rrć ᇁ~h g ! ! ˏ hڑ! !!| jh "! r! ! ˏ hڑr! ! ˏ! ! ˏ ˏ76r-̇+ ¿|r76r-̇+ ¿r hᇁ|h g  !|!|!| !|!|!|!| !~!|!|!|!| !~!|!|!| r!|!|!| !|!|!|!| !~!|ˏ76r~퇁+̇- ¿r76rᇁ+̇- ¿r hć ~h f!|!|!| !~!|!|!| r!|!|!| !|!|!|!| !~!|!|!|!| !~!|!|!|0s p/sps p h/ Ė*a+Ps pas ps p⼃h   ˏ76r-̇+ ¿|r76r-̇+ ¿r h|h f  p ڤ- tpsp rru,s p h pru"r~ih ! rˏ76r~+̇- ¿r76r+̇- ¿r h h # " !  h|ih !~ r h~ih ! |r h|ih ! r h~ih ! |̚~ ¿rˏđr76r ~ |r r ~r r |r rr r  hޚ~ih !"~ |̚~ ¿r hّrrrr76r ˏ76r y ~ x |rr y ~ xrr y x |rr y xrrr\ rć}|h _  r | r~   h !đr ~ | r r  ~ r r  r r  | r r r~ | r  r h  ć}r}|h U| r~ i! r!76r76r 76r 76r 76r 76r 76r 76r  r| r~ rr h  ćć}|h ya76r !}!|jh "8  r!~ !| r! ! ˏ hÑr!}!|jh "8  r!xĄ a Ą a| Ą~ a Ą~ a~ !| r ! ! ˏ h! ! !        !!   r| Ą a Ąar h'  ćć}r}|h ! !!! !|jh "8  r!| !| r ! ! ˏ hÖ "!r rL --"r-ć-ć-r r- - ˏđ!-" -"r-ć-ć-r cPcccrx$r!, " r ~ry"~Ԁ#"rr ! rr - - ˏđ"j.+*&P**P */Pց4`<P`>P `BPցFĚSS#!" l#ha  %$%$# %# $%# $# a  h  *PvS`vSr  ˏđc rrrh      7 |6 |r | |r r y x |sl$(k$$$$$$r $$  rr76r76rrrwrh    |r ~ |r ~ $~r$ $ˏĂKr$$ $ˏrb " ""$""$"$(z"$(y$|r ~ |r ~ |r ~ |r ~ |r |r ~ |r ~ |r ~ |"xm%%%%%%$(z%$$'$&$$~$|$r"mh % $~r$|r hmh % $|rr ~ |r ~ |r ~ |r   76r  |r ~r $~r h$ $ $ˏ$$mh %^ni!&P $~!$|r$|2r$ $ ˏ$ $ |r ~r  |r  7 |rrr  rh$ $ ˏ!i h$&$+"ymh %(" "r#"}$)ˏ h$'$-"zmh %(" "r#"~$*ˏ r!~r!|!~r!~!|!~r!~!~ m%%%~%%| %%%r ~@6r, dcba`r 7|~@r, dcba`r ~~@6r, dcba`r 7%*%|l% % % $$rni!&!oj"' h (% %!%" k#):$r$r%~@r, dcba`r   ˏĚ   ˏr |kr % ˏ% % ˏ#k rr%r" rr%r! rĚh Յi!t  ˏĚ   ˏ!~# |#r# r% % ˏ% %% % ˏ$$%r h"j!i .rr! „ r !i htrh Նi!u  ˏĚ   ˏr r r .-.j".U--"ć--"7 --"i6 --" h! !~# |#r#$! („ r !i hsr|,0| 48|<@r-ć-ć-r r- - ˏđ!-" r-ć-ć-r r- - ˏđ!-" |DH|6r Ě~ o| n~ m|l ,!by'x&y'x&r!by%x$y% +sp)tpsp( s p9~sps p9}sps p9~9zsps p9}9ysp)tpsps psps p}sps p~sps p|sp)tpsps pspsps ps pspsps p5432r"rru~GRAFDRAW |  rh 1h1E & E & ""V&V&<V&4 4 4 ""4 4( ""9$ Draw r IV.0 [1e]esult on window movement was Unexpected draw result ; Hit [RETURN]]Test (Y/N/Esc) ? @@  "Const Graf_Version = '0.5';  (Draw_OK = 0; {Nominal draw result} (Draw_Clipped = 1; Type to continue Fast,  Fill,  Solid,  Trace,  Plainn Patternedd !"#$%&'()*+,-./01234567789:;<=>?@{Draw performed, figure clipped} (Draw_Init = 2; {Draw variables at initial state} (Draw_Overflow = 10; ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]^_`abcdefgghijklmnopqrstuvwxyz{|}~ Left - Center - Right - TopCenterrBot {Draw ignored, coordinate out of range} (Draw_Not_Imp = 11; {Draw ignored, feature not implemented} tommHi, mom!!Background color ? Pattern number ? Font number ? Planes enabled ? Global space at (, ) to ((, hӑ"$'mh % ni!&"!$|"r#!i hۑ$'$&$$~$|$r"#r#" b v Display at ((, ) to ((, Clipping region at ((, ) to ((, +Clipping region lower left corner (X, Y) ? Clipping regiuPs psps pZs psps p1crcs psps p0cr kon size (X', Y') ? CursorrLineeBoxTexttCircleeBlock Area FillArcWindowse  8 > Z  4 (1`ys p sps p8rts p.sp}s p,sps p-sps p HEAPOPS EXTRAHEA REALOPS STRINGOPGOTOXY EXTRAIO PASCALIOGRAFDRAW  isible border } 9 'Directions = (Left, { Left direction or position } 8Right, { Right direction or position } 8Up, { Up direction } 8Down, { Down direction } 8Top, { Top position } 8Center, { Center (horz/vert) position } 8Bottom); { Bottom position } 'Font_Type  = -1..99; 'Pat_Type = -1..99; 'Color_Index = 0..15; 'Point = Integer; 'Point_Array = Array [1..128] Of (Draw_Not_Found = 12; {Draw ignored, file not found} (Draw_No_Memory = 13; {Draw ignored, not enough memPoint; 'Sorcery = ^Integer; 'Win_Rec_P = ^Win_Rec; 'Win_Rec = Record 9Next_Window : Win_Rec_P; 9Win_X_Org, ory} (Draw_Win_Ovfl = 14; {Draw ignored, window list out of range} " Draw_Win_Imp = 15; {Draw ig { Global drawspace coordinates } 9Win_Y_Org, 9Disp_X_Org, { Display screen coordinates } 9Disp_Y_Org, 9Winored, implementation restrict} (Draw_No_Font = 16; {Draw ignored, no font defined} (Draw_Max = Draw_No_Fonn_X_Size, { Window size in pixels } 9Win_Y_Size : Point; 7End {of Win_Rec}; ' 'Core_Record = Record t; {Current maximum draw result number} ( "Type Cur_Attribute = (Cur_Disable, { Cursor disable } 8Cur_Enable, 9X_Min, { Left edge of screen } 9X_Max, { Right edge of screen } 9Y_Min, { Top edge { Cursor enable } 8Cur_Visible, { Cursor visible } 8Cur_Invisible, { Cursor invisible } 8Cur_Small,  of screen } 9Y_Max, { Bottom edge of screen } 9 9X_Org, { X-origin of fill pattern } 9Y_Org,  { Cursor small } 8Cur_Full); { Cursor full } 'Switch_Types = (Off, On); 'Overlay_Type = (Replace,  { Y-origin of fill pattern } 9 9X_CP, { X-current position } 9Y_CP : Point;{ Y-current pos { Replace contents } 8Xor); { Merge contents } 'Display_Type = (Fast, { No filling } 8ition } 9 9Line_Index, { Line color} 9Fill_Index, { Filled object color } 9Text_Index, { Text colFill); { Fill all polygons } 'Int_Type = (Plain, { Solid rectangle } or} 9Background : Color_Index; { Background color } ; 9Line_Style : Integer; { Line pattern } 9Display_Mode : Disp8Patterned); { User pattern } 'Edge_Type = (Solid_Line, { Solid border } 8Interior); { Invlay_Type; { Fast/Fill } 9Overlay_Mode : Overlay_Type; { Replace/Xor pixels } 9Polygon_Interior : Int_Type; { Plain/Patterned } 7End {of Core_Record}; " "Var Core : ^Core_Record;  Procedure Move_Abs (X_Position, 6Y_Position : Point); " "Procedur; " "Procedure Set_Palette (Pal_Name : String); " "Procedure Set_Value (Opcode, 7Value : Integer); " "Procedure Erase; e Move_Cursor (X_Position, 9Y_Position : Point); " "Procedure Move_Rel (Delta_X, 6Delta_Y : Point); " "Procedure Set_Cur" "Procedure Erase_Alpha; "  Procedure Flood; " "Procedure Arc_Rel (Radius : Integer; 5Start_Angle, 5End_Angle :sor (Attrib : Cur_Attribute); " "Procedure Size_Cursor (Size : Integer); " Procedure Set_Fill_Pattern (Pattern_Num : Pat_Ty Real; 1Var X_Start, 5Y_Start, 5X_End, 5Y_End : Integer); " "Procedure Arc_Abs (Var Radius : Integer;  9Polygon_Edge : Edge_Type; { Solid_Line/Interior } 9 9Font_Number : Font_Type; { Current font number } 9Font_Cols, pe); " "Procedure Box_Abs (X_Corner, Y_Corner : Point); " "Procedure Box_Rel (Width, Height : Point); " Procedure Write_B { Columns per char } 9Font_Rows : Point; { Rows per char } 9 lock_Pixels (Data : Sorcery; Rows, Columns : Integer); " "Procedure Read_Block_Pixels (Data : Sorcery; Rows, Columns : Integer9Char_Spacing : Real; { Character pitch } 9Top_Bottom, { Above/below text } 9Left_Right, ); " Procedure Set_Charup (DX_Charup, 8DY_Charup : Integer); " "Procedure Set_Font (Font_Num : Font_Type); " "Procedure { Left/right of text } 9Char_Path : Directions; { Write direction } 9DX_Charup, { Char rotation X Text (The_String : String); " Procedure Set_Line_Style (Dot_1, $yk$xj&$x&&$~#Ċ#"!0/Ėi0/Ė 0/Ė0/ Ė)`*P0/ Ė+?0/ "Z!281/-+)'%#&%$#$"$y%%%$|&%$#$"Ċ$y$x&$y%$x$ $ 6$'$ /$$y$x&$y%$x$ 6$)&$y%$x$!$ 9 327$ րO#!!0h0!đ0 Ċ!րdr098h 3270~0|06% 3270/Ė` `/!Ė 0k#y%j#x$i""#~!!#|"!d## 98h 327##y#x%$# # 6#'# ###y#x%$# 6#) %5Var Start_Angle, 9End_Angle : Real; 9X_Start, 9Y_Start, 9X_End, 9Y_End : Integer);   Procedure Set_Region (Xp0/ĖP0NiQhN/Ą@@ N/ Od!PO~O}O|O{OzOy N/ ċOz7zO|_Start, 8Y_Start, 8X_Length, 8Y_Length : Integer); 8  Procedure Set_Window (Window_Chain : Win_Rec_P); "  ImplementO~OzN- N/ċPćO}N)PO}O}N)ćPĊPO}ćO{Oy7yP7yO{ćPĊPOyćPyPxN+Pation N+PyćPĄ@@O{O{Px@@!i xhN/@@7y7yQ N/ċ!ջQթQhi Ռ Od!PO~N*O~O~N*jN/ĊO~jO|Oz7z7zO|kN/ĊOzk"#N-N-"kN/ćN/PzN/!"Py#Px4!iOxhnGRAFDRAW(0/#1 i0/Ċ#1i#10~ 0~h0/Ċ#1h!" !0&"1 i0/Ċ"1i"10| 0|h0N(2N(QĊ N(Qđ3N/ĖQ0h / "$" -R!#! +C98327  " ! '$ &#$#"!1/Ċ"1h#! !0&0h96 / "" ~%!! |8327"!8327 /Ċ /ĖC0/ 9 987 /ĖP0i!98h 327!!y!x! 6!/ 327!/Ė 4`s04t4t4t0Ć8327  '9$ 8 327   980/Ėw0/91  8327 83270/ ĖĄ pP  0Ȅ  0Ȅ4^^0"u^vu^ Xu^s0/ p%4\v^\] h"#j"/[vli$"$,0[[ć[Wć[XćY Z [/Ċ0/ Ą/s !0 0Ċ0 6 y x"!y !  .!{ 6 y x"!x !  . 0~0y 0|0x /.i.i /ih Ċ 00!!0/Ėy<=P0սjixh  k l( (6),)o,o ( 'o'5*l)-6o ( 'o'-'*l0y,0yo,o ( 'o(m)l)m(l%̇¾o'kyx D,$ ,$ ր~-#-%#%'5)l0y-6o ( 'o'-')l0x,0xo,o ( 'o'50ylt0x-6o ( 'o'-'0ylO -%ր,,$|j,$ ,$ ր-#% -#%ր,,$|j,#% *,*o,o ( 'o'50xl'*-6o ( 'o'-'0xlր$(/! ! ժ$k$B(nl&n&**,#% ր-$ -$ր--$~jV,% ,%#% ,# ր-$ -$րm/&+%+m%,6ml-**ml))m/&+%+m%,6mlj-))ml_0y0ym/&+%+m%,6ml>-0y0yml10--$~jր"098/327- , n&ՠ&<&;ՊP-' -'~+᳡>-' -+~x0xm/&+%+m%,6ml-0x0xmlր$&/! /塠/$.mj&(0(/!&'.k'.k/&! &%.j%.j"#+,' ,*|,' ,'|*᳡ր%-,&0y0x('&%,-0 0 600#/& ! /kh& #V  b f XxixhQxixhG`(`'`&`%`$`#`"`!0 0/Ė u0kj#98h 327#y%#~#y%᳟##y%#yi#xixh<xixh1xixh%xixhxixhxixhր.&!.fć .bć4f!.f~#yi$%!¿l!mj#x$#|#x$᳟##x$#xi#|#xi%$!¿m!lj#y#x%$# # 6#& 327#/"##y%##x$Ė!0yćb .bćf󿢇b󿢑!.f .b!ć ĖM"0""oh"98:塤 (327/̆$#!# 9 327#/Ė 0/.թh./j "tmg"tlf"tk#o ./( ' & , -98i!327--y--x./ 0xm o098 (327n0 + j"*խn-"xi,"xh!)yl )xk)y$)~)y$᳟#)y$)ym)~)ym#$%¿k%lf./9--y--x!327f#t-y.-~-x/-|-/Ċ-/Ċ-/ $g$t% %t-/Ė6 0i#"B!98h 327n)x#)|)x#᳟#)x#)xm)|)xm$#%¿l%kn')y)x$#) ) 6)&$#o)!) "jM(3270/&ĖO m09!y!x$"#+ 327!y"!~!x#!|!/Ċ!/Ċ!/ĖZ /[s0 5t0ewPe 0e 0Ȅ/[[0"8n&327j0o) h (թ+ xl* xkj'y$'~'y$᳟#'y$'yi'~'yi#$!¿k!lj'x#'|'x#᳟#'x#'xi'|'xu[}u[eXu[s0/ pխ/Wv՜ZYXWj"t5wlih"!"k!k[ #p #i$#!¿l!kj%'y'x$#' ' 6'&$#m''y$''x# hQ&3270/"Ė 0hi!~e!} 6 y x"!z !  .!| !"" " 6"0+n'"o+r+r'r'r& /̄m /̄P+ʸ@YʋXQX$ ËbvKy^`vF 3Vt^;~;Vu N;N|GO3ۋF;~;Vu Nm' /̄l /̄l &%""m'&%$ l%!!m' $""l$!!l:D9 &&%Ċ&%ć%/&x5;|GًI/ʀ;VuG3tF tN;} F t^RWPS [X_Z tu u2;Fu~u'NA:uC tN9Nu ć&x&+$Ċ$$ć#/$x5 "y"x/&%'$!"" " 6"0 /&%'$"!#x;:h$x&x$x&x#x%x ,"y"x&%NA:uN y3;~NV{{N+N uV+Vd6\ [EGfF(׆׋v r,P^r &<kk"y"x$#'#<,"y"x&%&#<) (327"/ Ė/%'$&`&`*`$&%'r%'uIJ XG<uËFH3N߃;} x I+FNFV3N߃;;~ ``. $&``2 `0h'$ y6# x:r& y x$#=% y x"!='x&%dcba w0k#98h x I+F݉v  327$l# $>aaaa # ##y#x$## 6-$: 327#y$#~#y$#x$#|#x$#/Ċ#/Ė0k%#yB$#xFri#98h 327# !Jbbbb # ##y#x!## 6-!: 327#y!#~#y!#x!#|#x!#/Ċ#/ĖMw0w8 0-0+"0W&K<<BCIJ36dF6 V$" Fu~tYN 6TȉN V 6RӉV 6N@W&SW&S""E &<yy"6P"1"~u8FtN V V Ӌ VW6;R|uPYPPVH;~‡T;}  Patxx.Ptrnn: Fontxx.Font:ދ=^XQȋ@;} *-;~ދƇ_^;";u_YSQRWVPA;}EZRV}΀2oo/:"tF;}u \=bKkw[ZRWS*^_XX^_ZY[VWSQREG"D?:ZY[_^VWSQREG6TJzupZY[_^  &F}G@FK@JIxpLEGD_Z"u];tY@3֊ʀ"t 3;u;vBq;}׃>\t puuGÄ"u;t@֊i j:)//+ ++' ''"y/"~"y/"x/"|"x/h : * "y"x/Y9lrùHH(hr rùA/ f3ɻfputùQp up trCp6T6RQ  u.)F %tWر^`NV^)^ B6).)r"Q^ruYu.)F tD^`NV6uF ^ vVNXF^v VNFN 1v 2u+H3N3; 1t 1i x++++IF;vu3 ).)rQ\^ruVjYu^VFNt^VFN[F t5+uVJ@ u^ K;xu ; 1t&H1N 1H3v 1Hv2313c3++xB;Vu3@ xE++ـ"t 3;u;~Jq;뎋2oo/ËEG$!"&!""!"~ u3ۉ7+^9+F;+F ?+F=+FA+7+9+C+6;+?+P6OC+B65+C+;F u vC+;Vtuӡ=+"!Ü$+ȝuP#΀YIt(3Gâ[\S[ptrptr\PSQRA[ =r^`RJ\A+VF  >Z^v@T?+F;?+w)?+ZA+.=+vL7+C+9+F6;+7+;Ft+Hx]\أ^`bEGfF(׆r!P^r uc>$ '*XG<uZY[X36T6R6N6PËVN 2 y  y zѻ @[\b^d` tb t^NVEGfF(׆׋v r,P^r rvF1nr0A98;/=&3PPSSPSP 336Vd6VnFFFF42FuIJw] `cXG<u2^CC0-ك+K.-,-Ny3ɋ^2-2ۋv6 F F p tp u r r rˋF 6TF6RFH6NFH6PN V~JRv xL Au~65F~ 6F ~6=F;,-t;2-u v62-uFـt~65~ 6~6=.-NN N0-NFf Hx ؊FfHyN[zt^Ft t^'F 'F[uF''F'P''a^ ^ ^36ЎBC[F 6T%".NAAuJ6+Nv+ډ^؃\Nx''v'6'2 u:Vu 6C΀tuƊVt:vuЊ-O'u'N '^2t ':Q~3V 6;PpN SEG#. ׀&GGptrptrĊ".*~3ۊ#.s6C;^u#.Nt낈6''*2^`*2\'V[uV0EGf F(׆r$^Pr u uX<uYNF muGuptrptr tPy +y3CJy3ҋ6+>Nv+B t)y +y3@Iy3ɋ6+>Pv+G<u[{'.'':Ntv''>[r[uFF'':Nt{F^VN 2 y  y A t IJ3~ >/ tq++;>/t>/` y  + OF;ru ;>/t4V+yF3JRV +y;s  [£\ ȋb^)^+؉` FN ^V hubF^N V [N I\F(ף)F׊G3JRVWvvv RKSbN+Ay36N++y؉\ۉ^`[ V 6;PQVYV +xK[V +By36P Êࣸ)BCICCkF6T%tY+؋F ;vã^`F)F V6).)rQ ^ru:Y++}؉\ۉ^`[ N+xRZN6;NZ0EGfF(׆rP^ru XG<! l++*********U*Q*A*>*** **)))))))))))T)P)@)7)0),)))) ))((((((((((}(e(^(X(( (((''''''''''i'&&&&\&*&!&&&& &&%%%%%%}%y%r%n%g%c%`%\% %$$$$$a$]$5$1$-$### ##"""""" c Z V O I F B =7&~xrn3343 444444(4&42404<4:4F4D4P4N4Z4X4d4b4n4l4x4v444444444441233"&&"f$k&;'(*B."K#o&B'R'.z/\0~0l2)3^3#{&J'a.S/50022}3"t&'*** HEAPOPS EXTRAIO STRINGOPEXTRAHEAFILEOPS REALOPS  11 11 (X direction size, Y direction size)  t t t t t t t t t t t  t r r r r r r r r r t  t  r y y y y y y y r t  t r y g g g g g y r t  t r y g . . . g y r t  t r y g . . . g y r ++WPV+>1vW@)_1 ^X_+1;Vr+VC;^u3I1 uvN;xBHVy+36>P++GyF;v|+vً1+ًOANy+3;^ r+^ 6.N++EyXNV^ v~FUPSQVWRJ@Fy+3;^ |+^ 6>N++Gy׋~ϽXV^ FNvWxEY6;P ZRNV2Z_^Y[X]USRQFy~+3;v|+v6P++B}~}V1R+1J6+Nx3+1R+1ANy+3;^ |+^ XNVF~v^ P tx1F FX FXx t 9FtFYZ[]&3g&&4$CURSOR $EQUAL )& 4a)&4,&4)&(4'&24E+&<4$.&F44-&P4/&Z4 1&d4"&n4"&x44'&4$'&4,'&4W'&4 &4 ) \  RMHC>94/*%  GTQ ;"y  9 c?DvQ>333w3p32=2'22 211111b1\1;100000000Q0M0G0A0#0//////.....O.GG....y.H.7.2.-.-----s-b-[-F-#- - -,,,,,,,,,,w,t,l,i,f,\,W,P,J,B,&,,, , ,+++++++++++++++++~+" &Start_Angle, &End_Angle : Real; " $Procedure Part_Pie(Pass_Color,X_Orig,Y_Orig:Integer ; End_Angle,Start_Angle:Real); &Be$TAG $CURSOR $EQUAL $LAST A $SYNTAX gin (Move_Abs (X_Orig,Y_Orig); (Core^.Line_Index := Pass_Color; (If Core^.Line_Index = Core^.Background Then *Core^.Line_Index := Succ (Core^.Line_Index) Mod 8; (Arc_Rel (Pie_Radius,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); &End; & $ProceYttqYdure Write_Percent(Pass_Color,X_Orig,Y_Orig:Integer ; Str:String); &Begin (Move_Abs(X_Orig,Y_Orig); O.#Q(Core^.Text_Index := Pass_Color; (Text(Str); &End; & $ "Begin {of Arc_Test} $Set_Line_Style (On, On, On, On, On, On, On, On); $Core^.Polygon_Edge := Solid_Line; $Core^.Overlay_Mode := Replace; $Core^.Top_Bottom := Center; $Core^.Left_Right := Center;  $Part_Pie(1,140,340,0,PI/3); $Write_Percent(2,140+49,340+34,'16%'); $Part_Pie(1,140,340,PI/3,PI-PI_8); $Write_Percent(3,140-12,340+60,'35%'); $Part_Pie(1,140,340,PI-PI_8,PI+PI_4); $Write_Percent(4,140-60,340-17,'15%'); $Part_Pie(1,140,340,P t  t r y g . . . g y r t  t r y g g g g g y r t  t r y y y y y y y r t  t r r r r r r r r r t  t t t t t t t t t t t   Program Test_Core;  {$U *Grafdraw.Code}  Uses Graf_Draw;  Const Esc = 27; { Escape key } Var Font_ID : Font_Type; $Pat_ID : Pat_Type;  BUF : PACKED ARRAY [0..1] OF CHAR;  "  Procedure Test_Arcs; "Const Pie_Radius = 100; (PI_8 = 0.39269907; (PI_4 = 0.78539815; (PI_2 = 1.5707963; (PI = 3.1415926278; (PI_x2 = 6.2831852; (PI_x3_2 = 4.7123889; (PI_x3_4 = 2.3561944; (PI_x7_4 = 5.497787; (PI_x5_4 = 3.9269907; "Var X_Start, &Y_Start, &X_End, &Y_End, &Radius : Integer; # cent(3,512-12,140+60,'35%'); $Part_Pie(3,470,140,PI-PI_8,PI+PI_4); $Write_Percent(4,470-60,140-17,'15%'); $Part_Pie(1,512,140n_Edge := Solid_Line; *Polygon_Interior := Plain; (End; &Cur_Y := 0; &Move_Abs(32,30); &One_Line(16*4); &One_Line(35*4); ,PI+PI_4,PI+PI_2); $Write_Percent(5,512-26,140-52,'10%'); $Part_Pie(1,512,140,PI+PI_2,2*PI); &One_Line(15*4); &One_Line(10*4); &One_Line(24*4); $End; "(*===========================================*) "Begin { Line_Cha$Write_Percent(6,512+40,120-27,'24%');  "End {of Test_Arcs};       Procedure Line_Chart; "(*====================rt } $Core^.Line_Index := 1; $Core^.Text_Index := 1; $Move_Abs(32,30); $Line_Abs(32,220); $Move_Abs(32,30); $Line_Abs(372,=======================*) "Procedure Coords_Vert; "(*=================================*) $Procedure One_Coord(Y_Value:Integer30); $Coords_Vert; $Coords_Horiz; $Lines; $Move_Abs(32,30); $Line_Abs(32,220); $Move_Abs(32,30); $Line_Abs(372,30); "End ; Str:String); &Begin (Move_Abs(32 - 4 - Length(Str)*7,Y_Value); (Text(Str); &End; "(*=================================*) ;    Procedure Bah_Chart; "(*===========================================*) "Procedure Coords_Vert; $Begin &One_Coord(30,'0'); &One_Coord(70,'10'); &One_Coord(110,'20'); &One_Coord(150,'30'); &One_Coord(190,'40'); $End; "(*=================================*) $Procedure One_Coord(Y_Value:Integer ; Str:String); &Begin (Move_Abs(290 - 4 - Length"(*===========================================*) "Procedure Coords_Horiz; "Var $Count : Integer; $(*========================(Str)*7,Y_Value); (Text(Str); &End; "(*=================================*) $Begin &One_Coord(280,'0'); &One_Coord(320,'10'=========*) $Procedure One_Coord(Str1,Str2:String); &Begin (Move_Abs(54+Count,20); (Text(Str1); (Move_Abs(54+Count,8); (Te); &One_Coord(360,'20'); &One_Coord(400,'30'); &One_Coord(440,'40'); $End; "(*===========================================*)xt(Str2); (Count := Count + 60; &End; $(*=================================*) $Begin &Count := 8; &One_Coord('Labor','');  "Procedure Coords_Horiz; "Var $Count : Integer; $(*=================================*) $Procedure One_Coord(Str1,Str2:Stri&One_Coord('Parts',''); &One_Coord('Profit',''); &One_Coord('Over','Head'); &One_Coord('Freight',''); $End;  ng); &Begin (Move_Abs(312+Count,270); (Text(Str1); (Move_Abs(312+Count,258); (Text(Str2); (Count := Count + 60; &End; $("(*===========================================*) "Procedure Lines; $Var &Cur_Y : Integer; $(*==============================*=================================*) $Begin &Count := 8; &One_Coord('Labor',''); &One_Coord('Parts',''); &One_Coord('ProfitI+PI_4,PI+PI_2); $Write_Percent(5,140-26,340-52,'10%'); $Part_Pie(1,140,340,PI+PI_2,2*PI); $Write_Percent(6,140+40,320-27,'24===*) $Procedure One_Line(End_Y:Integer); &Begin (Line_Rel(60,End_Y - Cur_Y); (Cur_Y := End_Y; &End; $(*==================%');   $Part_Pie(1,512,140,0,PI/3); $Write_Percent(2,512+49,140+34,'16%'); $Part_Pie(1,512,140,PI/3,PI-PI_8); $Write_Per===============*) $Begin &With Core^ Do (Begin *Line_Index := 4; *Display_Mode := Fast; *Overlay_Mode := Replace; *Polygo$ ',''); &One_Coord('Over','Head'); &One_Coord('Freight',''); $End; " "(*===========================================*) "Procedure Bars; $Var &Count : Integer; $(*=================================*) $Procedure One_Bar(Color_Pass,End_Y:Integer); &Begin & Core^.Fill_Index := Color_Pass; (Move_Abs(290+Count,280); (Box_Rel(60,End_Y); (Count := Count+60; &End; $(*=================================*) " Begin $ With Core^ Do (Begin *Line_Index := 7; *Display_Mode := Fill; *Overlay_Mode := Replace; *Polygon_Edge := Solid_Line; *Polygon_Interior := Plain; (End; &Count := 0; &One_Bar(2,16*4); &One_Bar(3,35*4); &One_Bar(4,15*4); &One_Bar(5,10*4); &One_Bar(6,24*4); $End; "(*===========================================*) "Begin { Bah_$TAG $CURSOR $EQUAL $LAST A $SYNTAX Chart } $Core^.Line_Index := 1; $Core^.Text_Index := 1; $Move_Abs(290,280); $Line_Abs(290,470); $Move_Abs(290,280); $Line_Abs(630,280); $Coords_Vert; $Coords_Horiz; $Bars; $Move_Abs(290,280); $Line_Abs(290,470); $Move_Abs(290,280); $Line_Abs(630,280); "End;  $  Begin {of Test_Core} "BUF[0] := CHR(26); "BUF[1] := 'G'; "UNITWRITE(1,BUF,2); "BUF[1] := 'N'; "UNITO.#SrWRITE(1,BUF,2); "Plane_Enable (7); "Core^.Background := 0; "Pat_ID := 0; "Font_ID := 0; "Set_Fill_Pattern (Pat_ID); "Set_Font (Font_ID); " " "Erase_Alpha; "Erase; "Test_Arcs; "Bah_Chart; "Line_Chart; "Readln; "Erase; "Erase_Alpha;  End {of Test_Core}. %  &Fill_Index := 1; &Flood; $End; "End;  (*===========================================================*)  Procedure Letter_ "Set_Fill_Pattern (Pat_ID); "Set_Font (Font_ID); " " "Erase_Alpha; "Erase; "Letter_A; "Letter_P; "Letter_C; "Put_In_PP; "Const $Start_PX = 288; $Start_PY = Start_Y; "Begin $Move_Abs(Start_PX , Start_PY); $Line_Rel(0,Letter_H); $Line_Rel(L; "Readln; "Erase; "Erase_Alpha;  End {of Test_Core}. etter_H Div 2 , - Letter_H Div 2); $Line_Rel(-5 * Letter_H Div 16 , 0); $Line_Rel(0 , -Letter_H Div 2); $Save_X1 := Core^.X_CTESTCORE P; $Save_Y1 := Core^.Y_CP; $Line_Abs(Start_PX , Start_PY); "End;  (*========================================================  Program Test_Core;  {$U *Grafdraw.Code}  Uses Graf_Draw;  Const Esc = 27; { Escape key } &Start_X = 100; &Start_Y===*)  Procedure Letter_C; "Var $Start_CX : Integer; "Begin $Start_CX := Save_X1+8; $Move_Abs(Start_CX , Start_Y); $Line_ = 150; &Letter_H = 180;  Var Font_ID : Font_Type; $Pat_ID : Pat_Type;  BUF : PACKED ARRAY [0..1] OF CHAR; $Save_X1,SaAbs(Start_CX , Start_Y+(Letter_H Div 2)-8); $Line_Abs( Start_X+16+(3*Letter_H Div 2 ) , Start_Y+(Letter_H Div 2)-8 ); $Line_Reve_Y1, $Save_X2,Save_Y2 : Integer;  " "Procedure Letter_A; "Var $Save_X1,Save_Y1, $Save_X2,Save_Y2 : Integer; "Begin l(9*Letter_H Div 48 , -9*Letter_H Div 48); $Line_Rel(-8*Letter_H Div 48 , 0 ); $Save_X1 := Core^.X_CP; $With Core^ Do $Begin &Core^.Line_Index := 1; &Move_Abs(Start_X,Start_Y); &Line_Rel(Letter_H,Letter_H); &Line_Rel(0,-Letter$Save_Y1 := Core^.Y_CP; $Line_Rel(5*Letter_H Div 48 , -5*Letter_H Div 48); $Line_Rel(8*Letter_H Div 48 , 0 ); $Line_Rel(9*Le_H); &Line_Rel(-(Letter_H Div 4),0); &Line_Rel(0,Letter_H Div 9); &Line_Rel(-(Letter_H Div 4),0); &Save_X1 := X_CP; &Save_Ytter_H Div 48 , -9*Letter_H Div 48 + 2); $Line_Abs(Start_CX , Start_Y); $Move_Abs(Start_CX+3 , Start_Y+3); $Flood; "End;  (1 := Y_CP; &Line_Rel(-(Letter_H Div 9),-(Letter_H Div 9) ); &Save_X2 := X_CP; &Save_Y2 := Y_CP; &Line_Abs(Start_X,Start_Y); *===========================================================*)  Procedure Put_In_P; "Begin $Move_Abs(Save_X1-55 , Save_Y1+55)&Move_Abs( Save_X1 + 5 Div 2 * (Save_X1-Save_X2) , 0Save_Y1 + 5 Div 2 * (Save_Y1-Save_Y2) ); &Line_Rel(3 Div 2 * (Save_X1 - S; $Line_Rel(-20 , 20); $Line_Rel(0 , -20); $Line_Rel(20 , 0); $Move_Abs(Save_X1-50 , Save_Y1+50); $Flood; "End;  (*======ave_X2) , /3 Div 2 * (Save_Y1 - Save_Y2) ); &Line_Rel(0,-3 Div 2 * (Save_Y1 - Save_Y2) ); =====================================================*) &  Begin {of Test_Core} "BUF[0] := CHR(26); "BUF[1] := 'G'; "UNITWR&Line_Abs( Save_X1 + 5 Div 2 * (Save_X1-Save_X2) , 0Save_Y1 + 5 Div 2 * (Save_Y1-Save_Y2) ); &Move_Abs(Start_X+10,Start_Y+3);ITE(1,BUF,2); "BUF[1] := 'N'; "UNITWRITE(1,BUF,2); "Plane_Enable (7); "Core^.Background := 0; "Pat_ID := 0; "Font_ID := 0;& ~(x I)`*P `,r`r,|Fn R*UP`SP6r*r6r`r<Vh     < r Ki! ! !!!h r #     Ě Ā r r rtr ~~&DEMO" @@   @@  1 r r rtr)`*P"`,r`r,@h&R*UP`SP(TESTCORE!l Ādrrrr rr$yk$xj ဴ r$yi$xhdr##!"" 8r*r8r`r<Vjh !ā"r#!" r" r##!"" rd r$ r rrrrryxr< r <i! ! !!!h# : Ě ā"r" r6h r rdr 0 0r0ryx00r0r r"rvr "r"r"rvrȆˀGpˀNprc˥0 0r r rr6757rrrr6252rr@ȆˀGpˀNprc˥1cr0cr rr t prrE & E & E & V&E & V&E & W& ~~&DEMO" @@   @@  1E & W&E & "E & "E & E & E & E & V&E & V&E & TESTCORE])(r *Ě   ˏĀd`dr ~)`*P-,r .`r.W&E & W&E & "E & "E & 16%35%15%10%24%16%35%15%10%24%01002003004, rĚĚĚTÐ1T"T  T<T00LaborPartsProfittOverrHeaddFreight0100200300400LaborPartsProfittOverrHeaddFreight7K#B(@GÐo{@Y'1 APASCALIOREALOPS GRAFDRAW 1"LQV <Z_ch<lquz4)TESTCORE ' $CURSOR $EQUAL O.kTESTCORE   (  &GRAFICS@@   @@  0jTESTCORE ji`s psp hc(( F**}"Ċ?**}"Ċ5**~"Ċ+**~"Ċ!**Ċ!j"    The file NGRAFDRAW.CODE is the same as GRAFDRAW.CODE except  it has been run through the native code generator. This m 0jiրLc(Gi(r#/!s p/spsp/ (c 3 =/a3c˥c˥1cr0cr rrs prre PASCALIOGRAFDRAW eans  that by using NGRAFDRAW.CODE instead of GRAFDRAW.CODE you should  see some performance improvement. ( 0s p/sps p h/ ĖT*a+P-rrt,\r6"r~ih ! r76r~+̇- ¿r76r+̇- ¿r hh # " ! ˏ h|ih !~ r h~ih ! |r h|ih ! r h~ih ! |̚~ ¿rđr76r ~ |r r ~r r |r rr r  hޚ~ih !"~ |̚~ ¿r hّrrrr76rrˏ76r y ~ x |rr y ~ xrr y x |rr y xrr rć}|h _  r | r~  ry h !đr ~ | r r  ~ r r  r r  | r r X ~ | r  r h  ć}r}|h U| r~ ri! r!76r76r 76r 76r 76r 76r 76r 76r 76r | r~ rr h  ćć}|h ya!}!|jh "8  r!~ !| r! ! ˏ hÑr!}!|jh "8  r!~ !xĄ a Ą a| Ą~ a Ą~ a| r ! ! ˏ h! ! !        !!   r! | Ą a Ąar h'  ćć}r}|h !!! !|jh "8  r!| !| r ! ! ˏ hÖq "!r r i! $a| Ą~ aĄa| Ą~ aĄ!#!! ! 76r!!| jh "&!y !xr! ! ˏ hՑ! !| jh "! r!aĄaĄar h7rrć ᇁ~h g   ! ˏ hڑ! !!| jh "! r! ! ˏ hڑr! ! ˏ! ! ˏ!|ˏ76r-̇+ ¿|r76r-̇+ ¿r hᇁ|h g  ˏ!|!| !|!|!|!| !~!|!|!|!| !~!|!|!| r!|!|!| !|!|!|!| !~!|!|!|76r~퇁+̇- ¿r76rᇁ+̇- ¿r hć ~h f !| !~!|!|!| r!|!|!| !|!|!|!| !~!|!|!|!| !~!|!|!|  ˏ76r-̇+ ¿|r76r-̇+ ¿r h|h f  r!~r!|!~r!~!|!~r!~!~X m%%%~%%| %%%r )  ~ |r ~ |r ~ |r   76r  |r ~r  |~r h$ $ $ˏ$$mh %^ni!&P $~!$|r$|2r$ $ ˏ$ $$ $r ~r  |r  7 |rrr  r~@6 ˏ!i h$&$+"ymh %(" "r#"}$)ˏ h$'$-"zmh %(" "r#"~$*ˏr, dcba`r 7|~@r, dcba`r ~~@6r, dcba`r 7~@ hӑ"$'mh % ni!&"!$|"r#!i hۑ$'$&$$~$|$r"#r#"wbwcr%*%|l% % % $$rni!&!oj"' h (% %!%" k#):$r$r% % r, dcba`r   ˏĚ   ˏr ?|krˏ% % ˏ#k rr%r" rr%r! rrĚh Յi!t  ˏĚ   ˏ!~# |#r# !% % ˏ% %% % ˏ$$%r h"j!i rr „ r !i htrh Նi!u  ˏĚ   ˏ!r r r .-.j".U--"ć--"7 --"i6 --" h! r-~# |#r#$! („ r !i hsr|,0| 48|<@|ć-ć-r r- - ˏđ!-" r-ć-ć-r r- - ˏđ!-" --DH|6r Ě~ o| n~ m|l ,!by'x&y'x&r!by%x$y%x$"r-ć-ć-r r- - ˏđ!-" -"r-ć-ć-r cPcccr- -r!, " r ~ry"~Ԁ#"rr ! rr  ˏđ"j.*P*P *Pց` P`P `PցĚSS*Pu#!" #ha w%$%$# %# $%# $# a w=h    S`uSr  ˏđ rrr)h     7 |6 |r | |r r y x |l$(k$$$$$$r $$$~r rr76r76rrrrh    |r ~ |r ~ |r$ $ˏĂr$$ $ˏrb " ""$""$"$(z"$(y$"xm% ~ |r ~ |r ~ |r ~ |r |r ~ |r ~ |r ~ |r%%%%%$(z%$$'$&$$~$|$r"mh % $~r$|r hmh % $|r$* lockFloodArcssWindowsWindows! s  Iy w HEAPOPS EXTRAHEAREALOPS STRINGOPGOQPQVQQ&ڋGFڋGr^G^ 3^|@^3~; F#sw3^|@^3~;F#sXڋGTOXY PASCALIOGRAFDRAW sڋwt7ڋFGڋFGڋGsڋwt7^G^^G^ڋG^F=@3vu@_;tڋGsڋwt73^u@ډGhڋGs_F=73vu@_;tڋwt73^u@ډG F=$GRAFDRAW u Q QڋGЋڋ_ sڋG^EڋG^ڋ3t;vt@#GsTF=|>ڋGs &wt7ڋFGڋGs!ڋwt7ڋG^ ڋGF3^|@^3~; F#sD3^|@4( ^3~;F#s^G^^FGF^^G^ ^G^ YڋGF^GF F^FF3^|@^3~; cr r 9:t9r"ĀȀȀr"rrt~| IV.0 [1e]!%( *- 147:r9 'r">#$GRAFDRAW W&K<<W&SW&S""E &<>h1h1E & E & ""V&V&<V&4 4 yy Patxx.Ptr4 ""4 ""9nn: Fontxx.Font:trA*(df,DDDzj$ Draw result on window movement was Unexpected draw result ; Hit [RETURN]] Fast,  Fill,  Soli r(R}##"$$$6%%%& '$'j''''?(ڋG^ڋF+G=}FڋG^d,  Trace,  Plainn Patternedd !"#$%&'()*+,-./01234567789:;<=>?@ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]^_`abcdefgghijklmnopqrstuv ڋF+GFڋGFڋ_;G ~ڋ_G FڋG^ ڋGFFF+Fڋ__+vvPQQVQQ&wxyz{|}~ Left - Center - Right - TopCenterrBottommHi, mom!!CursorrLineeBoxTexttCircleeBF+G=}FڋG^ ڋF+GFڋGFڋ_;G~ڋ_GFڋG^ ڋGFFF+Fڋ__+vv+ i0/Ė 0/Ė#0/ Ė4)`*P0/ Ė+0/ "Z!281/-+)'%# րO#!27!!y!x! 6!/ 327!/ĖX4`s04t4t4t0ĆĄ pP  0Ȅ  0Ȅ4^!0h0!đ0 Ċ!րd098h 3270~0|06% 3270/Ė` `p0/Ėf PڋGF^0"u^vu^ Xu^s0/ p%4\v^\]^4t4 ^4t4o^4t4 \]FG^NQQ@@3^t@3_^uF#rFF»^ ؉3_ }@3_ }F Ƌjd"t"n&զmih"!"k!k^$ #p #h"#j"4^vmi%"%P0__ć_!\ć_ ]ć^0/Ć3_}F Ƌ3_}F Ƌ3_}F Ƌ3_}F s G^ st3_;\t@3_tF Ƌ`$\]`z``y``x`,d\]t$0/ )^4t(^4t'^4t4s0j&k#~Ռ"y(i "y(%_ \3K;\Z~G s G^!GG ™|R…yDR=t;GPE ™R…yGR‹\ +^i"x'h "x'$h#}"6"y"x('#z%$! "*#|"6"y"x('#y%$! "*#{"6"y"x('#x%$! "* GD GGDڋ_;G~ ڋ_G+DG GGH;GV~GV+0l&&$~%%$|ii$$ 98h 327$Z!>$yk$xj&$x&&$~&%$#$"$y%%%$|&%$#$"Ċ$yD@GNQNQ@DH@QwP@@F@F^FG^=tNQ@ڋ_GH@Q$x&$y%$x$ $ 6$'$ /$$y$x&$y%$x$ 6$)&$y%$x$!$ 9 327$/!Ėk0k#y%j#x$i""#~!!#|QPܨڋ_GHQPX%3ۋtC#s G^F=~=ujFFF=u3FF»"!d## 98h 327##y#x%$# # 6#'# ###y#x%$# 6#) %$#!# 9 327#/Ė/0/.թ^ ؉G ™|T…yDT=t3D ™}T…yET‹_ +؉^G^ G FGDڋ_;h./j "tmg"tlf"tk#o ./( ' & , -98i!327--y--x./f./9--y--x!327f#t-y.-~-x/-|F#sD3^|@^3~;F#s^G^^FGF^^G^ ^G^ `$$ G~ڋ_G+DFG^ GFFFH;GZ~GZ+F@FG^3_^u@#Gs G^vrĆĆĆ0o''''' ' ' '' ' ''''vwv44F@FFGP=u2GPGP3 G^QiڋGF^G^ 3''''''''''''!' '"N'.'- ','+!"#"77777^~@^^ v3K;\ZG#r3^~@^^v3K;\VG#rڋG#Dsڋwt7^G^^FHG7"7#'(7'*%')&'(#'/Ė0/ Ė&xh`%Ċ%`$Ċ$`#Ċ#"!0/Ė ^FHG^F GN^FGLv vvv1GGڋG#DsQQ7^G^0i!98h 3, /Ċ!/Ė/[s0 5t0ewPe 0e 0Ȅ/[[0"u[}u[eXu[s0/ pխFF3^|@^v$3K;\ G#ljF"cFFF3^|@^v$3K;\G#ljF"9F+FFFF^$3;GF3^|@#ƉF" [/Wv՜ZYXWj"t5wlih"!"k!k[ #p #h"#j"/[vli$"$,0[w.F"sZڍv(v2+Dnw$^$~$Ƌv$vvPw&ڋE$}Pvvtwuv(FFFFFF[ć[Wć[XćY Z [/Ċ0/ Ą/s !0 0Ċ0 Ċ 00!!0/Ė6<N(QNzQ@FF sڋwt7^$FG^^$G^>~`(`'`&`%`$`#`"`!0 0/Ė PڋGF$^$G"=}F^$G&™‹^$o$»™‰Fڋv$D8@¾ƒ4؋v$D6@؋F^$v$D&™hڋGFF^3_u@#G#GFFsڋwt7^GF ^3;G ~F^F 3_;}G sm^F ؋_;G:^$™&‰F^$v$D$™G<^$™$‰F^$3_8t@^$3_0F;u"^$G$n‰F ^$G&n‰F ^$G&} ^G؉F^vG +DFv ̨F yy3PèFyy3P¿F FF F^F ^3;G~F^F 3;n‰F ^$G$n‰F v ̨^$O(QQ¾FF(2Hn‰F^$GF^$F^$w0^$w4$2F ™}G sj^F ؋;} ^؉F^vG+Fv ̨F yy3PèFyy3P¿F FF F^v~‹^+؉^F+F F[w.^$w27FFF9F+F ^ ^ΙƉFF+F F [w. 3^}@^ G^P4E~v v Pwtu&Fsڋwt7^FG^^vDF G^F ^x!0y 0x ^v$3K;\~G rF^$w4$2F ™‹^+؉^F+F F[w.0^$w2*5F F™‹^+؉^Fڋ_3_u@#G#GFFsڋwt7FڋGFFFFF;F~FFH^FFH^FF+F+F F [w.:3^}@^ ^v$3K;\~G rpFh^$w4*F+F+F F,F F™‹^+؉^[^F+GF ^F+F^GF ^3;G ~F^F 3_;}G sm^F ؋_;} ^G؉F ^vG +DF v̨F yw.J^$w2$/F ™‹^+؉^F+F F [w.T3^}@^ ^v$3K;\ ~G rF^$w47F+F y3PèF yy3P¿FF F F^F^3;G~F^F3;}G sj^F؋;} ^؉F ^vF$ '*X/<uZY[X36T6R6N6PrvF1nr/A/8//+N uV+V/6/h/ ///fF|/׆׋v r,P^r u// X/<uË/&3PPSSPSP 336Vd6VnFFFF42FF F p tp u r rFH3N߃;} x I+FNFV3N߃;;~ x I+F݉v  rˋF 6TF6RFH6NFH6PN V~J/v xL Ff Hx ؊FfHyN/zt^Ft t^8F 8F/uF88F8/8888v8682 u:Vu 6C΀tuƊVt:vuЊ-O8u8N 8^2t 8:Nt낈688*2䣲//*2/8"y"x&%&<kk"y"x$#'#<,"y"x&%&#<) (327"/ Ė/-%'$&`&`*`$&%'r%' ``. $&``2 `-0h'$ y6# x:r& y x$#=% y x"!='x&%dcba .////36/F6 V$3 Fu~tYN 6TȉN V 6RӉV 6N@36P313~u8FtN V V 0k#98h 327$l# $>aaaa # ##y#x$## 6-$: 327#y$#~#y$#x$#|#x$#/Ċ#Ӌ VW6;R|uPYPPVH;~‡T;} ދ=^XQȋ@;} *-;~ދ/Ė)/0k%#yB$#xFri#98h 327# !Jbbbb # ##y#x!## 6-!: 327#y!#~Ƈ_^;3;u_YSQRWVPA;}EZRV}΀2oo/:3tF;}u[ZRWS*^_XX^_ZY[VWSQR#y!#x!#|#x!#/Ċ#/ĖY/w0w8 0-0+"0T //3D?:ZY[_^VWSQR//6TJzupZY[_^Ä3u];tY@3֊ʀ3t   &F}G@FK@JIxpL///_/Y9lrù/H(hr rù//3;u;vBq;}׃>/t puu/Ä3u;t@֊ʂـ3t 3;u; /3ɻ/putù/p up trCp6T6RQP+ʸ@YʋXQX$ Ë/v~Jq;뎋2oo/Ë//x23z23v23v2Ü$+ȝuP#΀YKy//vF 3Vt^;~;Vu N;N|GO3ۋF;~;Vu N;|GًI/ʀ;VuG3tF tN;}It(3/â//S[ptrptr/PSQRA/ +Hx]/أ/ࣴ////fF|// u^VFNt^VFN/F t裉<~ u3ۉ<^<FYBvW@)_YB ^X_+YB;V<<<<6<</6OP++GyF;v|+vً[B+ًOANy+3;^ r+^ 6.N>Z^v@T<F;N++Gy׋~ϽXV^ FNvWxEY6;P///// tb t^NV//fF|/׆׋v r,P^r u//w] `cX/<u ZRNV2Z_^Y[X]USRQFy~+3;v|+v6P++B}~}V[BR+[BJ6+Nx3+[BR+[BANy+3;^ |+^ X2^CC>ك+K>>Ny3ɋ^>2ۋv6 Au~65F~ 6F ~6=NVF~v^ P txWBF FX FXx t 9FtFYZ[]T&JE7T&TE0;T&^E:T&hE=T&rE;T&|E8TF;>t;>u v6>uFـt~65~ 6~6=>NN N>Na^ ^ ^36Ў&ET&E@T&E_BT&E3T&Ev0T&E8T&Ex8T&E8T&E8T&E1T&E72///F 6T%v?NAAuJ6+Nv+ډ^؃/NxQ~3V 6;PpN S//w?`/׀\"1/"""""""""""""""""""wn7kRD  y \ 8 Tc>&//ptrptrĊv?*~3ۊw?s6C;^uw?<uYNF muGuptrptrEDDDDCC{CoC`C#CCCCBBBBPB BBBAAAAAAAAwA3A AA@@@P@<@-@@@?????????O?B?? ??>>>>w>`>]>7>V/uV0//f F|/׆r$^Pr u uX/<u/{8.88:Ntv tPy +y3CJy3ҋ6+>Nv+B t)y +y3@Iy3ɋ6+>Pv+A t //3~ >@ tq++88>/r/uFF88:Nt{F^VN 2 y  y ;st/ /£/ ȋ//)/;>@t>@` y  + OF;ru ;>@t4V+yF3JRV +yG3JRVWvvv RKS/N++؉/ FN ^V hubF^N V /N I/F|/ף ;F׊ Ê ;///CCkF6T%Ay36N++y؉/ۉ/// V 6;PQVYV +xK[V +By36P++}؉/ۉ/// N+xRZNtY+؋F ;vã//F)F V6 ;. ;rQ ^ru:Yu. ;F %tWر裲//NV^)^ B6;NZ0//fF|/׆rP^ru X/<uF ^ vVNXF^v V6 ;. ;r"Q^ruYu. ;F tD//NV6 ;. ;rQ\^ruVjYNFN]Bv 2u+H3N3;]Bt]Bi x++++IF;vu3 uVJ@ u^ K;xu ;]Bt&H0 7666666666^6>696'65555555H55c4]4T4%444 444111111111100z0"00 0//////JEHETERE^E\EhEfErEpEory} (Draw_Win_Ovfl = 14; {Draw ignored, window list out of range} " Draw_Win_Imp = 15; {Draw ig|EzEEEEEEEEEEEEEEEEEEEEEEEEEEEqB DbDD 4*818D094578|;?I0F44788?@AAC}DDY478?@ABnored, implementation restrict} (Draw_No_Font = 16; {Draw ignored, no font defined} (Draw_Max = Draw_No_FonCKDDP47'*** HEAPOPS EXTRAIO STRINGOPEXTRAHEAFILEOPS REALOPS  t; {Current maximum draw result number} ( "Type Cur_Attribute = (Cur_Disable, { Cursor disable } 8Cur_Enable,  { Cursor enable } 8Cur_Visible, { Cursor visible } 8Cur_Invisible, { Cursor invisible } 8Cur_Small,   "Const Graf_Version = '0.5';  (Draw_OK = 0; {Nominal draw result} (Draw_Clipped = 1;  { Cursor small } 8Cur_Full); { Cursor full } 'Switch_Types = (Off, On); 'Overlay_Type = (Replace, {Draw performed, figure clipped} (Draw_Init = 2; {Draw variables at initial state} (Draw_Overflow = 10;  { Replace contents } 8Xor); { Merge contents } 'Display_Type = (Fast, { No filling } 8 {Draw ignored, coordinate out of range} (Draw_Not_Imp = 11; {Draw ignored, feature not implemented} Fill); { Fill all polygons } 'Int_Type = (Plain, { Solid rectangle } 8Patterned); { User pattern } 'Edge_Type = (Solid_Line, { Solid border } 8Interior); { Invisible border } 9 'Directions = (Left, { Left direction or position } 8Right, { Right direction or position } 8Up, { Up direction } 8Down, { Down direction } 8Top, { Top position } 8Center, { Center (horz/vert) position } 8Bottom); { Bottom position } 'Font_Type .>*>>> >>>============z=n=j=`=]=R=B=6=3=.="=== = ===<<<<<<TESTCORE ā|2r2r|2r2r|r2rN|r2r2sÿ|r#r , ,,,, , .-/r/rc,2d(X#Ȁ*-,ÿ+#r|r##r|r##r|r##rh      ā|r2r,+ć,+ ć, ć,ć,ć,r -h -7. ,-ܢ , raa ar hÖ-bĚĚ &Ě &%$r#"r#"r! r! r%$r%#!$" rr.-rh   Pt pPt pt p,Ȇ,ˀG,p,ˀN,prr"c˥c˥1cr0 r  .-.-ܢ.Ȣ2-.-.-ܢ(.ȣU-`  Ą d T8 Pt pPt pt p,Ȇ,ˀG,p,ˀN,prr"c˥c˥1cr0cr rr    rrrrW&E & E & W&E & W&"E & E &  Program Test_Core;  {$U Grafics:Grafdraw.Code}  Uses Graf_Draw;  Const Esc = 27; { Escape key } &Text_Color = 0; W&W&W&W&W&W&""E & Enter Message: 4kC2d PA&Back_Color = 4; &Water_Color = 6; &Sail_Color = 1; &Fish_Color = 3; &B_Sail_H = 220; &Boat_Rad = 200; &PI_8 = 0.39269907;SCALIOREALOPS GRAFDRAW  &PI_4 = 0.78539815; &PI_2 = 1.5707963; &PI = 3.1415926278; &PI_x2 = 6.2831852; &PI_x3_2 = 4.7123889; &PI_x3_4 = 2.3561944; &PI_x7_4 = 5.497787; &PI_x5_4 = 3.9269907;  Var Font_ID : Font_Type; $Pat_ID : Pat_Type;  Message : String; $BUF : PACKED ARRAY [0..1] OF CHAR; $Point_X , Point_Y : Integer; $Ch : Char; $Print_It : Boolean; ${Size : Pixel_Size;} ${Dir : $TAG $CURSOR $EQUAL $LAST A $SYNTAX Print_Direction;}  (*===========================================================================*)  Procedure Sun; "Const $S un_Rad = 50; $Sun_S_Y = 380; $Sun_S_X = 540; $Long_Ray = 50; $Short_Ray = 35; "Var $Offset : Integer; "(*================hgh===============*) "Procedure Rays; $Begin $ Core^.Line_Index := 1; &Move_Abs(Sun_S_X,Sun_S_Y+Sun_Rad); FKZ7FPZ;FAF?DFAFC7  ,,,, , , Ą GdK.-O.#$r/ dcba`r . /-r#"r. /-r! r./-rr./-rr. /-r./-/r. /-r./-/r./-/r./-/r. /-rr , ,,,, , .-/r/rc,2d(X#Ȁ*-,ÿ+,+ć,+ ć, ć,ć,ć,r -h -7. ,-ܢ , raa ar hÖ-9 Ray,0); &Move_Abs(590,Sun_S_Y); &Line_Rel(Long_Ray,0); &Offset := Round( Sun_Rad / sqrt(2) ); &Move_Abs(Sun_S_X+Offset,Sun_S) $Procedure Pole; &Begin (Move_Abs( Point_X , Point_Y ); (With Core^ Do *Begin ,Fill_Index := 0; ,Display_Mode := Fill; _Y+Offset); &Line_Rel(Short_Ray,Short_Ray); &Move_Abs(Sun_S_X+Offset,Sun_S_Y-Offset); &Line_Rel(Short_Ray,-Short_Ray); &Move,Polygon_Interior := Plain; ,Polygon_Edge := Interior; *End; (Box_Rel(8,B_Sail_H); &End; _Abs(Sun_S_X-Offset,Sun_S_Y-Offset); &Line_Rel(-Short_Ray,-Short_Ray); &Move_Abs(Sun_S_X-Offset,Sun_S_Y+Offset); &Line_Rel(-S$(*==================================*) $Begin &Pole; &A_Sail( Sail_Color , Point_X+8 , Point_Y+8 , .Point_X+8 , Point_Y + hort_Ray,Short_Ray); $End; "(*===============================*) "Procedure Body; $Begin &With Core^ Do (Begin *Fill_IndexB_Sail_H , .Point_X_+Boat_Rad-50 , Point_Y+8 ); &A_Sail( Sail_Color , Point_X , Point_Y + 20 , .Point_X , Point_Y + B_Sail_H  := 3; *Polygon_Edge := Solid_Line; *Display_Mode := Fill; *Polygon_Interior := Plain; *Overlay_Mode := Replace; *Line_Inde- 40 , .Point_X - Boat_Rad + 85 , Point_Y + 20 ); $End; "(*================================*) "Procedure Hull; "Const $Cenx := 1; (End; &Move_Abs(Sun_S_X,Sun_S_Y); &Circle_Rel(Sun_Rad); $End; "(*===============================*) "Procedure Faceter_X = 340; $Center_Y = 250; "Var $Start_X,Start_Y, $X_End,Y_End : Integer; $Start_Angle,End_Angle : Real; $Begin &Core^; $Begin $End; "(*===============================*) "Begin $Rays; $Body; $Face; "End; " .Line_Index := 1; &Start_Angle := 0.78539815 + 3.1415926278; &End_Angle := 2*3.1415926278 - 0.78539815; &Move_Abs(Center_X,Ce (*===========================================================================*) Procedure Boat; "(*==========================nter_Y); &Arc_Rel (Boat_Rad,End_Angle,Start_Angle,Start_X,Start_Y,X_End,Y_End); &Move_Abs(Start_X,Start_Y); &Line_Abs(X_End,Y======*) "Procedure Sails; $(*==================================*) %Procedure A_Sail(Color_Pass,Vert_1_X,Vert_1_Y, 6Vert_2_X_End); &Move_Abs(Start_X-8,Start_Y-3); &Core^.Fill_Index := 7; &Flood; & &{ Get rid of outline now. } &Core^.Line_Index :=,Vert_2_Y,Vert_3_X,Vert_3_Y:Integer); &Begin (Core^.Polygon_Interior := Plain; (Core^.Overlay_Mode := Replace; (Core^.Line_I Back_Color; &Move_Abs(Center_X,Center_Y); &Arc_Rel (Boat_Rad,End_Angle,Start_Angle,Start_X,Start_Y,X_End,Y_End); ndex := Color_Pass; (Core^.Fill_Index := Color_Pass; (Move_Abs(Vert_1_X,Vert_1_Y); (Line_Abs(Vert_2_X,Vert_2_Y); (Move_Abs(V&Move_Abs(Start_X,Start_Y); &Line_Abs(X_End,Y_End); & &Point_X := (Start_X + X_End) Div 2; &Point_Y := (Start_Y + Y_End) Diert_2_X,Vert_2_Y); (Line_Abs(Vert_3_X,Vert_3_Y); (Move_Abs(Vert_3_X,Vert_3_Y); (Line_Abs(Vert_1_X,Vert_1_Y); (Move_Abs( (Verv 2; & $End; "(*================================*) "Begin $With Core^ Do &Begin (Polygon_Edge := Solid_Line; (Display_Mo&Line_Rel(0,Long_Ray); &Move_Abs(Sun_S_X,Sun_S_Y-Sun_Rad); &Line_Rel(0,-Long_Ray); &Move_Abs(490,Sun_S_Y); &Line_Rel(-Long_t_1_X+Vert_2_X+Vert_3_X) Div 3 , 2(Vert_1_Y+Vert_2_Y+Vert_3_Y) Div 3 ); (Flood; &End; $(*==================================*: &Core^.Line_Index := 7; &Move_Abs (X_Start, Y_Start); &Line_Abs (X_End, Y_End); $End; "(*===============================*) enter_X,Center_Y+6); &Arc_Rel (Wave_Rad,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); &Move_Abs(Center_X,Center_Y-Wave_R"Begin $Set_Line_Style (On, On, On, On, On, On, On, On); $Core^.Polygon_Edge := Solid_Line; $Core^.Overlay_Mode := Replace; ad+1); &Flood; &Core^.Line_Index := Back_Color; &Move_Abs(Center_X,Center_Y); &Arc_Rel (Wave_Rad,Start_Angle,End_Angle,X_Stade := Fast; (Polygon_Interior := Plain; (Overlay_Mode := Replace; ({ Line_Index := 1; } &End; $Hull; $Sails; "End; "  ($One_Arc(False,100,400,50,PI-PI_4,PI_2); $X_Save := X_Start; $Y_Save := Y_Start; $X_Start := Pred (X_End); *===========================================================================*)  Procedure Cloud; "Var $X_Save,Y_Save,X_Start,$Y_Start := Succ (Y_End); $X_End := 200; $Y_End := 470; $One_Arc(True,120,330,140,0,0); $X_Start := Pred (X_End); $Y_StartY_Start,X_End,Y_End : Integer; "(*===============================*) "Procedure One_Arc(Abs : Boolean; 4Center_X, 4 := Succ (Y_End); $X_End := 270; $Y_End := 480; $One_Arc(True,190,330,0,0,0); $X_Start := Pred (X_End); $Y_Start := Succ (YCenter_Y, 4Cir_Rad : Integer; 4Start_Angle, 4End_Angle :Real); $Var &Fill_X, &Fill_Y : Integer; $Begin &Core^.Li_End); $X_End := 205; $Y_End := 2* 396 - Y_Start; $One_Arc(True,205,396,0,0,0); ${Just drew the vertical} $X_Start := X_Endne_Index := 1; &Core^.Fill_Index := 7; &Core^.Display_Mode := Fast; &Move_Abs(Center_X,Center_Y); &If Abs Then (Begin *Arc; $Y_Start := Y_End; $X_End := 100; $Y_End := 356; $One_Arc(True,145,390,0,0,0); $X_Start := X_End + 2; $Y_Start := Pred (_Abs (Cir_Rad,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); *Core^.Line_Index := Back_Color; Y_End); $X_End := X_Save; $Y_End := Y_Save; $One_Arc(True,(X_End+X_Start) Div 2,(Y_End+Y_Start) Div 2,0,0,0); $Move_Abs(100,*Arc_Abs (Cir_Rad,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); *Core^.Line_Index := 1; (End; &Arc_Rel (Cir_Rad,Start_400); $Flood; "End;   (*===========================================================================*)  Procedure Water; "Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); &Move_Abs(X_Start,Y_Start); &Line_Abs(X_End,Y_End); &Fill_X := (X_Start+X_End) Const $Water_Level = 70; "(*========================*) "Procedure A_Wave( Center_X,Center_Y,Wave_Rad : Integer ; Length:Real Div 2; &If Center_X < Fill_X Then (Fill_X := Fill_X + 2 &Else (Fill_X := Fill_X - 2; &Fill_Y := (Y_Start+Y_End) Div 2; &If); $Var &X_Start,Y_Start, &X_End,Y_End : Integer; &Start_Angle,End_Angle : Real; $Begin &With Core^ Do (Begin  Center_Y < Fill_Y Then (Fill_Y := Fill_Y + 2 &Else (Fill_Y := Fill_Y - 2; &Move_Abs(Fill_X,Fill_Y); &Flood; &Move_Abs(Cen*Line_Index := 1; *Fill_Index := Water_Color; *Display_Mode := Fast; (End; &Start_Angle := 3/2*PI+Length; &End_Angle := 3/ter_X,Center_Y); &Core^.Line_Index := Back_Color; &Arc_Rel (Cir_Rad, Start_Angle, End_Angle, X_Start, Y_Start, X_End, Y_End); 2*PI-Length; &Move_Abs(Center_X,Center_Y); &Arc_Rel (Wave_Rad,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); &Move_Abs(C;  := 3/2*PI; &Move_Abs(Loc_X,Loc_Y); &Arc_Rel (Abs(5*Mag_Size),Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); &Move_Abs(L3) + X_Slack , 6(Point_Y+B_Sail_H-6-(I*Char_Height)) - Y_Slack ); ,{$R-} .S[0] := Chr(1); ,{$R^} ,S[1] := Message[I]; ,Texoc_X-10*Mag_Size,Loc_Y);  Line_Abs(X_Start,Y_Start); &Move_Abs(Loc_X-10*Mag_Size,Loc_Y); &Line_Abs(X_End,Y_End); &Movet(S); *End; &End; "End;  (*===========================================================================*)  Begin {of Test_Co_Abs(Loc_X+Mag_Size,Loc_Y); &Flood; &Move_Abs(Loc_X-Mag_Size,Loc_Y); &Flood; &Move_Abs(Loc_X-10*Mag_Size,Loc_Y); &Line_Abs(re} "Write('Enter Message: '); "Readln(Message); "{Write ('Do a Print-A-Color dump ? '); "Read (Keyboard, Ch); "Writeln (ChLoc_X-14*Mag_Size,Loc_Y+5*Mag_Size); &Move_Abs(Loc_X-10*Mag_Size,Loc_Y); &Line_Abs(Loc_X-14*Mag_Size,Loc_Y-5*Mag_Size); ); "Print_It := Ch In ['Y', 'y']; "If Print_It Then $Begin &Write ('Double Size ? '); &Read (Keyboard, Ch); &If Ch In ['Y'&Move_Abs(Loc_X-14*Mag_Size,Loc_Y-5*Mag_Size); &Line_Abs(Loc_X-14*Mag_Size,Loc_Y+5*Mag_Size); &Move_Abs(Loc_X-11*Mag_Size,Loc, 'y'] Then (Size := P2x2 &Else (Size := P_1x1; &Writeln (Ch); &Write ('Sideways ? '); &Read (Keyboard, Ch); &If Ch In ['rt,Y_Start,X_End,Y_End); &Move_Abs(Center_X,Center_Y+6); &Arc_Rel (Wave_Rad,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End)_Y); &Flood; &With Core^ Do (Begin *Display_Mode := Fill; *Polygon_Edge := Interior; *Polygon_Interior := Plain; *Overlay; $End; "(*========================*) "Begin $A_Wave( 10,Water_Level+33,50,PI_4); $A_Wave(80,Water_Level+75,90,PI_4); $A_W_Mode := Replace; *Line_Index := 0; *Fill_Index := 0; & End; &Move_Abs(Loc_X,Loc_Y+2*Mag_Size); &Circle_Rel(Mag_Size); $Eave(180,Water_Level+52,60,PI_4); $A_Wave(280,Water_Level+75,90,PI_4); $A_Wave(390,Water_Level+80,90,PI_4); $A_Wave(490,Water_nd; "(*==========================*) "Begin $One_Fish(2,300,50); $One_Fish(1,100,40); $One_Fish(2,600,30); $One_Fish(2,500,Level+65,70,PI_4); $A_Wave(580,Water_Level+65,70,PI_2); "End;  35); $One_Fish(3,200,42); "End;  (*===========================================================================*)  Procedure  (*===========================================================================*)  Procedure Fish; "(*========================Label_It; "Const $X_Slack = 7; $Y_Slack = 12; "Var $I : Integer; $S : String; $Letter_Mag : Integer; "Begin $With Core^==*) "Procedure One_Fish(Mag_Size,Loc_X,Loc_Y : Integer); $Var &X_Start,Y_Start, &X_End,Y_End : Integer; &Start_Angle, &E Do &Begin (Letter_Mag := Round(B_Sail_H * 4 / (5 * Length(Message))); (Char_Width := Letter_Mag Div 2 Div 2 * 3; (Char_Heind_Angle : Real; $Begin &With Core^ Do (Begin *Polygon_Interior := Plain; *Overlay_Mode := Replace; *Polygon_Edge := Solidght := Letter_Mag Div 10 * 11; (Text_Index := Text_Color; (Char_Path := Right; (Top_Bottom := Center; _Line; *Line_Index := Fish_Color; *Fill_Index := Fish_Color; *Display_Mode := Fast; (End; &Start_Angle := PI_2; &End_Angle(Left_Right := Center; (Set_Charup (0, 1); (For I := 1 to Length(Message) Do *Begin ,Move_Abs( (Point_X+I*Char_Width*2 Div < ase_Alpha;  End {of Test_Core}. rd cba`r #"r! r#"r r āTrd cba`r #"r! r#!." - h   Đ d Ě Ě ,+r-0 fbr! Ą fbr! *fbr rri,!!i!ih+  h h! rr,+r *fbr  ĭrr,rĚd2 #m"l!k jihxJ̐ !k jihJ̐ !k ji"h́̐ !k jdidh̐ !k j%i$h!# "̐ drr  , , , Ą !„d&„r dcba`r CTESTCORE r dcba`r rr ćr dcba`r r dcba`r = F!2+PFKZ/F4<3 FKZ7FPZ;FAF?DFAFC7  ,,,, , , Ą GdK.-0r/ dcba`r . /-r#"r. /-r! r./-rr./-rr. /-r./-/r. /-r./-/r./-/r./-/r. /-rY', 'y'] Then (Dir := Horizontal &Else (Dir := Vertical; &Writeln (Ch); $End;} "BUF[0] := CHR(26); "BUF[1] := 'G'; "UNIT ~~&GRAFICS @@   @@  1WRITE(1,BUF,2); "BUF[1] := 'N'; "UNITWRITE(1,BUF,2); "Plane_Enable (7); "Core^.Background := Back_Color; BTESTCORE ā|2r2r|2r2r|r2rN|r2r2sÿ|r#"Set_Region (0, 0, 640, 480); "Pat_ID := 0; "Font_ID := 0; "Set_Fill_Pattern (Pat_ID); "Set_Font (Font_ID);   "Erase_A#r|r##r|r##r|r##rh      ā|r2rlpha; "Erase; "WATER; "SUN; "BOAT; "CLOUD; "{ Fill the water now } "Core^.Fill_Index := Water_Color; "Move_Abs(10,10); bĚĚ &Ě &%$r#"r#"r! r! r%$r%#!$" rr.-rh   "Flood; "Fish; "Label_It; "{If Print_It Then $Screen_Dump (0, 0, 639, 479, Size, False, Dir) "Else} $Readln; "Erase; "Er r  .-.-ܢ.Ȣ2-.-.-ܢ(.ȣU-`  Ą d T= Pt pPt pt p,Ȇ,ˀG,p,ˀN,prr"c˥c˥1cr0cr rr    rrt prrW&E & E & W&E & W&"E & &Move_Abs(Loc_X-14*Mag_Size,Loc_Y-5*Mag_Size); &Line_Abs(Loc_X-14*Mag_Size,Loc_Y+5*Mag_Size); &Move_Abs(Loc_X-11*Mag_Size,LocE & W&W&W&W&W&W&""E & Enter Message: 4kC2d _Y); &Flood; &With Core^ Do (Begin *Display_Mode := Fill; *Polygon_Edge := Interior; *Polygon_Interior := Plain; *OverlayPASCALIOREALOPS GRAFDRAW _Mode := Replace; *Line_Index := 0; *Fill_Index := 0; & End; &Move_Abs(Loc_X,Loc_Y+2*Mag_Size); &Circle_Rel(Mag_Size); $End; "(*==========================*) "Begin $One_Fish(2,300,50); $One_Fish(1,100,40); $One_Fish(2,600,30); $One_Fish(2,500,0p,ˀN,prr"c˥c˥1cr0cr rr    rrt prr4- 0N(Left_Right := Center; (Set_Charup (0, 1); (For I := 1 to Length(Message) Do *Begin ,Move_Abs( (Point_X+I*Char_Width*2 Div 03) + X_Slack , 6(Point_Y+B_Sail_H-6-(I*Char_Height)) - Y_Slack ); ,{$R-} .S[0] := Chr(1); ,{$R^} ,S[1] := Message[I]; ,Texr , ,,,, , .-/r/rc,2d(X#Ȁ*-,ÿ+,+ć,+ ć, ć,ć,ć,r -h -7. ,-ܢ , raa ar hÖ-> ; &PI_x7_4 = 5.497787; &PI_x5_4 = 3.9269907;  Var Font_ID : Font_Type; $Pat_ID : Pat_Type;  Message : String; $BUF : t(S); *End; &End; "End;  (*===========================================================================*)  Begin {of Test_Core} "Write('Enter Message: '); "Readln(Message); "{Write ('Do a Print-A-Color dump ? '); "Read (Keyboard, Ch); "Writeln (Ch$TAG $CURSOR $EQUAL $LAST A $SYNTAX ); "Print_It := Ch In ['Y', 'y']; "If Print_It Then $Begin &Write ('Double Size ? '); &Read (Keyboard, Ch); &If Ch In ['Y', 'y'] Then (Size := P2x2 &Else (Size := P_1x1; &Writeln (Ch); &Write ('Sideways ? '); &Read (Keyboard, Ch); &If Ch In ['yxyY', 'y'] Then (Dir := Horizontal &Else (Dir := Vertical; &Writeln (Ch); $End;} "BUF[0] := CHR(26); "BUF[1] := 'G'; "UNITO.#$WRITE(1,BUF,2); "BUF[1] := 'N'; "UNITWRITE(1,BUF,2); "Plane_Enable (7); "Core^.Background := Back_Color; "Set_Region (0, 0, 640, 480); "Pat_ID := 0; "Font_ID := 0; "Set_Fill_Pattern (Pat_ID); "Set_Font (Font_ID);   "Erase_Alpha; "Erase; "WATER; "SUN; "BOAT; "CLOUD; "{ Fill the water now } "Core^.Fill_Index := Water_Color; "Move_Abs(10,10); "Flood; "Fish; "Label_It; "{If Print_It Then $Screen_Dump (0, 0, 639, 479, Size, False, Dir) "Else} $Readln; "Erase; "Erase_Alpha;  End {of Test_Core}.  Program Test_Core;  {$U Grafics:Grafdraw.Code}  Uses Graf_Draw;  Const Esc = 27; { Escape key } &Text_Color = 0; &Back_Color = 4; &Water_Color = 6; &Sail_Color = 1; &Fish_Color = 3; &B_Sail_H = 220; &Boat_Rad = 200; &PI_8 = 0.39269907; &PI_4 = 0.78539815; &PI_2 = 1.5707963; &PI = 3.1415926278; &PI_x2 = 6.2831852; &PI_x3_2 = 4.7123889; &PI_x3_4 = 2.3561944?  := 3; *Polygon_Edge := Solid_Line; *Display_Mode := Fill; *Polygon_Interior := Plain; *Overlay_Mode := Replace; *Line_Inde- 40 , .Point_X - Boat_Rad + 85 , Point_Y + 20 ); $End; "(*================================*) "Procedure Hull; "Const $Cenx := 1; (End; &Move_Abs(Sun_S_X,Sun_S_Y); &Circle_Rel(Sun_Rad); $End; "(*===============================*) "Procedure Faceter_X = 340; $Center_Y = 250; "Var $Start_X,Start_Y, $X_End,Y_End : Integer; $Start_Angle,End_Angle : Real; $Begin &Core^; $Begin $End; "(*===============================*) "Begin $Rays; $Body; $Face; "End; " .Line_Index := 1; &Start_Angle := 0.78539815 + 3.1415926278; &End_Angle := 2*3.1415926278 - 0.78539815; &Move_Abs(Center_X,Ce (*===========================================================================*) Procedure Boat; "(*==========================nter_Y); &Arc_Rel (Boat_Rad,End_Angle,Start_Angle,Start_X,Start_Y,X_End,Y_End); &Move_Abs(Start_X,Start_Y); &Line_Abs(X_End,YPACKED ARRAY [0..1] OF CHAR; $Point_X , Point_Y : Integer; $Ch : Char; $Print_It : Boolean; ${Size : Pixel_Size;} ${Dir : ======*) "Procedure Sails; $(*==================================*) %Procedure A_Sail(Color_Pass,Vert_1_X,Vert_1_Y, 6Vert_2_XPrint_Direction;}  (*===========================================================================*)  Procedure Sun; "Const $S,Vert_2_Y,Vert_3_X,Vert_3_Y:Integer); &Begin (Core^.Polygon_Interior := Plain; (Core^.Overlay_Mode := Replace; (Core^.Line_Iun_Rad = 50; $Sun_S_Y = 380; $Sun_S_X = 540; $Long_Ray = 50; $Short_Ray = 35; "Var $Offset : Integer; "(*================ndex := Color_Pass; (Core^.Fill_Index := Color_Pass; (Move_Abs(Vert_1_X,Vert_1_Y); (Line_Abs(Vert_2_X,Vert_2_Y); (Move_Abs(V===============*) "Procedure Rays; $Begin $ Core^.Line_Index := 1; &Move_Abs(Sun_S_X,Sun_S_Y+Sun_Rad); ert_2_X,Vert_2_Y); (Line_Abs(Vert_3_X,Vert_3_Y); (Move_Abs(Vert_3_X,Vert_3_Y); (Line_Abs(Vert_1_X,Vert_1_Y); (Move_Abs( (Ver&Line_Rel(0,Long_Ray); &Move_Abs(Sun_S_X,Sun_S_Y-Sun_Rad); &Line_Rel(0,-Long_Ray); &Move_Abs(490,Sun_S_Y); &Line_Rel(-Long_t_1_X+Vert_2_X+Vert_3_X) Div 3 , 2(Vert_1_Y+Vert_2_Y+Vert_3_Y) Div 3 ); (Flood; &End; $(*==================================*Ray,0); &Move_Abs(590,Sun_S_Y); &Line_Rel(Long_Ray,0); &Offset := Round( Sun_Rad / sqrt(2) ); &Move_Abs(Sun_S_X+Offset,Sun_S) $Procedure Pole; &Begin (Move_Abs( Point_X , Point_Y ); (With Core^ Do *Begin ,Fill_Index := 0; ,Display_Mode := Fill; _Y+Offset); &Line_Rel(Short_Ray,Short_Ray); &Move_Abs(Sun_S_X+Offset,Sun_S_Y-Offset); &Line_Rel(Short_Ray,-Short_Ray); &Move,Polygon_Interior := Plain; ,Polygon_Edge := Interior; *End; (Box_Rel(8,B_Sail_H); &End; _Abs(Sun_S_X-Offset,Sun_S_Y-Offset); &Line_Rel(-Short_Ray,-Short_Ray); &Move_Abs(Sun_S_X-Offset,Sun_S_Y+Offset); &Line_Rel(-S$(*==================================*) $Begin &Pole; &A_Sail( Sail_Color , Point_X+8 , Point_Y+8 , .Point_X+8 , Point_Y + hort_Ray,Short_Ray); $End; "(*===============================*) "Procedure Body; $Begin &With Core^ Do (Begin *Fill_IndexB_Sail_H , .Point_X_+Boat_Rad-50 , Point_Y+8 ); &A_Sail( Sail_Color , Point_X , Point_Y + 20 , .Point_X , Point_Y + B_Sail_H @ Y_Start,X_End,Y_End : Integer; "(*===============================*) "Procedure One_Arc(Abs : Boolean; 4Center_X, 4 := Succ (Y_End); $X_End := 270; $Y_End := 480; $One_Arc(True,190,330,0,0,0); $X_Start := Pred (X_End); $Y_Start := Succ (YCenter_Y, 4Cir_Rad : Integer; 4Start_Angle, 4End_Angle :Real); $Var &Fill_X, &Fill_Y : Integer; $Begin &Core^.Li_End); $X_End := 205; $Y_End := 2* 396 - Y_Start; $One_Arc(True,205,396,0,0,0); ${Just drew the vertical} $X_Start := X_Endne_Index := 1; &Core^.Fill_Index := 7; &Core^.Display_Mode := Fast; &Move_Abs(Center_X,Center_Y); &If Abs Then (Begin *Arc; $Y_Start := Y_End; $X_End := 100; $Y_End := 356; $One_Arc(True,145,390,0,0,0); $X_Start := X_End + 2; $Y_Start := Pred (_Abs (Cir_Rad,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); *Core^.Line_Index := Back_Color; Y_End); $X_End := X_Save; $Y_End := Y_Save; $One_Arc(True,(X_End+X_Start) Div 2,(Y_End+Y_Start) Div 2,0,0,0); $Move_Abs(100,*Arc_Abs (Cir_Rad,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); *Core^.Line_Index := 1; (End; &Arc_Rel (Cir_Rad,Start_400); $Flood; "End;   (*===========================================================================*)  Procedure Water; "Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); &Move_Abs(X_Start,Y_Start); &Line_Abs(X_End,Y_End); &Fill_X := (X_Start+X_End) Const $Water_Level = 70; "(*========================*) "Procedure A_Wave( Center_X,Center_Y,Wave_Rad : Integer ; Length:Real Div 2; &If Center_X < Fill_X Then (Fill_X := Fill_X + 2 &Else (Fill_X := Fill_X - 2; &Fill_Y := (Y_Start+Y_End) Div 2; &If); $Var &X_Start,Y_Start, &X_End,Y_End : Integer; &Start_Angle,End_Angle : Real; $Begin &With Core^ Do (Begin _End); &Move_Abs(Start_X-8,Start_Y-3); &Core^.Fill_Index := 7; &Flood; & &{ Get rid of outline now. } &Core^.Line_Index := Center_Y < Fill_Y Then (Fill_Y := Fill_Y + 2 &Else (Fill_Y := Fill_Y - 2; &Move_Abs(Fill_X,Fill_Y); &Flood; &Move_Abs(Cen Back_Color; &Move_Abs(Center_X,Center_Y); &Arc_Rel (Boat_Rad,End_Angle,Start_Angle,Start_X,Start_Y,X_End,Y_End); ter_X,Center_Y); &Core^.Line_Index := Back_Color; &Arc_Rel (Cir_Rad, Start_Angle, End_Angle, X_Start, Y_Start, X_End, Y_End); &Move_Abs(Start_X,Start_Y); &Line_Abs(X_End,Y_End); & &Point_X := (Start_X + X_End) Div 2; &Point_Y := (Start_Y + Y_End) Di&Core^.Line_Index := 7; &Move_Abs (X_Start, Y_Start); &Line_Abs (X_End, Y_End); $End; "(*===============================*) v 2; & $End; "(*================================*) "Begin $With Core^ Do &Begin (Polygon_Edge := Solid_Line; (Display_Mo"Begin $Set_Line_Style (On, On, On, On, On, On, On, On); $Core^.Polygon_Edge := Solid_Line; $Core^.Overlay_Mode := Replace; de := Fast; (Polygon_Interior := Plain; (Overlay_Mode := Replace; ({ Line_Index := 1; } &End; $Hull; $Sails; "End; "  ($One_Arc(False,100,400,50,PI-PI_4,PI_2); $X_Save := X_Start; $Y_Save := Y_Start; $X_Start := Pred (X_End); *===========================================================================*)  Procedure Cloud; "Var $X_Save,Y_Save,X_Start,$Y_Start := Succ (Y_End); $X_End := 200; $Y_End := 470; $One_Arc(True,120,330,140,0,0); $X_Start := Pred (X_End); $Y_StartA ad+1); &Flood; &Core^.Line_Index := Back_Color; &Move_Abs(Center_X,Center_Y); &Arc_Rel (Wave_Rad,Start_Angle,End_Angle,X_Sta&Move_Abs(Loc_X-14*Mag_Size,Loc_Y-5*Mag_Size); &Line_Abs(Loc_X-14*Mag_Size,Loc_Y+5*Mag_Size); &Move_Abs(Loc_X-11*Mag_Size,Locrt,Y_Start,X_End,Y_End); &Move_Abs(Center_X,Center_Y+6); &Arc_Rel (Wave_Rad,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End)_Y); &Flood; &With Core^ Do (Begin *Display_Mode := Fill; *Polygon_Edge := Interior; *Polygon_Interior := Plain; *Overlay; $End; "(*========================*) "Begin $A_Wave( 10,Water_Level+33,50,PI_4); $A_Wave(80,Water_Level+75,90,PI_4); $A_W_Mode := Replace; *Line_Index := 0; *Fill_Index := 0; & End; &Move_Abs(Loc_X,Loc_Y+2*Mag_Size); &Circle_Rel(Mag_Size); $Eave(180,Water_Level+52,60,PI_4); $A_Wave(280,Water_Level+75,90,PI_4); $A_Wave(390,Water_Level+80,90,PI_4); $A_Wave(490,Water_nd; "(*==========================*) "Begin $One_Fish(2,300,50); $One_Fish(1,100,40); $One_Fish(2,600,30); $One_Fish(2,500,Level+65,70,PI_4); $A_Wave(580,Water_Level+65,70,PI_2); "End;  35); $One_Fish(3,200,42); "End;  (*===========================================================================*)  Procedure  (*===========================================================================*)  Procedure Fish; "(*========================Label_It; "Const $X_Slack = 7; $Y_Slack = 12; "Var $I : Integer; $S : String; $Letter_Mag : Integer; "Begin $With Core^==*) "Procedure One_Fish(Mag_Size,Loc_X,Loc_Y : Integer); $Var &X_Start,Y_Start, &X_End,Y_End : Integer; &Start_Angle, &E Do &Begin (Letter_Mag := Round(B_Sail_H * 4 / (5 * Length(Message))); (Char_Width := Letter_Mag Div 2 Div 2 * 3; (Char_Heind_Angle : Real; $Begin &With Core^ Do (Begin *Polygon_Interior := Plain; *Overlay_Mode := Replace; *Polygon_Edge := Solidght := Letter_Mag Div 10 * 11; (Text_Index := Text_Color; (Char_Path := Right; (Top_Bottom := Center; _Line; *Line_Index := Fish_Color; *Fill_Index := Fish_Color; *Display_Mode := Fast; (End; &Start_Angle := PI_2; &End_Angle(Left_Right := Center; (Set_Charup (0, 1); (For I := 1 to Length(Message) Do *Begin ,Move_Abs( (Point_X+I*Char_Width*2 Div  := 3/2*PI; &Move_Abs(Loc_X,Loc_Y); &Arc_Rel (Abs(5*Mag_Size),Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); &Move_Abs(L3) + X_Slack , 6(Point_Y+B_Sail_H-6-(I*Char_Height)) - Y_Slack ); ,{$R-} .S[0] := Chr(1); ,{$R^} ,S[1] := Message[I]; ,Tex*Line_Index := 1; *Fill_Index := Water_Color; *Display_Mode := Fast; (End; &Start_Angle := 3/2*PI+Length; &End_Angle := 3/oc_X-10*Mag_Size,Loc_Y);  Line_Abs(X_Start,Y_Start); &Move_Abs(Loc_X-10*Mag_Size,Loc_Y); &Line_Abs(X_End,Y_End); &Move2*PI-Length; &Move_Abs(Center_X,Center_Y); &Arc_Rel (Wave_Rad,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); &Move_Abs(C_Abs(Loc_X+Mag_Size,Loc_Y); &Flood; &Move_Abs(Loc_X-Mag_Size,Loc_Y); &Flood; &Move_Abs(Loc_X-10*Mag_Size,Loc_Y); &Line_Abs(enter_X,Center_Y+6); &Arc_Rel (Wave_Rad,Start_Angle,End_Angle,X_Start,Y_Start,X_End,Y_End); &Move_Abs(Center_X,Center_Y-Wave_RLoc_X-14*Mag_Size,Loc_Y+5*Mag_Size); &Move_Abs(Loc_X-10*Mag_Size,Loc_Y); &Line_Abs(Loc_X-14*Mag_Size,Loc_Y-5*Mag_Size); B t(S); *End; &End; "End;  (*===========================================================================*)  Begin {of Test_Core} "Write('Enter Message: '); "Readln(Message); "{Write ('Do a Print-A-Color dump ? '); "Read (Keyboard, Ch); "Writeln (Chlock_Pixels (Data : Sorcery; Rows, Columns : Integer); " "Procedure Read_Block_Pixels (Data : Sorcery; Rows, Columns : Integer); "Print_It := Ch In ['Y', 'y']; "If Print_It Then $Begin &Write ('Double Size ? '); &Read (Keyboard, Ch); &If Ch In ['Y'); " Procedure Set_Charup (DX_Charup, 8DY_Charup : Integer); " "Procedure Set_Font (Font_Num : Font_Type); " "Procedure, 'y'] Then (Size := P2x2 &Else (Size := P_1x1; &Writeln (Ch); &Write ('Sideways ? '); &Read (Keyboard, Ch); &If Ch In [' Text (The_String : String); " Procedure Set_Line_Style (Dot_1,