[pe.cust.general] HELP with PE driver for selch device

steve@lpi3230.UUCP (Steve Burbeck) (02/20/85)

<bug food>

     We have a 3230 with 7 Megabytes and two selches.  We have interfaced
     an Optronics film scanner to this machine via a ULI (PE Universal Logic 
     Interface) board which is installed under the second selch along with an
     IDC disc controller.  The first selch has another disc controller.
     The device is interrogated via rh() and ss() calls (i.e., read halfword
     and sense status -- see mch.s for the assembler code) and controlled
     via wh() and oc() calls (write halfword and output char).  A scan line
     of data (up to 1024 pixels) is input to a memory buffer via the selch.
     
     Our problem is that the driver sometimes never returns from a selch
     transfer as if the selch never got enough data. This leaves the selch
     frozen.  I'm posting this in hopes that someone has a solution.
     
     My first suspicion would be a hardware problem with the Optronics or the
     ULI interface except for two facts: 1) it only happens when the system is
     heavily loaded with large processes (which presumably can have no effect
     on either the scanner or the ULI hardware), and 2) we have already
     discovered some rather bizzare software problems that looked much like
     hardware problems.  For instance -- DID YOU KNOW that if the selch under
     which the ULI is installed is busy with a disc transfer, then wh(), oc(),
     rh(), and ss() HAVE NO EFFECT WHATEVER on the ULI and there is no
     indication whatever that the instructions failed except in the case of
     ss() which returns 0x04 when the device was not reachable?  We didn't
     either until long hours of effort finally pointed in that direction and
     more effort finally dug up a comment to that effect in the processor
     manual.  Most of our lock ups were fixed by always ensuring that the
     device was reachable by issuing as ss() just before sending the control
     command.  Now the scanner will work merrily until we fire up a Lisp
     processes (1.25 meg).  Then it locks up.  Perhaps the long disc transfers
     on the first selch (where swap lives) have something to do with it?
     Could it be related to our two selches?  Can anyone tell we what
     interaction if any there is between two selches (either hardware or
     software)? Does anyone else have more than one selch on a PE Unix system?
     If so, have you written any drivers for devices under one of the selches?
     
     We do not have source, so we have had to learn the hard way, and may well
     have missed something that is obvious with plentiful source examples.

			Steve Burbeck
			Linus Pauling Institute
			440 Page Mill Road
			Palo Alto, CA 94306
			...!hplabs!{analog,pesnta}!lpi3230!steve