In general, documentation on Linux can be obtained from
The Linux Documentation Project. Among it's many resources are the following documents that
assisted us in setting up the Linux lpd print service for our print-to-email proof-of-concept.
- The "Linux Printing" HOWTO is a collection of information describing how to generate,
preview, print and fax anything under Linux. This document provided a lot of the instruction
on how to set up lpr and lpd, and introduced us to the concept of a
pseudo-printer (although not in those words).
- The "Linux Printing Usage" HOWTO describes how to use the line printing spooling
subsystem provided with the Linux operating system and is a supplement document to the
"Linux Printing" HOWTO. This document added to our understanding of how lpd
worked, and gave us enough information to craft our own print filters.
- The "Bash Programming Introduction" HOWTO provides instruction on writing basic to
intermediate shell scripts. Our print filter was written in Bash script language; this document
introduces the language concepts, and can be used as a basis for learning how to write Bash
- The "Linux Mail User" HOWTO introduces the concepts and facilities of electronic mail
in a Linux system. It focuses on user-level issues and typical configurations for a Linux home or
small business email server.
- The "Linux Electronic Mail Administrator" HOWTO describes the setup and maintenance of
electronic mail in a Linux system. It is primarily intended for system administrators who have to
configure and maintain a Linux-based email system.
OS390/MVS (JES2, Batch, IMS, CICS)
IBM keeps an extensive online library of all their
documentation at their Boulder, Colorado server. This site provides public access to the many manuals
we used on the host side.
OS/390 V2R10 MVS JCL Reference
- This manual describes the specifics of each MVS Job Control Language command, and was the
resource we used to determine which JCL parameters would be required to set the JES2 flash page
contents for our print-to-email filter. In particular, we used two chapters
"Chapter 22: OUTPUT JCL Statement" and
"Chapter 12: DD Statement") to determine the exact requirements of the batch
OS/390 V2R10 MVS JCL User's Guide
- This manual provides a user's view of MVS Job Control Language, discussing how JCL statements
are combined into runnable JOBs. Of interest in this manual is
"Chapter 22: SYSOUT Resources - Processing Control"
which discusses the use of the // OUTPUT statement in batch jobs.
TSO/E V2R5 Command Reference
- The "TSO/E Command Reference" describes the syntax, functions and commands of the
TSO/E command language. In
"Section 1.56: The OUTDES Command", the manual describes the syntax
and parameters of the OUTDES command, which is used to create or reuse a
dynamic output descriptor. This is of interest to us because the IMS and
CICS interfaces to the MVS spooling system require parameters in the form
accepted by the OUTDES command described here.
IMS Version 7 Utilities Reference: System
- The "IMS Version 7 Utilities Reference: System" is intended to help the mainframe programmer or
IMS system programmer maintain IMS facilities and application programs.
Section 1.2: Program Specification
Block (PSB) Generation discusses the content and creation of the PSB, including the specifications for
building a PSB that contains the non-express modifiable alternate PCB necessary for use in the SPOOL API.
IMS V7 Application Programming: Design Guide
- The "IMS Application Programming: Design Guide" is intended to help the mainframe programmer design
IMS Application programs. Appendix A:
IMS Spool API Overall Design discusses the design of the Spool API and programs that use it. It is this Spool
API that our IMS programs used to generate their emailed reports.
IMS V7 Application Programming: Transaction Manager
- The "IMS Application Programming: Transaction Manager" manual describes the function,
format, and use of the IMS DL/I calls specific to the IMS Transaction Manager (as opposed to
those calls specific to Database Management). This is were we found the descriptions of the
calls used by IMS transactions to generate spooled output. Of interest were
"Section 1.3.2: The CHNG Call" (particularly
"Section 188.8.131.52.2: Advanced Print Function Options") which described
the CHNG call and the parameters needed to initiate spooling. Similarly,
"Section 1.3.7: The ISRT Call" (especially
"Section 184.108.40.206.1: Spool API Functions") described the ISRT
call and the parameters needed to spool lines of output to a JES printer.
CICS TS for OS/390 V1R3 Application Programming Guide
- This book gives guidance in the design and construction of CICS transaction programs.
Section 5.6: "Chapter 32:
CICS Interface to JES" discusses the design of applications that use the CICS SPOOL API
(SPOOLOPEN/SPOOLWRITE/SPOOLCLOSE) to spool output to JES.
CICS TS for OS/390 V1R3 Application Programming Reference
- This book describes the CICS Transaction Server for OS/390 EXEC application programming interface.
Here, we found descriptions of the various CICS EXEC calls used to generate output into the JES spool.
Of interest were
Section 1.229: "SPOOLOPEN OUTPUT", which described the format and parameters of the
EXEC SPOOLOPEN used to connect to the JES2 spool,
"SPOOLWRITE", which described the format and parameters of the EXEC SPOOLWRITE call
used to write report lines to the output spool, and
"SPOOLCLOSE" describes the format and parameters of the EXEC SPOOLCLOSE call used to terminate
the connection to JES and release the written report.
Copyright (©) Lew Pitcher, March 2002