Postscript printer
36 messages in this thread
I've just acquired an Amiga in order to convert a number of programs to run
on it. I'm a veteran PC user, and have a Postscript printer for my other
work. Is an Amiga driver available for this? The Workbench manual mentions
Postscript a couple of times, but I can't see any sign of a driver.
Secondly, can anyone recommend a good book or two to get me an overview of
how the various bits of Amiga software fit together? There doesn't seem to
be anything in the manual to explain the various directories ("Drawers")
which make up the system; this makes getting shareware or public domain
software working a rather hit or miss affair.
Thanks in advance,
Tim.
Tim,
The AmigaDOS manual from Bantam Books (make sure you get the 2.04
version) is the official DOS manual. It contains information on the logical
directory setups.
Then there's the 3 volumn set of ROM Kernel Manuals from Addison
Wesley, also official (that is to say..they come from Commodore) and they
comprise the developer's set of manuals on the system (the DOS manual
contains full information on working with the filesystem).
Don
Tim,
I keep seeing this question, (is there a PostScript driver for…?), and
it has me baffled. I was always under the impression (from my experience
with various PS printers, that all you needed to do for PS was to send out
the PS code, and the interpreter in the printer would do its job. I do know
that there are a number of rather aberrant printers out there that ignore
the presence or absence of the PS 'magic cookie', and insist on trying to
do PS things with a straight ASCII file, but usually they are on;y
switchable from ASCII to PS manually anyway.
I guess what my question is, is "What would you expect a PostScript
printer driver to actually do?"
-larry
Larry-
It would be kind of nice to have a Postscript driver that would give at
least some functionality from programs that don't support Postscript. It
would be nice to redirect a directory listing and have it print on a
Postscript laser…you need a driver to do this sort of thing, no?
Jonathan
– via Whap!
Ahh.. well, all the PS printers I ahve worked with do one of two things
with a plain text file. (1) they print it as plain text, or (2) they
require you to set the printer into an emulation mode.
A _proper_ PostScript file starts with a '%!', and if a file does not start
with that, the interpreter should not treat it as PostScript. Many do,
however, and it's a real bother.
The other thing you can do with a PostScript priter is to send it a PS
program that makes it emulate a line printer. Since PS is a language, this
is not only possible, but is done often, to emulate other printers.
-larry
Larry:
I own a laser printer that only has PS (no other emulations), do you know
if anyone's ever written a LJ emulator in PS?
-Mike Schiller
In sunny Fort Lauderdale
I don't know about LJ emulators in particular, bu I seem to recall several
of them showing up on various Internet sites. In general, many emulators
have been written for PostScript printers. The Green Book (PostScript
Language Program Design) lists three of them in chapter 4; each one more
capable, but of course longer and more complex. The first is a very simple
line printer emulator, the second has a better inner loop, and the third
even has full text justification.
A good place to look for a particular emulator is on the Adobe Forum,
where, if you don't find exactly what you need, you can always ask if
anyone has one.
-larry
Hi Tim
I have just what you are looking for, a PostScript printer driver. It
has been kicking around for a while now, It was written by Chris
Nicotra.(72466,765) It say's it is a Beta 0.9 release but seems to work
fine for me under dos 1.3 as well as 2.04. He may have a newer version
written by now as I have had this driver about 2 years. I use it with a
QMS_PS_810 postscript printer to print listings etc. It seems to obey all
normal preferences settings.
Remember when printing postscript !!
1) if the file is already postscript then just copy it thru the PAR:
device, that way it gets printed without being touched by a driver. ie. if
the file is from PageStream or Excellence! and is in Postscript format,
send it to PAR:
2) if the file is just an ordinary text file, send it to PRT: that way
it gets converted to Postscript so the printer will know what to do with
it. Use this for text files or really any non postscript source.
The PostScript print driver was probably found on Compuserve in the
Printer driver section. Please check the AMIGAUSER section, and if you
can't find it then send me a message and I will upload it.
So much Great Amiga Software, so little Time !! John Lemoine via Whap!
75320,143 Edmonton, Alberta, Canada
Thanks, John, that sounds like just what I need. I'll have a look around
and see if I can find it.
Cool. Does it recognize postscript fonts from source, or do they get
bitmapped an bitmapped and printed like a normal font?
For example, taking a document using postscript fonts in excellence! (okay
okay, I'm Biased), if you print it in excellence using the postscript
setting (and PAR: specified in the print to file line), and then print it
in NLQ or Graphic modes using the printer driver, will you get the same
results? (well, I know that graphic won't, it's a bitmap not text).. but
NLQ? I wonder….
Since NLQ normally doesn't send font info it seems unlikely…
BTW, it could be SER: instead of PAR:….
…QMS_PS_810… that's what I got in here… nice output, eh?
No Andrew It doesnt do anything special, all it does is act like any
ordinary printer driver. It takes the incoming ASCII text and converts it
to Postscript lines that obey the settings that were set in Preferences.
The Font it uses is Courier because that is a monospaced font, which is
what you would normally want for ordinary text output. This is a printer
driver you would use if you had a Postscript printer only and wanted to
print a ordinary text file (like program docs) to it.
If you have Excellence! or any other program that outputs in Postscript
you should of course use theyre own built in PS drivers.
I would'nt use it ordinarily to print a Bitmap becuse it wouldnt look very
good. (Bitmaps generally do). If you want to print Amiga (or any other)
graphics to your PS printer. Import them into ADPro, then convert to PS it
does a fabulous job and allows far more image control.
So much Great Amiga Software, so little Time !! John Lemoine via Whap!
75320,143 Edmonton, Alberta, Canada
Okay, gotcha.
"If you have Excellence!…" I work for MSS, John… I know how we do our
Postscript.
I was just wondering what this printer driver was up to, that's all. We've
never done anything with printer drivers, other than liscense some from
Commodore for inclusion…
Thanks for the info,
Andrew Apold, @ Micro-Systems Software
Hi again Andrew Seeing that you work for MSS ! Can you answer my enquiries
re. current Excellence! revision info. I understand that the Postscript
output under Excellence 2.00c did not work properly. I am currently at
2.00a and would like to get the current rev. but only if the PS output is
working again as I do use it. I don't know what other improvements have
been made, hopefully the filerequestors will be made more standard.
How do I upgrade and how much $$. Thanks in Advance.
So much Great Amiga Software, so little Time !! John Lemoine via Whap!
75320,143 Edmonton, Alberta, Canada
Okay, 2.00c had a postscript bug (comi compiler option specified in wrong
order), 2.00d fixed that and a small thing involving the color of the
"wait" mouse pointer under 2.0.
You can get 2.00d by sending in disk#1 n and $9.95… and stay tuned for an
update…
Andrew,
I posted a message here several days ago, by mistake to someone else. My
question is this-I am a registered user of SCRIBBLE!, ORGANIZE!, ANALYZE!,
ONLINE! and EXCELLENCE! However, since registering the products (Scribble!
and Online! were the first two) I have received zero (0) upgrade notices.
I have moved from my address in California and now reside in Oklahoma. If
I take the time (and 29 cents) to send a change of address to MSS will I be
updated in your user database? Am I in it in the first place or did my
registration cards wind up in the circular file? Had this occurred with
only one product, I'd understand, but it happened with all of them.
Rodger
– via Whap!
Yes, you will be updated in your user database. We do not send upgrade n
notices for version changes, only for new releases…
Glancing over the list of products you have there, if you send in your
change of address, you should be receiving at least one upgrade notice in
the near future…
Thanks,
By the way, I've owned all the packages since the first release of
Excellence! I never got a notice for Excellence! when it first came out.
Does MSS have any plans to upgrade their products to the WB2.04 look?
Analyze! would look real nice with 3-D buttons. Maybe even 3-d Row, Column
and Sheet gadgets. (Like MS-EXCEL for windows!) (I mean like as I know
Bill Gates loves litigation on MS products and look and feel copyrights.
Rodger
– via Whap!
Like we need more similarity. We're Micro-Systems Software and put out a
package called "The Works", they're Microsoft and put out a package named
"the works"… (wl well, Microsoft Works)…
There is an answer to your question, leave me a note in the mail for more
info… I don't think I can say more here …. yet.
Rodger,
Try contacting MSS at:
12798 W. Forest Hills Blvd. Suite 202 West Palm Beach, FL 33414
Phone is (407) 790-0772 BBS is (407) 790-0774
They've only sent me upgrade notices two or three times in six years, and I
haven't moved.
Roger
Thanks, I'll try that.
Rodger
– via Whap!
Here's another little trick I use when sending stuff to an OKI-400. Since
it is not a PostScript printer, I use post1.6 to create the bitmap, but
want to leave straight ASCII files untouched. You can easily modify this so
that it works with your setup.
/*
* lpr.rexx
*
*/
parse arg x
if ~exists(x) then do
say "Can't find" x
exit
end
call open(infile,x)
if left(readln(infile),2) = '%!' then do
call close(infile)
'postlj -s0 -c0 s:init.ps' x
end
call close(infile)
else
copy x 'PRT:'
This ARexx script looks at the first two bytes of the file, and if they are
'%!', it is assumed to be a PosScript file, and is processed by postlj.
Otherwise it is sent directly to the printer.
-larry
Just curious… about how many ARexx commands are in your REXX: directory,
and approximately how many did you write yourself?
Well, they aren't all commands, as such, but there are 261 Arexx programs
in my REXX: directory. A quiick visual scan of REXX: indicates I have
written probably 200 or more of them, and have likely modified or rewritten
most of the rest of them. Many are not currently in use, having been
written for either one-shot projects, or as prototypes for later
executables, or for things I no longer do, such as all my uucp/CEDPro
scripts.
There are many used as front-ends, in the same manner as the lpr.rexx
script I mentioned, and some that are invoked through aliases or other
scripts. It's fascinating when I forget I have written a script for
something, and I have turned 'trace' on, only to see the trace info show up
when I type in a command that calls a script.
-larry
I don't have quite that many – more like 50 or so, including some from
other commercial packages. My S: directory has about 50 scripts. Looking
at my ARexx scripts, there's a few that we've done for tasks at Syndesis
(like one that calculates the state and federal tax for our paychecks).
There's a bunch of "one-shot" little scripts I wrote that I rarely use
again except to scavenge code when it comes time to write the next one.
Care to tell us about the rest of the scripts? Do they perform generally
useful tasks, or are they more personalized in nature? (I'm secretly
taking notes for a possible article about the ways people really use ARexx,
but I won't excerpt anything without your permission…)
Well, I don't mind if you excerpt what I say for an article. Bear in mind
that I seem to be pretty atypical in this area, since I really enjoy
writing scripts to do things for me. I even use the 'immediate' mode a lot.
In case you aren't sure what I mean by that, it's where you can send a
complete program right from the command line, and sometimes it's just a
whole lot easier for me to write the little script, testing as I go, and
then letting it do its thing, than it would be to do it all by hand, yet
would be a definite one-shot program, never to be used again.
In my REXX: directory.. let's see… lpr.rexx, which I already mentioned.
Several scripts to get me to a specific directory, run a program, and
return control to the original directory. Examples would be for games. I
just type the name of the game, and the script pushes the current dir, CD's
to the appropriate directory, runs the program, and pushes 'popcd' before
exiting.
One that I use a lot is called go.rexx. It recognizes a number of keywords,
such as 'asm', 'lc', 'manx', 'tape', 'a-doc', and so on. Ths purpose of the
script is to set up environment variables for the task at hand, CD to the
appropriate directory, and to clear any path/env stuff that I won't be
needing. I have also used KeymapEdit to assign strings to my ALT-NUMPAD
keys, to the form 'go lc', etc. So when I want to do some programming in
Lattice, I hit ALT-NUMPAD-6, and I am all set to start.
[cont]
[cont..]
I have a number of scripts I use for specific databases. They allow me to
look up phone numbers, CIS node abbreviations, airport IDs, words from
contents files on Fish disks, and probably a few more. I also use some of
these from BackTalk, to provide information and entertainment whil in CO
here on AmigaTech. When someone types the appropriate keyword and an
argument, my script gives them the answer, right there in CO.
I have other scripts that use my ROBBS programs for specific, automated
telecom functions, including automatic gathering of data like weather maps
and aviation weather reports from my area, as well as some that use
BackTalk for the same types of things.
I wrote a fairly minimal flight planning program in ARexx, and that is
being used as a prototype for one I am writing in C, complete with 2.0
gadtool features.
Several of my scripts are filters, designed to be used with pipes (real
pipes, like Bill Hawes' PIP: device). One is like the Unix 'uniq', but
vastly improved in that the redundant lines do not have to be sequential.
Another is a variation, called 'dup', that will output only redundant
lines. I have a 'tee' command that opens its own window to show the
intermediate stages of a series of pipes.
Many of my earlier scripts were to 'fix' what I saw as command
deficiencies. One was for the join command, which I consider buggy, in that
a file specified for both input and output will be clobbered. My script
checked for it, and created a temp file, going ahead with the join. Others
were to provide the '*' wildcard for commands that did not have that
capability, since I was using many of the ARP commands. Before I started
using the ARP sort, I wrote a front end that alloowed it to be used to sort
a single file with a command 'sort filename', which again made a temp file
and replaced the original at the end.
[cont…]
I have a number of scripts I use in conjunction with CEDPro. Some are for
reading Usenet messages, including 'keepmsg', 'delmsg', 'kill' (for
obnoxious threads or people), 'compose', 'reply', 'send', etc. 'keepmsg'
was particularly interesting, since it would ask me for a filename (via FR)
for ordinary postings, but would recognize sources and binaries, and would
parse the headers to get a complete path and filename. It would then create
the parts of the path required, if they weren't present, and save the file
automatically, as well as post a reminder to me that would come up the next
time I read my mail. Other CEDPro stuff looks up autodocs, Arexx commands,
and so on. The basis for that one was from a CBM employee, but was
extensively rewritten.
I have automatic compression scripts, one of which you mentioned (ZooAll),
and one that does auto-extraction of all archived files in a directory,
calling the appropriate decompression program based on filename suffix. I
have a 'man.rexx' that does lookups for program docs, a copy that only
copies newer dated files to a dir with same named files in it, a
'cmpall.rexx' that will compare all files in the current with all files in
the specified directory. This is for testing the results of my tape
backup/restore programs.
Backup is handled by a script that dumps all my data to tape in a specific
order, and broken down into separate tape files for ease of recovery of
smaller chunks, though now that I have selective restore, I will have to
rethink the breakdown.
I even have a 'complete' BBS written in ARExx, that was used in
conjunction with keith Young's modified AUX: handler, and incorporated
usernames/passwords, mail, chat, public messages, bulletins, and
up/downloading. The 'complete' is in quotes because of the up/downloading.
It was not handled by a protocol, but instead was limited to ASCII
send/recieve, binary files being handled by uuencode/uudecode. Oh, and
trusted users had direct access to the CLI that the BBS used, and it had an
'expert' mode.
[cont…]
I keep several examples of Arexx scripts handy that show how to do things
in the language, like two that show inter-process communication in action.
I keep them because I am often asked about how to do it, and I would rather
cut/paste working code than reinvent it. Oh.. 'toced.rexx' is designed as a
filter, and intelligently allows me to pipe data directly to CEDPro, The
output of any command will get sent to CEDPro, allowing me to edit it the
results.
I toggle my 'tape' ENV variable to handle QIC or DAT, at two different
adrresses, using an ARexx script, and use another to get a table of
contents of a tape that has my own dump format files on it.
Many are simple enough scripts.. 'tof.rexx' sends my printer a form feed.
'time.rexx' will either return the current time, or if a command line is
given after it, will run the command line and show me how long it took.
Invaluable for testing different algorithms in a program. 'touch' will set
the current date/time to a file, and create the named file if it does not
exist. 'error.rexx' looks up AmigaDos error codes.
There's 'swiftie' and 'fortune' for entertainment (swiftie also works in CO
with BackTalk). 'df.rexx' does an info command only for the lines
concerning hard drives. addarc adds a program name and disk number, and
isarc.rexx looks them up, for files I have archived and put out to floppy
disk, though I am slowly converting all those floppies to DAT tape. I have
a few programs written in Icon, and I front end them with ARexx scripts to
avoid having to type the 'iconx' in front of the program name. Index will
tale a file, split out every word from it, and add them to a database of
words so that I can find a reference later, such as in my Fish disk lookup
stuff. Lindex will do an index of lines and their byte offset into a files,
for other database types of applications. 'getfish.rexx' will grab the tape
file off my Fish DAT (and will do so in anything up to about 40 seconds).
[cnt…]
[cont…]
hilite.rexx is another filter. It's sort of like a search or grep, but
instead of just showing you the line on its own, will pass through
everything sent to it, but will hilite the argument strings it finds in
colour 3 (red on my machine). It allows looking for something in context.
Some, like gif2iff.rexx, simplify more complex comand lines. That one does
a number of things with two pbmplus programs and an intermediate file.
'penicillinfo.rexx' was a script I used under 1.3 and previous, to get rid
of those pesky .info files. It ran under cron every night. Some scripts
simple 'run' a program with the command line unchanged, because I hate it
hen I forget to run, and lose the use of the CLI.
remind.rexx is used every weekday morning at 0750, using cron, to pop a
window up on my screen, beep me, and remind me that it's time to go to
work.
There are more, of course, and many of them I no longer use. One day I'll
get down to cleaning up the directory, and will probably find that I will
keep no more than about 100-150 of them, some perhaps just for reference on
technique.
Probably more than you wanted to know, but perhaps you'll get the idea that
I am a diehard Arexx fan, and that I make very good use of it. As far as I
am concerned, ARexx and WShell are probably the single most valuable
programs I have, bar none.
Again, please feel free to use any of this (but be nice :-).
-larry
A gracious thank you for that extended reply! You may be atypical, but
your descriptions are a wealth of examples. I've been thinking about this
article because I believe that a lot of WB 2.0 users haven't quite
understood what they could do with ARexx. Now that so many people will be
getting it "for free", I'd like to find out how afficiandos are using it.
As for 'zooall', I found another "bug" in it yesterday. If the directory
you're in contains no files but only subdirectories, then it tried to
compress stdin, I think – 'zoo' said it was compressing file '*' and it
paused until I hit CTRL \. Or at least that's what I think it was doing.
I wrote a 'cmpall' the other day, too. I'm thinking of extending it to
recognize the contents of files, so it runs 'diff' on source code, and
'crc' on binaries, and skips '.o' and '.lib' files, etc.
As for AUX BBSes, wasn't there a CLI Zmodem (from Steve Drew?) that could
do binary transfers over a shared serial port? I think I worked with it
once – I wanted to make a system that would let me specify an Amiga
filename on my PC and automatically use a PC CLI Zmodem to send or receive
the file through AUX and these Zmodem tools, but I don't think it ever
worked smoothly.
I'm on the verge of getting a Syquest, a tape drive, or both. I've got too
many floppies. I wish I could hire someone to index them all. Many of
them contain things that only appeared on the networks and never made the
Fish disks. It sounds like you have a lot of DAT and QIC tapes. Can you
exchange files with your Suns this way? I'd really like to get a system
that allows exchange with the PC and Mac, too. I moved a six megabyte
'tar.Z' through Twin Express the other day, it worked quite well.
Actually, there is an issue associated with the Join command dealing with
both input and output that is actually non-solvable. The constraints on the
issue are that
1) You can't open a file more than once – one example is CON: windows which
would pop up each time you did this (this was a bug reported and fixed in the
copy command).
2) Because of soft/hard links, you can't tell if the file is the same without
opening it.
3) Because of some pathological cases, it was not possible to open up all the
input files first.
4) You can't even compare strings because of wild cards in the input.
5) You can't solve the problem with locks because not all file handlers
support locks.
We went through a number of solutions to the problem but were never able to
resolve all the constraints. Attempts to delay opening the output file until
later also invoked some bugs (but I don't remember them offhand).
Gee John, I solved it with an Arexx program that was no longer than about
10 lines of code. 🙂
-larry
I would certainly be interested in knowing how you dealt with all the
constraints. Without opening the files, I haven't found a reasonable way to
handle the pathological cases.
> Several of my scripts are filters, designed to be used with pipes …
I think you posted the source to your 'uniq' a while back. I have not
only used it in pipes, but have used it again and again as an example (to
friends that haven't grasped the power of ARexx) of an elegant solution to
a non-trivial problem.
However, I'm becoming disturbed by an (increasing?) number of programs
that do not support piping and/or redirection of their console output. For
example, from the libraries here on CIS, LZ 1.92 Archive/Extract Utility
and AmigaZoo 2.1 Beta 3 91/08/01 both fall into that category. I have
often found in useful to pipe and/or redirect an archive 'contents'
listing. Considering LZ 1.92:
>lz v foobar.lha | uniq ; for example
just didn't work under DOS 1.3/WShell 1.2 (only the header got piped if I
remember) but guarantees a crash and burn under DOS 2.0/WShell 2.0. With
Zoo 2.1:
>zoo l foobar.zoo > foo.bar ; for example
you often only get a partial list (apparently the final buffer doesn't
get flushed).
Of course, in all fairness, these problems may well be corrected in more
mature versions of both programs which (I presume) are available from other
sources.
REC
——
Glad you get use out of 'uniq'. It was a real blast to realize the power
of the associative memory aspects of stem variables, and frankly, I wrote
it just because I had discovered the technique, and saw how it could be
used for a program that I needed anyway.
I have been annoyed too, at the lack of ability to use pipes on many
programs, and every time I run across a program that allows it, that will
replace one of the same functionality, I will replace the non-piping one. I
will even put up with some slowdown, a little less functionality, and so
on, just to gain the piping advantage.I still use the ARP sort because it
accepts stdin and sends output to stdout, though the CBM version might do
that now too.
Lets hope that as time goes on, more authors will realize the advantages
of these small tools that can be built into more complex tools.
-larry
> . . . though the CBM version might do that now too.
Sigh, afraid not — unless I've missed something again :).
REC
——