$ PRN__QUIET = %x10000000 ! Inhibit display (bit 28) $ PRN__SUCCESS = PRN__QUIET + %x0001 ! Severity 1 (success) $ PRN__FATAL = PRN__QUIET + %x0004 ! Severity 4 (fatal error) $ PRN__CONTROLY = PRN__FATAL $ on warning then exit PRN__QUIET .or. $STATUS $ on control_y then exit PRN__CONTROLY $ if f$type(PRN__QUIET) .eqs. "" then exit %x10000000 ! $! signal LIBPRN E NOPRINTER "Sorry folks, the printer is kaput" $! $ if f$trnlnm("$COM") .eqs. "" $ then $ $COM = f$environment("PROCEDURE") $ $COM = f$parse($COM,,,"DEVICE")+f$parse($COM,,,"DIRECTORY") $ @'$COM'LIBINIT $ endif $! PRINTQS = "BJ1:,?????,TXA2:" $ PRINTQS = "SYS$PRINT,?????,TXA2:" $ run $EXE:LIBARG.EXE ! Extract switches $ goto 'P1'$PRN ! $ GRPACK$PRN: $ P2 = f$edit(P2,"TRIM") $ if P2 .eqs. "" $ then $ @$COM:LIBTOOL SYS$SCRATCH:*.HP,SYS$SCRATCH:*.PS,SYS$SCRATCH:*.LS $ @$COM:LIBTOOL DISPLAY_LIST $ LIB__ANS == IPRO $ if IPRO .gt. 1 then echo LIB__ANS I " Print file (0=Exit)" 1 Z $ if LIB__ANS .lt. 1 .or. LIB__ANS .gt. IPRO $ then $ @$COM:LIBTOOL DELETE_LIST $ signal 'P1 W CANCEL "Canceled by user" $ endif $ P2 = "SYS$SCRATCH:"+PRO'I $ @$COM:LIBTOOL DELETE_LIST $ ARG = ARG+"/KEEP" $ endif $ HARDOUT$PRN: $ P2TYPE = f$parse(P2,,,"TYPE") $ if f$locate(".PRN",P2TYPE) .eq. 0 ! Old GRPACK setup $ then ! Accessed through label HARDOUT $ I = f$integer( f$extract(7,1,f$parse(P2,,,"NAME")) ) $ if I .lt. 0 .or. I .gt. 2 then signal 'P1 E INVFILNAM "Invalid file name ''P2'" $ I = 2-I $ if I .eq. 1 then I = 2 $ else ! New GRPACK setup $ TYPES = ".HP,.PS,.LS" $ I = f$locate(P2TYPE,TYPES) $ if I .eq. f$length(TYPES) then signal 'P1 E INVFILNAM "Invalid file name ''P2'" $ I = I/4 $ if I .eq. 1 then signal 'P1 E NOPS "No PostScript printer available" $ endif $ PRINTQ = f$element(I,",",PRINTQS) $ if ARG .eqs. "" $ then $ ARG = "/delete" $ else $ ARG = "" $ endif $ print'ARG'/nofeed/device='PRINTQ' 'P2' $ exit PRN__SUCCESS $! $ IDLPLOT$PRN: ! Used for plotting in IDL $ INFILE = P2 $ INFILE = f$search(INFILE) $ if INFILE .eqs. "" then signal 'P1 E NOFILE "File ''P2' not found" ! $ if ARG .eqs. "" then signal 'P1 E NOARG "Supply /keep or /print argument" $ PRINTFILE = f$locate("/PRINT",ARG) .ne. f$length(ARG) $ KEEPFILE = f$locate("/KEEP" ,ARG) .ne. f$length(ARG) ! $ if KEEPFILE $ then $ OUTFILE = "IDLSAVE.HP" $ POS = f$locate("/KEEP",ARG) $ ARG = f$extract(POS+5,999,ARG) $ POS = f$locate("/",ARG) $ ARG = f$extract(0,POS,ARG) $ if ARG .nes. "" $ then $ ARG = ARG-"=" $ if f$parse(ARG) .nes. "" then OUTFILE = ARG $ endif $ else $ @$COM:LIBSUB UNIQUE_NAME LIB__ANS SYS$SCRATCH:IDL.HP? $ OUTFILE = LIB__ANS $ endif ! $ ESC[0,8] = 27 $ Print_Start = ESC+"E"+ESC+"%0B" ! Printer reset; Enter HP-GL2 mode $ Print_End = ESC+"%0A" ! Enter PCL mode ! $ create 'OUTFILE ! Create scratch file $ on warning then goto PLOT_ERROR $ on control_y then goto PLOT_ERROR $ open/append OUT 'OUTFILE ! Open scratch file $ write OUT Print_Start ! Write initialize string $ close OUT $ append/nolog 'INFILE 'OUTFILE ! Append IDL.HP file to scratch file $ open/append OUT 'OUTFILE $ write OUT Print_End ! Write closing string $ write OUT Print_End ! Write closing string ?? $ close OUT $ delete 'INFILE ! Delete IDL.HP file $! $ PRINTQ = f$element(0,",",PRINTQS) $ if PRINTFILE $ then $ ARG = "/delete" $ if KEEPFILE then ARG = "" $ print'P3'/nofeed'ARG'/device='PRINTQ' 'OUTFILE $ endif $ if KEEPFILE then signal 'P1 I IDLSAVE "plot file saved: ''f$search(OUTFILE)'" $ exit PRN__SUCCESS $ PLOT_ERROR: $ STATUS = $STATUS $ close/nolog IN $ close/nolog OUT $ delete 'INFILE $ if f$search(OUTFILE) .nes. "" then delete 'OUTFILE'; $ exit PRN__QUIET .or. STATUS ! $ LATEX$PRN: ! Process LATEX file $ TEX$PRN: ! Process TEX file $ LNTEX$PRN: $ FILE = f$edit(P2,"TRIM") $ if FILE .eqs. "" $ then $ FILE = "^Z" $ if f$type(LIB__FILE) .eqs. "STRING" then FILE = LIB__FILE $ echo LIB__ANS S " ''P1' ASCII file (^Z=None) ?" 'FILE U,C,Z $ FILE = LIB__ANS $ if (FILE .eqs. "^Z") then FILE = "*" $ endif $ if FILE .nes. "*" $ then $ if f$parse(FILE,,,"TYPE") .eqs. "." then FILE = f$parse(FILE,,,"NAME")+".TEX" $ if f$parse(FILE,,,"TYPE") .eqs. ".DVI" then P1 = "LNTEX" $ if f$search(FILE) .eqs. "" $ then $ if P1 .eqs. "TEX" then - signal 'P1 E FILNOTFOUND "File ''File' does not exist" $ if P2 .eqs. "LNTEX" then - signal 'P1 E FILNOTFOUND "File ''File' does not exist" $ FILE = f$parse(FILE,,,"NAME")+".LTX" $ if f$search(FILE) .eqs. "" then - signal 'P1 E FILNOTFOUND "File ''File' does not exist" $ endif $ say f$fao("!/ Processing file ''f$search(FILE)'!/") $ LIB__FILE == FILE $ if P1 .eqs. "LNTEX" then goto TEX_LNTEX $ set noon $ 'P1 'FILE $ STATUS = $STATUS $ set on $ if .not. STATUS then signal 'P1 W STATUS - "''P1' exited with false error status" $ FILE = f$parse(FILE,,,"DEVICE")+f$parse(FILE,,,"DIRECTORY")+ - f$parse(FILE,,,"NAME") $ if .not. STATUS $ then $ echo LIB__ANS B " Continue (YES/NO)?" YES S $ if .not. LIB__ANS then goto TEX_EXIT $ endif $ echo LIB__ANS B " Print DVI file (YES/NO) ?" YES S $ if .not. LIB__ANS $ then $ echo LIB__ANS B " Run FileView (YES/NO) ?" YES S $ if LIB__ANS $ then $ CURDIR = f$environment("default") $ VU = "$ VUE$MASTER" ! Has print option $ VU $ set default 'CURDIR $ endif $ goto TEX_EXIT $ endif $ TEX_LNTEX: $ set noon $ T2/queue='f$element(0,",",PRINTQS) 'FILE $ set on $ if P1 .eqs. "LNTEX" then exit PRN__SUCCESS $ echo LIB__ANS B " Delete AUX,LIS-files; purge DVI file (YES/NO) ?" YES S $ if .not. LIB__ANS then exit PRN__SUCCESS $ endif $ TEX_EXIT: $ set noon $ if f$search("$SAM:*.AUX") .nes. "" then delete $SAM:*.AUX;* $ if f$search(FILE+".AUX") .nes. "" then delete 'FILE'.AUX;* $ if f$search(FILE+".LIS") .nes. "" then delete 'FILE'.LIS;* $ if f$search("HEADER.AUX") .nes. "" then delete HEADER.AUX;* $ if f$search("$SAM:HEADER.AUX") .nes. "" then delete $SAM:HEADER.AUX;* $ if f$search(FILE+".DVI") .nes. "" then @$COM:LIBCOM VPUR 'FILE'.DVI $ set on $ exit PRN__SUCCESS !+ NAME: GRPACK HARDOUT PLOT PRN LATEX TEX PURPOSE: HARDOUT: Submits plotfile to print queue Executed by GRPACK routine HARDCOPY to print plot file CATEGORY: Plotting, Printing INPUTS: P1 Name of plot file. The name format is SYS$SCRATCH:HARDOUT#.PRN* where # = 1 or 2 for plotfiles to be directed to TXA15 or TXA7 OUTPUTS: Plot file P1 is submitted to print queue and deleted after printing RESTRICTIONS: If used on another system the queue names TXA15 and TXA7 will have to be changed PROCEDURE: print/delete/nofeed/device='PRINTQ' 'P1' MODIFICATION HISTORY: OCT-1991, Paul Hick (UCSD). Adapted from old HARDOUT.COM