Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!okstate!gregg From: gregg@a.cs.okstate.edu (Gregg Wonderly) Newsgroups: comp.os.vms Subject: Re: when using control libraries... Message-ID: <1987@a.cs.okstate.edu> Date: Thu, 14-May-87 10:49:12 EDT Article-I.D.: a.1987 Posted: Thu May 14 10:49:12 1987 Date-Received: Sat, 16-May-87 11:27:03 EDT References: <8705130050.AA15148@ucbvax.Berkeley.EDU> Distribution: world Organization: Oklahoma State Univ., Stillwater Lines: 91 in article <8705130050.AA15148@ucbvax.Berkeley.EDU>, "Andrew J. Grigor" says: > > > > Earlier someone called the print symbiont brain dead since it insisted > on sending a to the printer after configuring the printer using > specified modules in the control library. It is merely paranoid. The > print symbiont has no idea how the modules in the control library will > affect the printer. By performing a the printer is in a known > state (upper left hand edge...whereever it may be). > > We have a QMS Lasergrafix with the QUIC command controller. Any QUIC > command (configuration command) causes the printer to advance one line. > I can reset the print position to (0,0) by sending more commands or by > performing a . The symbiont developers apparently decided to take > the safe route and always put a . Even though I think I understand > why the was added I believe it should be a qualifier to a queue's > setup to perform a or not when using control libraries. > > I am currently living with the blank pages. I can sleep at night since > the extra scrap generated goes to the Boy Scout's paper drive and is not > totally wasted. > > - Andy Grigor > This problem is relatively easy to fix using the PSM$ (Print Symbiont Modification) routines. Below is a simple FORTRAN program that should do the trick. The result is that you no longer have the extra page. If you have problems with the line counter on the printer advancing, then you should not use this unless you can add codes to your setup module to reset the printer back to the top of the page without a page eject. implicit none include '($psmdef)' ! You may have to look for these definitions ! in sys$library:starlet.mlb/lib.mlb. integer status, psm$print, psm$replace, setup_2 external sys$exit, pms$print, psm$replace, setup_2 status = pms$replace (PSM$K_FILE_SETUP_2, setup_2) if ((status .and. 1) .ne. 1) call sys$exit (%val(status)) status = pms$print (16,,) call sys$exit (%val(status)) stop end function setup_2 (req_id, work_area, func, fdesc, farg) implicit none include '($psmdef)' integer req_id, work_area, func, fdesc, farg external SS$_NORMAL ! The normal action of the FILE_SETUP_2 module is to insert ! a into the output stream. The output formatter normally ! removes this because it realizes that the printer has ! just received a character from one or more of the previously ! executed modules. When SETUP modules are used, the output ! formatter says "Hey, I'm not at the top of the page anymore, ! I better send this out". Replacing FILE_SETUP_2 with this ! function should keep the extra formfeed from appearing in the ! output stream. setup_2 = PSM$K_FUNNOTSUP if ((func .eq. PSM$K_OPEN) .or. (func .eq. PSM$K_CLOSE)) then ! Let OPEN and CLOSE complete normally. setup_2 = %loc(SS$_NORMAL) else if (func .eq. PSM$K_READ) then ! No data is ever placed into the buffer to be added to the ! output stream. setup_2 = PSM$K_EOF endif end For more information, you should review the PSM docs in Vol 8a of the VAX/VMS 4.x manuals. ----- Gregg Wonderly Department of Computing and Information Sciences Oklahoma State University UUCP: {cbosgd, ea, ihnp4, isucs1, mcvax, uokvax}!okstate!gregg ARPA: gregg@A.CS.OKSTATE.EDU