[comp.sys.amiga] Programming Question

mrandall@pnet02.CTS.COM (Mark Randall) (10/21/87)

I'm not sure that you are the correct person at C=A to direct this question to
but I hope you can pass it along (or someone reading this will help).
 
My company is developing a program for several Fortune 500 type corps.  That
does financial calculations.  We lease this software with the computers that
run it and starting in January these big companies will be using Amiga 500's
whether they like or not!  To the point...  The users of this software are
equivelent in computer literacy to somewhat dim chimpanzees.  We need to able
to detect if the printer is online and the paper out condition through the
printer device.  I know how to do it through the parallel device but is there
a way to do it through the printer device?
 
We need to intercept these error conditions before intuition jumps n with the
requester since we are not shipping the program with a mouse ( I know, I know
but I only work here.  THAT decision is the fault of our boys upstairs).  
 
Along the same lines...   We also must modem this financial data back to HQ
automatically.  I'd like to be able to check the Carrier Detect status.  I see
here in the book how to find DSR & CTS in the io_Error flag.  Must I do
naughty things like accessing the register directly or is there another way?
 
I hope none of the answers to these questions are too obvious.  This is my
first posting and none of you will respect me in the morning.  
 
Thanx for your help ....
 
 
Mark Randall 
CFT Systems
Claremont CA
 
"CGA  MGA  PGA  VGA .... ??? "
No way,  only A.M.I.G.A.


UUCP: {hplabs!hp-sdd!crash, ihnp4!scgvaxd!cadovax}!gryphon!pnet02!mrandall
INET: mrandall@pnet02.CTS.COM

bryce@hoser.berkeley.edu (Bryce Nesbitt) (10/22/87)

In article <1989@gryphon.CTS.COM> mrandall@pnet02.CTS.COM (Mark Randall) writes:
> 
>My company is developing a program for several Fortune 500 type corps...
> 
>...We need to intercept these error conditions before intuition jumps in with
>the requester since we are not shipping the [computer] with a mouse... 

If you ever are running a situation where the may be no way for a requester
to get answered, you need a little PD program called "Cancel!".  This will
have the same effect as if the user pressed the "Cancel" gadget.  DOS
and printer requesters will no longer disable the machine.

This program is probably on a Fish disk somewhere... check your local dealer.
(I'll mail a copy to the poster of this question)

(-: Or you could just have them press "<C=><B>" (The Commodore key and "B") :-)

I do not have an answer for your question of detecting printer status
via PRT: without the 30 second wait.  Perhaphs the wait is tuneable? (nah...
doubt it)


>UUCP: {hplabs!hp-sdd!crash, ihnp4!scgvaxd!cadovax}!gryphon!pnet02!mrandall
>INET: mrandall@pnet02.CTS.COM

|\ /|  . Ack! (NAK, SOH, EOT)
{o O} . bryce@hoser.berkeley.EDU -or- ucbvax!hoser!bryce
 (")
  U	"...The Amiga's 256K ram is just a start..." -Amiga Advertising
|\ /|  . Ack! (NAK, SOH, EOT)
{o O} . bryce@hoser.berkeley.EDU -or- ucbvax!hoser!bryce
 (")  "I would have promised those terrorists a TRIP TO DISNEYLAND if it would
  U    have gotten the hostages released. I thank God they were satisfied with
       the missiles and we didn't have to go to that extreme."
				-- preliminary draft of Ollie's testimony

rico@oscvax.UUCP (10/25/87)

In article <4508@zen.berkeley.edu> bryce@hoser.berkeley.edu (Bryce Nesbitt) writes:
>I do not have an answer for your question of detecting printer status
>via PRT: without the 30 second wait.  Perhaphs the wait is tuneable? (nah...
>doubt it)

The time for the delay is decided by the printer driver (it's part of the
printertag at the start of the driver).  There isn't any way to change it
after the fact unless the driver implements some special escape sequence
that does it.

You might be able to get better feedback by asking the parallel.device or
serial.device directly.

	-Rico

PS.  I'm wondering how far my postings are actually getting:  Bryce, if you
     ever see this could you send me some mail...
-- 
[NSA food: terrorist, cryptography, DES, drugs, CIA, secret, decode]
[CSIS food: supermailbox, tuna, fiberglass coffins, Mirabel, microfiche]
[Cat food: Nine Lives, Cat Chow, Meow Mix, Crave]

carolyn@cbmvax.UUCP (10/30/87)

In article <1989@gryphon.CTS.COM> mrandall@pnet02.CTS.COM (Mark Randall) writes:
>[]
>                        ...  To the point...  The users of this software are
>equivelent in computer literacy to somewhat dim chimpanzees.  We need to able
>to detect if the printer is online and the paper out condition through the
>printer device.  I know how to do it through the parallel device but is there
>a way to do it through the printer device?
> 
>We need to intercept these error conditions before intuition jumps n with the
>requester since we are not shipping the program with a mouse ( I know, I know
>but I only work here.  THAT decision is the fault of our boys upstairs).  
> 

   Printer device (1.2) unfortunately does not support Query, but you could
GetPrefs() to find out if it's a serial or parallel printer, then open
serial.device or parallel.device and do a Query command (see serial.doc
and parallel.doc in RKM).  This would be good for checking the printer
before opening the printer device.  For intercepting problems which occur
while you have the printer open, first save your process's old pr_WindowPtr
(find your process with FindTask(NULL), and put a -1 in pr_WindowPtr.
That will cause most requesters to not occur and instead cause an error
result to be returned to you.  When you are done, be sure to put the old
pr_WindowPtr value back.
 
>Along the same lines...   We also must modem this financial data back to HQ
>automatically.  I'd like to be able to check the Carrier Detect status.  I see
>here in the book how to find DSR & CTS in the io_Error flag.  Must I do
>naughty things like accessing the register directly or is there another way?

   All that and more is returned by the serial.device SDCMD_QUERY.  Read your
serial.doc in RKM.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Carolyn Scheppner -- CATS   >>Commodore Amiga Technical Support<<
                     UUCP  ...{allegra,ihnp4,rutgers}!cbmvax!carolyn 
                     PHONE 215-431-9180
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

andy@cbmvax.UUCP (Andy Finkel) (11/05/87)

In article <1989@gryphon.CTS.COM> mrandall@pnet02.CTS.COM (Mark Randall) writes:
>I'm not sure that you are the correct person at C=A to direct this question to
>but I hope you can pass it along (or someone reading this will help).
> 
>We need to able
>to detect if the printer is online and the paper out condition through the
>printer device.  I know how to do it through the parallel device but is there
>a way to do it through the printer device?

The printer.device obeys when you set the WindowPtr in your process
structure to -1; in this case it does not bring up the requester,
instead returning to let the program handle things.

Second, left-Amiga V and left-Amiga B can be used to retry and
cancel autorequesters respectively anyway, without the mouse.

(there are keyboard equivalents for other mouse functions; no one
said they were fun though; either Amiga key and the cursor keys
control the mouse movements; either Amiga key and the left Alt is
the left mouse buttom; either Amiga key and the right Alt key
is the right mouse button.)

> 
>We need to intercept these error conditions before intuition jumps n with the
>requester since we are not shipping the program with a mouse ( I know, I know
>but I only work here.  THAT decision is the fault of our boys upstairs).  

Just so you know...

> 
>Along the same lines...   We also must modem this financial data back to HQ
>automatically.  I'd like to be able to check the Carrier Detect status.  I see
>here in the book how to find DSR & CTS in the io_Error flag.  Must I do
>naughty things like accessing the register directly or is there another way?

I think the SERIAL_QUERY command will give you what you want.
-- 
andy finkel		{ihnp4|seismo|allegra}!cbmvax!andy 
Commodore-Amiga, Inc.

"Interfere?  Of course we'll interfere.  Always do what you're best at,
 I always say."

Any expressed opinions are mine; but feel free to share.
I disclaim all responsibilities, all shapes, all sizes, all colors.

ali@rocky.STANFORD.EDU (Ali Ozer) (11/05/87)

In article <2687@cbmvax.UUCP> andy@cbmvax.UUCP (Andy Finkel) writes:
>(there are keyboard equivalents for other mouse functions; no one
>said they were fun though; either Amiga key and the cursor keys
>control the mouse movements; either Amiga key and the left Alt is
>the left mouse buttom; either Amiga key and the right Alt key
>is the right mouse button.)

Those mouse equivalents are useful, though... This summer when I was back
in Europe I wanted to show my parents the Amiga. So I took them to various 
department stores in Trier, Germany, most of which had 500s. But (it must be
a way of discouraging people from playing with the machine without salesperson
assistance) none of the machines had mice attached. So, I had to remember 
those key codes, and pretty soon I was able to start opening windows and
clicking on icons. And after 10 minutes it felt totally normal --- I could 
even choose subitems from menus!.  Of course a few minutes later (just when 
things were getting fun) a salesperson materalized with a mouse (and wanted a
copy of Juggler, which I was running at that instant).

Oh, and if you hit shift while moving the mouse, the mouse will move in
steps of about an inch(?) or so, which turns out to be useful, especially
if you've got your mouse speed set too high (in which case the pointer
accelerates across the screen like mad if you hold it down too long).

Ali Ozer, ali@rocky.stanford.edu