From Try-AS/400
Jump to navigation Jump to search
Qsicon Fixme.png This article isn't finished yet or needs to be revised. Please keep in mind that thus it may be incomplete.

Reason: Complete article

Printing on the AS/400 has many subtopics, so we only cover basic knowledge and specialized, hard to find information in here. See Weblinks below for additional documentation.

Surprisingly, the AS/400 is no different with common platforms when it comes to principles of printing. There are printer devices the application programs can talk to, and spooling mechanisms to provide background handling of shoveling data to the usually slower printers. Maybe that's because this basic principle has already been established in the early years of mainframe computing, when HASP was still separate from OS/360.[1] Maybe, common platforms inherited ideas from there, or came up with similar concepts. There are just a limited number of ways to provide for asynchronous printing.


Application programs utilize a printer file, that can be custom or the generic, IBM delivered QSYSPRT. Printer files define basic attributes for the print data to be generated, like format, rows and columns, page rotation and other stuff. Have a look at chgprtf qsysprt.

Print output data, when already generated by the application program by writing to the printer file is called spooled output or sometimes spooled file. This data is sitting in an OS object called *OUTQ. A printer writer picks up the data and sends it to the printer according to the configuration of the *OUTQ object.

Applications usually don't provide a flexible way to change which printer may be used as it's known from common systems. Most often, the printer seems hard coded in the application, so users didn't need to think about which printer to use or which tray contains the right preprinted forms. Users just pressed a key (often F6) and everything will work out like expected.

The format of the output can be one of two:

  • SCS, short for SNA Character Stream,
  • IPDS, short for Intelligent Printer Data Stream.

Print Job routing is determined by a number of configuration objects that may point to the next object level like in a chain, until the last routing resort is finally used.

See also



  1. HASP isn't just a printer spooling solution, though.