LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)O^VUFONTDEMO.TEXT.VIEW.PLAN.TEXTV  "/VIEW.SETUP.TEXT  /VIEW.TRANS.CODE&  VIEW.TRANS.LIB.:\'\'/VIEW.TRANS.TEXT  TEXTDEMO.TEXT$h% TEXTDEMO.LIB 4/VIEW.ORTHO.CODE7 :VIEW.ORTHO.LIB>:\'\'/VIEW.ORTHO.TEXT0  7/VIEW.PERSP.CODEK  VIEW.PERSP.LIBT:\'\'/VIEW.PERSP.TEXT@  8/SCRIPTCOMP.FONT  ˨#/SCRIPTSIMP.FONT ˨#-TEXTDEMO.TEXTo$ "THANK.YOUV9 != .VIEW.CLIP.TEXTh  #.VIEW.ELEV.TEXT_  ".VIEW.MAIN.TEXT˨!.GREEKSIMP.FONT˨ /ITALICCOMP.FONT˨"/ITALICTRIP.FONT"˨".ROMANCOMP.FONT˨.ROMANSIMP.FONT˨;.ROMANTRIP.FONT$˨ III.GRX.06CS.06u' -FONTDEMO.TEXT  #-GRAFDEMO.CODE GRAFDEMO.LIB:\(\(-GRAFDEMO.TEXT  -GRAFOUT.CONSTۨ*.GREEKCOMP.FONT >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@L  procedure Intro; begin $write ( chr(28) ); { Clear screen first } $BeginIntro; $writeln; $writeln('You may direct output to either the screen or a plotter.'); $writeln; $writeln('When the program ''beeps'' you must press to continue.'); $wri O^6ب 1; (CrossHatch= 2; (RightDiag= 3; *) ({ Pen Sizes } ( (Three_mm= 1; (Five_mm= 2; { Line Types } ( (Solid_line= 1; (Dashed_line= 2; (Dotted_line= 3; { Fill Styles } ( (Solid=({ Device Types } ( (Screen= 1; (Plotter= 2; (Virtual= 3; 0 0 ({ Marker Symbols } ( (M_Dot= 1; (M_Plus= 2; (M_Circle= 3; (M_Star= 4; (M_AtSign= 5; 0 (*teln; $write('After making sure that /MGRAF.DISK2 is online, '); $write('press to continue...'); $readln; $write ( chr(28) ); end; procedure D_Frame; begin $with Cur_DState^.VPortBounds do begin (D_MoveTo ( botLeft.x, botLeft.y ); (D_LineTo ( topRight.x, botLeft.y ); (D_LineTo ( topRight.x, topRight.y ); (D_LineTo ( botLeft.x, topRight.y ); (D_LineTo ( botLeft.x, botLeft.y ); $end; end;   procedure FrameView; begin $ViewSize ( outSize.x, outSize.y );  D_Reset; $D_Frame; $ViewSize"R_MoveTo_3D ( 0.0, 0.0, -cubeSize ); "Frame ( cubeSize, cubeSize ); " "{ Connect front and back faces } " "MoveTo_3D ( halfSize, halfSize, frontFace ); "R_LineTo_3D ( 0.0, 0.0, -cubeSize ); " "MoveTo_3D ( -halfSize, halfSize, frontFace ); e } "frontFace:= abs ( cubeSize * 0.5 ); "halfSize:= cubeSize * 0.5; "flapCenter:= cubeSize * 0.75; " "{ Front face } " "MoveTo_3D ( 0.0, 0.0, frontFace ); "Frame ( cubeSize, cubeSize ); " "{ Back face } " ; &TextString ('Front'); & &YRot (90.0); &TextString('Right'); & &LoadMatrix ( tempMat ); &XRot (-90.0); &TextString('Top'); & &XRot ( 180.0); &Floor ( cubeSize ); & &LoadMatrix ( tempMat ); &PostMult ( tempBool ); $end; "  begin { DrawCubrecision ( StrokeFont ); &Select_StrokeFont ( simpFont ); & &SaveMatrix ( tempMat ); &tempBool:= CurMState.geoPostMult; &PostMult ( False); & &MoveTo_3D ( 0.0, 0.0, frontFace ); &CharSize ( cubeSize * 0.15, cubeSize * 0.2 ); &CharJust ( 0.5, 0.5 )${ Draws a cube centered at the origin. } $  var flapCenter: real; (frontFace: real; (halfSize: real; ( $ $procedure Label_It; $var tempMat: matrix; $ tempBool: boolean; $begin & &CharPSize + i * tileSize ); (R_LineTo_2D ( floorSize, 0.0 ); $end; $for i:= 0 to tiles do begin (MoveTo_2D ( -halfSize + i * tileSize, -halfSize ); (R_LineTo_2D ( 0.0, floorSize ); $end;  end;  procedure DrawCube ( cubeSize: real ); ( i: integer;  halfSize: real; (tileSize: real;  begin $halfSize:= floorSize * 0.5; $tileSize:= floorSize / tiles; $CurveParts ( 30 ); $Circle ( halfSize ); $for i:= 0 to tiles do begin (MoveTo_2D ( -halfSize, -half; $TextString ( sub2 ); $if Cur_DState^.DeviceNum=Plotter then begin (ViewSize ( vSize.x * 0.85, vSize.y * 0.85 ); $end $else ViewSize ( vSize.x * 0.75, vSize.y * 0.75 ); end; procedure Floor ( floorSize: real ); const tiles= 10;  var $CharSize ( vSize.x * 0.025, vSize.x * 0.040); $CharJust ( 0.5, 0.5 ); $MoveTo_2D ( 0.0, 0.5 * vSize.y ); $LineFeed ( 1.0 ); $TextString ( mainTitle ); $MoveTo_2D ( 0.0, -0.5 * vSize.y ); $LineFeed ( -2.0 ); $TextString ( sub1 ); $LineFeed ( 1.0 ) ( '/mgraf.disk2/romansimp.font', 10, simpFont );  CharPrecision ( StrokeFont ); $ $D_GrafixOn;  end; procedure TitleIt ( mainTitle,sub1,sub2: string ); begin $Identity; $CharPrecision ( DeviceFont ); $ ize.y * 0.5; $aspect:= vSize.y / vSize.x; $ $WindowSize ( vSize.x, vSize.y ); $WindowCenter (0.0, 0.0); " $ViewCenter ( vCenter.x, vCenter.y ); $ViewSize ( vSize.x, vSize.y ); $ $Clipping ( True ); $Save_VState ( titleView ); $ $Open_StrokeFontCur_DState^.DeviceNum=Plotter then begin $ outSize.x:= 0.5 * outSize.x; $ outSize.y:= outSize.y; $end; $ $vSize.x:= outSize.x - outSize.x * 0.025; $vSize.y:= outSize.y - outSize.x * 0.025; $vCenter.x:= maxSize.x * 0.5; $vCenter.y:= maxS$ writeln; write('Interlace Mode? ');read(ch); (if (ch in ['y','Y']) then D_GrafixPage ( 3 ); $end $else SetDevice ('HP'); $D_Reset; $GetNDC2 ( Cur_DState^.deviceName, maxSize.x, maxSize.y ); $outSize.x:= maxSize.x; $outSize.y:= maxSize.y; $if ( vSize.x, vSize.y ); $D_Frame;  end;  procedure SetUp; var ch: char;  begin " $write('Output to the Screen? ');read(ch); $if (ch in ['y','Y']) then begin $ Set_Device ( 'Bw560' ); "R_LineTo_3D ( 0.0, 0.0, -cubeSize ); " "MoveTo_3D ( halfSize, -halfSize, frontFace ); "R_LineTo_3D ( 0.0, 0.0, -cubeSize ); " "MoveTo_3D ( -halfSize, -halfSize, frontFace ); "R_LineTo_3D ( 0.0, 0.0, -cubeSize ); " "{ Draw the flaps around the front face } " "MoveTo_3D ( flapCenter, 0.0, frontFace ); "Frame ( halfSize, cubeSize ); "MoveTo_3D ( -flapCenter, 0.0, frontFace ); "Frame ( halfSize, cubeSize ); " "MoveTo_3D ( 0.0, flapCenter, frontFace ); "Frame ( cubeSize, halfSize ); " !"#$1 O^6بn; ,end; (end (else readln; $end; $D_Close; $CloseMemory; $  ( chr (7) ); (if Cur_DState^.DeviceNum=Plotter then begin ,D_Reset; { lift pen for plotter } ( if (panel=1) and (scenario<>maxScenario) then begin 0D_TextOn; 0writeln('Please put in a new sheet of paper and then hit '); 0readln; 0D_GrafixO vCenter.x - outSize.x, vCenter.x, ?0.0, outSize.y ); 01: ViewPort ( vCenter.x, vCenter.x + outSize.x, ?0.0, outSize.y ); ,end; (end (else ViewSize ( outSize.x, outSize.y ); (FrameView; (SetScenario ( scenario ); (DrawCube ( cubeSize ); (write$Intro; $ $CubeSize:= 1.0; $CubeHalf:= CubeSize * 0.5; $ $SetUp; $ $for scenario:=1 to maxScenario do begin ( (Load_VState ( titleView ); (if Cur_DState^.DeviceNum=Plotter then begin ,panel:= (scenario-1) mod 2; ,case panel of 00: ViewPort (O^6بMoveTo_3D ( 0.0, -flapCenter, frontFace ); "Frame ( cubeSize, halfSize ); " "{ Label the faces and draw the floor } " "Label_It; "  end; { of DrawCube } 6This demo program shows four scenarios that illustrate7some simple geometric transformations upon a unit cube.8You may direct output to either the screen or a plotter.%'()*+,-^Lccee88gKKITextGraf Copyright (C) 1983 VIEWTRAN DrawCube ( cubeSize ); /Translate ( -0.5, 0.5, 0.0 ); /DrawCube ( cubeSize ); /Translate ( -0.5, 0.5, 0.0 ); +end; $end;  end; begin ${$include View.Main.text } $  end.  8'EyePoint=(0,0,3)', 8'ScaleAll (0.5), several translations'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /LensSize ( 1.0 ); /CharPrecision ( StrokeFont ); + /Identity; /ScaleAll ( 0.5 ); /Translate ( 0.5, -0.5, 0.0 ); +Point=(0,0,3)', 8'XRot= 90 degrees; YRot= -40 degrees'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /LensSize ( 1.0 ); + /Identity; /XRot ( 90.0 ); /YRot ( -40.0 ); +end; (4: begin /TitleIt ('Scaling and Translation', /TitleIt ('Simple rotation', 8'EyePoint=(0,0,3)', 8'yRot= -40 degrees'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /LensSize ( 1.0 ); + /Identity; /YRot ( -40.0 ); +end; (3: begin /TitleIt ('Several rotations', 8'Eyen $case viewScenario of (1: begin /TitleIt ('Identity transformation', 8'EyePoint=(0,0,3)', 8'No geometric transformations'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /LensSize ( 1.0 ); /Identity; +end; (2: begin edure BeginIntro; begin $writeln('This demo program shows four scenarios that illustrate'); $writeln('some simple geometric transformations upon a unit cube.'); end; {$include View.SetUp.text }  procedure SetScenario ( viewScenario: integer );  begi aspect: real; (cubeHalf: real; (cubeSize: real; (maxSize: rVector2; (outSize: rVector2; (panel: integer; (scenario: integer; (simpFont: fontId; (titleView: viewState; (vCenter: rVector2; (vSize: rVector2; ( procProgram ViewTrans; uses RealModes, (Transcend, ({$u *lib/RasterCore.lib } (MemoryManager, (RasterCore, ({$u *lib/ModelGraf.lib } (GrafOut, (ModelGraf, (TextGraf; ( const maxScenario= 4; (  {$include grafout.const. } (  var 9When the program 'beeps' you must press to continue.צ/After making sure that /MGRAF.DISK2 is online, press to continue...8+)Dؼآ*آآ* آآ* ؼآ* ؼآ* L 7,*xz7,&Output to the Screen? سVצBw5607צInterlace Mode? س*צHP7*+O^6بLIBRARY FILES: *lib/RasterCore.lib *lib/ModelGraf.lib $$ +)áf*é˄V*צ4Please put in a new sheet of paper and then hit **/+()78*+&'/9&9/'&+*87)(+`ibBz ( f  ?7g~ ~ ++'9/&*7(??||ȡ7C+)áR9t t7-'tt 7- @% 7,  +)áf*é˄V*צ4Please put in a new sheet of paper and then hit **/+()78*+&'/9&9/'&+*87)(+`ibBz ??7g~ ~ ++'9/&*7(??||ȡ7C+)áR9t t7-'tt 7- @% 7,  @@7/?757B7 B7 צScaling and TranslationצEyePoint=(0,0,3)$ScaleAll (0.5), several translations7.@@7/?75(7?7??7 ??7mations7.@@7/?757צSimple rotationצEyePoint=(0,0,3)yRot= -40 degrees7.@@7/?757 B7 צSeveral rotationsצEyePoint=(0,0,3)#XRot= 90 degrees; YRot= -40 degrees7.77 77 77 77 77 7 | عIdentity transformationצEyePoint=(0,0,3)צNo geometric transforB7צTop(4C77$!7&B ??@?7 77 77 77 77 77 ȡ*77 ȡ)770g  (( 7#8J!7&7 >L>̐(??( Front(B7 Right(7$VڪP-٪PتP7(x<̐x#= א(??( ?z7?(V(?z7@(-(?((+)áxY?zY?7,x@?z@?7,? ) 7  +)á ? x  <̐z <̐t ?v ?zxxz7)7(tv7+xz7,7:7Bצ/mgraf.disk2/romansimp.font ( (*/12345689:;<=^Lccee88gKKITextGraf Copyright (C) 1983 VIEWORTH , cubeSize, cubeSize ); /ViewNormal ( -1.0, -1.0, -1.0 ); /Identity; , YRot ( 10.0 ); ,end; $end;  end; begin ${$include View.Main.text }  end.  rner looking at the origin', 8'EyePoint=(1,1,1);ViewNorm=(-1,-1,-1)', 8'YRot= 10 degrees'); /Projection ( OrthoGraphic ); /if aspect < 1 then 3WindowSize ( wSize , wSize * aspect ) /else 3WindowSize ( wSize / aspect, wSize ); /EyePoint ( cubeSizehoGraphic ); /if aspect < 1 then 3WindowSize ( wSize , wSize * aspect ) /else 3WindowSize ( wSize / aspect, wSize ); /ViewOrient ( 1.0, 0.0, 0.0, v_Up ); /Identity; /YRot ( -40.0 ); /XRot ( 10.0 ); +end; (3: begin /TitleIt ('Eye Point at a co/else 3WindowSize ( wSize / aspect, wSize ); /Identity; /YRot ( -40.0 ); /XRot ( 10.0 ); +end; (2: begin /TitleIt ('View Orientation points the X-axis "up"', 8'ViewOrient=(1,0,0,V_Up)', 8'yRot= -40 degrees; xRot= 10 degrees'); /Projection ( Ortal;  begin $wSize:= 3.0 * cubeSize; $case viewScenario of (1: begin /TitleIt ('Default viewing parameters', 8'', 8'yRot= -40 degrees; xRot= 10 degrees'); /Projection ( OrthoGraphic ); /if aspect < 1 then 3WindowSize ( wSize , wSize * aspect ) rVector2; ( procedure BeginIntro; begin $writeln('This demo program shows three common orthographic projections'); $writeln('of a unit cube.'); end; {$include View.SetUp.text }  procedure SetScenario ( viewScenario: integer ); var wSize: re aspect: real; (compFont: fontId; (cubeHalf: real; (cubeSize: real; (maxSize: rVector2; (outSize: rVector2; (panel: integer; (scenario: integer; (simpFont: fontId; (titleView: viewState; (vCenter: rVector2; (vSize: Program ViewOrtho; uses RealModes, (Transcend, ({$u *lib/RasterCore.lib } (MemoryManager, (RasterCore, ({$u *lib/ModelGraf.lib } (GrafOut, (ModelGraf, (TextGraf; ( const maxScenario= 3; (  {$include grafout.const. } (  var =This demo program shows three common orthographic projectionsצof a unit cube.|8You may direct output to either the screen or a plotter.9When the program 'bO^6بLIBRARY FILES: *lib/RasterCore.lib *lib/ModelGraf.lib $$ et of paper and then hit **/+()78*+&'/9&9/'&+*87)(+`jb X J  7 A7 6 Z ++'9/&*7(? ?ȡ!7C+)áR9{{7-'{{7- @% 7,  +)áf*é˄V*צ4Please put in a new she A7+Eye Point at a corner looking at the originצ$EyePoint=(1,1,1);ViewNorm=(-1,-1,-1)צYRot= 10 degrees7.7)7)7/???707 A7 6 Z +7)7)7 B7  A7'View Orientation points the X-axis "up"צViewOrient=(1,0,0,V_Up)צ#yRot= -40 degrees; xRot= 10 degrees7.7)7)?717 B7 7 77 77 77 77 7 | @@عצDefault viewing parametersצ#yRot= -40 degrees; xRot= 10 degrees7.7$!7&B ??@?7 77 77 77 77 777 ȡ)770g  (( 7#8J!7&7 >L>̐(??( Front(B7 Right(7$B7צTop(4C7<̐#= א(??( ?7?(V(?7@(-(?((+)áY?Y?7,@?@?7,? 77 ȡ*?<̐<̐{?}?7)7({}7+7,7:!7B/mgraf.disk2/romansimp.font ( (*VڪP-٪PتP7(L7,*7,&Output to the Screen? سVצBw5607צInterlace Mode? س*צHP7*+)7+)áeeps' you must press to continue.צ/After making sure that /MGRAF.DISK2 is online, press to continue...8+)Dؼآ*آآ* آآ* ؼآ* ؼآ* ?ABCDEFGHIubeSize ); /LensSize ( 0.5 ); + /Identity; /YRot ( -40.0 ); +end; (4: begin /TitleIt ('Telephoto Lens Size', 8'LensSize=2.0; EyePoint=(0,0,6)', 8'yRot= -40 degrees'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 6.0 * cubeSize ); /LensSiz.0, 0.0, 3.0 * cubeSize ); /LensSize ( 1.0 ); + /Identity; /YRot ( -40.0 ); +end; (3: begin /TitleIt ('Wide Angle Lens Size', 8'LensSize=0.5; EyePoint=(0,0,1.5);', 8'yRot= -40 degrees'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 1.5 * c/Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /LensSize ( 1.0 ); /Identity; +end; (2: begin /TitleIt ('Normal Lens Size', 8'LensSize=1.0; EyePoint=(0,0,3)', 8'yRot= -40 degrees'); /Projection ( Perspective ); /EyePoint ( 0begin $if viewScenario in [8..maxScenario] then Part2; $case viewScenario of (1,7: begin /TitleIt ('Default viewing parameters except for the EyePoint', 8'LensSize=1.0; EyePoint=(0,0,3)', 8'No geometric transformations'); 5 degrees', 8'LensSize=1.0; EyePoint=(0,0,3); RollView= 45 degrees', 8'No geometric transformations'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /RollView ( 45.0 ); /LensSize ( 1.0 ); + /Identity; +end; $end;  end;  (0,0,3); YawView= 10 degrees', 8'No geometric transformations'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /YawView ( 10.0 ); /LensSize ( 1.0 ); + /Identity; +end; (10: begin /TitleIt ('View rolled counterclockwise by 4/Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /ViewNormal ( 0.0, 0.0, -1.0 ); /PitchView ( 10.0 ); /LensSize ( 1.0 ); + /Identity; +end; (9: begin /TitleIt ('View yawed to the left by 10 degrees', 8'LensSize=1.0; EyePoint=Scenario ( viewScenario: integer ); procedure Part2; begin $case viewScenario of (8: begin /TitleIt ('View pitched upwards by 10 degrees', 8'LensSize=1.0; EyePoint=(0,0,3); PitchView=10 degrees', 8'No geometric transformations'); Vector2; (vSize: rVector2; ( procedure BeginIntro; begin "writeln('This demo program illustrates some of the aspects of'); "writeln('perspective projections with projections of a unit cube.'); end; {$include View.SetUp.text }  procedure Set aspect: real; (cubeHalf: real; (cubeSize: real; (maxSize: rVector2; (outSize: rVector2; (panel: integer; (scenario: integer; (simpFont: fontId; (titleView: viewState; (vCenter: rProgram ViewPersp; uses RealModes, (Transcend, ({$u *lib/RasterCore.lib } (MemoryManager, (RasterCore, ({$u *lib/ModelGraf.lib } (GrafOut, (ModelGraf, (TextGraf; ( const maxScenario= 10; (  {$include grafout.const. } (  var e ( 2.0 ); + /Identity; /YRot ( -40.0 ); +end; (5: begin .TitleIt ('EyePoint outside a corner looking towards the origin', 7'LensSize=0.5; EyePoint=(1,1,1); ViewNorm=(-1,-1,-1)', 7'YRot= 10 degrees'); /Projection ( Perspective ); /EyePoint ( cubeSize, cubeSize, cubeSize ); /ViewNormal ( -1.0, -1.0, -1.0 ); /LensSize ( 0.5 ); + /Identity; + YRot ( 10.0 ); +end; (6: begin .TitleIt ( 2'Looking from the inside towards the origin', 1'LensSize=0.5; EyePoint=(-0.49,-0.49,-0.7צTop(4C77$!7&B ??@?7 77 77 77 77 7 ȡ*77 ȡ)770g  (( 7#8J!7&7 >L>̐(??( Front(B7 Right(7$BVڪP-٪PتP7(x<̐x#= א(??( ?z7?(V(?z7@(-(?((+)áxY?zY?7,x@?z@?7,? 7 7  +)á ? x  <̐z <̐t ?v ?zxxz7)7(tv7+xz7,7:7Bצ/mgraf.disk2/romansimp.font ( (*آ* ؼآ* ؼآ* L 7,*xz7,&Output to the Screen? سVצBw5607צInterlace Mode? س*צHP7*+)9When the program 'beeps' you must press to continue.צ/After making sure that /MGRAF.DISK2 is online, press to continue...8+)Dؼآ*آآ* آ4This demo program illustrates some of the aspects of8perspective projections with projections of a unit cube.8You may direct output to either the screen or a plotter.JLMNOPQRS^Lccee88gKKITextGraf Copyright (C) 1983VIEWPERS } $  end.  49)', 2'ViewNorm=(1,1,1); YRot= 10 degrees'); /Projection ( Perspective ); /EyePoint ( -0.49, -0.49, -0.49 ); /ViewNormal ( 1.0, 1.0, 1.0 ); /LensSize ( 0.5 ); + /Identity; + YRot ( 10.0 ); +end; $end;  end; begin ${$include View.Main.text77 77 77 77 77 7 | "View pitched upwards by 10 degreesצ4LensSize=1.0; EyePoint=(0,0,3); PitchView=10 degreesNo geometric transformations7.@@7/?70 A73?757צ$View yawed to the left by 10 degrees3LensSize=1.0; EyePoint=(0,0,3); YawView= 10 degreesצNo geometric transformationsUWXYZ[\]1 O^6بLIBRARY FILES: *lib/RasterCore.lib *lib/ModelGraf.lib $$ a new sheet of paper and then hit **/+()78*+&'/9&9/'&+*87)(+`ib J z 6 7 ($  ++'9/&*7(?? ||ȡ7C+)áR9t t7-'tt 7- @% 7,  +)áf*é ˄V*צ4Please put in?757 A7 *Looking from the inside towards the originצ*LensSize=0.5; EyePoint=(-0.49,-0.49,-0.49)"ViewNorm=(1,1,1); YRot= 10 degrees7.>Hᒳ>Hᒳ>H7/???70?757 A7 ($)yRot= -40 degrees7.@7/@757 B7 צ4EyePoint outside a corner looking towards the origin3LensSize=0.5; EyePoint=(1,1,1); ViewNorm=(-1,-1,-1)צYRot= 10 degrees7.7/???7040 degrees7.@@7/?757 B7 צWide Angle Lens Size!LensSize=0.5; EyePoint=(0,0,1.5);צyRot= -40 degrees7.?7/?757 B7 צTelephoto Lens SizeצLensSize=2.0; EyePoint=(0,0,6 X  ع2Default viewing parameters except for the EyePointצLensSize=1.0; EyePoint=(0,0,3)No geometric transformations7.@@7/?757צNormal Lens SizeLensSize=1.0; EyePoint=(0,0,3)צyRot= -7.@@7/ A74?757צ*View rolled counterclockwise by 45 degrees4LensSize=1.0; EyePoint=(0,0,3); RollView= 45 degreesצNo geometric transformations7.@@7/4B72?757 AzProgram ViewPlan; uses RealModes, (Transcend, ({$u *lib/RasterCore.lib } (MemoryManager, (RasterCore, ({$u *lib/ModelGraf.lib } (GrafOut, (ModelGraf, (TextGraf; ( const maxScenario= 4; (  {$include grafout.const. } (  var ^`abcdefO^6ب3WindowSize ( 3.0 * cubeSize / aspect, 3.0 * cubeSize ); /EyePoint ( 0.0, 0.0, cubeHalf ); /ForeShortRatio ( 1.0 ); + ViewOrient ( 0.0, 1.0, 0.0 , vPreferred ); /Identity; +end; $end;  end; begin  {$include View.Main.text }  end.  /TitleIt ('ForeShortening of 1.0', 8'EyePoint= (0.0,0.0,0.5 ); ForeShortRatio= 1.0', 8'vPref= (0,1,0); No geometric transformations'); /Projection ( PlanOblique ); /if aspect < 1 then 3WindowSize ( 3.0 * cubeSize , 3.0 * cubeSize * aspect ) /else cubeSize * aspect ) /else 3WindowSize ( 3.0 * cubeSize / aspect, 3.0 * cubeSize ); /EyePoint ( 0.0, 0.0, cubeHalf ); /RecedLineAng ( 45.0 ); + ViewOrient ( 1.0, 0.0, 0.0 , vPreferred ); /Identity; +end; (4: begin Identity; +end; (3: begin /TitleIt ('Receding line angle of 45 degrees', 8'EyePoint= (0.0,0.0,0.5 ); RecedLinAng= 45 degrees', 8'No geometric transformations'); /Projection ( PlanOblique ); /if aspect < 1 then 3WindowSize ( 3.0 * cubeSize , 3.0 * ection ( PlanOblique ); /if aspect < 1 then 3WindowSize ( 3.0 * cubeSize , 3.0 * cubeSize * aspect ) /else 3WindowSize ( 3.0 * cubeSize / aspect, 3.0 * cubeSize ); /EyePoint ( 0.0, 0.0, cubeHalf ); + ViewOrient ( 0.0, 1.0, 0.0 , vPreferred ); //EyePoint ( 0.0, 0.0, cubeHalf ); + ViewOrient ( 1.0, 0.0, 0.0 , vPreferred ); /Identity; +end; ( (2: begin /TitleIt ('View Preferred is the positive Y-Axis', 8'EyePoint= (0.0,0.0,0.5 ); vPref= (0,1,0)', 8'No geometric transformations'); /Projnt= (0.0,0.0,0.5); vPref= (1,0,0)', 8'No geometric transformations'); /Projection ( PlanOblique ); /if aspect < 1 then 3WindowSize ( 3.0 * cubeSize , 3.0 * cubeSize * aspect ) /else 3WindowSize ( 3.0 * cubeSize / aspect, 3.0 * cubeSize ); ector2; (vSize: rVector2; ( procedure BeginIntro; begin end;  {$include View.SetUp.text }  procedure SetScenario ( viewScenario: integer ); begin $case viewScenario of (1: begin /TitleIt ('View Preferred is the positive X-Axis', 3'EyePoi aspect: real; (cubeHalf: real; (cubeSize: real; (maxSize: rVector2; (outSize: rVector2; (panel: integer; (scenario: integer; (simpFont: fontId; (titleView: viewState; (vCenter: rVO^6ب; ( end; $end;  end; begin  {$include View.Main.text }  end.  /Projection ( ElevationOblique ); /if aspect < 1 then 3WindowSize ( 3.0 * cubeSize , 3.0 * cubeSize * aspect ) /else 3WindowSize ( 3.0 * cubeSize / aspect, 3.0 * cubeSize ); /EyePoint ( 0.0, 0.0, cubeHalf ); /RecedLineAng ( 135.0 ); + IdentityPoint ( 0.0, 0.0, cubeHalf ); /RecedLineAng ( 45.0 ); + Identity; ,end; , (4: begin /TitleIt ('Receding lines at 135 degrees from U-axis', 8'EyePoint= (0,0,0.5); RecedLineAng= 135 degrees', 8'No geometric transformations'); 0,0.5); RecedLineAng= 45 degrees', 8'No geometric transformations'); /Projection ( ElevationOblique ); /if aspect < 1 then 3WindowSize ( 3.0 * cubeSize , 3.0 * cubeSize * aspect ) /else 3WindowSize ( 3.0 * cubeSize / aspect, 3.0 * cubeSize ); /Eye * aspect ) /else 3WindowSize ( 3.0 * cubeSize / aspect, 3.0 * cubeSize ); /EyePoint ( cubeHalf, 0.0, cubeHalf ); + ForeShortRatio ( 1.0 ); + Identity; +end; + (3: begin /TitleIt ('Receding lines at 45 degrees from U-axis', 8'EyePoint= (0,+ Identity; +end; (2: begin /TitleIt ('ForeShortening of 1.0', 8'EyePoint= (0.5,0,0.5); ForeShortRatio= 1.0', 8'No geometric transformations'); /Projection ( ElevationOblique ); /if aspect < 1 then 3WindowSize ( 3.0 * cubeSize , 3.0 * cubeSize', 8'No geometric transformations'); /Projection ( ElevationOblique ); /if aspect < 1 then 3WindowSize ( 3.0 * cubeSize , 3.0 * cubeSize * aspect ) /else 3WindowSize ( 3.0 * cubeSize / aspect, 3.0 * cubeSize ); /EyePoint ( 0.0, 0.0, cubeHalf ); ector2; (vSize: rVector2; ( procedure BeginIntro; begin end; {$include View.SetUp.text }  procedure SetScenario ( viewScenario: integer ); begin $case viewScenario of (1: begin /TitleIt ('Default viewing parameters', 8'EyePoint= (0,0,0.5) aspect: real; (cubeHalf: real; (cubeSize: real; (maxSize: rVector2; (outSize: rVector2; (panel: integer; (scenario: integer; (simpFont: fontId; (titleView: viewState; (vCenter: rVProgram ViewElev; uses RealModes, (Transcend, ({$u *lib/RasterCore.lib } (MemoryManager, (RasterCore, ({$u *lib/ModelGraf.lib } (GrafOut, (ModelGraf, (TextGraf; ( const maxScenario= 4; (  {$include grafout.const. } (  var gijklmnpqrstuvwxyz{|}~1 b O^6بYonPlane ( 3.25 * cubeSize, True ); /Identity; +end; $end;  end; begin ${$include View.Main.text } $  end.  her and Yon Clipping Enabled', 8'EyePoint=(0,0,3); HitherPlane= 2.75 YonPlane= 3.25', 8'No geometric transformations'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /LensSize ( 1.0 ); /HitherPlane ( 2.75 * cubeSize, True ); /ng Enabled', 8'EyePoint=(0,0,3); YonPlane= 3', 8'No geometric transformations'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /LensSize ( 1.0 ); /YonPlane ( 3.0 * cubeSize, True ); /Identity; +end; (4: begin /TitleIt ('Hit8'EyePoint=(0,0,3); HitherPlane= 3', 8'No geometric transformations'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /LensSize ( 1.0 ); /HitherPlane ( 3.0 * cubeSize, True ); /Identity; +end; (3: begin /TitleIt ('Yon Clippiters except for the EyePoint', 8'EyePoint=(0,0,3)', 8'No geometric transformations'); /Projection ( Perspective ); /EyePoint ( 0.0, 0.0, 3.0 * cubeSize ); /LensSize ( 1.0 ); /Identity; +end; (2: begin /TitleIt ('Hither Clipping Enabled', tate; (vCenter: rVector2; (vSize: rVector2; ( procedure BeginIntro; begin end; {$include View.SetUp.text }  procedure SetScenario ( viewScenario: integer );  begin $case viewScenario of (1: begin /TitleIt ('Default viewing parame aspect: real; (compFont: fontId; (cubeHalf: real; (cubeSize: real; (maxSize: rVector2; (outSize: rVector2; (panel: integer; (scenario: integer; (simpFont: fontId; (titleView: viewSProgram ViewClip; uses RealModes, (Transcend, ({$u *lib/RasterCore.lib } (MemoryManager, (RasterCore, ({$u *lib/ModelGraf.lib } (GrafOut, (ModelGraf, (TextGraf; ( const maxScenario= 4; (  {$include grafout.const. } (  var $TextString ('positions a character from the current'); $LineFeed ( 2.0 ); $CharSize ( cSize.x, cSize.y * 1.25 ); $ $CharPrecision ( PreviewFont ); $TextString ('device font at the same location as a'); $LineFeed ( 1.0 ); $ $CharPrecision ( StrokeviewFont lettering precision'); $LineFeed ( 2.0 ); $CharSize ( cSize.x * 0.75, cSize.y * 0.75 ); $ $CharPrecision ( PreviewFont ); $TextString ('positions a character from the current'); $LineFeed ( 1.0 ); $ $CharPrecision ( StrokeFont ); ate above'); $ $CharJust ( 0.5, 0.5 ); $ $MoveTo_2D ( 0.0, vHalfSize.y ); $LineFeed ( 4.0 ); $ $CharPrecision ( PreviewFont ); $TextString ('PreviewFont lettering precision'); $LineFeed ( 1.0 ); $ $CharPrecision ( StrokeFont ); $TextString ('Prd; $if sub2 <> '' then begin (LineFeed ( 1.0); (TextString ( sub2 ); $end; $Load_TState ( defaultText ); end;  procedure ShowSize; begin $TitleIt ('Lettering Precisions and Sizes', -'The PreviewFont and StrokeFont', -'lettering precisions altern$CharPrecision ( DeviceFont ); $ $CharJust ( 0.5, 0.5 ); $MoveTo_2D ( 0.0, 0.5 * vSize.y ); $LineFeed ( 1.0 ); $TextString ( mainTitle ); $if sub1 <> '' then begin (MoveTo_2D ( 0.0, -0.5 * vSize.y ); (LineFeed ( -2.0 ); (TextString ( sub1 ); $enkeFont ( simpFont ); $cSize.x:= vSize.x * 0.025; $cSize.y:= cSize.x * 1.5; $CharSize ( cSize.x, cSize.y ); $Save_TState ( defaultText ); $ $D_GrafixOn;  end; procedure TitleIt ( mainTitle,sub1,sub2: string ); begin $Load_TState ( defaultText ); Center.y:= maxSize.y * 0.5; $ $WindowSize ( vSize.x, vSize.y ); $WindowCenter ( 0.0, 0.0 ); " $ViewCenter ( vCenter.x, vCenter.y ); $ $Open_StrokeFont ( '/mgraf.disk2/romansimp.font', 10, simpFont );  CharPrecision ( StrokeFont ); $Select_StroC2 ( Cur_DState^.deviceName, maxSize.x, maxSize.y ); $outSize:= maxSize; $vSize.x:= outSize.x - outSize.x * 0.025; $vSize.y:= outSize.y - outSize.x * 0.025; $vHalfSize.x:= vSize.x * 0.5; $vHalfSize.y:= vSize.y * 0.5; $vCenter.x:= maxSize.x * 0.5; $v$write('Output to the Screen? ');read(ch); $if (ch in ['y','Y']) then begin $ Set_Device ( 'Bw560' ); $ writeln; write('Interlace Mode? ');read(ch); (if (ch in ['y','Y']) then D_GrafixPage ( 3 ); $end $else SetDevice ('HP'); $D_Reset; $GetNDLeft.x, botLeft.y ); $end; end;   procedure FrameView; begin $ViewSize ( outSize.x, outSize.y );  D_Reset; $D_Frame; $ViewSize ( vSize.x, vSize.y ); $D_Frame;  end;  procedure SetUp; var ch: char;  begin " rVector2; ( procedure D_Frame; begin $with Cur_DState^.VPortBounds do begin (D_MoveTo ( botLeft.x, botLeft.y ); (D_LineTo ( topRight.x, botLeft.y ); (D_LineTo ( topRight.x, topRight.y ); (D_LineTo ( botLeft.x, topRight.y ); (D_LineTo ( bot cSize: rVector2; (defaultText: textState; (maxSize: rVector2; (outSize: rVector2; (panel: integer; (scenario: integer; (simpFont: fontId; (vCenter: rVector2; (vHalfSize: rVector2; (vSize:Program TextDemo; uses RealModes, (Transcend, ({$u *lib/RasterCore.lib } (MemoryManager, (RasterCore, ({$u *lib/ModelGraf.lib } (GrafOut, (ModelGraf, (TextGraf; ( const maxScenario= 4; (  {$include grafout.const. } (  var eFont ); $TextString ('device font at the same location as a'); $LineFeed ( 2.0 ); $CharSize ( cSize.x * 1.5, cSize.y * 1.5 ); $ $CharPrecision ( PreviewFont ); $TextString ('Stroke Font character.'); $LineFeed ( 1.0 ); $ $CharPrecision ( StrokeFont ); $TextString ('Stroke Font character.'); $LineFeed ( 2.0 ); end;  procedure ShowDir; begin $TitleIt ('Lettering Directions and CharSpace values','',''); $ $MoveTo_2D ( 0.0, vHalfSize.y ); $LineFeed ( 5.0 ); $ $CharPath ( T_Right ); $Char$CharJust ( 0.0, 0.0 ); $TextString ( 'CharJust=(0.0,0.0)'); $ $MoveTo_2D ( vHalfSize.x * 0.9, -vHalfSize.y * 0.5 ); $CharJust ( 1.0, 0.0 ); $TextString ( 'CharJust=(1.0,0.0)'); end; .  procedure SetScenario ( scenario: integer ); begin $case scenfSize.y * 0.5 ); $CharJust ( 1.0, 1.0 ); $TextString ( 'CharJust=(1.0,1.0)'); $ $MoveTo_2D ( 0.0, -vHalfSize.y * 0.5 ); $CharJust ( 0.5, 0.0 ); $TextString ( 'CharJust=(0.5,0.0)'); $MoveTo_2D ( -vHalfSize.x * 0.9, -vHalfSize.y * 0.5 ); To_2D ( 0.0, vHalfSize.y * 0.5 ); $CharJust ( 0.5, 1.0 ); $TextString ( 'CharJust=(0.5,1.0)'); $MoveTo_2D ( -vHalfSize.x * 0.9, vHalfSize.y * 0.5 ); $CharJust ( 0.0, 1.0 ); $TextString ( 'CharJust=(0.0,1.0)'); $ $MoveTo_2D ( vHalfSize.x * 0.9, vHalTextString ( 'CharJust=(0.5,0.5)'); $MoveTo_2D ( -vHalfSize.x * 0.9, 0.0 ); $CharJust ( 0.0, 0.5 ); $TextString ( 'CharJust=(0.0,0.5)'); $ $MoveTo_2D ( vHalfSize.x * 0.9, 0.0 ); $CharJust ( 1.0, 0.5 ); $TextString ( 'CharJust=(1.0,0.5)'); $ $Moveprocedure ShowJust; begin $TitleIt ('Text Justification', $'Each character string is oriented about', $'the nearest grid intersection.'); $ $Grid; $CharSize ( cSize.x * 0.70, cSize.y * 0.70 ); $ $MoveTo_2D ( 0.0, 0.0 ); $CharJust ( 0.5, 0.5 ); $ 0.0, vHalfSize.y * 0.5 ); $RMoveTo_2D ( -vHalfSize.x * 0.9, 0.0 ); $RLineTo_2D ( vHalfSize.x * 1.8, 0.0 ); $ $MoveTo_2D ( 0.0, -vHalfSize.y * 0.5 ); $RMoveTo_2D ( -vHalfSize.x * 0.9, 0.0 ); $RLineTo_2D ( vHalfSize.x * 1.8, 0.0 ); $  end; ze.y ); $ $MoveTo_2D ( vHalfSize.x * 0.9, 0.0 ); $RMoveTo_2D ( 0.0, -vHalfSize.y * 0.5 ); $RLineTo_2D ( 0.0, vHalfSize.y );  $MoveTo_2D ( 0.0, 0.0 ); $RMoveTo_2D ( -vHalfSize.x * 0.9, 0.0 ); $RLineTo_2D ( vHalfSize.x * 1.8, 0.0 ); $ $MoveTo_2D ('); $ end; . procedure Grid; begin $ $MoveTo_2D ( 0.0, 0.0 ); $RMoveTo_2D ( 0.0, -vHalfSize.y * 0.5 ); $RLineTo_2D ( 0.0, vHalfSize.y ); $ $MoveTo_2D ( -vHalfSize.x * 0.9, 0.0 ); $RMoveTo_2D ( 0.0, -vHalfSize.y * 0.5 ); $RLineTo_2D ( 0.0, vHalfSi$CharRot ( 90.0 ); $TextString('90 degrees'); $ $CharRot ( 135.0 ); $TextString('135 degrees'); $ $CharRot ( 180.0 ); $TextString('180 degrees'); $ $CharRot ( 235.0 ); $TextString('235 degrees'); $ $CharRot ( -45.0 ); $TextString('-45 degreesTitleIt ('Lettering Angles','',''); $ $CharJust ( -0.3, 0.5 ); $MoveTo_2D ( 0.0, 0.0 ); $LineFeed ( 2.0 ); $RMarker_2D ( 0.0, 0.0 ); # $CharRot ( 0.0 ); $TextString('0 degrees'); $ $CharRot ( 45.0 ); $TextString('45 degrees'); $ 0.5 ); $MoveTo_2D ( -vHalfSize.x, 0.0 ); $LineFeed ( 1.0 ); $TextString('lettering downwards'); $LineFeed ( 2.0 ); $ $CharPath ( T_Up ); $CharJust ( 0.0, 0.5 ); $TextString('lettering upwards'); $ end;   procedure ShowAngles;  begin $( 2.0 ); $CharSpace ( 1.5 ); $TextString ('CharSpace=1.5'); $LineFeed ( 2.0 ); $CharSpace ( -0.1 ); $TextString ('CharSpace=-0.1'); $LineFeed ( 2.0 ); $CharSpace ( -0.2 ); $TextString ('CharSpace=-0.2'); $ $CharPath ( T_Down ); $CharJust ( 0.0, $CharSize ( cSize.x * 0.8, cSize.y * 0.8 ); $CharPath ( T_Right ); $CharJust ( 0.5, Cur_TState.SoftOpen.baseLine ); $CharSpace ( 0.0 ); $TextString ('CharSpace=0.0'); $LineFeed ( 2.0 ); $CharSpace ( 1.0 ); $TextString ('CharSpace=1.0'); $LineFeed Just ( 0.5, Cur_TState.SoftOpen.baseLine ); $TextString('lettering to the right'); $LineFeed ( 2.0 ); $ $CharPath ( T_Left ); $CharJust ( 0.5, Cur_TState.SoftOpen.baseLine ); $TextString('lettering to the left'); $LineFeed ( 2.0 ); $ ario of (1: ShowSize;  2: ShowDir; (3: ShowAngles; $ 4: ShowJust; $end;  end;  begin $SetUp; $ $for scenario:=1 to maxScenario do begin ( (D_GrafixOn; (FrameView; (SetScenario ( scenario ); ( (write ( chr (7) ); (if Cur_DState^.DeviceNum=Plotter then begin ,D_Reset; { lift pen for plotter } ( if scenario<>maxScenario then begin 0D_TextOn; 0writeln('Please put in a new sheet of paper and then hit '); 0readln; 0D_GrafixOn; ,end; (end (else readln; $er ( 0.0, 0.0 ); " $ViewCenter ( vCenter.x, vCenter.y ); $ViewSize ( vSize.x, vSize.y ); $  CharPrecision ( StrokeFont ); $cSize.x:= 0.025 * vSize.x; $cSize.y:= 2.0 * cSize.x; $CharSize ( cSize.x, cSize.y ); $CharJust ( 0.5, 0.5 ); $ $D_Grafize.x:= outSize.x - outSize.x * 0.025; $vSize.y:= outSize.y - outSize.x * 0.025; $vHalfSize.x:= vSize.x * 0.5; $vHalfSize.y:= vSize.y * 0.5; $vCenter.x:= maxSize.x * 0.5; $vCenter.y:= maxSize.y * 0.5; $ $WindowSize ( vSize.x, vSize.y ); $WindowCent$ Set_Device ( 'Bw560' ); $ writeln; write('Interlace mode? ');read(ch); (if (ch in ['y','Y']) then D_GrafixPage ( 3 ); $end $else SetDevice ('HP'); $D_Reset; $GetNDC2 ( Cur_DState^.deviceName, maxSize.x, maxSize.y ); $outSize:= maxSize; $vSn $ViewSize ( outSize.x, outSize.y );  D_Reset; $D_Frame; $ViewSize ( vSize.x, vSize.y ); $D_Frame;  end;  procedure SetUp; var ch: char;  begin " $write('Output to the Screen? ');read(ch); $if (ch in ['y','Y']) then begin te^.VPortBounds do begin (D_MoveTo ( botLeft.x, botLeft.y ); (D_LineTo ( topRight.x, botLeft.y ); (D_LineTo ( topRight.x, topRight.y ); (D_LineTo ( botLeft.x, topRight.y ); (D_LineTo ( botLeft.x, botLeft.y ); $end; end;   procedure FrameView; begit: textState; (maxSize: rVector2; (outSize: rVector2; (panel: integer; (scenario: integer; (vCenter: rVector2; (vHalfSize: rVector2; (vSize: rVector2; (  procedure D_Frame; begin $with Cur_DStaProgram FontDemo; uses RealModes, (Transcend, ({$u *lib/RasterCore.lib } (MemoryManager, (RasterCore, ({$u *lib/ModelGraf.lib } (GrafOut, (ModelGraf, (TextGraf; (  const {$i Grafout.const. }  var cSize: rVector2; (defaultTex1 O^6بend; $D_Close; $CloseMemory; $  end.  ixOn;  end;  procedure ShowPitches; const maxFonts= 7;  var fontInfo: fontId; (fontName: string;  i: integer; (pascalFont: boolean; (pitch: string;  fontStart: ^integer;   begin $MoveTo_2D (0.0, vHalfSize.y ); $LineFeed ( 3.0 ); $for i:= 1 to maxFonts do begin $ case i of ,1: fontName:='/mgraf.disk2/RomanSimp.Font'; ,2: fontName:='/mgraf.disk2/ScriptSimp.Font'; ,3: fontName:='/mgraf.disk2/RomanComp.Font'; ,4 program GrafDemo; uses {$u *lib/RasterCore.Lib } (MemoryManager, (RasterCore, ({$u *lib/ModelGraf.Lib } (GrafOut; % const {$include grafout.const. } ( var vCenter: rVector2; (vSize: rVector2; (  procedure Intro; begin 1 lO^֤بthen D_Reset { lift pen for plotter } $else readln; $ $D_Close; $CloseMemory; $  end.   TextString ( pitch ); (LineFeed ( 1.5 ); (Close_StrokeFont ( fontInfo ); $ if pascalFont then Release ( fontStart ); $end;  end;  begin $SetUp; $FrameView; $ $ShowPitches; $ $write ( chr (7) ); $if Cur_DState^.DeviceNum=Plotter tch:='How Roman Complex eloquently expresses.'; ,4: pitch:='Jazzy Italic Complex is hot!'; ,5: pitch:='Isn''t Script Complex just lovely?'; ,6: pitch:='Heavy duty Roman Triplex font.'; ,7: pitch:='Big Bad Italic Triplex!'; (end; nfo ); (if ErrorFlag and not FatalError then pascalFont:= True (else pascalFont:= False; ( (Select_StrokeFont ( fontInfo ); $ case i of ,1: pitch:='This font speaks in Roman Simplex.'; ,2: pitch:='Script Simplex font is the scene...'; ,3: pi: fontName:='/mgraf.disk2/ItalicComp.Font'; ,5: fontName:='/mgraf.disk2/ScriptComp.Font'; ,6: fontName:='/mgraf.disk2/RomanTrip.Font'; ,7: fontName:='/mgraf.disk2/ItalicTrip.Font'; (end; (Mark ( fontStart ); (Open_StrokeFont ( fontName, 20, fontI$write ( chr(28) ); { Clear screen first } $writeln('This demo program shows how to make calls to procedures in the'); $writeln('GrafOut unit and draws a simple pattern in the process.'); $writeln; $writeln('When the program ''beeps'' you must press to continue.'); $writeln; $write('Press to continue...'); $readln; $write ( chr(28) ); end;  procedure D_Frame; begin $with Cur_DState^.VPortBounds do begin (D_MoveTo ( botLeft.x, botLeft.y ); (D_LineTo ( topRight.x, botLeft.y ); (D_Lin>This demo program shows how to make calls to procedures in the7GrafOut unit and draws a simple pattern in the process.צ9When the program 'beeps' you must press to continue.Lcc88gGrafOut Copyright (C) 1983GRAFDEMO n; " $D_Close; $Close_Memory; $  end. $delta.y:= masterDelta * vSize.y * 0.5;  $Sweep; $delta.y:= -delta.y; $Sweep; $delta.x:= -delta.x; $Sweep; $delta.y:= -delta.y; $Sweep; $  end;  begin { GrafDemo } " $Intro; $SetUp; $ $D_Frame; $Pattern; $write ( chr(7) ); $readlunds do begin (vSize.x:= topRight.x - botLeft.x; (vSize.y:= topRight.y - botLeft.y; $end; $point1:= vCenter; $point2.x:= vCenter.x + vSize.x * 0.5; $point2.y:= vCenter.y; $delta.x:= -masterDelta * vSize.x * 0.5; $for i:= 1 to reps do begin (D_MoveTo ( point1.x, point1.y ); (D_LineTo ( point2.x, point2.y ); (point1.y:= point1.y + delta.y; (point2.x:= point2.x + delta.x; $end;  end;  begin; $reps:= trunc ( 1.0 / masterDelta ); $with Cur_DState^.VPortBoate^.Height * 0.5; $  end;  procedure Pattern;  const masterDelta= 0.05;  var delta: rVector2; (point1: rVector2; (point2: rVector2; (reps: integer; (  procedure Sweep; var i: integer;  begin$D_GrafixPage ( 3 ); $ $D_FillColor ( S_White); $D_Reset; $Init_DState ( name ); $with Cur_DState^ do D_ViewPort ( inset, Width-inset, inset, Height-inset ); $D_Reset; $ $D_GrafixOn; $ # vCenter.x:= Cur_DState^.Width * 0.5; $vCenter.y:= Cur_DSteTo ( topRight.x, topRight.y ); (D_LineTo ( botLeft.x, topRight.y ); (D_LineTo ( botLeft.x, botLeft.y ); $end; end;   procedure SetUp; const inset= 20;  var name: string;  begin " $name:='BW560'; $D_SetDevice ( name ); $D_Open; Press to continue...D+)Dؼآ*آآ* آآ* ؼآ* ؼآ* LצBW560P******%+)**-*+***+)-?+)+?Tz ȡA*  *   HX?L=̇ +)D  ? L=̥?L=̥ ?뀀 M뀀뀀뀀N뀀뀀O  P뀀 Q R뀀 ST CD뀀 E뀀  F뀀 GH뀀뀀 I J K뀀 L89 :;=?A 뀀뀀 B뀀 ,-. / 0 123 4 567!" # $   "&' (  ) * +  $-IQ 6Y\gr{!9ETZox0>Wh} -8AMVYlw             ! RomanSimp %LIBRARY FILES: *lib/RasterCore.lib *lib/ModelGraf.lib $$ O++'/&**/+*+&'//'&+*f8p,x ^ *****%+)**-*+***+)-?+)+ UV뀀 W뀀뀀뀀X뀀YZ뀀a b뀀 cd뀀 e f g  h뀀 i jk뀀 lm   n o>8/9 : 4 퀀뀀&5  /67 1뀀쀀 ,2 .3  '( ) * +  ,-. / '0 !  "  # 䀀 䀀)$    %뀀0&( 6 : > D M V \ b q z    - 8 C N z - K 'Qq&SDt3Sq'EZ2BYh(Dh ; G s  / ? [ j           "   """ RomanComp &% ! | p뀀q뀀rst u v wx  yz ;<=>?7@  A 뀀뀀 ,B뀀뀀   CD뀀뀀  E뀀뀀       +뀀     ~             x  y z  '{ | '} s tu v w  #o #p뀀뀀  q뀀뀀 rjk뀀뀀  l뀀뀀+m  n f ;gh뀀뀀 i b뀀뀀  c #d뀀뀀  e X 뀀 뀀뀀Y Z뀀뀀 [   ]  ^`&a   !S T 뀀뀀UV뀀뀀W뀀뀀뀀뀀 P뀀뀀  ?Q ,R뀀뀀  뀀뀀   L뀀뀀M뀀뀀뀀뀀뀀 N뀀 퀀 퀀뀀 +O F뀀뀀'GH뀀뀀 뀀뀀  I뀀뀀J K뀀  !1-  䀀 7  N8 D9    D6   *7   4 뀀65  1 퀀뀀 =2 K3      +  ,-. /  10  '( ) &*!! " 7$    I&"8p"2JRbjB^T%IM Gt, S  a  L  @ b @ 1?v ,Y        # #! RomanTrip % 뀀  " :';=3? #A 쀀뀀  MB뀀퀀뀀   @h뀀퀀뀀    (e  'f  Xg.b쀀   !c 3d퀀뀀 /Y  (Z 뀀 뀀 뀀 5a    6W뀀뀀 5X 뀀 뀀 뀀퀀  8T뀀퀀뀀 ,U !V뀀OR뀀퀀뀀   +S :P뀀퀀뀀   LQ  퀀뀀  &N쀀뀀  쀀  5O     3L뀀퀀뀀>M쀀뀀뀀뀀&I뀀퀀뀀,J DK뀀퀀뀀 ;G PH뀀퀀뀀 뀀퀀뀀 뀀EF뀀퀀뀀$C =D뀀퀀뀀 RE뀀*i (jg6b 0 L d  8 ] t             """ GreekComp % !u vw䀀x|  m n o p    qrs   tf ghij k퀀l뀀Xa b  cd e O P뀀뀀 Q뀀  RS뀀TU 뀀V뀀W 뀀 C뀀 D 뀀뀀 E뀀  F뀀G뀀뀀 H IJ뀀 K 뀀 L뀀뀀뀀M뀀뀀N'( ) * +  ,-. / '0  1뀀쀀 ,2 .3  s    t$u v!w䀀䀀o p     q  "r kl뀀뀀 m ,n  f g+hi jc +d e [   ]  ^`'a 8b    V 뀀 뀀뀀(W 뀀뀀 *X P뀀뀀 뀀뀀Q뀀뀀  R  S 뀀뀀 T /U 뀀뀀뀀뀀뀀뀀뀀 M뀀 퀀 퀀뀀 #N+O 뀀 7H  I뀀뀀J뀀뀀  K 뀀뀀L,B뀀뀀    C뀀뀀D 뀀뀀E뀀뀀F뀀뀀G뀀뀀 뀀 ;<=>?7@  A 뀀뀀 >8/9 : 4 퀀뀀&5  /67+x'{ | '} ~             1뀀쀀 ,2 .3  '( ) * +  ,-. / '0 !  "  # 䀀 䀀)$    %뀀0&   ( = O W _ g o |   9 k 'Qq&SDt/Qo(F[*:Sbz%>h ) K ] ! ; W i $ C k n        "   """ ItalicComp %  뀀  "-  䀀 7 뀀퀀뀀  !1       +      4 퀀뀀&5  /67>8/9 :z '{ | '}  v(w )x (y q뀀뀀rst  $u$no )p j !k뀀뀀 l3m"f  *gh뀀뀀i #b c )d e  뀀Y  Z뀀뀀 [   ]  ^`&a "S T 뀀뀀UV뀀퀀 뀀W뀀퀀 뀀 뀀퀀 뀀 X뀀P 뀀뀀  ?7@  A 뀀 뀀퀀 ~                        +  ,-. /  90  '(  )  &*!!   " 3$      G&Wu"8l&6LTdl.=n:w.|4z 3b J Z  H ~  : \  F i Hv>U0      $ $! ItalicTrip %"  뀀  -  䀀 7 뀀퀀뀀  !1       +1 뀀32 ?3   4뀀05    <6 8W  5X뀀뀀뀀퀀  2Y5T 뀀뀀뀀 /U "V 쀀MR 뀀뀀뀀   +S ;P 뀀뀀뀀   MQ   *N 쀀뀀 7O   0L 뀀뀀뀀CM 쀀퀀  뀀뀀뀀  &I 뀀뀀뀀.J  GK 뀀뀀뀀    PH 뀀뀀뀀뀀뀀뀀  EF 뀀뀀뀀 @G>D 뀀뀀뀀 OE 뀀뀀뀀 %A 쀀  MB 뀀뀀뀀     (C%;=:? <9 :   &7 g8    "Z뀀뀀뀀1a   3b !c 9d 6Y\gr{!9ETZo<b{%Ba6Z $@]m6EUex    !     !" ScriptSimp %  !   &z     /w   2x 0y .s  t  )u    v  8q뀀뀀뀀 r     )n    -o  Ap 0k뀀뀀 l8 !)2 13  4 쀀뀀&5 ! (%) % * ! +  , -./%)0 !1 뀀!!   "! ($ %     6&'! " * F}1cmMXfl#N:\8m#Jn! B Y o   1 P a $ : N i             'L 0M!  %N !  !O !4P   *Q r st  u v lso wish to thank THIRD WAVE GRAPHICS and especially Bruce Hodges for placing these fine Pascal graphics tools into the PD. The manuals for both Raster Graphics Toolkit and 3D Modelling Toolkit are in the WAP office. A QUICK THANK YOU October, 1989 The Wap /// SIG wishes to thank member Tom Fisher, of Chardon, Ohio for donating copies of the Raster Graphics Toolkit and 3D Modelling Toolkit, as well as a copy of their manuals so they could be placed into the PD. We a" ! !#w  )x y %z r st  u v  n  op倀 倀 "q  ijk 뀀뀀 l ,m   ef  %g  h 뀀뀀   a  b c d   3X )Y+Z  &U #V(W @R    #S%T#w  )x y %z