llpp -- Device Driver


Files  /ddeevv/llpp*  access  the  line-printer's  device  drivers  for  IBM  AT
COHERENT.  The drivers are assigned major device number 3.

The COHERENT system supports three  printers, in both cooked and raw modes.
The following gives the device name, minor device, and I/O port:

/ddeevv/llpptt11 0  0x3BC  (/etc/mknod /dev/lpt1  c 3   0)
/ddeevv/llpptt22 1  0x378  (/etc/mknod /dev/lpt2  c 3   1)
/ddeevv/llpptt33 2  0x278  (/etc/mknod /dev/lpt3  c 3   2)
/ddeevv/rrllpptt11128  0x3BC  (/etc/mknod /dev/rlpt1 c 3 128)
/ddeevv/rrllpptt22129  0x378  (/etc/mknod /dev/rlpt2 c 3 129)
/ddeevv/rrllpptt33130  0x278  (/etc/mknod /dev/rlpt3 c 3 130)

``Cooked'' processing  processes the special characters  BS (backspace), HT
(horizontal tab), LF (line feed),  FF (form feed), and CR (carriage return)
appropriately; raw processing simply passes them on to the printer.

_K_e_r_n_e_l _V_a_r_i_a_b_l_e_s
Please  note  that the  COHERENT  286 kernel  references  variables with  a
trailing  underscore character;  for  example, aattppaarrmm_.   The COHERENT  386
kernel, however, does _n_o_t use a trailing underscore; for example, aattppaarrmm.

The following descriptions apply to both COHERENT 286 and COHERENT 386, but
the notation will be in the COHERENT-386 form.

_D_i_s_c_i_p_l_i_n_e
The driver  uses a hybrid busy-wait/timeout  discipline to support printers
efficiently that have varying buffer sizes in a multi-tasking environment.

The kernel variable LLPPWWAAIITT sets the  time for which the processor waits for
the printer  to accept  the next  character.  If the  printer is  not ready
within the LLPPWWAAIITT period,  the processor then resumes normal processing for
the number  of ticks set  by by the  kernel variable LLPPTTIIMMEE.  Thus, setting
LLPPWWAAIITT to  an extremely  number (e.g.,  1,000) and LLPPTTIIMMEE  to a  very small
number  (e.g., one)  results in  a fast  printer, but  leaves very  few CPU
cycles available for anything  else.  Conversely, setting LLPPWWAAIITT to a small
number  (e.g., 50)  and LLPPTTIIMMEE  to a  large number  (e.g., five)  result in
efficient  multi-tasking but  also  results in  a slow  printer unless  the
printer  itself contains  a buffer  (as is  normal with  all but  the least
expensive printers).  By default, LLPPWWAAIITT is set to 400 and LLPPTTIIMMEE to four.

We recommend that you set LLPPWWAAIITT to no less than 50 and no more than 1,000,
and LLPPTTIIMMEE to no less than  one.  To change the values of LLPPWWAAIITT to 500 and
LLPPTTIIMMEE to one, use the following command:

    /conf/patch -k /coherent LPWAIT=500 LPTIME=1

The kernel  variable LLPPTTEESSTT determines whether the  device driver checks to
see  if the  printer is  in  an ``on-line''  condition before  it uses  the
device.  If your printer does not  support this signal, you must set LLPPTTEESSTT
to zero.

_F_i_l_e_s
/ddeevv/llpp* -- ``Cooked'' printer interfaces
/ddeevv/rrllpp* -- Raw printer interfaces

_S_e_e _A_l_s_o
aasscciiii, ddbb, ddeevviiccee ddrriivveerrss, eeppssoonn, llpprr
