/**********************************************************************/


libname gdevice0 '
                  /* SAS-data-library */
                                        ';  
                                                    
proc gdevice catalog=gdevice0.devices nofs;         
   copy hpljs3 from=sashelp.devices newname=ljlegal;
run;                                                
quit;                                               


/**********************************************************************/


proc gdevice catalog=gdevice0.devices nofs; 
   modify ljlegal ypixels=1500 xpixels=1200;
run;                                        
quit;                                       


/**********************************************************************/


proc gdevice catalog=gdevice0.devices nofs;       
   modify ljlegal                                 
   gprolog='1B45'x        /* Reset printer      */
           '1B266C3341'x; /* Select legal-sized */
run;                                              
quit;                                             


/**********************************************************************/


gprolog='1B266C314F'x    /* Select landscape orientation */
        '1B266C3341'x    /* Select legal-sized paper     */
        '1B253042'x;     /* Enter HP-GL/2 language       */


/**********************************************************************/


proc gdevice catalog=gdevice0.devices nofs;
   modify ljlegal ymax=13 ypixels=1950;    
run;                                       
quit;                                      


/**********************************************************************/


proc gdevice catalog=gdevice0.devices nofs;                 
  modify ljlegal des='This HPLJS3 driver Selects Lower Tray'
          gprolog='1B45'x                   /* Reset      */
          '1B266C3341'x             /* Select legal-sized */
          '1B266C3448'x;            /* Select lower tray  */
run;                                                        
quit;                                                       


/**********************************************************************/


   /* Establish the location of your device catalog       */
libname gdevice0 '           
                  /* SAS-data-library */
                                        ';                                                            
   /* Copy the HPLJS3 device entry and modify             */
proc gdevice catalog=gdevice0.devices nofs;                 
   copy HPLJS3 from=sashelp.devices newname=LJHEAD;         
   copy HPLJS3 from=sashelp.devices newname=LJDUPLEX;       
   copy HPLJS3 from=sashelp.devices newname=LJTRAIL;        
   modify LJHEAD                                            
      des='LaserJet IIISi -- PCL Duplex Header'             
      gprolog='1B252D313233343558'x /* Exit Language/     */
                                    /* Start of PJL       */
              '40504A4C20'x         /* '@PJL '            */
              '454E54455220'x       /* 'ENTER '           */
              '4C414E47554147453D'x /* 'LANGUAGE='        */
              '50434C0A'x           /* 'PCL'          */
              '1B266C3153'x         /* Duplex - long edge */
                                    /* binding            */
                                                            
      gepilog='1B266C3048'x         /* Eject Page         */
      ;                                                     
                                                            
   modify LJDUPLEX                                          
      des='HP LaserJet IIISi -- PCL Duplex Main'            
      gepilog='1B26613047'x        /* Switch to next side */
      ;                                                     
                                                            
   modify LJTRAIL                                           
      des='HP LaserJet IIISi -- PCL Duplex Trailer'         
      gprolog='1B26613147'x       /* Switch to front side */
      gepilog='1B252D313233343558'x /* Exit Language/     */
                                    /* Start of PJL       */
      ;                                                     
run;                                                        
quit;                                                       


/**********************************************************************/


   /*  Create HEADER page for job using:                  */
   /*     goptions dev=ljhead;                            */
   /*                                                     */
   /*  LJHEAD performs the following important functions: */
   /*     . sends a PJL sequence of commands to reset     */
   /*       the printer and place it in PCL language mode */
   /*     . places the printer in duplex print mode       */
   /*     . ejects the header page in preparation         */
   /*       for the main body of graphs                   */
   /*                                                     */
   /*  In Release 6.07, you can set the file options      */
   /*  and all graphics options except the RESET=         */
   /*  graphics option in the device entry itself.        */
   /*                                                     */
                                                            
   /* Allocate the fileref GSASFILE to your printer       */
   /* destination so that output is sent to the printer   */
filename gsasfile dest=YOUR_LOCAL_PRINTER_DESTINATION       
                  recfm=vb                                  
                  sysout=a;                                 
                                                            
   /* Specify the graphics options needed to send         */
   /* the output to the printer from MVS                  */
goptions reset=all gprotocol=sasgpagl gaccess=gsasfile      
         gsflen=128 gsfmode=append;                         
                                                            
   /* Assign the libref GDEVICE0 to the SAS data library  */
   /* that contains LJHEAD, LJDUPLEX, and LJTRAIL         */
libname gdevice0 '                   
                  /* SAS_data_library */
                                        ';                    
   /* Create header page and enable duplex printing       */
goptions dev=ljhead;                                        
title height=5 pct font=swiss 'Name: ' "&sysjobid";         
                                                            
proc gslide;                                                
run;                                                        
quit;                                                       
                                                            
goptions reset=global;                                      
                                                            
                                                            
   /*  Drive MAIN body of graphics with:                  */
   /*     goptions dev=ljduplex;                          */
   /*  LJDUPLEX performs this important function:         */
   /*     . sends a "switch to next page" command at      */
   /*       the end of each graph. Since the printer was  */
   /*       placed into duplex mode by LJHEAD, the        */
   /*       switch command should cause an auto page      */
   /*       eject when the back page is printed.          */
   /*                                                     */
                                                            
   /* Select LJDUPLEX so that the output is printed in    */
   /* duplex mode                                         */
goptions dev=ljduplex;                                      
                                                            
                                                            
   /* The main body of your SAS statements would be       */
   /* placed here. In this example, PROC GSLIDE and       */
   /* PROC GTESTIT produce four pages of graphics         */
   /* output.                                             */
   /*                                                     */
                                                            
   /* Produce the slide                                   */
title font=swiss height=3 'DUPLEX PRINTING TEST';           
proc gslide border;                                         
run;                                                        
                                                            
proc gtestit;                                               
run;                                                        
                                                            
                                                            
    /*  Create a TRAILER page with:                         
    /*    goptions dev=ljtrail                            */
    /* LJTRAIL performs the following functions           */
    /*    . ejects any graph remaining in the             */
    /*      printer's print buff                          */
    /*    . creates a trailer page                        */
    /*    . resets the printer                            */
    /*                                                    */
                                                            
          /* Select LJTRAIL                               */
      goptions dev=ljtrail;                                 
                                                            
   /* Produce the trailer page                            */
title1 height=5 pct 'End of job ';                          
title2 height=5 pct 'Submitted by ' font=swiss "&sysjobid"; 
                                                            
proc gslide;                                                
run;                                                        
quit;                                                       
                                                            
   /* Deassign the GSASFILE fileref so that the           */
   /* job prints                                          */
filename gsasfile clear; 


/**********************************************************************/


proc gdevice catalog=gdevice0.devices nofs;                 
modify LJHEAD                                               
   gprolog='1B252D313233343558'x  /* Exit Language/Start  */
                                  /* of PJL               */
           '40504A4C20'x          /* '@PJL '              */
           '454E54455220'x        /* 'ENTER '             */
           '4C414E47554147453D'x  /* 'LANGUAGE='          */
           '50434C0A'x            /* 'PCL'            */
           '1B266C3153'x    /* Duplex - long edge binding */
           '1B266C3154'x          /* Separate Job         */
   ;                                                        
run;                                                        
quit;


/**********************************************************************/


proc gdevice catalog=sashelp.devices nofs;
   list HPLJS3;                           
run;                                      
quit;                                     


/**********************************************************************/


proc gdevice catalog=gdevice0.devices nofs;          
   copy hpljs2 from=sashelp.devices newname=myhpljs2;
   modify myhpljs2 ucc='00000000\c5 02\c1 01'x;      
run;                                                 
quit;                                                

libname gdevice0 '   
                  /* SAS-data-library */
                                        ';
                                                     
proc gdevice catalog=gdevice0.devices nofs;          
   copy hpljs3 from=sashelp.devices newname=myhpljs3;
   modify myhpljs3 gepilog='';                       
run;                                                 
quit;                                                


/**********************************************************************/


proc gdevice catalog=sashelp.devices nofs;
   list hpljs3;                           
run;                                      
quit;                                     


/**********************************************************************/


libname gdevice0 '   
                  /* SAS-data-library */
                                        ';                                                     
proc gdevice catalog=gdevice0.devices nofs;          
   copy hpljs2 from=sashelp.devices newname=myhpljs2;
   modify myhpljs2 ucc='00000000\c5 02\c1 01'x;      
run;                                                 
quit;                                                


/**********************************************************************/


modify myhpljs2 ucc='00000000\c5 01\c1 01'x;


/**********************************************************************/


libname gdevice0 '
                  /* SAS-data-library */
                                        '; 
proc gdevice catalog=gdevice0.devices nofs;        
   copy HPLJS3 from=sashelp.devices newname=ljpack;
   modify ljpack ucc='000002000001'x;              
run;                                               
quit;                                                                                                


/**********************************************************************/

                  
libname gdevice0 '  
                  /* SAS-data-library */
                                        ';                                                     
proc gdevice catalog=gdevice0.devices nofs;         
   copy HPLJS3 from=sashelp.devices newname=ljexpnd;
   modify ljexpnd ucc='000000000001'x;              
run;                                                
quit;


/**********************************************************************/


libname gdevice0 ' 
                  /* SAS-data-library */
                                        ';                                                    
proc gdevice catalog=gdevice0.devices nofs;        
   copy hpljs2 from=sashelp.devices newname=HPLJS3;
   modify HPLJS3 ucc='000001000001'x;              
run;                                               
quit;                                              
 

/**********************************************************************/


libname gdevice0 '          
                  /* SAS-data-library */
                                        ';                                                            
proc gdevice catalog=gdevice0.devices nofs;                 
   copy hp7550a from=sashelp.devices newname=HPLJGL;        
   modify HPLJGL des='HP LaserJet III - HPGL mode'          
          xmax=10.594                                       
          ymax=7.5                                          
          xpixels=10763          /* 10.594 * 1016 = 10763 */
          ypixels=7620           /* 7.5    * 1016 = 7620  */
          prows=56                                          
          pcols=71                                          
          rotate=portrait                                   
          maxcolors=2                                       
          prompt=0                                          
          symbol=n                                          
          polygonfill=n                                     
          maxpoly=512                                       
          colors=(black)                                    
          gprolog='1B266C314F'x  /* Orientation, See note */
                  '1B253042'x    /* Enter HP-GL/2 mode    */
          gepilog='1B253041'x    /* Enter PCL mode        */
                  '1B45'x        /* Reset command         */
          ;                                                 
run;                                                        
quit;                                                       


/**********************************************************************/


libname gdevice0 '           
                  /* SAS-data-library */
                                        ';                                          
proc gdevice catalog=gdevice0.devices nofs;                 
   copy hp7475a from=sashelp.devices newname=PIAC;          
   modify PIAC des='Plotter In A Cartridge'                 
               rotate=portrait                              
               maxcolors=2                                  
               prompt=0                                     
               symbol=n                                     
               fillinc=3                                    
               cirlearc=n                                   
               colors=(black)                               
                       /* Switch from PCL to HP-GL        */
               gprolog='1B266C33323235392E313035374A'x      
                       '1B451B451B451B45'x       /* Reset */
                       '3B494E3B494E3B'x         /* IN;   */
                       /* Switch from HP-GL to PCL        */
               gepilog='1B266C313035372E33323235394A'x      
                       '1B45'x                   /* Reset */
               ;                                            
run;                                                        
quit;                                                       


/**********************************************************************/


libname gdevice0 '
                  /* SAS-data-library */
                                        ';  

proc gdevice catalog=gdevice0.devices nofs;                 
   copy psl from=sashelp.devices newname=LJ3SIPSL           
                 ;                                          
                                                            
\pg                                                         
modify LJ3SIPSL                                             
   des='HP LaserJet IIISi--Postscript thin lines'           
   gprolog='1B252D313233343558'x     /* Start of PJL    */  
           '40504A4C20'x             /* '@PJL '         */  
           '454E54455220'x           /* 'ENTER '        */  
           '4C414E47554147453D'x     /* 'LANGUAGE='     */  
           '504F53545343524950540A'x /* 'POSTSCRIPT'*/  
   gepilog='1B252D313233343558'x     /* Exit Language   */  
   charrec=(1, 89, 85, '/Courier',                     'Y', 
            2, 89, 85, '/Courier-Oblique',             'Y', 
            3, 89, 85, '/Courier-Bold',                'Y', 
            4, 89, 85, '/Courier-BoldOblique',         'Y', 
            5, 89, 85, '/Times-Roman',                 'Y', 
            6, 89, 85, '/Times-Italic',                'Y', 
            7, 89, 85, '/Times-Bold',                  'Y', 
            8, 89, 85, '/Times-BoldItalic',            'Y', 
            9, 89, 85, '/Helvetica',                   'Y', 
           10, 89, 85, '/Helvetica-Oblique',           'Y', 
           11, 89, 85, '/Helvetica-Bold',              'Y', 
           12, 89, 85, '/Helvetica-BoldOblique',       'Y', 
           13, 89, 85, '/Symbol',                      'Y', 
           14, 89, 85, '/AvantGarde-Book',             'Y', 
           15, 89, 85, '/AvantGarde-BookOblique',      'Y', 
           16, 89, 85, '/AvantGarde-Demi',             'Y', 
           17, 89, 85, '/AvantGarde-DemiOblique',      'Y',
           18, 89, 85, '/Bookman-Demi',                'Y',
           19, 89, 85, '/Bookman-DemiItalic',          'Y',
           20, 89, 85, '/Bookman-Light',               'Y',
           21, 89, 85, '/Bookman-LightItalic',         'Y',
           22, 89, 85, '/Helvetica-Narrow',            'Y',
           23, 89, 85, '/Helvetica-Narrow-Bold',       'Y',
           24, 89, 85, '/Helvetica-Narrow-BoldOblique','Y',
           25, 89, 85, '/Helvetica-Narrow-Oblique',    'Y',
           26, 89, 85, '/NewCenturySchlbk-Roman',      'Y',
           27, 89, 85, '/NewCenturySchlbk-Bold',       'Y',
           28, 89, 85, '/NewCenturySchlbk-Italic',     'Y',
           29, 89, 85, '/NewCenturySchlbk-BoldItalic', 'Y',
           30, 89, 85, '/Palatino-Roman',              'Y',
           31, 89, 85, '/Palatino-Bold',               'Y',
           32, 89, 85, '/Palatino-Italic',             'Y',
           33, 89, 85, '/Palatino-BoldItalic',         'Y',
           34, 89, 85, '/ZapfChancery-MediumItalic',   'Y',
           35, 89, 85, '/ZapfDingbats',                'Y')
       ;                                                   
run;                                                       
quit;                                                      


/**********************************************************************/