c3270 Manual Page
Contents
Name
Synopsis
Description
Options
Modes
Character Sets
Menu Bar and Keypad
Hosts Database
NVT Mode
Toggles
Status Line
Actions
Keymaps
The Meta or Alt Key
File Transfer
The PrintText Action
Scripts
Composite Characters
Printer Session Support
Passthru
Proxy
Screen Size Switching
Resources
Files
See Also
Copyrights
Version
Name
c3270 -
curses-based
IBM host access tool
Synopsis
c3270
[options]
[host]
c3270 [options] session-file.c3270
Description
c3270 opens a telnet connection to an IBM
host in a console window.
It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection),
and supports IND$FILE file transfer.
If the console is capable of displaying colors, then c3270 emulates an
IBM 3279. Otherwise, it emulates a 3278.
The full syntax for host is:
[prefix:]...[LUname@]hostname[:port]
Prepending a P: onto hostname causes the connection to go
through the telnet-passthru service rather than directly to the host.
See PASSTHRU below.
Prepending an S: onto hostname removes the "extended data
stream" option reported to the host.
See -tn below for further information.
Prepending an N: onto hostname
turns off TN3270E support for the session.
Prepending an L: onto hostname
causes c3270 to first create an SSL tunnel to the host, and then
create a TN3270 session inside the tunnel. (This function is supported only if
c3270 was built with SSL/TLS support).
Note that TLS-encrypted sessions using the TELNET START-TLS option are
negotiated with the host automatically; for these sessions the L: prefix
should not be used.
Prepending a B: onto hostname changes the interaction of
scripts and the host BIND-IMAGE message.
Without B:, c3270 will unlock the keyboard as soon as a
BIND-IMAGE is received. With B:, it will wait for a Write command that
explicitly unlocks the keyboard.
A specific Logical Unit (LU) name to use may be specified by prepending it to
the hostname with an `@'.
Multiple LU names to try can be separated by commas.
An empty LU can be placed in the list with an extra comma.
(Note that the LU name is used for different purposes by different kinds of
hosts.
For example, CICS uses the LU name as the Terminal ID.)
The hostname may optionally be placed inside square-bracket
characters `[' and `]'.
This will prevent any colon `:' characters in the hostname
from being interpreted as indicating option prefixes or port numbers.
This allows numeric IPv6 addresses to be used as hostnames.
On systems that support the forkpty library call, the
hostname may be replaced with -e and a command string.
This will cause c3270 to connect to a local child process, such as
a shell.
The port to connect to defaults to
telnet.
This can be overridden with the -port option, or by appending
a port to the hostname with a colon
`:'.
(For compatability with previous versions of c3270
and with tn3270(1), the port
may also be specified as a second, separate argument.)
Options
c3270 understands
the following options:
- -accepthostname spec
-
Specifies a particular hostname to accept when validating the name presented
in the host's SSL certificate, instead of comparing to the name or address
used to make the connection.
spec can either be any, which
disables name validation, DNS:hostname, which matches a
particular DNS hostname, or IP:address, which matches a
particular numeric IPv4 or IPv6 address.
- -allbold
-
Forces all characters to be displayed in bold.
This helps with PC consoles which display non-bold characters in unreadably
dim colors.
All-bold mode is the default for color displays, but not for monochrome
displays.
- -altscreen rowsxcols=init_string
-
Defines the dimensions and escape sequence for the alternate (132-column)
screen mode.
See SCREEN SIZE SWITCHING, below.
- -cadir directory
-
Specifies a directory containing CA (root) certificates to use when verifying a
certificate provided by the host.
- -cafile filename
-
Specifies a PEM-format file containing CA (root) certificates to use
when verifying a certificate provided by the host.
- -cbreak
-
Causes c3270 to operate in cbreak mode, instead of raw
mode.
In cbreak mode, the TTY driver will properly process XOFF and XON
characters, which are required by some terminals for proper operation.
However, those characters (usually ^S and ^Q), as well as the characters for
interrupt, quit, and lnext (usually ^C, ^\
and ^V respectively) will be seen by c3270 only if preceded by
the lnext character.
The susp character (usually ^Z) cannot be seen by c3270 at all.
- -certfile filename
-
Specifies a file containing a certificate to provide to the host, if
requested.
The default file type is PEM.
- -certfiletype type
-
Specifies the type of the certificate file specified
by -certfile.
Type can be pem or asn1.
- -chainfile filename
-
Specifies a certificate chain file in PEM format, containing a
certificate to provide to the host if requested, as well as one or more
intermediate certificates and the CA certificate used to sign that certificate.
If -chainfile is specified, it
overrides -certfile.
- -charset name
-
Specifies an EBCDIC host character set.
See CHARACTER SETS below.
- -clear toggle
-
Sets the initial value of toggle to false.
The list of toggle names is under TOGGLES
below.
- -defaultfgbg
-
Causes c3270 to use the terminal's default foreground color
instead of the curses color black, and the terminal's
default background color instead of the curses color white.
This is helpful for emulators such as gnome-terminal whose
representation of a black background is a murky gray, and for emulators
configured to use black text on a white background.
It is set automatically if the environment variable COLORTERM is
set to gnome-terminal. It is available only if c3270 was
compiled with a version of ncurses that supports default colors,
if the emulator supports default colors, and if the termcap/terminfo entry
indicates this capability.
- -defscreen rowsxcols=init_string
-
Defines the dimensions and escape sequence for the default (80-column)
screen mode.
See SCREEN SIZE SWITCHING, below.
- -devname name
-
Specifies a device name (workstation ID) for RFC 4777 support.
- -hostsfile file
-
Uses file as the hosts file, which allows aliases for host names and
scripts to be executed at login.
See ibm_hosts(1) for details.
- -httpd [addr:]port
-
Specifies a port and optional address to listen on for HTTP connections.
Addr can be specified as `*' to indicate 0.0.0.0; the
default is 127.0.0.1. IPv6 numeric addresses must be specified inside of
square brackets, e.g., [::1]:4080 to specify the IPv6 loopback address and
TCP port 4080.
Note that this option is mutually-exclusive with the -scriptport
option
.
- -keyfile filename
-
Specifies a file containing the private key for the certificate file
(specified via -certfile or -chainfile).
The default file type is PEM.
- -keyfiletype type
-
Specifies the type of the private key file specified
by -keyfile.
Type can be pem or asn1.
- -keypasswd type:value
-
Specifies the password for the private key file, if it is encrypted.
The argument can be file:filename, specifying that the
password is in a file, or string:string, specifying the
password on the command-line directly.
If the private key file is encrypted and no -keypasswd
option is given,
the password will be prompted for interactively.
- -keymap name
-
Specifies a keyboard map to be found in the resource
c3270.keymap.name or the file name.
See KEYMAPS below for details.
- -km name
-
Specifies the local encoding method for multi-byte text.
name is an encoding name recognized by the ICU library.
(Supported only when c3270 is compiled with DBCS support, and necessary
only when c3270 cannot figure it out from the locale.)
- -loginmacro Action(arg...) ...
-
Specifies a macro to run at login time.
- -model name
-
The model of 3270 display to be emulated.
The model name is in two parts, either of which may be omitted:
The first part is the
base model,
which is either 3278 or 3279.
3278 specifies a monochrome (green on black) 3270 display;
3279 specifies a color 3270 display.
The second part is the
model number,
which specifies the number of rows and columns.
Model 4 is the default.
Model Number | Columns | Rows |
2 | 80 | 24 |
3 | 80 | 32 |
4 | 80 | 43 |
5 | 132 | 27 |
Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but
most hosts seem to work with them anyway.
The default model
for a color display is 3279-4.
For a monochrome display, it is 3278-4.
- -mono
-
Prevents c3270 from using color, ignoring any color capabilities
reported by the terminal.
- -noprompt
-
An alias for -secure.
- -nvt
-
Start in NVT mode instead of waiting for the host to send data, and make the
default terminal type xterm.
- -oversize colsxrows
-
Makes the screen larger than the default for the chosen model number.
This option has effect only in combination with extended data stream support
(controlled by the "c3270.extended" resource), and only if the host
supports the Query Reply structured field.
The number of columns multiplied by the number of rows must not exceed
16383 (3fff hex), the limit of 14-bit 3270 buffer addressing.
It can also be specified as auto, which causes c3270 to fill
the entire terminal or console window.
- -port n
-
Specifies a different TCP port to connect to.
n can be a name from /etc/services like telnet, or a
number.
This option changes the default port number used for all connections.
(The positional parameter affects only the initial connection.)
- -proxy type:host[:port]
-
Causes c3270 to connect via the specified proxy, instead of
using a direct connection.
The host can be an IP address or hostname.
The optional port can be a number or a service name.
For a list of supported proxy types, see PROXY
below.
- -printerlu luname
-
Causes c3270 to automatically start a pr3287 printer
session.
If luname is ".", then the printer session will be associated with the
interactive terminal session (this requires that the host support TN3270E).
Otherwise, the value is used as the explicit LU name to associate with the
printer session.
- -reconnect
-
Causes c3270
to automatically reconnect to the host if it ever disconnects.
This option has effect only if a hostname is specified on the command line.
- -rv
-
Switches c3270 from a white-on-black display to a black-on-white
display.
- -sl n
-
Specifies that n lines should be saved for scrolling back.
The default is 4096.
- -scriptport [addr:]port
-
Specifies a port and optional address to listen on for scripting connections.
Addr can be specified as `*' to indicate 0.0.0.0; the
default is 127.0.0.1. IPv6 numeric addresses must be specified inside of
square brackets, e.g., [::1]:4081 to specify the IPv6 loopback address and
TCP port 4081.
Note that this option is mutually-exclusive with the -httpd
option
.
- -secure
-
Disables the interactive c3270> prompt.
When used, a hostname must be provided on the command line.
- -selfsignedok
-
When verifying a host SSL certificate, allow it to be self-signed.
- -set toggle
-
Sets the initial value of toggle to true.
The list of toggle names is under TOGGLES
below.
- -socket
-
Causes the emulator to create a Unix-domain socket when it starts, for use
by script processes to send commands to the emulator.
The socket is named /tmp/x3sck.pid.
The -p option of x3270if causes it to use this socket,
instead of pipes specified by environment variables.
- -tn name
-
Specifies the terminal name to be transmitted over the telnet connection.
The default name is
IBM-model_name-E,
for example,
IBM-3279-4-E
for a color display, or
IBM-3278-4-E
for a monochrome display.
Some hosts are confused by the -E
suffix on the terminal name, and will ignore the extra screen area on
models 3, 4 and 5.
Prepending an s: on the hostname, or setting the "c3270.extended"
resource to "false", removes the -E
from the terminal name when connecting to such hosts.
The name can also be specified with the "c3270.termName" resource.
- -trace
-
Turns on data stream and event tracing at startup.
The default trace file name is
/tmp/x3trc.
- -tracefile file
-
Specifies a file to save data stream and event traces into.
If the name starts with `>>', data will be appended to the file.
- -tracefilesize size
-
Places a limit on the size of a trace file.
If this option is not specified, or is specified as 0 or none,
the trace file size will be unlimited.
The minimum size is 64 Kbytes.
The value of size can have a K or M suffix, indicating
kilobytes or megabytes respectively.
When the trace file reaches the size limit, it will be renamed with a
`-' appended and a new file started.
- -user name
-
Specifies the user name for RFC 4777 support.
- -v
-
Display the version and build options for c3270 and exit.
- -verifycert
-
For SSL or SSL/TLS connections, verify the host certificate, and do not allow
the connection to complete unless it can be validated.
- -xrm "c3270.resource: value"
-
Sets the value of the named resource to value.
Resources control less common c3270
options, and are defined under RESOURCES below.
Modes
c3270 has two basic modes: command-prompt and session.
Command-prompt mode is where the c3270> prompt is
displayed.
Interactive commands can be entered at this prompt, to connect to a host,
disconnect from a host, transfer files, display statistics, exit
c3270, etc.
The complete list of interactive commands is listed under
ACTIONS.
Session mode is where the emulated 3270 screen is displayed;
keyboard commands cause the display buffer to be modified or data to be
sent to the host.
To switch from display mode to command-prompt mode, press
Ctrl-].
To switch from command-prompt mode to display mode, press Enter
(without entering a command) at the c3270> prompt.
Character Sets
The -charset
option or the "c3270.charset" resource controls the EBCDIC
host character set used by c3270.
Available sets include:
Charset Name | Host Code Page | Display Character Set |
belgian | 500 | iso8859-1 |
belgian-euro | 1148 | iso8859-15 |
bracket | 037 | iso8859-1 |
brazilian | 275 | iso8859-1 |
chinese-gb18030 | 1388 | iso8859-1 + iso10646-1 |
cp1047 | 1047 | iso8859-1 |
cp870 | 870 | iso8859-2 |
finnish | 278 | iso8859-1 |
finnish-euro | 1143 | iso8859-15 |
french | 297 | iso8859-1 |
french-euro | 1147 | iso8859-15 |
german | 273 | iso8859-1 |
german-euro | 1141 | iso8859-15 |
greek | 423 | iso8859-7 |
hebrew | 424 | iso8859-8 |
icelandic | 871 | iso8859-1 |
icelandic-euro | 1149 | iso8859-15 |
italian | 280 | iso8859-1 |
italian-euro | 1144 | iso8859-15 |
japanese-kana | 930 | jisx0201.1976-0 + jisx0208.1983-0 |
japanese-latin | 939 | jisx0201.1976-0 + jisx0208.1983-0 |
norwegian | 277 | iso8859-1 |
norwegian-euro | 1142 | iso8859-15 |
russian | 880 | koi8-r |
simplified-chinese | 935 | iso8859-1 + gb2312.1980-0 |
slovenian | 870 | iso8859-2 |
spanish | 284 | iso8859-1 |
spanish-euro | 1145 | iso8859-15 |
thai | 1160 | iso8859-11 tis620.2529-0 |
traditional-chinese | 937 | iso8859-1 + Big5-0 |
turkish | 1026 | iso8859-9 |
uk | 285 | iso8859-1 |
uk-euro | 1146 | iso8859-15 |
us-euro | 1140 | iso8859-15 |
us-intl | 037 | iso8859-1 |
The default character set is
bracket,
which is useful for common U.S. IBM hosts which use EBCDIC
codes AD and BD for the `[' and `]' characters,
respectively.
Note that any of the host code pages listed above can be specified by adding
cp to the host code page, e.g., cp037 for host code page 037.
Also note that the code pages available for a given version of c3270
are displayed by the -v command-line option.
Menu Bar and Keypad
c3270 supports a menu bar and pop-up keypad.
The menu bar allows common functions to be executed without needing to switch
to the c3270> prompt.
It is available by pressing Alt-N, or if the console supports a mouse, by
clicking on the menu titles displayed at the top of the screen.
The on-screen menu title bar can be turned off via the "c3270.menuBar"
resource.
The pop-up keypad allows the 3270-specific keys (PF keys, PA
keys, Clear,
Reset, etc.) to be invoked without memorizing their key mappings or switching
to the c3270> prompt.
The keypad can be popped up by pressing Alt-K, or can be invoked via a menu
option.
Hosts Database
c3270 uses the ibm_hosts database to
define aliases for host names, and to specify
macros to be executed when a connection is first made.
See ibm_hosts(5) for details.
You may specify a different ibm_hosts
database with the "c3270.hostsFile" resource.
NVT Mode
Some hosts use an ASCII front-end to do initial login negotiation,
then later switch to 3270 mode.
c3270 will emulate an ANSI X3.64 terminal until the host
places it in 3270 mode (telnet BINARY and SEND EOR modes, or
TN3270E mode negotiation).
If the host later negotiates to stop functioning in 3270 mode,
c3270 will return to NVT emulation.
In NVT mode, c3270
supports both character-at-a-time mode and line mode operation.
You may select the mode with a menu option.
When in line mode, the special characters and operational characteristics are
defined by resources:
Mode/Character | Resource | Default |
Translate CR to NL | c3270.icrnl | true |
Translate NL to CR | c3270.inlcr | false |
Erase previous character | c3270.erase | ^? |
Erase entire line | c3270.kill | ^U |
Erase previous word | c3270.werase | ^W |
Redisplay line | c3270.rprnt | ^R |
Ignore special meaning of next character | c3270.lnext | ^V |
Interrupt | c3270.intr | ^C |
Quit | c3270.quit | ^\ |
End of file | c3270.eof | ^D |
Separate keymaps can be defined for use only when c3270 is in
3270 mode or NVT mode.
See KEYMAPS for details.
Toggles
c3270 has a number of configurable modes which may be selected by
the -set and -clear options.
These names can also be used as the first parameter to the Toggle
action.
- monoCase
-
If set, c3270 operates in uppercase-only mode.
- blankFill
-
If set, c3270 modifies interactive 3270 behavior in two ways.
First, when a character is typed into a field, all nulls in the field to the
left of that character are changed to blanks.
This eliminates a common 3270 data-entry surprise.
Second, in insert mode, trailing blanks in a field are treated like nulls,
eliminating the annoying `lock-up' that often occurs when inserting
into an field with (apparent) space at the end.
- lineWrap
-
If set, the NVT terminal emulator automatically assumes
a NEWLINE character when it reaches the end of a line.
- underscore
-
If set, c3270 will display underlined fields by substituting
underscore `_' characters for blanks or nulls in the field.
Otherwise, these fields will be displayed
using the terminal's native
underlining mode, if one is defined.
- trace
-
Turns on data stream and event tracing at start-up.
Network traffic (both a hexadecimal representation and its
interpretation) is logged to the file
.
The directory for the trace file can be changed with
the "c3270.traceDir" resource.
Script commands are also traced.
- screenTrace
-
Turns on screen tracing at start-up.
Each time the screen changes, its contents are appended to the file
.
- showTiming
-
If set, the time taken by the host to process an AID is displayed on
the status line.
- aidWait
-
Changes the behavior of actions that send an AID to the
host (Enter,
Clear, PA and PF).
When set, these actions no longer block until the host unlocks the keyboard.
It is up to the script to poll the prompt for the unlocked state, or to use
the Wait(Unlock) action to wait for the unlock.
- visibleControl
-
If set, control characters (NULLs, SI/SO and field attributes), which are
usually displayed as blanks, are visible on the display.
NULs become periods, SO becomes `<',
SI becomes `>'.
Field attributes are mapped onto the characters 0 through 9 and A through V
and are displayed in
reverse-video
yellow.
Field attribute mappings are part of the c3270 Resources
documentation for the visibleControl resource.
Status Line
If the terminal that c3270 is running on
has at least one more row that the 3270 model requires (e.g., 25 rows for a
model 2), c3270 will display a status line.
The c3270 status line contains a variety of information.
From left to right, the fields are:
- comm status
-
The first symbol is always a 4.
If c3270 is in TN3270E mode, the second symbol is a B;
otherwise it is an A.
If
c3270 is in SSCP-LU mode, the third symbol is an S.
Otherwise it is blank.
- keyboard lock
-
If the keyboard is locked, an "X" symbol and a message field indicate the
reason for the keyboard lock.
- typeahead
-
The letter "T" indicates that one or more keystrokes are in the typeahead
buffer.
- temporary keymap
-
The letter "K" indicates that a temporary keymap is in effect.
- reverse
-
The letter "R" indicates that the keyboard is in reverse field entry mode.
- insert mode
-
The
letter "I" indicates that the keyboard is in insert mode.
- printer session
-
The letter "P" indicates that a pr3287 session is active.
- secure connection
-
A green letter "S" indicates that the connection is secured via SSL/TLS.
- LU name
-
The LU name associated with the session, if there is one.
- cursor position
-
The cursor row and column are optionally displayed, separated by a "/".
Actions
Here is a complete list of basic c3270 actions.
Script-specific actions are described on the
x3270-script(1) manual page.
)
Actions marked with an asterisk (*) may block, sending data to the host and
possibly waiting for a response.
*Attn | attention key |
BackSpace | move cursor left (or send ASCII BS) |
BackTab | tab to start of previous input field |
CircumNot | input "^" in NVT mode, or "¬" in 3270 mode |
*Clear | clear screen |
Compose | next two keys form a special symbol |
*Connect(host) | connect to host |
*CursorSelect | Cursor Select AID |
Delete | delete character under cursor (or send ASCII DEL) |
DeleteField | delete the entire field |
DeleteWord | delete the current or previous word |
*Disconnect | disconnect from host |
Down | move cursor down |
Dup | duplicate field |
*Enter | Enter AID (or send ASCII CR) |
Erase | erase previous character (or send ASCII BS) |
EraseEOF | erase to end of current field |
EraseInput | erase all input fields |
Escape | escape to c3270> prompt |
Execute(cmd) | execute a command in a shell |
FieldEnd | move cursor to end of field |
FieldMark | mark field |
HexString(hex_digits) | insert control-character string |
Home | move cursor to first input field |
Insert | set insert mode |
*Interrupt | send TELNET IP to host |
Keypad | Display pop-up keypad |
Key(keysym) | insert key keysym |
Key(0xxx) | insert key with character code xx |
Left | move cursor left |
Left2 | move cursor left 2 positions |
Menu | Display menu bar |
MonoCase | toggle uppercase-only mode |
MoveCursor(row, col) | move cursor to (row,col) |
Newline | move cursor to first field on next line (or send ASCII LF) |
NextWord | move cursor to next word |
*PA(n) | Program Attention AID (n from 1 to 3) |
*PF(n) | Program Function AID (n from 1 to 24) |
PreviousWord | move cursor to previous word |
Printer(Start[,lu]|Stop) | start or stop printer session |
PrintText(command) | print screen text on printer |
Quit | exit c3270 |
Redraw | redraw window |
Reset | reset locked keyboard |
Right | move cursor right |
Right2 | move cursor right 2 positions |
*Script(command[,arg...]) | run a script |
Scroll(Forward|Backward) | scroll screen |
*String(string) | insert string (simple macro facility) |
*SysReq | System Request AID |
Tab | move cursor to next input field |
Toggle(option[,set|clear]) | toggle an option |
ToggleInsert | toggle insert mode |
ToggleReverse | toggle reverse-input mode |
*Transfer(option=value...') | file transfer |
Up | move cursor up |
ignore | do nothing |
Any of the above actions may be entered at the c3270> prompt;
these commands are also available for use in keymaps
(see KEYMAPS).
Command names are case-insensitive.
Parameters can be specified with parentheses and commas, e.g.:
PF(1)
or with spaces, e.g.:
PF 1
Parameters can be quoted with double-quote characters, to allow spaces,
commas, and parentheses to be used.
c3270 also supports the following interactive commands:
- Help
-
Displays a list of available commands.
- ScreenTrace
-
Turns screen tracing (saving screen images to a file) on or off.
The command screentrace on enables screen tracing;
the command screentrace off disables it.
After on, a filename may be specified to override the default
trace file name of
/tmp/x3scr.pid.
The keyaord on can also be followed by the keyword printer and an optional
print command
to direct screen traces directly to the printer.
- Show
-
Displays statistics and settings.
- Trace
-
Turns tracing on or off.
The command trace on enables data stream and keyboard event tracing;
the command trace off disables it.
The qualifier data or keyboard can be specified
before on or off to enable or disable a particular trace.
After on, a filename may be specified to override the default
trace file name of
/tmp/x3trc.pid.
Note that certain parameters to c3270 actions (such as the names of files
and keymaps) are subject to substitutions:
The character ~ at the beginning of a string is replaced with the user's
home directory.
A ~ character followed by a username is
replaced with that user's home directory.
Environment variables are substituted using the Unix shell convention of
$name or ${name}.
Two special pseudo-environment variables are supported. ${TIMESTAMP} is
replaced with a microsecond-resolution timestamp; ${UNIQUE} is replaced with a
string guaranteed to make a unique filename (the process ID optionally
followed by a dash and a string of digits). ${UNIQUE} is used to form trace
file names.
Keymaps
The -keymap option
or the c3270.keymap resource
allow a custom keymap to be specified.
If the option -keymap xxx is given (or the
c3270.keymap resource has the value xxx),
c3270
will look for a resource named c3270.keymap.xxx.
If no resource definition is found, it will look for a file named
xxx.
Multiple keymaps may be specified be separating their names with commas.
Definitions in later keymaps supercede those in earlier keymaps.
In addition, separate keymaps may be defined that apply only in 3270 mode or
NVT mode.
For example, the resource definition
c3270.keymap.xxx.nvt
or the file
xxx.nvt
will augment the definition
of keymap xxx in NVT mode.
Similarly, the resource definition
c3270.keymap.xxx.3270
or the file
xxx.3270
will augment the definition
of keymap xxx in 3270 mode.
Temporary keymaps can also be added or removed while c3270 is running
with the Keymap action.
See x3270-script(1) for details.
Each line (rule) in a keymap specifies actions to perform when a
particular key or sequence of keys is pressed.
Keymap rules have the following syntax:
[Meta][Ctrl]<Key>key...: action[(param[,...])] ...
Here is a sample keymap definition from a file:
! Lines beginning with ! are ignored and can
! occur anywhere.
! Definition of keymap xxx
! When Alt-c is pressed, clear the screen.
Alt<Key>c: Clear()
! When PageUp is pressed, send PF7 to the host.
<Key>PPAGE: PF(7)
! When Ctrl-a is pressed, then F1, send PF13
! to the host.
Ctrl<Key>a <Key>F1: PF(13)
Here is the same definition as a resource:
! Lines beginning with ! are ignored, but NOT
! within a definition.
! Note that the \ is required at the end of the
! first line, and \n\ is
! required at the end of every other line except
! the last.
! Definition of keymap xxx
c3270.keymap.xxx: \
Alt<Key>c: Clear() \n\
<Key>PPAGE: PF(7) \n\
Ctrl<Key>A <Key>F1: PF(13)
The optional
Alt or Ctrl modifiers specify that
the
Alt and Ctrl keys are pressed along with the
specified key, respectively.
Key is either an ISO 8859-1 symbol name, such as equal
for `=' and a for `a', or a symbolic
ncurses key name,
such as UP.
More than one key can be specified, indicating that a sequence of
keys must be pressed in order for the rule to be matched.
The action is an action from the ACTIONS list
above.
More than one action may be specified; they will be executed in order.
Keymap entries are case-sensitive and modifier-specific.
This means that a keymap for the b key will match only a
lowercase b.
Actions for uppercase B, or for Alt-B,
must be specified separately.
The base keymap is:
Key | Action |
Ctrl<Key>] | Escape |
Ctrl<Key>a Ctrl<Key>a | Key(0x01) |
Ctrl<Key>a Ctrl<Key>] | Key(0x1d) |
Ctrl<Key>a <Key>Tab | BackTab |
Ctrl<Key>a <Key>c | Clear |
Ctrl<Key>a <Key>e | Escape |
Ctrl<Key>a <Key>r | Reset |
Ctrl<Key>a <Key>k | Keypad |
Ctrl<Key>a <Key>l | Redraw |
Ctrl<Key>a <Key>m | Compose |
Ctrl<Key>a <Key>n | Menu |
Ctrl<Key>a <Key>p | PrintText |
Ctrl<Key>a <Key>^ | Key(notsign) |
Ctrl<Key>k | Keypad |
Ctrl<Key>n | Menu |
<Key>UP | Up |
<Key>DOWN | Down |
<Key>LEFT | Left |
<Key>RIGHT | Right |
<Key>F(n) | PF(n) |
Ctrl<Key>a <Key>F(n) | PF(n+12) |
Ctrl<Key>a <Key>1 | PA(1) |
Ctrl<Key>a <Key>2 | PA(2) |
Ctrl<Key>a <Key>3 | PA(3) |
<Key>PPAGE | Scroll(Backward) |
<Key>NPAGE | Scroll(Forward) |
The base 3270-mode keymap adds:
Key | Action |
Ctrl<Key>c | Clear |
Ctrl<Key>d | Dup |
Ctrl<Key>f | FieldMark |
Ctrl<Key>i | Tab |
Ctrl<Key>l | Redraw |
Ctrl<Key>r | Reset |
Ctrl<Key>u | DeleteField |
<Key>BackSpace | BackSpace |
<Key>Return | Enter |
<Key>Tab | Tab |
<Key>Linefeed | Newline |
<Key>BACKSPACE | BackSpace |
<Key>DC | Delete |
<Key>HOME | Home |
<Key>IC | ToggleInsert |
The Meta or Alt Key
Some keyboards do not have a Meta key.
Instead, they have an Alt key.
Sometimes this key acts as a proper
Meta key, that is, it is a modifier key that sets the high-order bit
(0x80) in the code that is transmitted for each key.
Other keyboards send a two-character sequence when
the Alt key is pressed with another key: the Escape character (0x1b),
followed by the code for the other key.
The resource c3270.metaEscape and the termcap km attribute
control how c3270 will interpret these sequences.
When c3270.metaEscape is set to true, or when
c3270.metaEscape is set to auto and the termcap km
attribute is set, the keyboard is assumed to have a separate Meta key.
The Escape key can be used as an ordinary data key and has no special meaning.
When c3270.metaEscape is set to true, or when
c3270.metaEscape is set to auto and the termcap km
attribute is not set, the keyboard is assumed to use the Escape character
as a prefix to indicate that the following character is supposed to have the
high-order bit set.
When c3270 sees an Escape character from the keyboard, it sets a short
timeout.
If another character arrives before the timeout expires, then c3270
will combine the two characters, setting the high-order bit of the second.
In an event trace file, the combined character is listed as derived.
In a keymap, only the combined character or the Meta prefix may be used.
The Escape key can still be used by itself, but only if there is a short pause
before pressing another key.
The default value for c3270.metaEscape is auto.
File Transfer
The Transfer action implements IND$FILE file transfer.
This action requires that the IND$FILE
program be installed on the IBM host, and that the 3270 cursor
be located in a field that will accept a TSO or VM/CMS command.
The Transfer action
can be entered at the command prompt with no parameters, which will cause it
to prompt interactively for the file names and options.
It can also be invoked with parameters to define the entire transfer.
Because of the complexity and number of options for file transfer, the
parameters to the Transfer action take the unique form
of option=value, and can appear in any order.
Note that if the value contains spaces (such as a VM/CMS file name),
then the entire parameter must be quoted, e.g., "HostFile=xxx foo a".
The options are:
Option | Required? | Default | Other Values |
Direction | No | receive | send |
HostFile | Yes | | |
LocalFile | Yes | | |
Host | No | tso | vm, cics |
Mode | No | ascii | binary |
Cr | No | remove | add, keep |
Remap | No | yes | no |
Exist | No | keep | replace, append |
Recfm | No | | fixed, variable, undefined |
Lrecl | No | | |
Blksize | No | | |
Allocation | No | | tracks, cylinders, avblock |
PrimarySpace | Sometimes | | |
SecondarySpace | No | | |
Avblock | Sometimes | | |
BufferSize | No | 4096 | |
The option details are as follows.
- Direction
-
send to send a file to the host,
receive to receive a file from the host.
- HostFile
-
The name of the file on the host.
- LocalFile
-
The name of the file on the local workstation.
- Host
-
The type of host (which dictates the form of the IND$FILE command):
tso (the default), vm or cics.
- Mode
-
Use ascii (the default) for a text file, which will be translated
between EBCDIC and ASCII as necessary.
Use binary for non-text files.
- Cr
-
Controls how Newline characters are handled when transferring
Mode=ascii files.
remove (the default) strips Newline characters in local files
before transferring them to the host.
add adds Newline characters to each host file record before
transferring it to the local workstation.
keep preserves Newline characters when transferring a local file
to the host.
- Remap
-
Controls text translation for Mode=ascii files.
The value yes (the default) causes c3270 to remap the text to ensure
maximum compatibility between the workstation's character set and encoding
and the host's EBCDIC code page.
The value no causes c3270 to pass the text to or from the host
as-is, leaving all translation to the IND$FILE program on the host.
- Exist
-
Controls what happens when the destination file already exists.
keep (the default) preserves the file, causing the
Transfer action to fail.
replace overwrites the destination file with the source file.
append appends the source file to the destination file.
- Recfm
-
Controls the record format of files created on the host.
(TSO and VM hosts only.)
fixed creates a file with fixed-length records.
variable creates a file with variable-length records.
undefined creates a file with undefined-length records (TSO hosts
only).
The Lrecl option controls the record length or maximum record length for
Recfm=fixed and Recfm=variable files, respectively.
- Lrecl
-
Specifies the record length (or maximum record length) for files created on
the host.
(TSO and VM hosts only.)
- Blksize
-
Specifies the block size for files created on the host.
(TSO and VM hosts only.)
- Allocation
-
Specifies the units for the PrimarySpace and
SecondarySpace options: tracks, cylinders or
avblock. (TSO hosts only.)
- PrimarySpace
-
Primary allocation for a file.
The units are given by the Allocation option.
Required when the Allocation is specified as something other than
default.
(TSO hosts only.)
- SecondarySpace
-
Secondary allocation for a file.
The units are given by the Allocation option. (TSO hosts only.)
- Avblock
-
Average block size, required when Allocation specifies avblock.
(TSO hosts only.)
- BufferSize
-
Buffer size for DFT-mode transfers.
Can range from 256 to 32768.
Larger values give better performance, but some hosts may not be able to
support them.
There are also resources that control the default values for each of the
file transfer parameters.
These resources have the same names as the Transfer keywords, but with
ft prepended. E.g., the default for the Mode keyword is the
c3270.ftMode resource.
The PrintText Action
The PrintText produces screen snapshots in a number of different
forms.
The default form wth no arguments sends a copy of the screen to the default
printer.
A single argument is
the command to use to print, e.g., lpr.
Multiple arguments can include keywords to control the output of
PrintText:
- file filename
-
Save the output in a file.
- html
-
Save the output as HTML. This option implies file.
- rtf
-
Save the output as RichText. This option implies file.
The font defaults to Courier New and the
point size defaults to 8.
These can be overridden by the printTextFont and printTextSize
resources, respectively.
- string
-
Return the output as a string. This can only be used from scripts.
- modi
-
Render modified fields in italics.
- caption text
-
Add the specified text as a caption above the output.
Within text, the special sequence %T% will be replaced with
a timestamp.
- command command
-
Directs the output to a command.
This allows one or more of the other keywords to be specified, while still
sending the output to the printer.
Scripts
There are several types of
script functions available.
- The String Action
-
The simplest method for
scripting is provided via the String
action.
The arguments to String are one or more double-quoted strings which are
inserted directly as if typed.
The C backslash conventions are honored as follows.
(Entries marked * mean that after sending the AID code to the host,
c3270 will wait for the host to unlock the keyboard before further
processing the string.)
\b | Left |
\exxxx | EBCDIC character in hex |
\f | Clear* |
\n | Enter* |
\pan | PA(n)* |
\pfnn | PF(nn)* |
\r | Newline |
\t | Tab |
\T | BackTab |
\uxxxx | Unicode character in hex |
\xxxxx | Unicode character in hex |
Note that the numeric values for the \e, \u and \x sequences
can be abbreviated to 2 digits.
Note also that EBCDIC codes greater than 255 and some Unicode character codes
represent DBCS characters, which will work only if c3270 is built with
DBCS support and the host allows DBCS input in the current field.
An example keymap entry would be:
Meta<Key>p: String("probs clearrdr\n")
Note:
The strings are in ASCII and converted to EBCDIC,
so beware of inserting
control codes.
There is also an alternate form of the String action, HexString,
which is used to enter non-printing data.
The argument to HexString is a string of hexadecimal digits, two per
character. A leading 0x or 0X is optional.
In 3270 mode, the hexadecimal data represent EBCDIC characters, which
are entered into the current field.
In NVT mode, the hexadecimal data represent ASCII characters,
which are sent directly to the host.
- The Script Action
-
This action causes c3270 to start a child process which can
execute c3270 actions.
Standard input and output from the child process are piped back to
c3270.
The Script action is fully documented in
x3270-script(1).
Composite Characters
c3270
allows the direct entry of accented letters and special symbols.
Pressing and releasing the "Compose" key, followed by two other keys, causes
entry of the symbol combining those two keys.
For example, "Compose" followed by the "C" key and the "," (comma) key, enters
the "C-cedilla" symbol.
A C on the status line indicates a pending composite character.
The mappings between these pairs of ordinary keys and the symbols they
represent is controlled by the "c3270.composeMap" resource; it gives the
name of the map to use.
The maps themselves are named "c3270.composeMap.name".
The default is "latin1", which gives mappings for most of the symbols in
the ISO 8859-1 Latin-1 character set that are not in the
7-bit ASCII
character set.
Note:
The default keymap defines
Meta<Key>m
as the "Compose" key.
You
may set up your own "Compose" key with
a keymap that maps some other keysym onto the Compose action.
Printer Session Support
c3270 supports associated printer sessions via the pr3287(1)
program.
The Printer action is used to start or stop a pr3287 session.
The action Printer Start starts a printer session, associated with the
current LU. (This works only if the host supports TN3270E.)
The action Printer Start lu starts a printer session, associated
with a specific lu.
The action Printer Stop stops a printer session.
The resource c3270.printer.options specifies extra options, such as
-trace to pass to pr3287.
See pr3287(1) for further details.
The resource c3270.printerLu controls automatic printer session
start-up. If it is set to `.', then whenever a login session is started,
a printer session will automatically be started, associated with the login
session. If it is set an LU name, then the automatic printer session will be
associated with the specified LU.
Passthru
c3270 supports the Sun telnet-passthru
service provided by the in.telnet-gw server.
This allows outbound telnet connections through a firewall machine.
When a p: is prepended to a hostname, c3270
acts much like the itelnet(1) command.
It contacts the machine named internet-gateway at the port defined in
/etc/services as telnet-passthru
(which defaults to 3514).
It then passes the requested hostname and port to the
in.telnet-gw server.
Proxy
The -proxy option or the c3270.proxy resource
causes c3270 to use a proxy server to connect to the host.
The syntax of the option or resource is:
type:host[:port]
The supported values for type are:
Proxy Type | Protocol | Default Port |
http | RFC 2817 HTTP tunnel (squid) | 3128 |
passthru | Sun in.telnet-gw | none |
socks4 | SOCKS version 4 | 1080 |
socks5 | SOCKS version 5 (RFC 1928) | 1080 |
telnet | No protocol (just send connect host port) | none |
The special types socks4a and socks5d can also be used to force
the proxy server to do the hostname resolution for the SOCKS protocol.
Screen Size Switching
When running as a 3270 Model 5, c3270 can take advantage of terminals
that can switch between 80 and 132 column modes.
Because the curses library does not support mode switching, the escape
sequences and resulting screen dimensions must be specified explicitly to
c3270.
These are specified with the -altscreen and
-defscreen command-line options, or the
altScreen and defScreen resources.
-altscreen or altScreen defines the alternate
(132-column) mode; -defscreen or defScreen defines the
default (80-column) mode.
The syntax for the options and resources is
rowsxcols=init_string,
where rows and cols give the screen dimensions, and
init_string is the escape sequence to transmit to the terminal to
enter that mode.
For defscreen, the minimum dimensions are 24 rows and 80 columns.
For altscreen, the minimum dimensions are 27 rows and 132 columns.
Within init_string, the usual escape sequences are supported
(\E for escape, \r, \b, etc.).
For example, the init string for a 132-column xterm is:
\E[?40h\E[?3h
Note: When defscreen and altscreen are specified, the model
number is always set to 5.
Resources
Certain c3270
options can be configured via resources.
Resources are defined
in the file .c3270pro in the user's
home directory, and
by -xrm options.
The definitions are similar to X11 resources, and use a similar syntax.
The resources available in c3270 are:
Resource | Default | Option | Purpose |
allBold | Auto | -allbold | Display all characters bold |
altScreen | | -altscreen | 132-col screen definition |
blankFill | False | -set blankFill | Blank Fill mode |
charset | bracket | -charset | EBCDIC character set |
composeMap | latin1 | | Name of composed-character map |
cursesColorForHostColorn | (note 6) | | Color mapping |
cursesColorForDefault | green | | Default color mapping |
cursesColorForIntensified | red | | Default color mapping |
cursesColorForProtected | blue | | Default color mapping |
cursesColorForProtectedIntensified | white | | Default color mapping |
cursesKeymap | True | | Set curses keymap option |
defScreen | | -defscreen | 80-col screen definition |
dbcsCgcsgid | | | Override DBCS CGCSGID |
dsTrace | False | -trace | Data stream tracing |
eof | ^D | | NVT-mode EOF character |
erase | ^H | | NVT-mode erase character |
extended | True | | Use 3270 extended data stream |
eventTrace | False | -trace | Event tracing |
hostsFile | | -hostsfile | Host alias/macro file |
icrnl | False | | Map CR to NL on NVT-mode input |
inlcr | False | | Map NL to CR in NVT-mode input |
intr | ^C | | NVT-mode interrupt character |
keymap | | -keymap | Keyboard map name |
keymap.foo | | | Definition of keymap foo |
kill | ^U | | NVT-mode kill character |
lineWrap | False | -set lineWrap | NVT line wrap mode |
lnext | ^V | | NVT-mode lnext character |
m3279 | (note 1) | -model | 3279 (color) emulation |
metaEscape | Auto | | Interpret ESC-x as Meta-x |
mono | (note 5) | -mono | Ignore terminal color capabilities |
monoCase | False | -set monoCase | Mono-case mode |
noPrompt | False | -noprompt | Disable command-prompt mode |
numericLock | False | | Lock keyboard for numeric field error |
oerrLock | True | | Lock keyboard for input error |
oversize | | -oversize | Oversize screen dimensions |
port | telnet | -port | Non-default TCP port |
printer.* | (note 4) | | Printer session config |
printerLu | (note 4) | | Printer session config |
quit | ^\ | | NVT-mode quit character |
reconnect | False | -reconnect | Automatically reconnect to host |
rprnt | ^R | | NVT-mode reprint character |
sbcsCgcsgid | | | Override SBCS CGCSGID |
secure | False | | Disable "dangerous" options |
termName | (note 2) | -tn | TELNET terminal type string |
traceDir | /tmp | | Directory for trace files |
traceFile | (note 3) | -tracefile | File for trace output |
typeahead | True | | Allow typeahead |
werase | ^W | | NVT-mode word-erase character |
Note 1: m3279 defaults to
True if the terminal supports color,
False otherwise.
It can be forced to False with the proper -model
option.
Note 2:
The default terminal type string is constructed from the model number, color
emulation, and extended data stream modes.
E.g., a model 2 with color emulation and the extended data stream option
would be sent as IBM-3279-2-E.
Note also that when TN3270E
mode is used, the terminal type is always sent as 3278, but this does not
affect color capabilities.
Note 3: The default trace file is
x3trc.pid in the directory specified by
the traceDir resource.
Note 4: See PRINTER SUPPORT for details.
Note 5: mono defaults to false if the
terminal supports at least 8 colors and to true otherwise.
Note 6: The default curses color mappings for host colors
0 through 15 are: black, blue, red, magenta, green, cyan, yellow, white, black,
blue, yellow, blue, green, cyan, black and white.
In .c3270pro, lines are continued with a
backslash character.
-xrm options override definitions found in .c3270pro.
If more than one -xrm option is given for the same resource,
the last one on the command line is used.
Files
/usr/local/lib/x3270/ibm_hosts
$HOME/.c3270pro
See Also
pr3287(1), s3270(1), x3270-script(1), x3270(1), tcl3270(1), telnet(1), tn3270(1)
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements
Copyrights
Copyright © 1993-2015, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA
30332.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
- *
-
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
- *
-
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- *
-
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes,
GTRC nor
the names of their contributors may be used to endorse or promote
products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF
SPARKES AND GTRC
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK
ALTENBERN, JEFF
SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Version
c3270 3.4ga4
This HTML document and the accompanying troff document were generated with
a set of write-only m4 macros and the powerful vi editor.
Last modified 19 June 2015.