data _null_;

     /* Initialize DSGI                                               */
  rc=ginit();
  rc=graph('clear');

     /* Define two viewports. The first will use the entire display.  */
     /* Note that the screen dimensions are defined as 0 to 1, with   */
     /* (0,0) as the lower left and (1,1) as the upper right.         */
     /* Define this viewport as containing a window that has the      */
     /* dimensions of 0 to 100 (or the entire inserted graph).        */
  rc=gset('viewport',1,0,0,1,1);
  rc=gset('window',1,0,0,100,100);

     /* The second viewport will be located in the upper right corner */
     /* of the display and will contain a window having the           */
     /* dimensions of 0 to 100. The viewport will have the same       */
     /* dimensions and location as that defined in the previous       */
     /* example using PROC GREPLAY. Note the dimensions are           */
     /* equivalent to the PROC GREPLAY coordinates of llx=55, lly=55, */
     /* urx=100, and ury=100.                                             */
  rc=gset('viewport',2,.55,.55,1,1);
  rc=gset('window',2,0,0,100,100);

     /* The 'transno' defines which viewport is to contain the graph  */
     /* and associates a window with the viewport.                    */
  rc=gset('transno',1);
  rc=graph('insert','plot1');
  rc=gset('transno',2);
  rc=graph('insert','test1');

     /* Display the graph and end DSGI.                               */
  rc=graph('update');
  rc=gterm();
run;