Difference between revisions of "Tn5250"

From MidrangeWiki
Jump to: navigation, search
(HOWTO link broken. Pasting text here)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{AN}} is a 5250 emulator that runs on several platforms.  tn5250 has several front ends, each appropriate for a given platform.  The tn5250 project also produces lib5250, a backend used by several emulators that provides the 5250 host communication.
 +
 +
tn5250 also provides print services using the lp5250d daemon and several print filters.  Using lp5250d and these filters printed output can be sent to any printer or converted to various formats including Adobe PDF, Adobe Postscript, plain text, or even raw SCS.  lp5250d can be configured to use Host Print Transform to support any iSeries printer.
 +
 +
There is extensive documentation for tn5250 in the [http://www.chowhouse.com/~james/tn5250-HOWTO.pdf tn5250 HOWTO].  tn5250 is licensed under the LGPL license.
 +
 +
The HOWTO link seems broken.  Here is a full text copy.  (Don't know how to upload a pdf.)
 +
 +
 +
<pre>
 +
TN5250 HOWTO
 +
5250 Emulation For Connecting to IBM iSeries Hosts
 +
James Rich
 +
Salt Lake City, Utah
 +
United States of America
 +
Copyright 2003 James Rich
 +
 +
Contents
 +
Introduction . .  . . . 1
 +
Preface . . . . . . . . 1
 +
Copyright information . 1
 +
Disclaimer  . . . . . . 1
 +
Document version  . . . 1
 +
Where to find more information 2
 +
Credits . . . . . . . . . .  . 2
 +
Feedback . . . . . . . . . . . 2
 +
Translations . . . . . . . . . 2
 +
Obtaining and installing the software 3
 +
Where to get the software . . . . . . 3
 +
Configuring the build . . . . . . . . 3
 +
Compiling and installing the software 3
 +
Using tn5250 . . . . .  4
 +
Two ways to run tn5250  4
 +
Macros . . . . . . . .  4
 +
Configuration . . . . . . . 5
 +
tn5250rc configuration file 5
 +
Defining host systems . . . 5
 +
Display types . . . . . 6
 +
Device names . . . . .  6
 +
Console mode underlines 6
 +
Translation maps . . .  6
 +
Automatic login 7
 +
Local printing 8
 +
Key mapping . . . . . 9
 +
Two types of key maps 9
 +
System-wide key map . 9
 +
User key map. . . . . 9
 +
Changing the key map  9
 +
Using fonts  . . . . . . . . 11
 +
Font selection in tn5250rc . 11
 +
Font selection in .Xdefaults 11
 +
Changing screen colors 12
 +
Using tn5250 with SSL . . . . . . . . . . . 13
 +
Configuring the Digital Certificate Manager 13
 +
Enabling SSL support in tn5250  . . . . . . 13
 +
Printing with lp5250d 15
 +
Basic structure . . . 15
 +
Using lp5250d . . . . 15
 +
lp5250d and .tn5250rc  . . . . . . 16
 +
Specifying a printer message queue 16
 +
Using Host Print Transform . . . . 16
 +
Defining printer languages using workstation customization 17
 +
Appendix . .. . . . . . . . . 19
 +
Portuguese terminal key map . 19
 +
Key map using XTerm 26
 +
Complete .Xdefaults file with custom colors, fonts, and key map 27
 +
Sample tn5250rc 28
 +
Possible values for use with Host Print Transform on V5R1 29
 +
 +
Section 1
 +
Introduction
 +
 +
1.1 Preface
 +
tn5250 is a 5250 connection package for communication with IBM iSeries hosts. tn5250 includes 5250
 +
display emulation and printing. This HOWTO is written primarily for the GNU/Linux version of tn5250,
 +
though other unix-like systems will likely have much in common. The Windows version of tn5250 is less
 +
similar, though much useful information can be obtained by the astute reader.
 +
 +
1.2 Copyright information
 +
This document is copyrighted (c) 2003 James Rich and is distributed under the terms of the Linux
 +
Documentation Project (LDP) license, stated below.
 +
Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux
 +
HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or
 +
electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed
 +
and encouraged; however, the author would like to be notified of any such distributions.
 +
All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must
 +
be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and
 +
impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain
 +
conditions; please contact the Linux HOWTO coordinator at the address given below.
 +
In short, we wish to promote dissemination of this information through as many channels as possible.
 +
However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any
 +
plans to redistribute the HOWTOs.
 +
If you have any questions, please contact linux-howto@metalab.unc.edu.
 +
 +
1.3 Disclaimer
 +
No liability for the contents of this documents can be accepted. Use the concepts, examples and other
 +
content at your own risk. As this is a new edition of this document, there may be errors and inaccuracies,
 +
that may of course be damaging to your system. Proceed with caution, and although this is highly unlikely,
 +
the author(s) do not take any responsibility for that.
 +
All copyrights are held by their by their respective owners, unless specifically noted otherwise. Use of a
 +
term in this document should not be regarded as affecting the validity of any trademark or service mark.
 +
Naming of particular products or brands should not be seen as endorsements.
 +
You are strongly recommended to take a backup of your system before major installation and backups
 +
at regular intervals.
 +
 +
1.4 Document version
 +
This is version 1.1a of the tn5250 HOWTO. The newest version of this HOWTO is available at
 +
ftp.chowhouse.com/pub/tn5250. Currently this HOWTO is only available in TEX format, Adobe Portable
 +
Document Format (PDF), and Postscript. Other formats will be made available in the future.
 +
Page 1
 +
 +
 +
TN5250 HOWTO Section 1: Introduction
 +
1.5 Where to find more information
 +
More information is on the tn5250 website at http://tn5250.sourceforge.net/. There is also a mailing
 +
list dedicated to the tn5250 project. In order to send email to the mailing list, you must be subscribed.
 +
Subscribing is easy. Just go to http://lists.midrange.com/mailman/listinfo/linux5250 and fill in the required
 +
information. The list has fairly low traffic and the people there are friendly and helpful.
 +
 +
1.6 Credits
 +
Thanks to Michael Madore, Jason Felice, Carey Evans, Scott Klement, Rich Duzenbury, Frank Richter,
 +
Roger Bowler, Ron Colcernian, Jan Echternach, Colin McCormack, Dave McKenzie, Peter Schlaile, William
 +
J. Suetholz, Jean-Marie Guenebaud, Martin Rowe, Daniel Teixeira, and Steven Kurylo for making tn5250
 +
possible and their assistance in creating this document.
 +
Thanks also to David Gibbs and midrange.com, and sourceforge.net for providing resources related to
 +
tn5250’s development.
 +
 +
1.7 Feedback
 +
Feedback is welcome for this document. Without your submissions and input, this document wouldn’t
 +
exist. Please send your additions, comments and criticisms to james@eaerich.com.
 +
 +
1.8 Translations
 +
No translations exist at this time. If someone would like to submit a translation please contact me at
 +
james@eaerich.com.
 +
Page 2
 +
 +
Section 2
 +
Obtaining and Installing the Software
 +
 +
2.1 Where to get the software
 +
The latest releases of the software can be obtained from the SourceForge tn5250 project homepage at
 +
http://tn5250.sourceforge.net/. There are tarballs available as well as CVS access.
 +
You can download the tarball at
 +
http://prdownloads.sourceforge.net/tn5250/.
 +
To get the latest code you can download the CVS repository by using the following commands:
 +
cvs -d :pserver:anonymous@cvs.tn5250.sourceforge.net:/cvsroot/tn5250 login
 +
At the password prompt, hit enter
 +
cvs -z3 -d :pserver:anonymous@cvs.tn5250.sourceforge.net:/cvsroot/tn5250 checkout tn5250
 +
 +
2.2 Configuring the build
 +
After downloading the source there are two ways to build it, depending on whether you downloaded a
 +
tarball or checked it out from CVS. If you checked out the code from CVS follow these instructions to build
 +
the code:
 +
cd tn5250
 +
./autogen.sh
 +
./configure
 +
If you downloaded a tarball the steps are almost exactly the same:
 +
cd tn5250-<version> where <version> is the release version
 +
./configure
 +
There are two important arguments to the ./configure script: --prefix and --with-ssl. By default
 +
the software will be installed in /usr/local. You can choose a different installation directory when you
 +
compile by using ./configure with the --prefix argument. It is important to remember what directory
 +
you specify here as key maps will be installed under this directory. If you want SSL support make sure you
 +
have OpenSSL installed and pass the --with-ssl argument to ./configure. For example:
 +
./configure --prefix=/usr --with-ssl
 +
Will configure the build to install in /usr with SSL support.
 +
 +
2.3 Compiling and installing the software
 +
Once ./configure has run compile and install tn5250:
 +
make
 +
su
 +
make install
 +
Once make install is done you are ready to run tn5250.
 +
Page 3
 +
 +
 +
Section 3
 +
Using tn5250
 +
 +
3.1 Two ways to run tn5250
 +
After installation you have two ways to run tn5250: from the console and within an xterm. If you want
 +
to run tn5250 from the console just use:
 +
tn5250 as400.mydomain.com
 +
where as400.mydomain.com is the fully qualified domain name of your iSeries. For those who run the X
 +
Windows System there is also a script called xt5250 which will start tn5250 inside of an xterm. This script
 +
is the preferred way to run tn5250 when using X. xt5250 sets a number of required configuration parameters
 +
before running tn5250. You can start xt5250 by entering:
 +
xt5250 as400.mydomain.com
 +
where again as400.mydomain.com is the fully qualified domain name of your iSeries.
 +
 +
3.2 Macros
 +
tn5250 has a macro feature that allows you to record a sequence of keystrokes and play that sequence
 +
back at a later time. To begin recording a macro press Control-S followed by the function key you want to
 +
use to replay the macro. Then enter the key sequence you want to record. When you are finished, press
 +
Control-S again to stop recording. To replay the macro you recorded, press Control-W followed by the
 +
function key you selected during the recording process.
 +
The macros you record are stored in a file in your home directory called .tn5250macros. This is a plain
 +
text file which means it can be easily edited to change your macros without having to rerecord them. Be
 +
aware that you can only put up to 100 characters on a line. Macros are separated by two linefeeds and
 +
identified by a function key identifier in square brackets.
 +
Page 4
 +
 +
Section 4
 +
Configuration
 +
 +
4.1 tn5250rc configuration file
 +
From the previous section we saw that tn5250 can be started giving the fully qualified domain name of
 +
the iSeries you want to connect to as an argument at the command prompt. This is not always ideal or the
 +
easiest way to do things. Typically users want to connect to the same iSeries every time they use tn5250. It
 +
would be nice if tn5250 could remember what host we want to work with and even set some preferences for
 +
working with that host.
 +
tn5250 uses two files to remember such settings: a system-wide configuration file and a per user configuration
 +
file. The system-wide configuration file is $PREFIX/etc/tn5250rc where $PREFIX is the value
 +
of the ./configure option --prefix when the program was compiled (as discussed in subsection 2.2).
 +
Configuration options that affect all users should be placed in this file.
 +
Each user can also define their own configuration in the file .tn5250rc in their home directory. It is
 +
probably best to put most settings in this file rather than the system-wide configuration file, as most users
 +
will probably have their own way of doing things. And if a mistake is made and the .tn5250rc file becomes
 +
unusable it can just be deleted without adversely affecting the operation of tn5250.
 +
The syntax of the file is fairly straightforward. Options are set using a parameter = value syntax or
 +
by a simple boolean +feature type syntax:
 +
identifier {
 +
parameter = value
 +
+feature
 +
. . .
 +
}
 +
 +
4.2 Defining host systems
 +
If you want to connect to a host called as400.mydomain.com you would create a minimal .tn5250rc file
 +
that looks like this:
 +
as400 {
 +
host = as400.mydomain.com
 +
}
 +
Now you can just type:
 +
tn5250 as400
 +
at the command line.
 +
Any number of hosts may be defined in the .tn5250rc file.
 +
Page 5
 +
 +
 +
TN5250 HOWTO Section 4: Configuration
 +
 +
4.3 Display types
 +
The display type that you want to emulate is set using the env.TERM parameter. The supported display
 +
types are listed in the tn5250 man page. The most common display type to emulate is the IBM-3477-FC.
 +
You can specify the display type at the command prompt or add it to your .tn5250rc file. Adding the display
 +
type to our sample .tn5250rc file gives the following:
 +
as400 {
 +
host = as400.mydomain.com
 +
env.TERM = IBM-3477-FC
 +
}
 +
 +
4.4 Device names
 +
tn5250 supports device naming. This means that you can specify a device name to use when connecting
 +
to the iSeries. Device names are specified using the env.DEVNAME argument. Device names may be up to
 +
ten characters long. If you want to call your tn5250 session MYDISPLAY then you use:
 +
env.DEVNAME = MYDISPLAY
 +
Adding this to our .tn5250rc file results in:
 +
as400 {
 +
host = as400.mydomain.com
 +
env.TERM = IBM-3477-FC
 +
env.DEVNAME = MYDISPLAY
 +
}
 +
 +
4.5 Console mode underlines
 +
When running in console mode tn5250 by default does not display the underlines that are typically
 +
part of most 5250 screens. This is because the console does not provide support for underlines. tn5250 can
 +
emulate underlines when started with the +underscores argument. This argument should only be given
 +
when running tn5250 at the console. When running tn5250 in an xterm (using xt5250) the +underscores
 +
argument should not be used as xterm provides native support for them.
 +
Adding +underscores to our .tn5250rc file looks like this:
 +
as400 {
 +
host = as400.mydomain.com
 +
env.TERM = IBM-3477-FC
 +
env.DEVNAME = MYDISPLAY
 +
+underscores
 +
}
 +
 +
4.6 Translation maps
 +
Translation maps define how characters are mapped from EBCDIC to ASCII. You should use the
 +
Page 6
 +
 +
 +
TN5250 HOWTO Section 4: Configuration
 +
 +
same translation map as your iSeries has defined for interactive jobs. You should check to see what CCSID
 +
your iSeries uses. The default for tn5250 is 37. CCSIDs on the iSeries are listed in Appendix G of
 +
IBM manual SC41-5101-01, AS/400 National Language Support. This manual is available on the web at
 +
http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/QB3AWC01/G.2.
 +
Currently recognised values for the translation map are: 37, 256, 273, 277, 278, 280, 284, 285, 290, 297,
 +
420, 424, 500, 870, 871, 875, 880, 905, and 1026. Most of these are translated to ISO-8859-1, also known as
 +
Latin 1. For more information see the tn5250 man page.
 +
Translation maps are specified using the map argument. To set the map to be 37 use:
 +
map = 37
 +
With this added to our .tn5250rc file we get:
 +
as400 {
 +
host = as400.mydomain.com
 +
env.TERM = IBM-3477-FC
 +
env.DEVNAME = MYDISPLAY
 +
+underscores
 +
map = 37
 +
}
 +
 +
4.7 Automatic login
 +
You can configure tn5250 to automatically log in to the iSeries using the env.USER, env.IBMSUBSPW,
 +
env.IBMPROGRAM, env.IBMIMENU, and env.IBMCURLIB arguments. If you wanted to automatically log in as
 +
user MYUSER with password MYPASSWORD you would set these arguments like this:
 +
env.USER = MYUSER
 +
and
 +
env.IBMSUBSPW = MYPASSWORD
 +
The env.IBMPROGRAM, env.IBMIMENU, and env.IBMCURLIB arguments refer to the respective signon fields for
 +
program, menu, and current library. These have the same syntax as env.USER and env.IBMSUBSPW. Adding
 +
these to our .tn5250rc file results in:
 +
as400 {
 +
host = as400.mydomain.com
 +
env.TERM = IBM-3477-FC
 +
env.DEVNAME = MYDISPLAY
 +
+underscores
 +
map = 37
 +
env.USER = MYUSER
 +
env.IBMSUBSPW = MYPASSWORD
 +
env.IBMPROGRAM = MYPROGRAM
 +
env.IBMMENU = MYMENU
 +
env.IBMCURLIB = MYLIBRARY
 +
}
 +
Page 7
 +
 +
 +
TN5250 HOWTO Section 4: Configuration
 +
 +
4.8 Local printing
 +
Usually pressing the print key results in the screen being printed by the iSeries. This behaviour can be
 +
changed to have the host on which tn5250 is running do the print screen by using the +local print key
 +
argument. +local print key will cause a print screen to be sent to the default printer when the print screen
 +
key is pressed (usually Control-P).
 +
On unix-like systems there are a number of arguments associated with +local print key to control
 +
how the resulting postscript is generated. These are described in the following table:
 +
Argument Description Default
 +
outputcommand=CMD command to pipe postscript to lpr
 +
psfontsize 80=NUM size in dots of font in 80 columns 10
 +
psfontsize 132=NUM size in dots of font in 132 columns 7
 +
pagewidth=NUM width in dots of page 612
 +
pagelength=NUM length in dots of page 792
 +
leftmargin=NUM left margin of page in dots 18
 +
topmargin=NUM top margin of page in dots 36
 +
Adding +local print key to our .tn5250rc file looks like this:
 +
as400 {
 +
host = as400.mydomain.com
 +
env.TERM = IBM-3477-FC
 +
env.DEVNAME = MYDISPLAY
 +
+underscores
 +
map= 37
 +
env.USER = MYUSER
 +
env.IBMSUBSPW = MYPASSWORD
 +
env.IBMPROGRAM = MYPROGRAM
 +
env.IBMMENU = MYMENU
 +
env.IBMCURLIB = MYLIBRARY
 +
+local print key
 +
}
 +
Page 8
 +
 +
 +
Section 5
 +
Key Mapping
 +
 +
5.1 Two types of key maps
 +
tn5250 uses one of two types of key maps depending on how it is invoked. The first type is the console
 +
key map. When run from the console tn5250 uses a built in keymap. This keymap can be overridden using
 +
the loadkeys command. Two key maps are included with the tn5250 package for use with the console:
 +
us5250.map and uk5250.map. These files can be modified to suit your needs. The loadkeys command is
 +
a linux-only command. On other platforms you will need to read the platform specific instructions. For
 +
FreeBSD these can be found in the README file in the freebsd directory of the tn5250 source distribution.
 +
Likewise for Solaris 7 there are instructions in the README.sun file in the sun directory. An example of a
 +
Portugese key map for use with the console is included in the appendix.
 +
The second type of key map is used when tn5250 is run using the xt5250 script in an xterm. This key
 +
map uses the standard X11 methods for handling key strokes. Because of this it is more flexible and doesn’t
 +
require using the loadkeys command. The sections that follow cover this second type of key map.
 +
 +
5.2 System-wide key map
 +
The system key map file is stored in $PREFIX/share/tn5250/XTerm where $PREFIX is the value to
 +
the ./configure option --prefix when the program was compiled (as described in subsection 2.2). Making
 +
changes to this file will affect all the users on your system. This is the correct file to change when you want
 +
all users to have the same configuration.
 +
However, it is probably best to not modify this file for several reasons. First, modifications made to this
 +
file will affect all users which may not be desireable. Second, if you change the map in a way that makes
 +
tn5250 no longer useable you will have to reinstall it. Third, you have to have root access to modify this file
 +
which prevents users from making changes. And finally, when you reinstall or upgrade tn5250 it will erase
 +
the changes you have made. Fortunately, a better solution exists that solves these problems.
 +
 +
5.3 User key map
 +
A better solution is to put user key maps in your .Xdefaults (or .Xresources) file in your home directory.
 +
It doesn’t matter which file you use, .Xdefaults or .Xresources, both have the same effect. In fact, you can
 +
make one a symbolic link to the other just to avoid confusion.
 +
.Xdefaults and .Xresources are read the startup of your X Window System session and these files change
 +
the way xterm behaves. Since they are read only at startup it is necessary to log out and log back in in
 +
order for changes to these files to take effect. Because they are read by Xlib and change xterm, this only
 +
works when you use xt5250 running in a real xterm. Some people report that aterm also works, but this is
 +
not guaranteed. Entries in .Xdefaults or .Xresources will not affect tn5250 when running from the console.
 +
In order to use these files for the key map, we have to add entries for the keys contained in the systemwide
 +
key map. For the sake of simplicity we will use .Xdefaults, but these steps apply equally well to
 +
.Xresources. First add the contents of the system-wide map by using to following command (remember to
 +
substitute the directory specified in the ./configure option --prefix as explained in subsection 2.2. We
 +
assume the default of /usr/local):
 +
cat /usr/local/share/tn5250/XTerm >> ~/.Xdefaults
 +
This will append the default key map into your .Xdefaults file.
 +
Page 9
 +
 +
 +
TN5250 HOWTO Section 5: Key Mapping
 +
 +
5.4 Changing the key map
 +
The key map is written as <key modifier><key>: string(“<value>”). The <key modifier> indicates if
 +
the Shift key or other modifier key must be pressed. <key> is which key on the keyboard is being pressed.
 +
<value> is a value sent to the host. By changing <value> you change what effect a given key (with optional
 +
key modifier) has. The tricky part is knowing what string <value> should be.
 +
An example from the XTerm file will help to explain things:
 +
~Shift <Key>F1: string("\0331") \n\
 +
Shift <Key>F1: string("\033!") \n\
 +
The key modifier in the first line is ~Shift. The ˜ symbol means not. In other words, the Shift key is
 +
not pressed. The key is <Key>F1. The value given to the program is \0331. The \033 part is the ASCII
 +
representation of the Escape key in octal. \0331 means Escape followed by 1. Escape followed by 1 is
 +
interpreted on UNIX terminals as the F1 key. You can try this on old terminals or in xterm.
 +
The tn5250 man page lists the strings necessary to generate a 5250 key press. According to the man
 +
page the 5250 key Field Exit is Escape followed by X. If you want to make the Enter key on the 10-key
 +
keypad map to the 5250 Field Exit key you would put the following in your .Xdefaults file:
 +
xt5250*VT100.Translations: #override\n\
 +
<Key>KP Enter: string("\033X")
 +
You can find some useful examples of complete key map files in the appendix.
 +
Page 10
 +
 +
 +
Section 6
 +
Using Fonts
 +
 +
6.1 Font selection in tn5250rc
 +
You can specify what font to use by placing the font definition in your .tn5250rc file. You can specify
 +
fonts for 80 column display and 132 column display. Adding some font settings to our .tn5250rc file results
 +
in:
 +
as400 {
 +
host = as400.mydomain.com
 +
env.TERM = IBM-3477-FC
 +
env.DEVNAME = MYDISPLAY
 +
map=37
 +
env.USER = MYUSER
 +
env.IBMSUBSPW = MYPASSWORD
 +
env.IBMPROGRAM = MYPROGRAM
 +
env.IBMMENU = MYMENU
 +
env.IBMCURLIB = MYLIBRARY
 +
+local print key
 +
font 80=-*-fixed-*-*-*-*-*-200-75-100-*-*-*-*
 +
font 132=-*-fixed-*-*-*-*-*-200-75-100-*-*-*-*
 +
}
 +
Note that we have removed the +underscores argument since it can’t be used with X11.
 +
To determine what fonts you like use the xlsfonts or xfontsel commands. xlsfonts tells you what
 +
fonts you have on your system and xfontsel shows you what the fonts look like.
 +
 +
6.2 Font selection in .Xdefaults
 +
You can also put font settings in your .Xdefaults file. Put a xt5250*Font : line in your .Xdefaults file
 +
followed by the font you want to use. For example:
 +
xt5250*Font : 7x13
 +
will give you a fixed 7x13 font.
 +
Page 11
 +
 +
Section 7
 +
Changing Screen Colors
 +
Currently the only colors you can change without making source code modifications are the color of the
 +
cursor and pointer in xt5250. Changeable colors is on the TODO list.
 +
You can set the cursor and pointer colors in your .Xdefaults by specifying:
 +
xt5250*cursorColor : gold
 +
xt5250*pointerColor : yellow
 +
In this example we set the 5250 cursor to a gold color and the mouse pointer to yellow.
 +
Page 12
 +
 +
Section 8
 +
Using tn5250 With SSL
 +
 +
8.1 Configuring the Digital Certificate Manager
 +
Before you can use SSL with tn5250 you must configure the iSeries to enable SSL support. This is
 +
done using the Digital Certificate Manager (DCM, part of the Cryptographic Access Provider). The DCM
 +
is not supported on all releases. The DCM first became available on V4R5. The information provided here
 +
is accurate up to version V5R2 of OS/400. You should consult the IBM provided documentation for your
 +
release.
 +
In order to use the DCM you must have at a minimum the following OS/400 products installed on your
 +
iSeries:
 +
5722SS1 option 34 — OS/400 – Digital Certificate Manager
 +
5722SS1 option 35 — OS/400 – Cryptographic Service Provider
 +
5722AC3 — Crypto Access Provider 128-bit for AS/400
 +
5722DG1 — IBM HTTP Server
 +
5722JV1 option 3 — Java Developer Kit 1.2
 +
There are several steps required to create a digital certificate. Most of these steps need only to be done
 +
once. The Digital Certificate Manager is accessed by pointing a web browser to your iSeries hostname and
 +
port 2001 like this: http://myas400.mydomain.com:2001/. This will access the *ADMIN web server on the
 +
iSeries. See the IBM documention for information on configuring the DCM.
 +
Once the digital certificate has been created you need to download the certificate to your computer.
 +
The DCM provides two ways to this: install in a browser and copy and paste. We want to use the copy
 +
and paste method. Following the copy and paste link results in a page being displayed that shows the
 +
digital certificate. Copy everything after and including the -----BEGIN CERTIFICATE----- line up to and
 +
including the -----END CERTIFICATE----- line. Save this to a file and give it some meaningful name, such
 +
as myas400.cert.
 +
8.2 Enabling SSL support in tn5250
 +
You must compile tn5250 with SSL support to use SSL. See subsection 2.2 Configuring the build for
 +
information on building tn5250 with SSL support.
 +
Once compiled with SSL support, tn5250 is configured quite easily. Use +ssl verify server in your
 +
.tn5250rc file to turn on SSL authentication. You must also prepend ssl: to the host parameter in your
 +
.tn5250rc file.
 +
tn5250 also uses the certificate generated by the iSeries Digital Certificate Manager for use when authenticating
 +
SSL sessions. The certificate may be stored anywhere on your system and is the certificate
 +
saved in the previous subsection. This certificate is referenced using the ssl ca file argument. If you have
 +
configured your iSeries to only accept SSL sessions from authenticated clients you will need this file.
 +
Adding +ssl verify server and ssl ca file and prepending ssl: to the host in our .tn5250rc file
 +
results in:
 +
as400 {
 +
host = ssl:as400.mydomain.com
 +
env.TERM = IBM-3477-FC
 +
Page 13
 +
 +
 +
TN5250 HOWTO Section 8: Using tn5250 With SSL
 +
 +
env.DEVNAME = MYDISPLAY
 +
+underscores
 +
map=37
 +
env.USER = MYUSER
 +
env.IBMSUBSPW = MYPASSWORD
 +
env.IBMPROGRAM = MYPROGRAM
 +
env.IBMMENU = MYMENU
 +
env.IBMCURLIB = MYLIBRARY
 +
+local print key
 +
font 80=-*-fixed-*-*-*-*-*-200-75-100-*-*-*-*
 +
font 132=-*-fixed-*-*-*-*-*-200-75-100-*-*-*-*
 +
+ssl verify server
 +
+ssl ca file = /path/to/certificate/file
 +
}
 +
In the example above, /path/to/certificate/file refers to the location where you stored the file that
 +
contains the certificate generated by the Digital Certificate Manager.
 +
Page 14
 +
 +
 +
Section 9
 +
Printing With lp5250d
 +
 +
9.1 Basic structure
 +
Printing iSeries output with lp5250d involves two basic steps: starting a printer daemon that connects
 +
to the iSeries and indicates it is ready for print jobs and converting the output received from the iSeries into
 +
a printable format.
 +
The first step is done by the lp5250d daemon. When lp5250d starts it connects to the specified iSeries
 +
and starts a writer with the name passed in the env.DEVNAME argument. lp5250d receives the printed output
 +
from the writer, but cannot print it directly. The data as sent from the iSeries is EBCDIC encoded and
 +
formatted for an iSeries printer (this is the *SCS parameter in the print file description). The data must be
 +
converted to ASCII and reformatted to something the destination printer can use.
 +
The conversion to ASCII and reformatting is the second step in printing iSeries data. This is usually
 +
done by one of three programs: scs2ascii, scs2pdf, and scs2ps. These programs are passed as a parameter
 +
to lp5250d as part of the outputcommand argument. lp5250d pipes the output sent to it from the writer
 +
to whatever command is passed in the outputcommand argument. It is also possible to directly output the
 +
EBCDIC print stream to a file. scs2ascii translates the EBCDIC encoded *SCS stream into plain ASCII
 +
text. scs2pdf does the same but outputs a PDF document. Likewise scs2ps outputs a postscript file.
 +
lp5250d can only print *SCS data at this time. This isn’t due to lp5250d itself, but rather to the fact
 +
that there isn’t at this time a translator for other output types. If such a translator existed lp5250d could
 +
use it by passing it on the outputcommand parameter.
 +
 +
9.2 Using lp5250d
 +
lp5250d is started from the command line like this:
 +
lp5250d env.DEVNAME=MYPRINT outputcommand="scs2ascii | lpr" as400.mydomain.com
 +
In this example MYPRINT is the name of the printer that you want to use on the iSeries. The outputcommand
 +
argument is passed a complete command, in this case "scs2ascii | lpr". Once again as400.mydomain.com
 +
is the fully qualified domain name of your iSeries.
 +
It is important that the parameter passed in the outputcommand argument be a complete command
 +
as lp5250d simply invokes whatever is passed here and pipes the iSeries output to it. As we saw in the
 +
preceding section this enables you to do whatever you want with the printed output sent from the iSeries.
 +
For example, if you want to simply send the printed output directly to a file without converting it to ASCII
 +
you could change the outputcommand argument to something like this:
 +
outputcommand="cat > /tmp/output.scs"
 +
The resulting file /tmp/output.scs would contain the data exactly as lp5250d received it from the iSeries.
 +
You could at this point print it out with a command like:
 +
cat /tmp/output.scs | scs2asii | lpr
 +
If you want to save the output to a file use scs2pdf or scs2ps with outputcommand. These commands
 +
format the printed output into Adobe Portable Document Format (PDF) and postscript respectively. scs2pdf
 +
creates searchable PDFs with the name given in the outputcommand argument. scs2ps can also be directed
 +
to a file, but is more commonly used to print to postscript printers.
 +
You can create dynamic filenames by placing ’$$’ in the filename given to outputcommand. The ’$$’
 +
will be replaced with the process ID of the command passed to outputcommand when the print job is run.
 +
Page 15
 +
 +
 +
TN5250 HOWTO Section 9: Printing With lp5250d
 +
 +
This doesn’t strictly gaurantee that the filename will always be unique as process IDs can wrap. To add the
 +
process ID to the filename use outputcommand like this:
 +
outputcommand="scs2pdf > /tmp/output$$.pdf"
 +
Another idea is to add the current date to the filename. This is done easily using the unix date command
 +
like so:
 +
outputcommand="scs2pdf > /tmp/output-‘ date +%m-%d-%H-%M-%S‘.pdf"
 +
 +
9.3 lp5250d and .tn5250rc
 +
You can save your lp5250d settings in $HOME/.tn5250rc just like you can with tn5250. To do so, create
 +
a new identifier to hold the settings. The new identifier can reference the same iSeries, but you will only use
 +
it with lp5250d. The syntax is the same as we used with tn5250, so our example is straightforward:
 +
asciiprint {
 +
host = as400.mydomain.com
 +
env.DEVNAME = MYPRINT
 +
outputcommand = scs2ascii | lpr
 +
}
 +
Then simply invoke lp5250d like this:
 +
lp5250d asciiprint
 +
 +
9.4 Specifying a printer message queue
 +
You can specify a message queue to receive printer related messages using the env.IBMMSGQNAME and
 +
env.IBMMSGQLIB arguments. This way you can direct messages such as form type changes to a given
 +
workstation. For example, if you want to send printer messages for printer MYPRINT to display DSP01
 +
you would make your .tn5250rc file look like this:
 +
asciiprint {
 +
host = as400.mydomain.com
 +
env.DEVNAME = MYPRINT
 +
outputcommand = scs2ascii | lpr
 +
env.IBMMSGQNAME = DSP01
 +
env.IBMMSGQLIB = *LIBL
 +
}
 +
 +
9.5 Using Host Print Transform
 +
Host Print Transform causes the iSeries to format the printed output to a specified printer before sending
 +
it to lp5250d. This is useful for printing complex spooled files like *AFPDS and *IPDS print files on printers
 +
that don’t support those languages. The drawback is that Host Print Transform can only be used to actually
 +
print and not for writing to a file. Since the print stream is received as a printer language it is really only
 +
useful when sent directly to a printer. The formatting programs scs2pdf and scs2ps don’t understand printer
 +
language and therefore can’t be used to create those types of documents from complex printer ouput.
 +
Page 16
 +
 +
 +
TN5250 HOWTO Section 9: Printing With lp5250d
 +
 +
The list of printers that Host Print Transform can use is found by entering the OS/400 command
 +
CRTDEVPRT and pressing F4. Look for the list of available “manufacturer types and models” in the
 +
MFRTYPMDL parameter. A complete list of available printers for an iSeries running V5R1 is listed in the
 +
appendix.
 +
Host Print Transform is usually used in conjuction with scs2ascii which simply escapes the printer
 +
control language and translates only the text. The result is then piped to lpr. Host Print Transform is
 +
specified using the env.IBMMFRTYPMDL argument. Changing the .tn5250rc file to use Print Transform to
 +
output to a Hewlett-Packard LaserJet 4 printer is simple:
 +
asciiprint {
 +
host = as400.mydomain.com
 +
env.DEVNAME = MYPRINT
 +
outputcommand = scs2ascii | lpr
 +
env.IBMMSGQNAME = DSP01
 +
env.IBMMSGQLIB = *LIBL
 +
env.IBMMFRTYPMDL = *HP4
 +
}
 +
 +
9.6 Defining printer languages using workstation customization
 +
Workstation customization (WSCST) is a method to define a printer language using the Host Print
 +
Transform mechanism. If none of the available printers listed on the CRTDEVPRT command as described
 +
in the previous subsection meets your needs then you can define a custom object to use with the
 +
env.IBMMFRTYPMDL argument. WSCST objects are specified using the env.IBMMFRTYPMDL argument, just
 +
as Host Print Transform, and env.IBMWSCSTNAME and env.IBMWSCSTLIB. To use workstation customization
 +
with the standard IBM *SCS to ASCII translator you would use:
 +
env.IBMMFRTYPMDL = *WSCST
 +
env.IBMWSCSTNAME = QWPDEFAULT
 +
env.IBMWSCSTLIB = *LIBL
 +
This has the same effect as using scs2ascii without any other arguments.
 +
To create your own printer language definition you can copy the IBM supplied definitions for *HP4
 +
and then change those. Use the following OS/400 command to retrieve the *HP4 definitions into a member
 +
called HP4 in source file QTXTSRC in library MYLIB:
 +
RTVWSCST DEVTYPE(*TRANSFORM) MFRTYPMDL(*HP4) SRCFILE(MYLIB/QTXTSRC) SRCMBR(HP4)
 +
Now edit the HP4 member of MYLIB/QTXTSRC to suit your needs. Once you have finished making your
 +
changes create the WSCST object with this OS/400 command:
 +
CRTWSCST WSCST(MYLIB/MYWSCST) SRCFILE(MYLIB/QTXTRC) SRCMBR(HP4)
 +
Once that is complete you can reference the new object like this:
 +
env.IBMMFRTYPMDL = *WSCST
 +
env.IBMWSCSTNAME = MYWSCST
 +
env.IBMWSCSTLIB = MYLIB
 +
Page 17
 +
 +
 +
TN5250 HOWTO Section 9: Printing With lp5250d
 +
 +
Adding this to .tn5250rc results in:
 +
asciiprint {
 +
host = as400.mydomain.com
 +
env.DEVNAME = MYPRINT
 +
outputcommand = scs2ascii | lpr
 +
env.IBMMSGQNAME = DSP01
 +
env.IBMMSGQLIB = *LIBL
 +
env.IBMMFRTYPMDL = *WSCST
 +
env.IBMWSCSTNAME = MYWSCST
 +
env.IBMWSCSTLIB = MYLIB
 +
}
 +
Page 18
 +
 +
 +
Section 10
 +
Appendix
 +
 +
10.1 Portuguese terminal key map
 +
This is a (nearly) complete keymap for Portugese. Some characters are missing due to current inabilities
 +
to print them. These ommisions are indicated by the words “not complete”.
 +
# pt.map
 +
# Baseado no portugues.map de lacyp@unicorn.it.wsu.edu 18-jun-1996
 +
# (tomado da distribuicao Mini-Linux). Correcoes de aeb (Andries Brouwer ?).
 +
#
 +
# Adicionado suporte para acentua¸c~ao por Carlos A M dos Santos,
 +
# <casantos@cpmet.ufpel.tche.br>
 +
#
 +
# 26-dez-1997
 +
# Adicionados coment´arios e corre¸c~oes.
 +
#
 +
# Este arquivo ´e distribu´ido sob os termos da GNU GPL vers~ao 2.
 +
#
 +
charset "iso-8859-1"
 +
keymaps 0-15
 +
keycode 0 =
 +
keycode 1 = Escape Escape
 +
alt keycode 1 = Meta Escape
 +
shift keycode 1 = Control q
 +
keycode 2 = one exclam onesuperior exclamdown
 +
alt keycode 2 = Meta one
 +
alt shift keycode 2 = Meta exclam
 +
keycode 3 = two quotedbl at twosuperior
 +
control keycode 3 = nul
 +
control shift keycode 3 = nul
 +
alt keycode 3 = Meta two
 +
alt shift keycode 3 = Meta quotedbl
 +
alt altgr keycode 3 = Meta at
 +
keycode 4 = three numbersign pound threesuperior
 +
control keycode 4 = Escape
 +
alt keycode 4 = Meta three
 +
alt shift keycode 4 = Meta numbersign
 +
keycode 5 = four dollar section
 +
control keycode 5 = Control backslash
 +
alt keycode 5 = Meta four
 +
alt shift keycode 5 = Meta dollar
 +
keycode 6 = five percent cent
 +
control keycode 6 = Control bracketright
 +
alt keycode 6 = Meta five
 +
alt shift keycode 6 = Meta percent
 +
keycode 7 = six ampersand
 +
alt keycode 7 = Meta six
 +
alt shift keycode 7 = Meta ampersand
 +
19
 +
TN5250 HOWTO Section 10: Appendix
 +
keycode 8 = seven slash braceleft
 +
alt keycode 8 = Meta seven
 +
alt shift keycode 8 = Meta slash
 +
alt altgr keycode 8 = Meta braceleft
 +
keycode 9 = eight parenleft bracketleft
 +
control keycode 9 = Delete
 +
control altgr keycode 9 = Escape
 +
alt keycode 9 = Meta eight
 +
alt shift keycode 9 = Meta parenleft
 +
alt altgr keycode 9 = Meta bracketleft
 +
keycode 10 = nine parenright bracketright
 +
alt keycode 10 = Meta nine
 +
alt shift keycode 10 = Meta parenright
 +
alt altgr keycode 10 = Meta bracketright
 +
keycode 11 = zero equal braceright
 +
alt keycode 11 = Meta zero
 +
alt shift keycode 11 = Meta equal
 +
alt altgr keycode 11 = Meta braceright
 +
keycode 12 = apostrophe question backslash
 +
alt keycode 12 = Meta apostrophe
 +
alt shift keycode 12 = Meta question
 +
keycode 13 = guillemotleft guillemotright
 +
keycode 14 = Delete Delete Delete
 +
alt keycode 14 = Meta Delete
 +
keycode 15 = Tab Tab
 +
alt keycode 15 = Meta Tab
 +
keycode 16 = q
 +
keycode 17 = w
 +
keycode 18 = e
 +
keycode 19 = r
 +
altgr keycode 19 = registered
 +
keycode 20 = t
 +
keycode 21 = y
 +
keycode 22 = u
 +
keycode 23 = i
 +
keycode 24 = o
 +
keycode 25 = p
 +
keycode 26 = plus asterisk dead diaeresis
 +
alt keycode 26 = Meta plus
 +
alt shift keycode 26 = Meta asterisk
 +
keycode 27 = dead acute dead grave acute grave
 +
control keycode 27 = nul
 +
alt keycode 27 = Meta apostrophe
 +
alt shift keycode 27 = Meta grave
 +
keycode 28 = Control k
 +
alt keycode 28 = Meta Control m
 +
keycode 29 = Control r
 +
keycode 30 = a
 +
keycode 31 = s
 +
keycode 32 = d
 +
keycode 33 = f
 +
keycode 34 = g
 +
keycode 35 = h
 +
Page 20
 +
 +
TN5250 HOWTO Section 10: Appendix
 +
 +
keycode 36 = j
 +
keycode 37 = k
 +
keycode 38 = l
 +
keycode 39 = +ccedilla +Ccedilla
 +
keycode 40 = masculine ordfeminine
 +
keycode 41 = backslash bar
 +
control keycode 41 = Control backslash
 +
alt keycode 41 = Meta backslash
 +
alt shift keycode 41 = Meta bar
 +
keycode 42 = Shift
 +
#keycode 42 = Control q
 +
keycode 43 = dead tilde dead circumflex asciitilde asciicircum
 +
control keycode 43 = nul
 +
control shift keycode 43 = Control asciicircum
 +
alt keycode 43 = Meta asciicircum
 +
keycode 44 = z
 +
keycode 45 = x
 +
keycode 46 = c
 +
keycode 47 = v
 +
keycode 48 = b
 +
keycode 49 = n
 +
keycode 50 = m
 +
keycode 51 = comma semicolon
 +
alt keycode 51 = Meta comma
 +
keycode 52 = period colon
 +
alt keycode 52 = Meta period
 +
keycode 53 = minus underscore
 +
control shift keycode 53 = Control underscore
 +
control keycode 53 = Delete
 +
alt keycode 53 = Meta minus
 +
alt shift keycode 53 = Meta underscore
 +
keycode 54 = Shift
 +
keycode 55 = KP Multiply
 +
keycode 56 = Alt
 +
keycode 57 = space space
 +
control keycode 57 = nul
 +
alt keycode 57 = Meta space
 +
keycode 58 = Caps Lock
 +
keycode 59 = F1 F13 Console 13
 +
control keycode 59 = F1
 +
alt keycode 59 = Console 1
 +
control alt keycode 59 = Console 1
 +
keycode 60 = F2 F14 Console 14
 +
control keycode 60 = F2
 +
alt keycode 60 = Console 2
 +
control alt keycode 60 = Console 2
 +
keycode 61 = F3 F15 Console 15
 +
control keycode 61 = F3
 +
alt keycode 61 = Console 3
 +
control alt keycode 61 = Console 3
 +
keycode 62 = F4 F16 Console 16
 +
control keycode 62 = F4
 +
Page 21
 +
 +
TN5250 HOWTO Section 10: Appendix
 +
 +
alt keycode 62 = Console 4
 +
control alt keycode 62 = Console 4
 +
keycode 63 = F5 F17 Console 17
 +
control keycode 63 = F5
 +
alt keycode 63 = Console 5
 +
control alt keycode 63 = Console 5
 +
keycode 64 = F6 F18 Console 18
 +
control keycode 64 = F6
 +
alt keycode 64 = Console 6
 +
control alt keycode 64 = Console 6
 +
keycode 65 = F7 F19 Console 19
 +
control keycode 65 = F7
 +
alt keycode 65 = Console 7
 +
control alt keycode 65 = Console 7
 +
keycode 66 = F8 F20 Console 20
 +
control keycode 66 = F8
 +
alt keycode 66 = Console 8
 +
control alt keycode 66 = Console 8
 +
keycode 67 = F9 F21 Console 21
 +
control keycode 67 = F9
 +
alt keycode 67 = Console 9
 +
control alt keycode 67 = Console 9
 +
keycode 68 = F10 F22 Console 22
 +
control keycode 68 = F10
 +
alt keycode 68 = Console 10
 +
control alt keycode 68 = Console 10
 +
keycode 69 = Num Lock
 +
keycode 70 = Scroll Lock Show Memory Show Registers
 +
control keycode 70 = Show State
 +
alt keycode 70 = Scroll Lock
 +
keycode 71 = KP 7
 +
alt keycode 71 = Ascii 7
 +
keycode 72 = KP 8
 +
alt keycode 72 = Ascii 8
 +
keycode 73 = KP 9
 +
alt keycode 73 = Ascii 9
 +
keycode 74 = KP Subtract
 +
keycode 75 = KP 4
 +
alt keycode 75 = Ascii 4
 +
keycode 76 = KP 5
 +
alt keycode 76 = Ascii 5
 +
keycode 77 = KP 6
 +
alt keycode 77 = Ascii 6
 +
keycode 78 = KP Add
 +
keycode 79 = KP 1
 +
alt keycode 79 = Ascii 1
 +
keycode 80 = KP 2
 +
alt keycode 80 = Ascii 2
 +
keycode 81 = KP 3
 +
alt keycode 81 = Ascii 3
 +
keycode 82 = KP 0
 +
alt keycode 82 = Ascii 0
 +
keycode 83 = KP Period
 +
Page 22
 +
 +
TN5250 HOWTO Section 10: Appendix
 +
 +
altgr control keycode 83 = Boot
 +
control alt keycode 83 = Boot
 +
keycode 84 = Last Console
 +
keycode 85 =
 +
keycode 86 = less greater backslash
 +
alt keycode 86 = Meta less
 +
alt shift keycode 86 = Meta greater
 +
keycode 87 = F11 F23 Console 23
 +
control keycode 87 = F11
 +
alt keycode 87 = Console 23
 +
control alt keycode 87 = Console 11
 +
keycode 88 = F12 F24 Console 24
 +
control keycode 88 = F12
 +
alt keycode 88 = Console 24
 +
control alt keycode 88 = Console 12
 +
keycode 89 =
 +
keycode 90 =
 +
keycode 91 =
 +
keycode 92 =
 +
keycode 93 =
 +
keycode 94 =
 +
keycode 95 =
 +
keycode 96 = KP Enter
 +
keycode 97 = Return
 +
#
 +
# Comente a linha anterior e remova o coment´ario da linha a seguir para
 +
# atribuir a fun¸c~ao Compose `a tecla Control direita.
 +
#
 +
#keycode 97 = Compose
 +
keycode 98 = KP Divide
 +
keycode 99 = Control backslash
 +
control keycode 99 = Control backslash
 +
alt keycode 99 = Control backslash
 +
keycode 100 = AltGr
 +
keycode 101 = Break
 +
#
 +
# Find ´e um sin^onimo para Home no console, o que n~ao ocorre no X.
 +
#
 +
keycode 102 = Find
 +
keycode 103 = Up
 +
keycode 104 = Prior
 +
shift keycode 104 = Scroll Backward
 +
keycode 105 = Left
 +
alt keycode 105 = Decr Console
 +
keycode 106 = Right
 +
alt keycode 106 = Incr Console
 +
#
 +
# Select ´e um sin^onimo para End no console, o que n~ao ocorre no X.
 +
#
 +
Page 23
 +
 +
TN5250 HOWTO Section 10: Appendix
 +
 +
keycode 107 = Select
 +
keycode 108 = Down
 +
keycode 109 = Next
 +
shift keycode 109 = Scroll Forward
 +
keycode 110 = Insert
 +
keycode 111 = Remove
 +
altgr control keycode 111 = Boot
 +
control alt keycode 111 = Boot
 +
keycode 112 =
 +
keycode 113 =
 +
keycode 114 =
 +
keycode 115 =
 +
keycode 116 =
 +
keycode 117 =
 +
keycode 118 =
 +
keycode 119 =
 +
keycode 120 =
 +
keycode 121 =
 +
keycode 122 =
 +
keycode 123 =
 +
keycode 124 =
 +
keycode 125 =
 +
#
 +
# Para os teclados padr~ao "Windows 95" podemos atribuir a fun¸c~ao Compose
 +
# `a tecla "janela direita":
 +
keycode 126 = Compose
 +
keycode 127 =
 +
string F1 = "\033[[A"
 +
string F2 = "\033[[B"
 +
string F3 = "\033[[C"
 +
string F4 = "\033[[D"
 +
string F5 = "\033[[E"
 +
string F6 = "\033[17~"
 +
string F7 = "\033[18~"
 +
string F8 = "\033[19~"
 +
string F9 = "\033[20~"
 +
string F10 = "\033[21~"
 +
string F11 = "\033[23~"
 +
string F12 = "\033[24~"
 +
string F13 = "\033[25~"
 +
string F14 = "\033[26~"
 +
string F15 = "\033[28~"
 +
string F16 = "\033[29~"
 +
string F17 = "\033[31~"
 +
string F18 = "\033[32~"
 +
string F19 = "\033[33~"
 +
string F20 = "\033[34~"
 +
string Find = "\033[1~"
 +
string Insert = "\033[2~"
 +
string Remove = "\033[3~"
 +
string Select = "\033[4~"
 +
Page 24
 +
 +
TN5250 HOWTO Section 10: Appendix
 +
 +
string Prior = "\033[5~"
 +
string Next = "\033[6~"
 +
#alterado por daniel
 +
string F21 = "\033[35~"
 +
string F22 = "\033[36~"
 +
string F23 = "\033[37~"
 +
string F24 = "\033[38~"
 +
string F25 = ""
 +
string F26 = ""
 +
#
 +
# Se quisermos o mesmo comportamento do X (ou de um terminal VT-*,
 +
# para ser mais exato) podemos usar as defini¸c~oes seguintes.
 +
# Cuidado! Isso pode confundir algumas aplica¸c~oes.
 +
#
 +
# Observe que no console Home ´e apenas um sin^onimo para Find, assim
 +
# como End ´e para Select.
 +
# string Home = "\033[7~"
 +
# string End = "\033[8~"
 +
# TODAS a defini¸c~oes a seguir s~ao necess´arias, pois tendo sido definida
 +
# uma regra de composi¸c~ao, todas as outras s~ao perdidas!
 +
compose ’‘’ ’A’ to ’`A’
 +
compose ’‘’ ’a’ to ’`a’
 +
compose ’\’’ ’A’ to ’´A’
 +
compose ’\’’ ’a’ to ’´a’
 +
compose ’^’ ’A’ to ’^A’
 +
compose ’^’ ’a’ to ’^a’
 +
compose ’~’ ’A’ to ’~A’
 +
compose ’~’ ’a’ to ’~a’
 +
compose ’"’ ’A’ to ’¨A’
 +
compose ’"’ ’a’ to ’¨a’
 +
compose ’O’ ’A’ to ’°A’
 +
compose ’o’ ’a’ to ’°a’
 +
compose ’0’ ’A’ to ’°A’
 +
compose ’0’ ’a’ to ’°a’
 +
compose ’A’ ’A’ to ’°A’
 +
compose ’a’ ’a’ to ’°a’
 +
compose ’A’ ’E’ to ’Æ’
 +
compose ’a’ ’e’ to ’æ’
 +
compose ’,’ ’C’ to ’C¸’
 +
compose ’,’ ’c’ to ’¸c’
 +
compose ’’’ ’C’ to ’C¸’
 +
compose ’’’ ’c’ to ’¸c’
 +
compose ’‘’ ’E’ to ’`E’
 +
compose ’‘’ ’e’ to ’`e’
 +
compose ’\’’ ’E’ to ’´E’
 +
compose ’\’’ ’e’ to ’´e’
 +
compose ’^’ ’E’ to ’^E’
 +
compose ’^’ ’e’ to ’^e’
 +
compose ’"’ ’E’ to ’¨E’
 +
compose ’"’ ’e’ to ’¨e’
 +
compose ’‘’ ’I’ to ’`I’
 +
compose ’‘’ ’i’ to ’`i’
 +
Page 25
 +
 +
TN5250 HOWTO Section 10: Appendix
 +
 +
compose ’\’’ ’I’ to ’´I’
 +
compose ’\’’ ’i’ to ’´i’
 +
compose ’^’ ’I’ to ’^I’
 +
compose ’^’ ’i’ to ’^i’
 +
compose ’"’ ’I’ to ’¨I’
 +
compose ’"’ ’i’ to ’¨i’
 +
compose ’-’ ’D’ to ’’not complete
 +
compose ’-’ ’d’ to ’’not complete
 +
compose ’~’ ’N’ to ’~N’
 +
compose ’~’ ’n’ to ’~n’
 +
compose ’‘’ ’O’ to ’`O’
 +
compose ’‘’ ’o’ to ’`o’
 +
compose ’\’’ ’O’ to ’´O’
 +
compose ’\’’ ’o’ to ’´o’
 +
compose ’^’ ’O’ to ’^O’
 +
compose ’^’ ’o’ to ’^o’
 +
compose ’~’ ’O’ to ’~O’
 +
compose ’~’ ’o’ to ’~o’
 +
compose ’"’ ’O’ to ’¨O’
 +
compose ’"’ ’o’ to ’¨o’
 +
compose ’/’ ’O’ to ’Ø’
 +
compose ’/’ ’o’ to ’ø’
 +
compose ’‘’ ’U’ to ’`U’
 +
compose ’‘’ ’u’ to ’`u’
 +
compose ’\’’ ’U’ to ’´U’
 +
compose ’\’’ ’u’ to ’´u’
 +
compose ’^’ ’U’ to ’^U’
 +
compose ’^’ ’u’ to ’^u’
 +
compose ’"’ ’U’ to ’¨U’
 +
compose ’"’ ’u’ to ’¨u’
 +
compose ’\’’ ’Y’ to ’´Y’
 +
compose ’\’’ ’y’ to ’´y’
 +
compose ’T’ ’H’ to ’’not complete
 +
compose ’t’ ’h’ to ’’not complete
 +
compose ’s’ ’s’ to ’ß’
 +
compose ’"’ ’y’ to ’¨y’
 +
compose ’s’ ’z’ to ’ß’
 +
compose ’i’ ’j’ to ’¨y’
 +
 +
10.2 Key map using XTerm
 +
This is a sample key map using XTerm. This example can either replace the default keymap installed
 +
by tn5250 or be appended to your .Xdefaults (or .Xresources) file in your home directory.
 +
xt5250*VT100.Translations: #override\n\
 +
<Key>KP Add: string("\030") \n\
 +
<Key>KP Subtract: string("\033M") \n\
 +
<Key>KP Multiply: string("*") \n\
 +
<Key>KP Divide: string("/") \n\
 +
<Key>KP Enter: string("\033OM") \n\
 +
<Key>BackSpace: string("\177") \n\
 +
<Key>End: string("\033[4~") \n\
 +
<Key>KP 0: string("0") \n\
 +
Page 26
 +
 +
TN5250 HOWTO Section 10: Appendix
 +
 +
<Key>KP 1: string("1") \n\
 +
<Key>KP 2: string("2") \n\
 +
<Key>KP 3: string("3") \n\
 +
<Key>KP 4: string("4") \n\
 +
<Key>KP 5: string("5") \n\
 +
<Key>KP 6: string("6") \n\
 +
<Key>KP 7: string("7") \n\
 +
<Key>KP 8: string("8") \n\
 +
<Key>KP 9: string("9") \n\
 +
<Key>Scroll Lock: string("\033H") \n\
 +
~Shift<Key>Print: string("\020") \n\
 +
<Key>Control L: string("\022") \n\
 +
<Key>Escape: string("\001") \n\
 +
Shift <Key>Print: string("\003") \n\
 +
~Shift <Key>F1: string("\0331") \n\
 +
~Shift <Key>F2: string("\0332") \n\
 +
~Shift <Key>F3: string("\0333") \n\
 +
~Shift <Key>F4: string("\0334") \n\
 +
~Shift <Key>F5: string("\0335") \n\
 +
~Shift <Key>F6: string("\0336") \n\
 +
~Shift <Key>F7: string("\0337") \n\
 +
~Shift <Key>F8: string("\0338") \n\
 +
~Shift <Key>F9: string("\0339") \n\
 +
~Shift <Key>F10: string("\0330") \n\
 +
~Shift <Key>F11: string("\033-") \n\
 +
~Shift <Key>F12: string("\033=") \n\
 +
Shift <Key>F1: string("\033!") \n\
 +
Shift <Key>F2: string("\033@") \n\
 +
Shift <Key>F3: string("\033#") \n\
 +
Shift <Key>F4: string("\033$") \n\
 +
Shift <Key>F5: string("\033%") \n\
 +
Shift <Key>F6: string("\033^") \n\
 +
Shift <Key>F7: string("\033&") \n\
 +
Shift <Key>F8: string("\033*") \n\
 +
Shift <Key>F9: string("\033(") \n\
 +
Shift <Key>F10: string("\033)") \n\
 +
Shift <Key>F11: string("\033 ") \n\
 +
Shift <Key>F12: string("\033+") \n\
 +
Shift <Key>Tab: string("\033[Z") \n\
 +
Shift <Key>Left: string("\033\010") \n\
 +
Shift <Key>Right: string("\033\025") \n\
 +
Shift <Key>Home: string("\033\006") \n\
 +
<Key>Home: string("\033[1~") \n\
 +
~Shift <Key>Delete: string("\033[3~") \n\
 +
~Shift <Key>Insert: string("\033[2~")
 +
 +
10.3 Complete .Xdefaults file with custom colors, fonts, and key map
 +
This is the complete .Xdefaults file I use with xt5250. I made the cursor gold and the mouse pointer
 +
yellow. I selected a fixed 7x13 font. I also forced xterm to leave off the left scroll bar and indicated that
 +
this is not a login shell.
 +
xt5250*cursorColor : gold
 +
xt5250*pointerColor : yellow
 +
Page 27
 +
 +
TN5250 HOWTO Section 10: Appendix
 +
 +
xt5250*Font : 7x13
 +
xt5250*loginShell : off
 +
xt5250*scrollBar : off
 +
xt5250*VT100.Translations: #override\n\
 +
<Key>KP Enter: string("\033OM") \n\
 +
<Key>BackSpace: string("\177") \n\
 +
<Key>End: string("\033[4~") \n\
 +
<Key>Scroll Lock: string("\033H") \n\
 +
~Shift<Key>Print: string("\020") \n\
 +
<Key>Escape: string("\001") \n\
 +
Shift <Key>Print: string("\003") \n\
 +
~Shift <Key>F1: string("\033[[A") \n\
 +
~Shift <Key>F2: string("\033[[B") \n\
 +
~Shift <Key>F3: string("\033[[C") \n\
 +
~Shift <Key>F4: string("\033[[D") \n\
 +
~Shift <Key>F5: string("\033[[E") \n\
 +
~Shift <Key>F6: string("\033[17~") \n\
 +
~Shift <Key>F7: string("\033[18~") \n\
 +
~Shift <Key>F8: string("\033[19~") \n\
 +
~Shift <Key>F9: string("\033[20~") \n\
 +
~Shift <Key>F10: string("\033[21~") \n\
 +
~Shift <Key>F11: string("\033[23~") \n\
 +
~Shift <Key>F12: string("\033[24~") \n\
 +
Shift <Key>F1: string("\033[25~") \n\
 +
Shift <Key>F2: string("\033[26~") \n\
 +
Shift <Key>F3: string("\033[28~") \n\
 +
Shift <Key>F4: string("\033[29~") \n\
 +
Shift <Key>F5: string("\033[31~") \n\
 +
Shift <Key>F6: string("\033[32~") \n\
 +
Shift <Key>F7: string("\033[33~") \n\
 +
Shift <Key>F8: string("\033[34~") \n\
 +
Shift <Key>F9: string("\033[35~") \n\
 +
Shift <Key>F10: string("\033[36~") \n\
 +
Shift <Key>F11: string("\033[37~") \n\
 +
Shift <Key>F12: string("\033[38~") \n\
 +
Shift <Key>Tab: string("\033[Z") \n\
 +
Shift <Key>Left: string("\033\010") \n\
 +
Shift <Key>Right: string("\033\025") \n\
 +
Shift <Key>Home: string("\033\006") \n\
 +
<Key>Home: string("\033[1~") \n\
 +
~Shift <Key>Delete: string("\033[3~") \n\
 +
~Shift <Key>Insert: string("\033[2~")
 +
 +
10.4 Sample tn5250rc
 +
This is a portion of the .tn5250rc file I use. Only the hostnames, usernames, and passwords have
 +
been changed.
 +
host1 {
 +
host = host1.mydomain.com
 +
env.TERM = IBM-3477-FC
 +
env.USER = MYUSER
 +
28
 +
TN5250 HOWTO Section 10: Appendix
 +
env.IBMSUBSPW = MYPASSWORD
 +
+local print key
 +
}
 +
host2 {
 +
host = ssl:host2.mydomain.com
 +
env.TERM = IBM-3477-FC
 +
+local print key
 +
+ssl verify server
 +
ssl ca file = /home/user/host2/host2.cert
 +
}
 +
host2-print {
 +
host = ssl:host2.mydomain.com
 +
env.DEVNAME = PRTASCII
 +
env.IBMMFRTYPMDL = *IBM3116
 +
+ssl verify server
 +
ssl ca file = /home/user/host2/host2.cert
 +
outputcommand = scs2ascii | lpr
 +
}
 +
 +
10.5 Possible values for use with Host Print Transform on V5R1
 +
Below are the possible values that can be used with Host Print Transform on a V5R1 iSeries.
 +
*IBM2380 *IBM4019
 +
*IBM2381 *IBM4019HP
 +
*IBM2390 *IBM4029
 +
*IBM2391 *IBM4029HP
 +
*IBM3112 *IBM4037
 +
*IBM3116 *IBM4039HP
 +
*IBM3130 *IBM4070
 +
*IBM3812 *IBM4070EP
 +
*IBM3816 *IBM4072
 +
*IBM3912HP *IBM4076
 +
*IBM3916HP *IBM42011
 +
*IBM39302 *IBM42012
 +
*IBM39303 *IBM42013
 +
*IBM42021 *IBM4244ASF
 +
*IBM42022 *IBM4244DUAL
 +
*IBM42023 *IBM4247MAN
 +
*IBM42071 *IBM4247ASF
 +
*IBM42072 *IBM4247DUAL
 +
*IBM42081 *IBM4308
 +
*IBM42082 *IBM4312
 +
*IBM4212 *IBM4317
 +
*IBM4216 *IBM4320
 +
*IBM4226 *IBM4322
 +
*IBM4230 *IBM4324
 +
*IBM4232 *IBM4332
 +
*IBM4244MAN *IBM4340
 +
Page 29
 +
 +
TN5250 HOWTO Section 10: Appendix
 +
 +
*IBM47121 *IBMPAGESNPB
 +
*IBM47122 *IBMPAGES300
 +
*IBM47221 *IBMPAGES300NPB
 +
*IBM47222 *IBM6400
 +
*IBM4770 *IBM6400EP
 +
*IBM4912 *IBM6404
 +
*IBM5152 *IBM6404EP
 +
*IBM5201 *IBM6408
 +
*IBM5202 *IBM6408EP
 +
*IBM5204 *IBM6412
 +
*IBM5216 *IBM6412EP
 +
*IBM5575 *INFOPRINT12
 +
*IBMPAGES *INFOPRINT20
 +
*INFOPRINT21 *HPIIISI
 +
*INFOPRINT32 *HP4
 +
*INFOPRINT40 *HP5
 +
*INFOPRINT2000 *HP5SI
 +
*INFOPRINT8C *HP6
 +
*CPQPM15 *HP1100
 +
*CPQPM20 *HP4000
 +
*HPII *HP5000
 +
*HPIID *HP8000
 +
*HPIIP *HPDBCS
 +
*HPIII *HPCOLORLJ
 +
*HPIIID *HP1200C
 +
*HPIIIP *HP1600C
 +
*HP310 *LEXOPTRAT
 +
*HP320 *LEXOPTRAW
 +
*HP500 *LEX2380
 +
*HP520 *LEX2381
 +
*HP540 *LEX2390
 +
*HP550C *LEX2391
 +
*HP560C *LEX4227
 +
*HPPAINT *EPAP2250
 +
*LEXOPTRA *EPAP3250
 +
*LEXOPTRAC *EPAP5000
 +
*LEXOPTRAN *EPAP5500
 +
*LEXOPTRAS *EPDFX5000
 +
*LEXOPTRASC *EPDFX8000
 +
*EPFX850 *EPEPL7000
 +
*EPFX870 *EPEPL8000
 +
*EPFX1170 *ESCPDBCS
 +
*EPLQ510 *NECP2
 +
*EPLQ570 *NECP2200
 +
*EPLQ860 *NECP2200XE
 +
*EPLQ870 *NECP5200
 +
*EPLQ1070 *NECP5300
 +
*EPLQ1170 *NECP6200
 +
*EPLQ2550 *NECP6300
 +
*EPLX810 *NECPCPR201
 +
*EPSQ870 *CANLIPS3
 +
*EPSQ1170 *CANLIPS3NPB
 +
*NONE *OKI3410
 +
Page 30
 +
 +
TN5250 HOWTO Section 10: Appendix
 +
 +
*OKI184IBM *PAN1123EP
 +
*OKI320IBM *PAN1124EP
 +
*OKI321IBM *PAN1124IEP
 +
*OKI390IBM *PAN1180EP
 +
*OKI391IBM *PAN1180IEP
 +
*OKI393IBM *PAN1191EP
 +
*OKI590IBM *PAN1624EP
 +
*OKI591IBM *PAN1654EP
 +
*OKI400 *PAN1695EP
 +
*OKI800 *PAN2123EP
 +
*OKI810 *PAN2124EP
 +
*OKI820 *PAN2180EP
 +
*PAN2624EP *WSCSTLEGAL
 +
*PAN4410HP *WSCSTEXECUTIVE
 +
*PAN4420HP *WSCSTLEDGER
 +
*PAN4430HP *WSCSTA3
 +
*PAN4450IHP *WSCSTA4
 +
*PAN4451HP *WSCSTA5
 +
*XRX4215MRP *WSCSTB4
 +
*XRX4219MRP *WSCSTB5
 +
*XRX4220MRP *WSCSTCONT80
 +
*XRX4230MRP *WSCSTCONT132
 +
*XRX4235 *WSCSTNONE
 +
*XRX4700II *WSCST
 +
*WSCSTLETTER
 +
Page 31
 +
</pre>
 +
 +
==External links==
 +
*Official website -- http://tn5250.sourceforge.net/
 +
*X5250 -- X11 implementation using lib5250 -- http://www.chowhouse.com/~james/x5250/
 +
*TN5250J -- -- Java implementation -- http://tn5250j.sf.net
 +
 +
==Categories==
 
[[Category:5250 Emulators]]
 
[[Category:5250 Emulators]]
 
[[Category:Open Source]]
 
[[Category:Open Source]]
[http://tn5250.sourceforge.net/ tn5250] is a 5250 emulator that runs on several platforms.  tn5250 has several front ends, each appropriate for a given platform.  The tn5250 project also produces lib5250, a backend used by several emulators that provides the 5250 host communication.
+
[[Category:TCP/IP]]
 
 
There is extensive documentation for tn5250 in the [http://www.chowhouse.com/~james/tn5250-HOWTO.pdf tn5250 HOWTO].
 

Latest revision as of 17:43, 3 March 2015

Tn5250 is a 5250 emulator that runs on several platforms. tn5250 has several front ends, each appropriate for a given platform. The tn5250 project also produces lib5250, a backend used by several emulators that provides the 5250 host communication.

tn5250 also provides print services using the lp5250d daemon and several print filters. Using lp5250d and these filters printed output can be sent to any printer or converted to various formats including Adobe PDF, Adobe Postscript, plain text, or even raw SCS. lp5250d can be configured to use Host Print Transform to support any iSeries printer.

There is extensive documentation for tn5250 in the tn5250 HOWTO. tn5250 is licensed under the LGPL license.

The HOWTO link seems broken. Here is a full text copy. (Don't know how to upload a pdf.)


TN5250 HOWTO
5250 Emulation For Connecting to IBM iSeries Hosts
James Rich
Salt Lake City, Utah
United States of America
Copyright 2003 James Rich

Contents
Introduction . .  . . . 1
Preface . . . . . . . . 1
Copyright information . 1
Disclaimer  . . . . . . 1
Document version  . . . 1
Where to find more information 2
Credits . . . . . . . . . .  . 2
Feedback . . . . . . . . . . . 2
Translations . . . . . . . . . 2
Obtaining and installing the software 3
Where to get the software . . . . . . 3
Configuring the build . . . . . . . . 3
Compiling and installing the software 3
Using tn5250 . . . . .  4
Two ways to run tn5250  4
Macros . . . . . . . .  4
Configuration . . . . . . . 5
tn5250rc configuration file 5
Defining host systems . . . 5
Display types . . . . . 6
Device names . . . . .  6
Console mode underlines 6
Translation maps . . .  6
Automatic login 7
Local printing 8
Key mapping . . . . . 9
Two types of key maps 9
System-wide key map . 9
User key map. . . . . 9
Changing the key map  9
Using fonts  . . . . . . . . 11
Font selection in tn5250rc . 11
Font selection in .Xdefaults 11
Changing screen colors 12
Using tn5250 with SSL . . . . . . . . . . . 13
Configuring the Digital Certificate Manager 13
Enabling SSL support in tn5250  . . . . . . 13
Printing with lp5250d 15
Basic structure . . . 15
Using lp5250d . . . . 15
lp5250d and .tn5250rc  . . . . . . 16
Specifying a printer message queue 16
Using Host Print Transform . . . . 16
Defining printer languages using workstation customization 17
Appendix . .. . . . . . . . . 19
Portuguese terminal key map . 19
Key map using XTerm 26
Complete .Xdefaults file with custom colors, fonts, and key map 27
Sample tn5250rc 28
Possible values for use with Host Print Transform on V5R1 29

Section 1
Introduction

1.1 Preface
tn5250 is a 5250 connection package for communication with IBM iSeries hosts. tn5250 includes 5250
display emulation and printing. This HOWTO is written primarily for the GNU/Linux version of tn5250,
though other unix-like systems will likely have much in common. The Windows version of tn5250 is less
similar, though much useful information can be obtained by the astute reader.

1.2 Copyright information
This document is copyrighted (c) 2003 James Rich and is distributed under the terms of the Linux
Documentation Project (LDP) license, stated below.
Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux
HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or
electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed
and encouraged; however, the author would like to be notified of any such distributions.
All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must
be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and
impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain
conditions; please contact the Linux HOWTO coordinator at the address given below.
In short, we wish to promote dissemination of this information through as many channels as possible.
However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any
plans to redistribute the HOWTOs.
If you have any questions, please contact linux-howto@metalab.unc.edu.

1.3 Disclaimer
No liability for the contents of this documents can be accepted. Use the concepts, examples and other
content at your own risk. As this is a new edition of this document, there may be errors and inaccuracies,
that may of course be damaging to your system. Proceed with caution, and although this is highly unlikely,
the author(s) do not take any responsibility for that.
All copyrights are held by their by their respective owners, unless specifically noted otherwise. Use of a
term in this document should not be regarded as affecting the validity of any trademark or service mark.
Naming of particular products or brands should not be seen as endorsements.
You are strongly recommended to take a backup of your system before major installation and backups
at regular intervals.

1.4 Document version
This is version 1.1a of the tn5250 HOWTO. The newest version of this HOWTO is available at
ftp.chowhouse.com/pub/tn5250. Currently this HOWTO is only available in TEX format, Adobe Portable
Document Format (PDF), and Postscript. Other formats will be made available in the future.
Page 1


TN5250 HOWTO Section 1: Introduction
1.5 Where to find more information
More information is on the tn5250 website at http://tn5250.sourceforge.net/. There is also a mailing
list dedicated to the tn5250 project. In order to send email to the mailing list, you must be subscribed.
Subscribing is easy. Just go to http://lists.midrange.com/mailman/listinfo/linux5250 and fill in the required
information. The list has fairly low traffic and the people there are friendly and helpful.

1.6 Credits
Thanks to Michael Madore, Jason Felice, Carey Evans, Scott Klement, Rich Duzenbury, Frank Richter,
Roger Bowler, Ron Colcernian, Jan Echternach, Colin McCormack, Dave McKenzie, Peter Schlaile, William
J. Suetholz, Jean-Marie Guenebaud, Martin Rowe, Daniel Teixeira, and Steven Kurylo for making tn5250
possible and their assistance in creating this document.
Thanks also to David Gibbs and midrange.com, and sourceforge.net for providing resources related to
tn5250’s development.

1.7 Feedback
Feedback is welcome for this document. Without your submissions and input, this document wouldn’t
exist. Please send your additions, comments and criticisms to james@eaerich.com.

1.8 Translations
No translations exist at this time. If someone would like to submit a translation please contact me at
james@eaerich.com.
Page 2

Section 2
Obtaining and Installing the Software

2.1 Where to get the software
The latest releases of the software can be obtained from the SourceForge tn5250 project homepage at
http://tn5250.sourceforge.net/. There are tarballs available as well as CVS access.
You can download the tarball at
http://prdownloads.sourceforge.net/tn5250/.
To get the latest code you can download the CVS repository by using the following commands:
cvs -d :pserver:anonymous@cvs.tn5250.sourceforge.net:/cvsroot/tn5250 login
At the password prompt, hit enter
cvs -z3 -d :pserver:anonymous@cvs.tn5250.sourceforge.net:/cvsroot/tn5250 checkout tn5250

2.2 Configuring the build
After downloading the source there are two ways to build it, depending on whether you downloaded a
tarball or checked it out from CVS. If you checked out the code from CVS follow these instructions to build
the code:
cd tn5250
./autogen.sh
./configure
If you downloaded a tarball the steps are almost exactly the same:
cd tn5250-<version> where <version> is the release version
./configure
There are two important arguments to the ./configure script: --prefix and --with-ssl. By default
the software will be installed in /usr/local. You can choose a different installation directory when you
compile by using ./configure with the --prefix argument. It is important to remember what directory
you specify here as key maps will be installed under this directory. If you want SSL support make sure you
have OpenSSL installed and pass the --with-ssl argument to ./configure. For example:
./configure --prefix=/usr --with-ssl
Will configure the build to install in /usr with SSL support.

2.3 Compiling and installing the software
Once ./configure has run compile and install tn5250:
make
su
make install
Once make install is done you are ready to run tn5250.
Page 3


Section 3
Using tn5250

3.1 Two ways to run tn5250
After installation you have two ways to run tn5250: from the console and within an xterm. If you want
to run tn5250 from the console just use:
tn5250 as400.mydomain.com
where as400.mydomain.com is the fully qualified domain name of your iSeries. For those who run the X
Windows System there is also a script called xt5250 which will start tn5250 inside of an xterm. This script
is the preferred way to run tn5250 when using X. xt5250 sets a number of required configuration parameters
before running tn5250. You can start xt5250 by entering:
xt5250 as400.mydomain.com
where again as400.mydomain.com is the fully qualified domain name of your iSeries.

3.2 Macros
tn5250 has a macro feature that allows you to record a sequence of keystrokes and play that sequence
back at a later time. To begin recording a macro press Control-S followed by the function key you want to
use to replay the macro. Then enter the key sequence you want to record. When you are finished, press
Control-S again to stop recording. To replay the macro you recorded, press Control-W followed by the
function key you selected during the recording process.
The macros you record are stored in a file in your home directory called .tn5250macros. This is a plain
text file which means it can be easily edited to change your macros without having to rerecord them. Be
aware that you can only put up to 100 characters on a line. Macros are separated by two linefeeds and
identified by a function key identifier in square brackets.
Page 4

Section 4
Configuration

4.1 tn5250rc configuration file
From the previous section we saw that tn5250 can be started giving the fully qualified domain name of
the iSeries you want to connect to as an argument at the command prompt. This is not always ideal or the
easiest way to do things. Typically users want to connect to the same iSeries every time they use tn5250. It
would be nice if tn5250 could remember what host we want to work with and even set some preferences for
working with that host.
tn5250 uses two files to remember such settings: a system-wide configuration file and a per user configuration
file. The system-wide configuration file is $PREFIX/etc/tn5250rc where $PREFIX is the value
of the ./configure option --prefix when the program was compiled (as discussed in subsection 2.2).
Configuration options that affect all users should be placed in this file.
Each user can also define their own configuration in the file .tn5250rc in their home directory. It is
probably best to put most settings in this file rather than the system-wide configuration file, as most users
will probably have their own way of doing things. And if a mistake is made and the .tn5250rc file becomes
unusable it can just be deleted without adversely affecting the operation of tn5250.
The syntax of the file is fairly straightforward. Options are set using a parameter = value syntax or
by a simple boolean +feature type syntax:
identifier {
parameter = value
+feature
. . .
}

4.2 Defining host systems
If you want to connect to a host called as400.mydomain.com you would create a minimal .tn5250rc file
that looks like this:
as400 {
host = as400.mydomain.com
}
Now you can just type:
tn5250 as400
at the command line.
Any number of hosts may be defined in the .tn5250rc file.
Page 5


TN5250 HOWTO Section 4: Configuration

4.3 Display types
The display type that you want to emulate is set using the env.TERM parameter. The supported display
types are listed in the tn5250 man page. The most common display type to emulate is the IBM-3477-FC.
You can specify the display type at the command prompt or add it to your .tn5250rc file. Adding the display
type to our sample .tn5250rc file gives the following:
as400 {
host = as400.mydomain.com
env.TERM = IBM-3477-FC
}

4.4 Device names
tn5250 supports device naming. This means that you can specify a device name to use when connecting
to the iSeries. Device names are specified using the env.DEVNAME argument. Device names may be up to
ten characters long. If you want to call your tn5250 session MYDISPLAY then you use:
env.DEVNAME = MYDISPLAY
Adding this to our .tn5250rc file results in:
as400 {
host = as400.mydomain.com
env.TERM = IBM-3477-FC
env.DEVNAME = MYDISPLAY
}

4.5 Console mode underlines
When running in console mode tn5250 by default does not display the underlines that are typically
part of most 5250 screens. This is because the console does not provide support for underlines. tn5250 can
emulate underlines when started with the +underscores argument. This argument should only be given
when running tn5250 at the console. When running tn5250 in an xterm (using xt5250) the +underscores
argument should not be used as xterm provides native support for them.
Adding +underscores to our .tn5250rc file looks like this:
as400 {
host = as400.mydomain.com
env.TERM = IBM-3477-FC
env.DEVNAME = MYDISPLAY
+underscores
}

4.6 Translation maps
Translation maps define how characters are mapped from EBCDIC to ASCII. You should use the
Page 6


TN5250 HOWTO Section 4: Configuration

same translation map as your iSeries has defined for interactive jobs. You should check to see what CCSID
your iSeries uses. The default for tn5250 is 37. CCSIDs on the iSeries are listed in Appendix G of
IBM manual SC41-5101-01, AS/400 National Language Support. This manual is available on the web at
http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/QB3AWC01/G.2.
Currently recognised values for the translation map are: 37, 256, 273, 277, 278, 280, 284, 285, 290, 297,
420, 424, 500, 870, 871, 875, 880, 905, and 1026. Most of these are translated to ISO-8859-1, also known as
Latin 1. For more information see the tn5250 man page.
Translation maps are specified using the map argument. To set the map to be 37 use:
map = 37
With this added to our .tn5250rc file we get:
as400 {
host = as400.mydomain.com
env.TERM = IBM-3477-FC
env.DEVNAME = MYDISPLAY
+underscores
map = 37
}

4.7 Automatic login
You can configure tn5250 to automatically log in to the iSeries using the env.USER, env.IBMSUBSPW,
env.IBMPROGRAM, env.IBMIMENU, and env.IBMCURLIB arguments. If you wanted to automatically log in as
user MYUSER with password MYPASSWORD you would set these arguments like this:
env.USER = MYUSER
and
env.IBMSUBSPW = MYPASSWORD
The env.IBMPROGRAM, env.IBMIMENU, and env.IBMCURLIB arguments refer to the respective signon fields for
program, menu, and current library. These have the same syntax as env.USER and env.IBMSUBSPW. Adding
these to our .tn5250rc file results in:
as400 {
host = as400.mydomain.com
env.TERM = IBM-3477-FC
env.DEVNAME = MYDISPLAY
+underscores
map = 37
env.USER = MYUSER
env.IBMSUBSPW = MYPASSWORD
env.IBMPROGRAM = MYPROGRAM
env.IBMMENU = MYMENU
env.IBMCURLIB = MYLIBRARY
}
Page 7


TN5250 HOWTO Section 4: Configuration

4.8 Local printing
Usually pressing the print key results in the screen being printed by the iSeries. This behaviour can be
changed to have the host on which tn5250 is running do the print screen by using the +local print key
argument. +local print key will cause a print screen to be sent to the default printer when the print screen
key is pressed (usually Control-P).
On unix-like systems there are a number of arguments associated with +local print key to control
how the resulting postscript is generated. These are described in the following table:
Argument Description Default
outputcommand=CMD command to pipe postscript to lpr
psfontsize 80=NUM size in dots of font in 80 columns 10
psfontsize 132=NUM size in dots of font in 132 columns 7
pagewidth=NUM width in dots of page 612
pagelength=NUM length in dots of page 792
leftmargin=NUM left margin of page in dots 18
topmargin=NUM top margin of page in dots 36
Adding +local print key to our .tn5250rc file looks like this:
as400 {
host = as400.mydomain.com
env.TERM = IBM-3477-FC
env.DEVNAME = MYDISPLAY
+underscores
map= 37
env.USER = MYUSER
env.IBMSUBSPW = MYPASSWORD
env.IBMPROGRAM = MYPROGRAM
env.IBMMENU = MYMENU
env.IBMCURLIB = MYLIBRARY
+local print key
}
Page 8


Section 5
Key Mapping

5.1 Two types of key maps
tn5250 uses one of two types of key maps depending on how it is invoked. The first type is the console
key map. When run from the console tn5250 uses a built in keymap. This keymap can be overridden using
the loadkeys command. Two key maps are included with the tn5250 package for use with the console:
us5250.map and uk5250.map. These files can be modified to suit your needs. The loadkeys command is
a linux-only command. On other platforms you will need to read the platform specific instructions. For
FreeBSD these can be found in the README file in the freebsd directory of the tn5250 source distribution.
Likewise for Solaris 7 there are instructions in the README.sun file in the sun directory. An example of a
Portugese key map for use with the console is included in the appendix.
The second type of key map is used when tn5250 is run using the xt5250 script in an xterm. This key
map uses the standard X11 methods for handling key strokes. Because of this it is more flexible and doesn’t
require using the loadkeys command. The sections that follow cover this second type of key map.

5.2 System-wide key map
The system key map file is stored in $PREFIX/share/tn5250/XTerm where $PREFIX is the value to
the ./configure option --prefix when the program was compiled (as described in subsection 2.2). Making
changes to this file will affect all the users on your system. This is the correct file to change when you want
all users to have the same configuration.
However, it is probably best to not modify this file for several reasons. First, modifications made to this
file will affect all users which may not be desireable. Second, if you change the map in a way that makes
tn5250 no longer useable you will have to reinstall it. Third, you have to have root access to modify this file
which prevents users from making changes. And finally, when you reinstall or upgrade tn5250 it will erase
the changes you have made. Fortunately, a better solution exists that solves these problems.

5.3 User key map
A better solution is to put user key maps in your .Xdefaults (or .Xresources) file in your home directory.
It doesn’t matter which file you use, .Xdefaults or .Xresources, both have the same effect. In fact, you can
make one a symbolic link to the other just to avoid confusion.
.Xdefaults and .Xresources are read the startup of your X Window System session and these files change
the way xterm behaves. Since they are read only at startup it is necessary to log out and log back in in
order for changes to these files to take effect. Because they are read by Xlib and change xterm, this only
works when you use xt5250 running in a real xterm. Some people report that aterm also works, but this is
not guaranteed. Entries in .Xdefaults or .Xresources will not affect tn5250 when running from the console.
In order to use these files for the key map, we have to add entries for the keys contained in the systemwide
key map. For the sake of simplicity we will use .Xdefaults, but these steps apply equally well to
.Xresources. First add the contents of the system-wide map by using to following command (remember to
substitute the directory specified in the ./configure option --prefix as explained in subsection 2.2. We
assume the default of /usr/local):
cat /usr/local/share/tn5250/XTerm >> ~/.Xdefaults
This will append the default key map into your .Xdefaults file.
Page 9


TN5250 HOWTO Section 5: Key Mapping

5.4 Changing the key map
The key map is written as <key modifier><key>: string(“<value>”). The <key modifier> indicates if
the Shift key or other modifier key must be pressed. <key> is which key on the keyboard is being pressed.
<value> is a value sent to the host. By changing <value> you change what effect a given key (with optional
key modifier) has. The tricky part is knowing what string <value> should be.
An example from the XTerm file will help to explain things:
~Shift <Key>F1: string("\0331") \n\
Shift <Key>F1: string("\033!") \n\
The key modifier in the first line is ~Shift. The ˜ symbol means not. In other words, the Shift key is
not pressed. The key is <Key>F1. The value given to the program is \0331. The \033 part is the ASCII
representation of the Escape key in octal. \0331 means Escape followed by 1. Escape followed by 1 is
interpreted on UNIX terminals as the F1 key. You can try this on old terminals or in xterm.
The tn5250 man page lists the strings necessary to generate a 5250 key press. According to the man
page the 5250 key Field Exit is Escape followed by X. If you want to make the Enter key on the 10-key
keypad map to the 5250 Field Exit key you would put the following in your .Xdefaults file:
xt5250*VT100.Translations: #override\n\
<Key>KP Enter: string("\033X")
You can find some useful examples of complete key map files in the appendix.
Page 10


Section 6
Using Fonts

6.1 Font selection in tn5250rc
You can specify what font to use by placing the font definition in your .tn5250rc file. You can specify
fonts for 80 column display and 132 column display. Adding some font settings to our .tn5250rc file results
in:
as400 {
host = as400.mydomain.com
env.TERM = IBM-3477-FC
env.DEVNAME = MYDISPLAY
map=37
env.USER = MYUSER
env.IBMSUBSPW = MYPASSWORD
env.IBMPROGRAM = MYPROGRAM
env.IBMMENU = MYMENU
env.IBMCURLIB = MYLIBRARY
+local print key
font 80=-*-fixed-*-*-*-*-*-200-75-100-*-*-*-*
font 132=-*-fixed-*-*-*-*-*-200-75-100-*-*-*-*
}
Note that we have removed the +underscores argument since it can’t be used with X11.
To determine what fonts you like use the xlsfonts or xfontsel commands. xlsfonts tells you what
fonts you have on your system and xfontsel shows you what the fonts look like.

6.2 Font selection in .Xdefaults
You can also put font settings in your .Xdefaults file. Put a xt5250*Font : line in your .Xdefaults file
followed by the font you want to use. For example:
xt5250*Font : 7x13
will give you a fixed 7x13 font.
Page 11

Section 7
Changing Screen Colors
Currently the only colors you can change without making source code modifications are the color of the
cursor and pointer in xt5250. Changeable colors is on the TODO list.
You can set the cursor and pointer colors in your .Xdefaults by specifying:
xt5250*cursorColor : gold
xt5250*pointerColor : yellow
In this example we set the 5250 cursor to a gold color and the mouse pointer to yellow.
Page 12

Section 8
Using tn5250 With SSL

8.1 Configuring the Digital Certificate Manager
Before you can use SSL with tn5250 you must configure the iSeries to enable SSL support. This is
done using the Digital Certificate Manager (DCM, part of the Cryptographic Access Provider). The DCM
is not supported on all releases. The DCM first became available on V4R5. The information provided here
is accurate up to version V5R2 of OS/400. You should consult the IBM provided documentation for your
release.
In order to use the DCM you must have at a minimum the following OS/400 products installed on your
iSeries:
5722SS1 option 34 — OS/400 – Digital Certificate Manager
5722SS1 option 35 — OS/400 – Cryptographic Service Provider
5722AC3 — Crypto Access Provider 128-bit for AS/400
5722DG1 — IBM HTTP Server
5722JV1 option 3 — Java Developer Kit 1.2
There are several steps required to create a digital certificate. Most of these steps need only to be done
once. The Digital Certificate Manager is accessed by pointing a web browser to your iSeries hostname and
port 2001 like this: http://myas400.mydomain.com:2001/. This will access the *ADMIN web server on the
iSeries. See the IBM documention for information on configuring the DCM.
Once the digital certificate has been created you need to download the certificate to your computer.
The DCM provides two ways to this: install in a browser and copy and paste. We want to use the copy
and paste method. Following the copy and paste link results in a page being displayed that shows the
digital certificate. Copy everything after and including the -----BEGIN CERTIFICATE----- line up to and
including the -----END CERTIFICATE----- line. Save this to a file and give it some meaningful name, such
as myas400.cert.
8.2 Enabling SSL support in tn5250
You must compile tn5250 with SSL support to use SSL. See subsection 2.2 Configuring the build for
information on building tn5250 with SSL support.
Once compiled with SSL support, tn5250 is configured quite easily. Use +ssl verify server in your
.tn5250rc file to turn on SSL authentication. You must also prepend ssl: to the host parameter in your
.tn5250rc file.
tn5250 also uses the certificate generated by the iSeries Digital Certificate Manager for use when authenticating
SSL sessions. The certificate may be stored anywhere on your system and is the certificate
saved in the previous subsection. This certificate is referenced using the ssl ca file argument. If you have
configured your iSeries to only accept SSL sessions from authenticated clients you will need this file.
Adding +ssl verify server and ssl ca file and prepending ssl: to the host in our .tn5250rc file
results in:
as400 {
host = ssl:as400.mydomain.com
env.TERM = IBM-3477-FC
Page 13


TN5250 HOWTO Section 8: Using tn5250 With SSL

env.DEVNAME = MYDISPLAY
+underscores
map=37
env.USER = MYUSER
env.IBMSUBSPW = MYPASSWORD
env.IBMPROGRAM = MYPROGRAM
env.IBMMENU = MYMENU
env.IBMCURLIB = MYLIBRARY
+local print key
font 80=-*-fixed-*-*-*-*-*-200-75-100-*-*-*-*
font 132=-*-fixed-*-*-*-*-*-200-75-100-*-*-*-*
+ssl verify server
+ssl ca file = /path/to/certificate/file
}
In the example above, /path/to/certificate/file refers to the location where you stored the file that
contains the certificate generated by the Digital Certificate Manager.
Page 14


Section 9
Printing With lp5250d

9.1 Basic structure
Printing iSeries output with lp5250d involves two basic steps: starting a printer daemon that connects
to the iSeries and indicates it is ready for print jobs and converting the output received from the iSeries into
a printable format.
The first step is done by the lp5250d daemon. When lp5250d starts it connects to the specified iSeries
and starts a writer with the name passed in the env.DEVNAME argument. lp5250d receives the printed output
from the writer, but cannot print it directly. The data as sent from the iSeries is EBCDIC encoded and
formatted for an iSeries printer (this is the *SCS parameter in the print file description). The data must be
converted to ASCII and reformatted to something the destination printer can use.
The conversion to ASCII and reformatting is the second step in printing iSeries data. This is usually
done by one of three programs: scs2ascii, scs2pdf, and scs2ps. These programs are passed as a parameter
to lp5250d as part of the outputcommand argument. lp5250d pipes the output sent to it from the writer
to whatever command is passed in the outputcommand argument. It is also possible to directly output the
EBCDIC print stream to a file. scs2ascii translates the EBCDIC encoded *SCS stream into plain ASCII
text. scs2pdf does the same but outputs a PDF document. Likewise scs2ps outputs a postscript file.
lp5250d can only print *SCS data at this time. This isn’t due to lp5250d itself, but rather to the fact
that there isn’t at this time a translator for other output types. If such a translator existed lp5250d could
use it by passing it on the outputcommand parameter.

9.2 Using lp5250d
lp5250d is started from the command line like this:
lp5250d env.DEVNAME=MYPRINT outputcommand="scs2ascii | lpr" as400.mydomain.com
In this example MYPRINT is the name of the printer that you want to use on the iSeries. The outputcommand
argument is passed a complete command, in this case "scs2ascii | lpr". Once again as400.mydomain.com
is the fully qualified domain name of your iSeries.
It is important that the parameter passed in the outputcommand argument be a complete command
as lp5250d simply invokes whatever is passed here and pipes the iSeries output to it. As we saw in the
preceding section this enables you to do whatever you want with the printed output sent from the iSeries.
For example, if you want to simply send the printed output directly to a file without converting it to ASCII
you could change the outputcommand argument to something like this:
outputcommand="cat > /tmp/output.scs"
The resulting file /tmp/output.scs would contain the data exactly as lp5250d received it from the iSeries.
You could at this point print it out with a command like:
cat /tmp/output.scs | scs2asii | lpr
If you want to save the output to a file use scs2pdf or scs2ps with outputcommand. These commands
format the printed output into Adobe Portable Document Format (PDF) and postscript respectively. scs2pdf
creates searchable PDFs with the name given in the outputcommand argument. scs2ps can also be directed
to a file, but is more commonly used to print to postscript printers.
You can create dynamic filenames by placing ’$$’ in the filename given to outputcommand. The ’$$’
will be replaced with the process ID of the command passed to outputcommand when the print job is run.
Page 15


TN5250 HOWTO Section 9: Printing With lp5250d

This doesn’t strictly gaurantee that the filename will always be unique as process IDs can wrap. To add the
process ID to the filename use outputcommand like this:
outputcommand="scs2pdf > /tmp/output$$.pdf"
Another idea is to add the current date to the filename. This is done easily using the unix date command
like so:
outputcommand="scs2pdf > /tmp/output-‘ date +%m-%d-%H-%M-%S‘.pdf"

9.3 lp5250d and .tn5250rc
You can save your lp5250d settings in $HOME/.tn5250rc just like you can with tn5250. To do so, create
a new identifier to hold the settings. The new identifier can reference the same iSeries, but you will only use
it with lp5250d. The syntax is the same as we used with tn5250, so our example is straightforward:
asciiprint {
host = as400.mydomain.com
env.DEVNAME = MYPRINT
outputcommand = scs2ascii | lpr
}
Then simply invoke lp5250d like this:
lp5250d asciiprint

9.4 Specifying a printer message queue
You can specify a message queue to receive printer related messages using the env.IBMMSGQNAME and
env.IBMMSGQLIB arguments. This way you can direct messages such as form type changes to a given
workstation. For example, if you want to send printer messages for printer MYPRINT to display DSP01
you would make your .tn5250rc file look like this:
asciiprint {
host = as400.mydomain.com
env.DEVNAME = MYPRINT
outputcommand = scs2ascii | lpr
env.IBMMSGQNAME = DSP01
env.IBMMSGQLIB = *LIBL
}

9.5 Using Host Print Transform
Host Print Transform causes the iSeries to format the printed output to a specified printer before sending
it to lp5250d. This is useful for printing complex spooled files like *AFPDS and *IPDS print files on printers
that don’t support those languages. The drawback is that Host Print Transform can only be used to actually
print and not for writing to a file. Since the print stream is received as a printer language it is really only
useful when sent directly to a printer. The formatting programs scs2pdf and scs2ps don’t understand printer
language and therefore can’t be used to create those types of documents from complex printer ouput.
Page 16


TN5250 HOWTO Section 9: Printing With lp5250d

The list of printers that Host Print Transform can use is found by entering the OS/400 command
CRTDEVPRT and pressing F4. Look for the list of available “manufacturer types and models” in the
MFRTYPMDL parameter. A complete list of available printers for an iSeries running V5R1 is listed in the
appendix.
Host Print Transform is usually used in conjuction with scs2ascii which simply escapes the printer
control language and translates only the text. The result is then piped to lpr. Host Print Transform is
specified using the env.IBMMFRTYPMDL argument. Changing the .tn5250rc file to use Print Transform to
output to a Hewlett-Packard LaserJet 4 printer is simple:
asciiprint {
host = as400.mydomain.com
env.DEVNAME = MYPRINT
outputcommand = scs2ascii | lpr
env.IBMMSGQNAME = DSP01
env.IBMMSGQLIB = *LIBL
env.IBMMFRTYPMDL = *HP4
}

9.6 Defining printer languages using workstation customization
Workstation customization (WSCST) is a method to define a printer language using the Host Print
Transform mechanism. If none of the available printers listed on the CRTDEVPRT command as described
in the previous subsection meets your needs then you can define a custom object to use with the
env.IBMMFRTYPMDL argument. WSCST objects are specified using the env.IBMMFRTYPMDL argument, just
as Host Print Transform, and env.IBMWSCSTNAME and env.IBMWSCSTLIB. To use workstation customization
with the standard IBM *SCS to ASCII translator you would use:
env.IBMMFRTYPMDL = *WSCST
env.IBMWSCSTNAME = QWPDEFAULT
env.IBMWSCSTLIB = *LIBL
This has the same effect as using scs2ascii without any other arguments.
To create your own printer language definition you can copy the IBM supplied definitions for *HP4
and then change those. Use the following OS/400 command to retrieve the *HP4 definitions into a member
called HP4 in source file QTXTSRC in library MYLIB:
RTVWSCST DEVTYPE(*TRANSFORM) MFRTYPMDL(*HP4) SRCFILE(MYLIB/QTXTSRC) SRCMBR(HP4)
Now edit the HP4 member of MYLIB/QTXTSRC to suit your needs. Once you have finished making your
changes create the WSCST object with this OS/400 command:
CRTWSCST WSCST(MYLIB/MYWSCST) SRCFILE(MYLIB/QTXTRC) SRCMBR(HP4)
Once that is complete you can reference the new object like this:
env.IBMMFRTYPMDL = *WSCST
env.IBMWSCSTNAME = MYWSCST
env.IBMWSCSTLIB = MYLIB
Page 17


TN5250 HOWTO Section 9: Printing With lp5250d

Adding this to .tn5250rc results in:
asciiprint {
host = as400.mydomain.com
env.DEVNAME = MYPRINT
outputcommand = scs2ascii | lpr
env.IBMMSGQNAME = DSP01
env.IBMMSGQLIB = *LIBL
env.IBMMFRTYPMDL = *WSCST
env.IBMWSCSTNAME = MYWSCST
env.IBMWSCSTLIB = MYLIB
}
Page 18


Section 10
Appendix

10.1 Portuguese terminal key map
This is a (nearly) complete keymap for Portugese. Some characters are missing due to current inabilities
to print them. These ommisions are indicated by the words “not complete”.
# pt.map
# Baseado no portugues.map de lacyp@unicorn.it.wsu.edu 18-jun-1996
# (tomado da distribuicao Mini-Linux). Correcoes de aeb (Andries Brouwer ?).
#
# Adicionado suporte para acentua¸c~ao por Carlos A M dos Santos,
# <casantos@cpmet.ufpel.tche.br>
#
# 26-dez-1997
# Adicionados coment´arios e corre¸c~oes.
#
# Este arquivo ´e distribu´ido sob os termos da GNU GPL vers~ao 2.
#
charset "iso-8859-1"
keymaps 0-15
keycode 0 =
keycode 1 = Escape Escape
alt keycode 1 = Meta Escape
shift keycode 1 = Control q
keycode 2 = one exclam onesuperior exclamdown
alt keycode 2 = Meta one
alt shift keycode 2 = Meta exclam
keycode 3 = two quotedbl at twosuperior
control keycode 3 = nul
control shift keycode 3 = nul
alt keycode 3 = Meta two
alt shift keycode 3 = Meta quotedbl
alt altgr keycode 3 = Meta at
keycode 4 = three numbersign pound threesuperior
control keycode 4 = Escape
alt keycode 4 = Meta three
alt shift keycode 4 = Meta numbersign
keycode 5 = four dollar section
control keycode 5 = Control backslash
alt keycode 5 = Meta four
alt shift keycode 5 = Meta dollar
keycode 6 = five percent cent
control keycode 6 = Control bracketright
alt keycode 6 = Meta five
alt shift keycode 6 = Meta percent
keycode 7 = six ampersand
alt keycode 7 = Meta six
alt shift keycode 7 = Meta ampersand
19
TN5250 HOWTO Section 10: Appendix
keycode 8 = seven slash braceleft
alt keycode 8 = Meta seven
alt shift keycode 8 = Meta slash
alt altgr keycode 8 = Meta braceleft
keycode 9 = eight parenleft bracketleft
control keycode 9 = Delete
control altgr keycode 9 = Escape
alt keycode 9 = Meta eight
alt shift keycode 9 = Meta parenleft
alt altgr keycode 9 = Meta bracketleft
keycode 10 = nine parenright bracketright
alt keycode 10 = Meta nine
alt shift keycode 10 = Meta parenright
alt altgr keycode 10 = Meta bracketright
keycode 11 = zero equal braceright
alt keycode 11 = Meta zero
alt shift keycode 11 = Meta equal
alt altgr keycode 11 = Meta braceright
keycode 12 = apostrophe question backslash
alt keycode 12 = Meta apostrophe
alt shift keycode 12 = Meta question
keycode 13 = guillemotleft guillemotright
keycode 14 = Delete Delete Delete
alt keycode 14 = Meta Delete
keycode 15 = Tab Tab
alt keycode 15 = Meta Tab
keycode 16 = q
keycode 17 = w
keycode 18 = e
keycode 19 = r
altgr keycode 19 = registered
keycode 20 = t
keycode 21 = y
keycode 22 = u
keycode 23 = i
keycode 24 = o
keycode 25 = p
keycode 26 = plus asterisk dead diaeresis
alt keycode 26 = Meta plus
alt shift keycode 26 = Meta asterisk
keycode 27 = dead acute dead grave acute grave
control keycode 27 = nul
alt keycode 27 = Meta apostrophe
alt shift keycode 27 = Meta grave
keycode 28 = Control k
alt keycode 28 = Meta Control m
keycode 29 = Control r
keycode 30 = a
keycode 31 = s
keycode 32 = d
keycode 33 = f
keycode 34 = g
keycode 35 = h
Page 20

TN5250 HOWTO Section 10: Appendix

keycode 36 = j
keycode 37 = k
keycode 38 = l
keycode 39 = +ccedilla +Ccedilla
keycode 40 = masculine ordfeminine
keycode 41 = backslash bar
control keycode 41 = Control backslash
alt keycode 41 = Meta backslash
alt shift keycode 41 = Meta bar
keycode 42 = Shift
#keycode 42 = Control q
keycode 43 = dead tilde dead circumflex asciitilde asciicircum
control keycode 43 = nul
control shift keycode 43 = Control asciicircum
alt keycode 43 = Meta asciicircum
keycode 44 = z
keycode 45 = x
keycode 46 = c
keycode 47 = v
keycode 48 = b
keycode 49 = n
keycode 50 = m
keycode 51 = comma semicolon
alt keycode 51 = Meta comma
keycode 52 = period colon
alt keycode 52 = Meta period
keycode 53 = minus underscore
control shift keycode 53 = Control underscore
control keycode 53 = Delete
alt keycode 53 = Meta minus
alt shift keycode 53 = Meta underscore
keycode 54 = Shift
keycode 55 = KP Multiply
keycode 56 = Alt
keycode 57 = space space
control keycode 57 = nul
alt keycode 57 = Meta space
keycode 58 = Caps Lock
keycode 59 = F1 F13 Console 13
control keycode 59 = F1
alt keycode 59 = Console 1
control alt keycode 59 = Console 1
keycode 60 = F2 F14 Console 14
control keycode 60 = F2
alt keycode 60 = Console 2
control alt keycode 60 = Console 2
keycode 61 = F3 F15 Console 15
control keycode 61 = F3
alt keycode 61 = Console 3
control alt keycode 61 = Console 3
keycode 62 = F4 F16 Console 16
control keycode 62 = F4
Page 21

TN5250 HOWTO Section 10: Appendix

alt keycode 62 = Console 4
control alt keycode 62 = Console 4
keycode 63 = F5 F17 Console 17
control keycode 63 = F5
alt keycode 63 = Console 5
control alt keycode 63 = Console 5
keycode 64 = F6 F18 Console 18
control keycode 64 = F6
alt keycode 64 = Console 6
control alt keycode 64 = Console 6
keycode 65 = F7 F19 Console 19
control keycode 65 = F7
alt keycode 65 = Console 7
control alt keycode 65 = Console 7
keycode 66 = F8 F20 Console 20
control keycode 66 = F8
alt keycode 66 = Console 8
control alt keycode 66 = Console 8
keycode 67 = F9 F21 Console 21
control keycode 67 = F9
alt keycode 67 = Console 9
control alt keycode 67 = Console 9
keycode 68 = F10 F22 Console 22
control keycode 68 = F10
alt keycode 68 = Console 10
control alt keycode 68 = Console 10
keycode 69 = Num Lock
keycode 70 = Scroll Lock Show Memory Show Registers
control keycode 70 = Show State
alt keycode 70 = Scroll Lock
keycode 71 = KP 7
alt keycode 71 = Ascii 7
keycode 72 = KP 8
alt keycode 72 = Ascii 8
keycode 73 = KP 9
alt keycode 73 = Ascii 9
keycode 74 = KP Subtract
keycode 75 = KP 4
alt keycode 75 = Ascii 4
keycode 76 = KP 5
alt keycode 76 = Ascii 5
keycode 77 = KP 6
alt keycode 77 = Ascii 6
keycode 78 = KP Add
keycode 79 = KP 1
alt keycode 79 = Ascii 1
keycode 80 = KP 2
alt keycode 80 = Ascii 2
keycode 81 = KP 3
alt keycode 81 = Ascii 3
keycode 82 = KP 0
alt keycode 82 = Ascii 0
keycode 83 = KP Period
Page 22

TN5250 HOWTO Section 10: Appendix

altgr control keycode 83 = Boot
control alt keycode 83 = Boot
keycode 84 = Last Console
keycode 85 =
keycode 86 = less greater backslash
alt keycode 86 = Meta less
alt shift keycode 86 = Meta greater
keycode 87 = F11 F23 Console 23
control keycode 87 = F11
alt keycode 87 = Console 23
control alt keycode 87 = Console 11
keycode 88 = F12 F24 Console 24
control keycode 88 = F12
alt keycode 88 = Console 24
control alt keycode 88 = Console 12
keycode 89 =
keycode 90 =
keycode 91 =
keycode 92 =
keycode 93 =
keycode 94 =
keycode 95 =
keycode 96 = KP Enter
keycode 97 = Return
#
# Comente a linha anterior e remova o coment´ario da linha a seguir para
# atribuir a fun¸c~ao Compose `a tecla Control direita.
#
#keycode 97 = Compose
keycode 98 = KP Divide
keycode 99 = Control backslash
control keycode 99 = Control backslash
alt keycode 99 = Control backslash
keycode 100 = AltGr
keycode 101 = Break
#
# Find ´e um sin^onimo para Home no console, o que n~ao ocorre no X.
#
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
shift keycode 104 = Scroll Backward
keycode 105 = Left
alt keycode 105 = Decr Console
keycode 106 = Right
alt keycode 106 = Incr Console
#
# Select ´e um sin^onimo para End no console, o que n~ao ocorre no X.
#
Page 23

TN5250 HOWTO Section 10: Appendix

keycode 107 = Select
keycode 108 = Down
keycode 109 = Next
shift keycode 109 = Scroll Forward
keycode 110 = Insert
keycode 111 = Remove
altgr control keycode 111 = Boot
control alt keycode 111 = Boot
keycode 112 =
keycode 113 =
keycode 114 =
keycode 115 =
keycode 116 =
keycode 117 =
keycode 118 =
keycode 119 =
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 =
keycode 125 =
#
# Para os teclados padr~ao "Windows 95" podemos atribuir a fun¸c~ao Compose
# `a tecla "janela direita":
keycode 126 = Compose
keycode 127 =
string F1 = "\033[[A"
string F2 = "\033[[B"
string F3 = "\033[[C"
string F4 = "\033[[D"
string F5 = "\033[[E"
string F6 = "\033[17~"
string F7 = "\033[18~"
string F8 = "\033[19~"
string F9 = "\033[20~"
string F10 = "\033[21~"
string F11 = "\033[23~"
string F12 = "\033[24~"
string F13 = "\033[25~"
string F14 = "\033[26~"
string F15 = "\033[28~"
string F16 = "\033[29~"
string F17 = "\033[31~"
string F18 = "\033[32~"
string F19 = "\033[33~"
string F20 = "\033[34~"
string Find = "\033[1~"
string Insert = "\033[2~"
string Remove = "\033[3~"
string Select = "\033[4~"
Page 24

TN5250 HOWTO Section 10: Appendix

string Prior = "\033[5~"
string Next = "\033[6~"
#alterado por daniel
string F21 = "\033[35~"
string F22 = "\033[36~"
string F23 = "\033[37~"
string F24 = "\033[38~"
string F25 = ""
string F26 = ""
#
# Se quisermos o mesmo comportamento do X (ou de um terminal VT-*,
# para ser mais exato) podemos usar as defini¸c~oes seguintes.
# Cuidado! Isso pode confundir algumas aplica¸c~oes.
#
# Observe que no console Home ´e apenas um sin^onimo para Find, assim
# como End ´e para Select.
# string Home = "\033[7~"
# string End = "\033[8~"
# TODAS a defini¸c~oes a seguir s~ao necess´arias, pois tendo sido definida
# uma regra de composi¸c~ao, todas as outras s~ao perdidas!
compose ’‘’ ’A’ to ’`A’
compose ’‘’ ’a’ to ’`a’
compose ’\’’ ’A’ to ’´A’
compose ’\’’ ’a’ to ’´a’
compose ’^’ ’A’ to ’^A’
compose ’^’ ’a’ to ’^a’
compose ’~’ ’A’ to ’~A’
compose ’~’ ’a’ to ’~a’
compose ’"’ ’A’ to ’¨A’
compose ’"’ ’a’ to ’¨a’
compose ’O’ ’A’ to ’°A’
compose ’o’ ’a’ to ’°a’
compose ’0’ ’A’ to ’°A’
compose ’0’ ’a’ to ’°a’
compose ’A’ ’A’ to ’°A’
compose ’a’ ’a’ to ’°a’
compose ’A’ ’E’ to ’Æ’
compose ’a’ ’e’ to ’æ’
compose ’,’ ’C’ to ’C¸’
compose ’,’ ’c’ to ’¸c’
compose ’’’ ’C’ to ’C¸’
compose ’’’ ’c’ to ’¸c’
compose ’‘’ ’E’ to ’`E’
compose ’‘’ ’e’ to ’`e’
compose ’\’’ ’E’ to ’´E’
compose ’\’’ ’e’ to ’´e’
compose ’^’ ’E’ to ’^E’
compose ’^’ ’e’ to ’^e’
compose ’"’ ’E’ to ’¨E’
compose ’"’ ’e’ to ’¨e’
compose ’‘’ ’I’ to ’`I’
compose ’‘’ ’i’ to ’`i’
Page 25

TN5250 HOWTO Section 10: Appendix

compose ’\’’ ’I’ to ’´I’
compose ’\’’ ’i’ to ’´i’
compose ’^’ ’I’ to ’^I’
compose ’^’ ’i’ to ’^i’
compose ’"’ ’I’ to ’¨I’
compose ’"’ ’i’ to ’¨i’
compose ’-’ ’D’ to ’’not complete
compose ’-’ ’d’ to ’’not complete
compose ’~’ ’N’ to ’~N’
compose ’~’ ’n’ to ’~n’
compose ’‘’ ’O’ to ’`O’
compose ’‘’ ’o’ to ’`o’
compose ’\’’ ’O’ to ’´O’
compose ’\’’ ’o’ to ’´o’
compose ’^’ ’O’ to ’^O’
compose ’^’ ’o’ to ’^o’
compose ’~’ ’O’ to ’~O’
compose ’~’ ’o’ to ’~o’
compose ’"’ ’O’ to ’¨O’
compose ’"’ ’o’ to ’¨o’
compose ’/’ ’O’ to ’Ø’
compose ’/’ ’o’ to ’ø’
compose ’‘’ ’U’ to ’`U’
compose ’‘’ ’u’ to ’`u’
compose ’\’’ ’U’ to ’´U’
compose ’\’’ ’u’ to ’´u’
compose ’^’ ’U’ to ’^U’
compose ’^’ ’u’ to ’^u’
compose ’"’ ’U’ to ’¨U’
compose ’"’ ’u’ to ’¨u’
compose ’\’’ ’Y’ to ’´Y’
compose ’\’’ ’y’ to ’´y’
compose ’T’ ’H’ to ’’not complete
compose ’t’ ’h’ to ’’not complete
compose ’s’ ’s’ to ’ß’
compose ’"’ ’y’ to ’¨y’
compose ’s’ ’z’ to ’ß’
compose ’i’ ’j’ to ’¨y’

10.2 Key map using XTerm
This is a sample key map using XTerm. This example can either replace the default keymap installed
by tn5250 or be appended to your .Xdefaults (or .Xresources) file in your home directory.
xt5250*VT100.Translations: #override\n\
<Key>KP Add: string("\030") \n\
<Key>KP Subtract: string("\033M") \n\
<Key>KP Multiply: string("*") \n\
<Key>KP Divide: string("/") \n\
<Key>KP Enter: string("\033OM") \n\
<Key>BackSpace: string("\177") \n\
<Key>End: string("\033[4~") \n\
<Key>KP 0: string("0") \n\
Page 26

TN5250 HOWTO Section 10: Appendix

<Key>KP 1: string("1") \n\
<Key>KP 2: string("2") \n\
<Key>KP 3: string("3") \n\
<Key>KP 4: string("4") \n\
<Key>KP 5: string("5") \n\
<Key>KP 6: string("6") \n\
<Key>KP 7: string("7") \n\
<Key>KP 8: string("8") \n\
<Key>KP 9: string("9") \n\
<Key>Scroll Lock: string("\033H") \n\
~Shift<Key>Print: string("\020") \n\
<Key>Control L: string("\022") \n\
<Key>Escape: string("\001") \n\
Shift <Key>Print: string("\003") \n\
~Shift <Key>F1: string("\0331") \n\
~Shift <Key>F2: string("\0332") \n\
~Shift <Key>F3: string("\0333") \n\
~Shift <Key>F4: string("\0334") \n\
~Shift <Key>F5: string("\0335") \n\
~Shift <Key>F6: string("\0336") \n\
~Shift <Key>F7: string("\0337") \n\
~Shift <Key>F8: string("\0338") \n\
~Shift <Key>F9: string("\0339") \n\
~Shift <Key>F10: string("\0330") \n\
~Shift <Key>F11: string("\033-") \n\
~Shift <Key>F12: string("\033=") \n\
Shift <Key>F1: string("\033!") \n\
Shift <Key>F2: string("\033@") \n\
Shift <Key>F3: string("\033#") \n\
Shift <Key>F4: string("\033$") \n\
Shift <Key>F5: string("\033%") \n\
Shift <Key>F6: string("\033^") \n\
Shift <Key>F7: string("\033&") \n\
Shift <Key>F8: string("\033*") \n\
Shift <Key>F9: string("\033(") \n\
Shift <Key>F10: string("\033)") \n\
Shift <Key>F11: string("\033 ") \n\
Shift <Key>F12: string("\033+") \n\
Shift <Key>Tab: string("\033[Z") \n\
Shift <Key>Left: string("\033\010") \n\
Shift <Key>Right: string("\033\025") \n\
Shift <Key>Home: string("\033\006") \n\
<Key>Home: string("\033[1~") \n\
~Shift <Key>Delete: string("\033[3~") \n\
~Shift <Key>Insert: string("\033[2~")

10.3 Complete .Xdefaults file with custom colors, fonts, and key map
This is the complete .Xdefaults file I use with xt5250. I made the cursor gold and the mouse pointer
yellow. I selected a fixed 7x13 font. I also forced xterm to leave off the left scroll bar and indicated that
this is not a login shell.
xt5250*cursorColor : gold
xt5250*pointerColor : yellow
Page 27

TN5250 HOWTO Section 10: Appendix

xt5250*Font : 7x13
xt5250*loginShell : off
xt5250*scrollBar : off
xt5250*VT100.Translations: #override\n\
<Key>KP Enter: string("\033OM") \n\
<Key>BackSpace: string("\177") \n\
<Key>End: string("\033[4~") \n\
<Key>Scroll Lock: string("\033H") \n\
~Shift<Key>Print: string("\020") \n\
<Key>Escape: string("\001") \n\
Shift <Key>Print: string("\003") \n\
~Shift <Key>F1: string("\033[[A") \n\
~Shift <Key>F2: string("\033[[B") \n\
~Shift <Key>F3: string("\033[[C") \n\
~Shift <Key>F4: string("\033[[D") \n\
~Shift <Key>F5: string("\033[[E") \n\
~Shift <Key>F6: string("\033[17~") \n\
~Shift <Key>F7: string("\033[18~") \n\
~Shift <Key>F8: string("\033[19~") \n\
~Shift <Key>F9: string("\033[20~") \n\
~Shift <Key>F10: string("\033[21~") \n\
~Shift <Key>F11: string("\033[23~") \n\
~Shift <Key>F12: string("\033[24~") \n\
Shift <Key>F1: string("\033[25~") \n\
Shift <Key>F2: string("\033[26~") \n\
Shift <Key>F3: string("\033[28~") \n\
Shift <Key>F4: string("\033[29~") \n\
Shift <Key>F5: string("\033[31~") \n\
Shift <Key>F6: string("\033[32~") \n\
Shift <Key>F7: string("\033[33~") \n\
Shift <Key>F8: string("\033[34~") \n\
Shift <Key>F9: string("\033[35~") \n\
Shift <Key>F10: string("\033[36~") \n\
Shift <Key>F11: string("\033[37~") \n\
Shift <Key>F12: string("\033[38~") \n\
Shift <Key>Tab: string("\033[Z") \n\
Shift <Key>Left: string("\033\010") \n\
Shift <Key>Right: string("\033\025") \n\
Shift <Key>Home: string("\033\006") \n\
<Key>Home: string("\033[1~") \n\
~Shift <Key>Delete: string("\033[3~") \n\
~Shift <Key>Insert: string("\033[2~")

10.4 Sample tn5250rc
This is a portion of the .tn5250rc file I use. Only the hostnames, usernames, and passwords have
been changed.
host1 {
host = host1.mydomain.com
env.TERM = IBM-3477-FC
env.USER = MYUSER
28
TN5250 HOWTO Section 10: Appendix
env.IBMSUBSPW = MYPASSWORD
+local print key
}
host2 {
host = ssl:host2.mydomain.com
env.TERM = IBM-3477-FC
+local print key
+ssl verify server
ssl ca file = /home/user/host2/host2.cert
}
host2-print {
host = ssl:host2.mydomain.com
env.DEVNAME = PRTASCII
env.IBMMFRTYPMDL = *IBM3116
+ssl verify server
ssl ca file = /home/user/host2/host2.cert
outputcommand = scs2ascii | lpr
}

10.5 Possible values for use with Host Print Transform on V5R1
Below are the possible values that can be used with Host Print Transform on a V5R1 iSeries.
*IBM2380 *IBM4019
*IBM2381 *IBM4019HP
*IBM2390 *IBM4029
*IBM2391 *IBM4029HP
*IBM3112 *IBM4037
*IBM3116 *IBM4039HP
*IBM3130 *IBM4070
*IBM3812 *IBM4070EP
*IBM3816 *IBM4072
*IBM3912HP *IBM4076
*IBM3916HP *IBM42011
*IBM39302 *IBM42012
*IBM39303 *IBM42013
*IBM42021 *IBM4244ASF
*IBM42022 *IBM4244DUAL
*IBM42023 *IBM4247MAN
*IBM42071 *IBM4247ASF
*IBM42072 *IBM4247DUAL
*IBM42081 *IBM4308
*IBM42082 *IBM4312
*IBM4212 *IBM4317
*IBM4216 *IBM4320
*IBM4226 *IBM4322
*IBM4230 *IBM4324
*IBM4232 *IBM4332
*IBM4244MAN *IBM4340
Page 29

TN5250 HOWTO Section 10: Appendix

*IBM47121 *IBMPAGESNPB
*IBM47122 *IBMPAGES300
*IBM47221 *IBMPAGES300NPB
*IBM47222 *IBM6400
*IBM4770 *IBM6400EP
*IBM4912 *IBM6404
*IBM5152 *IBM6404EP
*IBM5201 *IBM6408
*IBM5202 *IBM6408EP
*IBM5204 *IBM6412
*IBM5216 *IBM6412EP
*IBM5575 *INFOPRINT12
*IBMPAGES *INFOPRINT20
*INFOPRINT21 *HPIIISI
*INFOPRINT32 *HP4
*INFOPRINT40 *HP5
*INFOPRINT2000 *HP5SI
*INFOPRINT8C *HP6
*CPQPM15 *HP1100
*CPQPM20 *HP4000
*HPII *HP5000
*HPIID *HP8000
*HPIIP *HPDBCS
*HPIII *HPCOLORLJ
*HPIIID *HP1200C
*HPIIIP *HP1600C
*HP310 *LEXOPTRAT
*HP320 *LEXOPTRAW
*HP500 *LEX2380
*HP520 *LEX2381
*HP540 *LEX2390
*HP550C *LEX2391
*HP560C *LEX4227
*HPPAINT *EPAP2250
*LEXOPTRA *EPAP3250
*LEXOPTRAC *EPAP5000
*LEXOPTRAN *EPAP5500
*LEXOPTRAS *EPDFX5000
*LEXOPTRASC *EPDFX8000
*EPFX850 *EPEPL7000
*EPFX870 *EPEPL8000
*EPFX1170 *ESCPDBCS
*EPLQ510 *NECP2
*EPLQ570 *NECP2200
*EPLQ860 *NECP2200XE
*EPLQ870 *NECP5200
*EPLQ1070 *NECP5300
*EPLQ1170 *NECP6200
*EPLQ2550 *NECP6300
*EPLX810 *NECPCPR201
*EPSQ870 *CANLIPS3
*EPSQ1170 *CANLIPS3NPB
*NONE *OKI3410
Page 30

TN5250 HOWTO Section 10: Appendix

*OKI184IBM *PAN1123EP
*OKI320IBM *PAN1124EP
*OKI321IBM *PAN1124IEP
*OKI390IBM *PAN1180EP
*OKI391IBM *PAN1180IEP
*OKI393IBM *PAN1191EP
*OKI590IBM *PAN1624EP
*OKI591IBM *PAN1654EP
*OKI400 *PAN1695EP
*OKI800 *PAN2123EP
*OKI810 *PAN2124EP
*OKI820 *PAN2180EP
*PAN2624EP *WSCSTLEGAL
*PAN4410HP *WSCSTEXECUTIVE
*PAN4420HP *WSCSTLEDGER
*PAN4430HP *WSCSTA3
*PAN4450IHP *WSCSTA4
*PAN4451HP *WSCSTA5
*XRX4215MRP *WSCSTB4
*XRX4219MRP *WSCSTB5
*XRX4220MRP *WSCSTCONT80
*XRX4230MRP *WSCSTCONT132
*XRX4235 *WSCSTNONE
*XRX4700II *WSCST
*WSCSTLETTER
Page 31

External links

Categories