#PRT: Redirection
27 messages in this thread
Here's a good question for the Gurus. We're working on network software, and
we're considering ways to implement printer sharing. What is the best and
safest system method for intercepting calls to PRT:? Is it true some programs
access PRT:, while others access "printer.device" directly? How can we get
around this? Some programs let you change the PRT: to something else, some
don't. Also, there is no system method for selecting which printer should be
considered the PRT: printer. In other words, we need a mechanism for
supporting multiple printers, too, each with their own printer driver
selection. Is it true that third-party serial boards can't be used for the
PRT: printer, because it only selects between SER: and PAR:?
Khalid:
I think that's called "Dave's spool". It "remprt"s (remove PRT:), and then
mounts its own PRT: (from a special mountlist entery), and finally assigns
SPOOL: to RAM:.
Ray Lewis
Gee, I'd hoped you'd come up with a better answer than that… 🙂 If we make
our own PRT: handler, and intercept all calls to it and move them across the
network to another machine, presumably we'd need to have some way to access an
unaltered PRT: handler on the destination machine, so it could pass through the
Preferences drvier on that machine. If some programs use printer.device
directly – and why not? – then we're still stuck.
And you can't zap "serial.device" to "modem0.device" after the printer.device
has been loaded, and you can't flush it unless nothing else is in the system.
And is there a way to flush only only device from memory, without flushing
every other zero-count device or library or font from the system at the same
time?
Use the RM Function to read
this message.
To intercept calls to the printer device, it is a simple matter of doing like
the CMD program on Extras 1.3. You SetFunction the BeginIO vector of the
device, then wathch for every CMD_WRITE that comes along and send the output to
wherevr you want it to go.
Be sure not to do too much fancy stuff in your replacement for BeginIO,
especially no disk access.
That does seem like a reasonable solution, doesn't it? It would catch both
kinds of programs, ones that use PRT: and one that uses printer.device. We'd
just need to echo the requests to printer.device – maybe even just
call-for-call – across the netowork. We'd use the destination machine's
settings for Preferences in terms of which printer is attached where. This
only leaves the contention between the real printer.device and the network
printer.device. What would we need to do is provide a mechanism for choosing
between the real one and the network one. I imagine it would be nice to be able
to use both at the same time: one app printing to the local printer, and the
other to the network printer, at the same time.
Vic,
I talked to Andy Finkel awhile back on just this subject. I was told in no
uncertain terms that there is no intent to modify the parallel device (or
printer) to be able to handle more than one printer. The problem seems to be
that the current printer device is single threaded, an in order for you to have
multiple printers attached, the printer device would need MAJOR changes.
I was wanting to build a board the provided a couple extra parallel ports,
and wanted to implement them is a system supportable manner. Andy told me that
since there was no user demand for such, he was not interested in applying
resources to it.
So, if people would start hounding CBM to provide multi-printer (parallel)
support in the OS, I'm more than willing to build the board to hook it to.
I also agree that being able to render to a file is a very useful idea.
John's problem would easily be solved by dumping to a file on the printer
server, and then telling the server to print the file.
-Dean
Good to hear someone else has thought of this before. 🙂 When you were
considering this, did you discover the possible and popular ways that Amiga
programs access the printer? That is, what was your assessment of PRT: versus
printer.device access? Do some programs use different techniques? Second,
some programs query the new 1.3 printer.device for information, don't they?
Use the RM Function to read
these messages.
You said your board is a multiple parallel port board? Is it bidirectional?
And who will market it?
Before we start thinking about a standard, we should at least thoroughly
examine all the permutations that people might want. Vic's suggestion of using
the "first available LaserWriter" as opposed to any specific printer is a good
one. Was that Vic who said that? Or some Mac magazine I was reading? 🙂
Ray, then ask for "the first available printer with wide paper found in room
2003" <grin>
Victor A. Wagner, Jr.
Use the RM Function to read
these messages.
Dean, thanks for posting that message with Andy's comments in it.
All I can do is cringe (sp?) when I read that, and considering who said it, all
I can do is say, what do we expect! I am sure if Ben was here right now, he
would be saying something along the lines of "I told you so" with regard to
Andy's attitude on the Amiga.
Andy is starting to sound like a very lazy, and non-intuitive programmer.
I want to see more parallel ports on the Amiga as much as I want more serial
ports. We finally have more serial ports, thanks to the likes of ASDG, among
others.
As for me, I have two printers, but can easily live with going thru a switch
box for them. What I want are more parallel ports that can be supported by the
system, and can be used in a similiar fashion at the hardware level as the
existing port. At this time I have two hardware devices (besides printers)
that want the parallel port (DigiView and AVT), and there are more I would like
to have in the future. I would like to have AVT sitting in the background,
waiting for me to tell it to send/receive another picture, while I am using
DigiView to get another picture, and of course, still be sending the last
picture I received to the printer!
Right now, everything is exclusive to all other operations!
73, Kelly
Kelly,
Andy as head of software development at CBM, has a job to do. That job
consists of allocating resources to what ever has the highest priority. What we
can do is bump the priority of multi parallel ports by making alot of noise.
Now when I say "alot of noise" I mean simply asking CBM (whoever you can
contact) when they are going to start supporting multiple printers. Ben's
method of harassing anyone connected to CBM is IMHO, counter productive.
I can think of several uses for a minumum of 2 printers on a computer, the
most obvious of which is at a point of sale terminal, or an order entry system.
One printer would be used to print invoices, the other would print shipping
labels. Supporting multiple printers would also do wonders for networking.
Unfortunatly, any standard to be set, MUST be set by CBM!!! If there is to
be any hope of a seamless compatable method of support, ALL programers and port
manufacturers MUST be conforming to a specific standard. The only hope I
currently see, is for everyone interested to tell CBM what they want. If enough
of us ask for it, then CBM will have to listen. (I hope 8)
-Dean
Gee, Dean, you figured out what application I had in mind. BTW, where do I
attach the 24pin printer which is doing the latest version of the schematics
while I decide to work on the 'sales' side of the biz? <smmiiille>
Victor A. Wagner, Jr.
Vic,
Right, We have a multi-tasking machine, it's stupid, IMHO, to be limited
to a single output (hardcopy) device. Thats what windows are for on the
monitor, we need the equilivant for hardcopy.
We need to beat on (nicely now 😉 CBM to provide systemwide support for
multiple printers (err output) devices. One or two people cannot provide the
incentive to CBM to start dealing with the problems involved, if hundreds were
to start requesting, well…… 8)
-Dean
DKB Software
Dean,
Yah, just what I said about a year ago: multitasking machines need multi-ports,
and that the Amiga couldn't be taken seriously as a business computer without
those, and record-locking. At least the locking seems to be coming, which is a
start towards safe networking and multitasking.
Defenders of CBM might say, "But the Amiga is a one-person multitasking
computer". I say this: machines should have few limits, and the Amiga is too
limited for my tastes.
I need a machine that serves my needs, and of the Atari ST, Amiga, Tandy 1000,
and Tandy CoCo (among other computers) that sit within feet of me, only a
homebrew 68070 and my "little" CoCo give me both solid multitasking, and
multiports. That alone should be embarrassing to CBM!
I have EX-800 and CGP-200 printers hooked up, along with a Hazeltine terminal,
and both Prometheus 1200 and Supra 2400 modems. I can download on one line
while CO'ing on the other. I can print a color GIF image on the 220 while
listing a long file to the EX-800. The terminal is in the kitchen for looking
up recipes.
And it's not just that I _can_ do all this, but that I _need_ to often enough
that it's essential… and is part of what (I think) multitasking computers are
all about. Others need it too.
I know a photography studio that uses about the same setup, except with 2
printers and 2 terminals set up as 2 point of sale spots. He has a fifth port
connected to a X-10 controller to turn on/off the lights and lawn sprinklers
while he's out.
I'd like to see the Amiga be capable of home and business setups like this. Is
there no person or group of people who are well-known enough to force a de
facto standard on ports? Perhaps the Transactor people? Someone else? CBM would
probably follow their lead. We can't wait on CBM to do everything! It's a
crying shame that the technologically advanced Amiga should be backwards and
useless in so many scenarios.
Kevin,
The problem with an outside group doing a 'defacto' standard is that CBM,
when it finally sees the light, will come up with thier own implementation and
sink the inovators. H*ll, they can't even follow thier own standards from one
OS revision to another. I'd be more than happy to build the hardware needed, if
only there were a software standard that I could depend upon. Without that
standard, I would be fighting an uphill battle, and I don't have the resources
for that. (I wish I did!)
Anyway, Flame off, and back to work.
-Dean
DKB Software
Kevin,
So you can't use multi-serial ports for printers? Serial interfaces or
serial-parallel converters are easy enough to get.
Don