Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lp(1)

ioctl(2)

intro(7)

LP(7)  —  HP-UX

NAME

lp − line printer

DESCRIPTION

All file names in /dev containing the mnemonic lp are special files providing the interface to a particular line printer.  A line printer is a character special device that may optionally have an interpretation applied to the data. 

If the lp mnemonic is preceded by the character r, data is sent to the printer in raw mode.  (This could assume, for example, a graphic printer operation.)  In raw mode, no interpretation is done on the data to be printed, and no page formatting is performed.  The bytes are simply sent to the printer and printed as is. 

If the lp mnemonic is not preceded by the character r, the data is interpreted according to rules discussed below.  The driver understands the concept of a printer page in that it has a page length (in lines), line length (in characters), and offset from the left margin (in characters).  The default line length, indent, lines per page, open and close page eject, and handling of backspace are set to defaults determined when the printer is opened and recognized by the system the first time.  If the printer is not recognized, the default line length is 132 characters, indent is 4 characters, lines per page is 66, one page is ejected on close and none on open, and backspace is handled for a character printer. 

The following rules describe the interpretation of the data stream:

A form feed causes a page eject and resets the line counter to zero. 

Multiple consecutive form-feeds are treated as a single form-feed. 

The new-line character is mapped into a carriage-return/line-feed sequence, and if an offset is specified a number of blanks are inserted after the carriage-return/line-feed sequence. 

A new-line that extends over the end of a page is turned into a form-feed. 

Tab characters are expanded into the appropriate number of blanks (tab stops are assumed to occur every eight character positions as offset by the current indent value). 

Backspaces are interpreted to yield the appropriate overstrike either for a character printer or a line printer. 

Lines longer than the line length minus the indent (i.e., 128 characters, using the above defaults) are truncated. 

Carriage-return characters cause the line to be overstruck. 

When it is opened or closed, a suitable number of page ejects is generated. 

Two ioctl(2) system calls are available to control the lines per page, characters per line, indent, handling of backspaces, and number of pages to be ejected at open and close times. At either open or close time, if no page eject is requested the paper will not be moved.  For opens, line and page counting will start assuming a top-of-form condition.

#include <sys/lprio.h>
ioctl (fildes, command, arg)
struct lprio ∗arg;

The commands are:

LPRGET Get the current printer status information and store in the lprio structure referenced by arg. 

LPRSET Set the current printer status information from the structure referenced by arg. 

These are remembered across opens, and thus, indent, page width and page length can be set with an external program.  If the columns field is set to zero, the defaults are restored at the next open. 

The structure passed to the LPRGET and LPRSET ioctl calls, as defined in <sys/lprio.h>, is:

struct lprio {

short ind; /∗ indent ∗/
short col; /∗ columns per page ∗/
short line; /∗ lines per page ∗/
short bksp; /∗ backspace handling flag ∗/
short open_ej; /∗ pages to eject on open ∗/
short close_ej; /∗ pages to eject on close ∗/

};
If the backspace handling flag is 0, a character printer is assumed and backspaces are passed through the driver unchanged.  If the flag is a 1, a line printer is assumed, and sufficient print operations are generated to generate the appropriate overstruck characters.

DEPENDENCIES

Series 300
The uppercase-only flag, the no-overprint flag, the raw-mode flag, and no-page-eject-on-open-or-close flag can be selected (enabled) by appropriate use of the minor number in the mknod(1M) command.  See the HP-UX System Administrator Manual for details.  See also slp(1).

Series 500
The number of characters per line (80 or 132) and wrap-around can be selected/enabled via the minor number in the mknod(1M) command.  See the HP-UX System Administrator Manual for details. 

The LPRGET and LPRSET ioctl commands are not supported and the include file /usr/include/sys/lprio.h is not available. 

AUTHOR

Lp was developed by HP and AT&T. 

FILES

/dev/lp default or standard printer used by some HP-UX commands;

/dev/[r]lp∗ special files for printers

SEE ALSO

lp(1), ioctl(2), intro(7). 

Hewlett-Packard Company  —  Version B.1,  May 11, 2021

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026