Technical data
SunOS 5.5 Devices stc(7D)
Valid tokens requiring parameters for the parallel ports are
ack_timeout- The amount of time in seconds to wait for an ACK from the port after
asserting STROBE and transferring a byte of data.
error_timeout- Amount of time in seconds to wait for an error to go away.
busy_timeout- The amount of time in seconds to wait for a BUSY signal to clear, or zero
for an infinite BUSY timeout.
data_setup- The amount of time in microseconds between placingdata ont the paral-
lel lines and asserting the STROBE.
strobe_width- width of the STROBE pulse, in microseconds.
For value-carrying tokens for parallel ports:
token default value min value
strobe_width 2 microsecs 1 microsecs
data_setup 2 microsecs 0 microsecs
ack_timeout 60 seconds 5 seconds
errror_timeout 5 seconds 1 seconds
busy_timeout 10 seconds 0 seconds
PARALLEL PORT
PARAMETERS
The default values of certain parallel port parameters that govern data transfer between
the SPC/S board and the device attached to the parallel port will usually work well with
most devices; however, some devices don’t strictly adhere to the IBM PS/2-compatible
(Centronics-compatible) data transfer and device control/status protocol, and may require
modification of one or more of the default parallel port parameters. Some printers, for
example, have non-standard timing on their SELECT line, which manifests itself if you
start sending data to the printer and then take it off line; when you put it back on line, the
printer will not assert it’sSELECT line until after the next character is sent to the printer.
Since the stc driver will not send data to the device if it’sSELECT line is de-asserted, a
deadlock condition occurs. To remedy this situation, you can change the default signal
list that the stc driver monitors on the parallel port by removing theSELECT signal from
the list. This can be done either through the /kernel/drv/stc.conf configuration file or
programmatically through theSTC_SPPC ioctl( ) call.
LOADABLE
ISSUES
If you try to unload the driver, and one or more of the ports on one or more of the SPC/S
boards is in use (i.e. open()) by a process, the driver will not be unloaded, and all lines
on all SPC/S boards, with the exception of the control ports, will be marked with an
open inhibit flag to prevent further opens until the driver is sucessfully unloaded.
ERRORS An open() will fail with errno set to:
ENXIO The unit being opened does not exist.
EBUSY The dial-out device is beingopened and the dial-in device is already
open, the dial-in device is being opened with a no-delay open and the
dial-out device is already open or the unit has been marked as
exclusive-use by another process with a TIOCEXCL ioctl() call.
modified 2 Aug 1993 7D-319










