Path: utzoo!mnetor!uunet!husc6!mit-eddie!uw-beaver!tektronix!reed!langford From: langford@reed.UUCP (Chris Langford) Newsgroups: comp.lang.postscript Subject: VM and operand stack limitations Message-ID: <8483@reed.UUCP> Date: 15 Mar 88 16:35:28 GMT Organization: Reed College, Portland OR Lines: 60 Keywords: virtual, memory, operand, LaserWriter Hi there, I have been working on a little bit of PostScript code that prints out digitized electrical signals. We collect neurobiological data, and thus have to collect lots of data (14 k samples/sec for several 10s of seconds at a time). There are two problems I have: 1) The operand stack will only hold 500 objects, so I am (I think) forced to have 100s of K of data broken down into groups of 500. 2) The virtual memory has only 174 K at most, and thus I must limit the amount of data I can print per page to about 13K samples (about a second worth of data). I have been able to get our program to save data in nice bunchs of 450 (with brackets around it and everything), and do a restore before I get a VM error, but it is still a real pain in the ass to print. My questions are: Is there any way to get the operand stack to accept a larger number of objects, or bypass it altogether (I have not been able to get anything else to work)? Is there a way to get the LaserWriter to dump its font dictionarys, and thus create more available memory? Are there any other ways you can think of to get around this problem? I know the serverdict password, so if it requires some monkey business, I can handle it. I have simplified the routine, but it basically goes like this (if it helps): [array of 450 integers here] /data exch def 0 data 0 get moveto 0 2 data length 1 sub { data exch dup /xval exch def get xval exch lineto } for stroke I have 2 channels of data alternating, so I do the same procedure twice, but have the "for" loop begin with: 0 1 data length 1 sub to get the other half of the data printed out. Thanks for any help. Chris Langford tektronix!reed!langford