The following are the diffs between 4.1 and 4.1.1 of tn3270. First, though, there are three man page files and etc/map3270. These are delineated by "---" in column 1. --- mset.1 .\" Copyright (c) 1986 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms are permitted .\" provided that the above copyright notice and this paragraph are .\" duplicated in all such forms and that any documentation, .\" advertising materials, and other materials related to such .\" distribution and use acknowledge that the software was developed .\" by the University of California, Berkeley. The name of the .\" University may not be used to endorse or promote products derived .\" from this software without specific prior written permission. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED .\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. .\" .\" @(#)mset.1 4.2 (Berkeley) 12/21/88 .\" .TH MSET 1 "December 21, 1988" .UC 6 .SH NAME mset \- retrieve ASCII to IBM 3270 keyboard map .SH SYNOPSIS .B mset [-picky] [-shell] [keyboardname] .SH DESCRIPTION .I Mset retrieves mapping information for the ASCII keyboard to IBM 3270 terminal special functions. Normally, these mappings are found in .I /etc/map3270 (see .IR map3270 (5)). This information is used by the .I tn3270 command (see .IR tn3270 (1)). .PP The default .I mset output can be used to store the mapping information in the process environment in order to avoid scanning .I /etc/map3270 each time .I tn3270 is invoked. To do this, place the following command in your .I .login file: .ti 5n .sp set noglob; setenv \s-1MAP3270\s0 "\(gamset\(ga"; unset noglob .PP If the .I keyboardname argument is not supplied, .I mset attempts to determine the name of the keyboard the user is using, by checking the .B KEYBD environment variable. If the .B KEYBD environment variable is not set, then .I mset uses the user's terminal type from the environment variable .B TERM as the keyboard name. Normally, .I mset then uses the file .I /etc/map3270 to find the keyboard mapping for that terminal. However, if the environment variable .B MAP3270 exists and contains the entry for the specified keyboard, then that definition is used. If the value of .B MAP3270 begins with a slash (`/') then it is assumed to be the full pathname of an alternate mapping file and that file is searched first. In any case, if the mapping for the keyboard is not found in the environment, nor in an alternate map file, nor in the standard map file, then the same search is performed for an entry for a keyboard with the name .BR unknown . If that search also fails, then a default mapping is used. .PP The arguments to .I mset are: .sp .TP +2 -picky When processing the various map3270 entries (for the user's keyboard, and all those encountered before the one for the user's keyboard), .I mset normally will not complain about entries for unknown functions (like \*(lqPFX1\*(rq); the .I -picky argument causes .I mset to issue warning messages about these unknown entries. .TP -shell If the map3270 entry is longer than the shell's 1024 environmental variable length limit, the default .I mset output cannot be used to store the mapping information in the process environment to avoid scanning .I /etc/map3270 each time .I tn3270 is invoked. The .I -shell argument causes .I mset to generate shell commands to set the environmental variables .BR MAP3270 , .BR MAP3270A , and so on, breaking up the entry to fit within the shell environmental variable length limit. To set these variables, place the following command in your .I .login file: .sp mset -shell > tmp ; source tmp ; /bin/rm tmp .TP keyboardname When searching for the map3270 entry that matches the user's keyboard, .I mset will use .I keyboardname instead of determining the keyboard name from the .B KEYBD or .B TERM environmental variables. .SH FILES /etc/map3270 keyboard mapping for known keyboards .SH SEE ALSO tn3270(1), map3270(5) --- tn3270.1 .\" Copyright (c) 1986 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms are permitted .\" provided that the above copyright notice and this paragraph are .\" duplicated in all such forms and that any documentation, .\" advertising materials, and other materials related to such .\" distribution and use acknowledge that the software was developed .\" by the University of California, Berkeley. The name of the .\" University may not be used to endorse or promote products derived .\" from this software without specific prior written permission. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED .\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. .\" .\" @(#)tn3270.1 4.2 (Berkeley) 12/21/88 .\" .TH TN3270 1 "December 21, 1988" .UC 6 .SH NAME tn3270 \- full-screen remote login to IBM VM/CMS .SH SYNOPSIS .B tn3270 [-d] [-n filename] [-t commandname] [sysname [port]] .SH DESCRIPTION .I Tn3270 permits a full-screen, full-duplex connection from a \s-UNIX\s0 machine to an IBM (or compatible) machine. .I Tn3270 gives the appearance of being logged in to the remote machine from an IBM 3270 terminal. Of course, you must have an account on the machine to which you connect in order to log in. .I Tn3270 looks to the user in many respects like the Yale ASCII Terminal Communication System II. .I Tn3270 is actually a modification of the Arpanet TELNET user interface (see .IR telnet (1)) which will, in certain circumstances, interpret and generate raw 3270 control streams. .PP The flags to .I tn3270 are as follows: .TP +2 -d Turn on socket-level tracing (for super-user only) .TP -n filename Specify a file to receive network trace data output (from commands "toggle netdata" and "toggle options", see .IR telnet (1c)); the default is for output to be directed to the standard error file. .TP -t commandname Specify a \s-UNIX\s0 command to process IBM 4994 style transparent mode data received from the remote IBM machine. .TP sysname The name of the remote system. If the remote name is NOT specified, the user will be prompted for a command (see below). .TP port The port to connect to on the remote system. Normally, .I tn3270 attempts to connect to the standard TELNET port (port 23) on the remote machine. .sp .PP When .I tn3270 first connects to the remote system, it will negotiate to go into 3270 mode. Part of this negotiation involves telling the remote system what model 3270 it is emulating. In all cases, .I tn3270 emulates a 3278 terminal. To decide which specific model, .I tn3270 looks at the number of lines and columns on the actual terminal (as defined in the .B TERM environment variable; see .IR termcap (5)). The terminal (or window in which tn3270 is running, on multiple window systems) must have at least 80 columns and 24 lines, or .I tn3270 will not go into emulation mode. If the terminal does have at least 80 columns and at least 24 lines, the following table describes the emulation: .sp .ne 7v .nf .ta 0.5i 1.5i minimum size emulated (rows*columns) terminal -------------- ------------ 27*132 3278 model 5 43*80 3278 model 4 32*80 3278 model 3 24*80 3278 model 2. .fi .sp .PP Emulation of the 3270 terminal is done in the \s-UNIX\s0 process. This emulation involves mapping 3270-style commands from the host into appropriate sequences to control the user's terminal screen. .I Tn3270 uses .IR curses (3x) and the .I /etc/termcap file to do this. The emulation also involves simulating the special 3270 keyboard keys (program function keys, etc.) by mapping sequences of keystrokes from the ASCII keyboard into appropriate 3270 control strings. This mapping is terminal dependent and is specified in a description file, .IR /etc/map3270 , (see .IR map3270 (5)) or in an environment variable .I MAP3270 (and, if necessary, .IR MAP3270A , .IR MAP3270B , and so on - see .IR mset (1)). Any special function keys on the ASCII keyboard are used whenever possible. If an entry for the user's terminal is not found, .I tn3270 looks for an entry for the terminal type .B unknown. If this is not found, .I tn3270 uses a default keyboard mapping (see .IR map3270 (5)). .PP The first character of each special keyboard mapping sequence is either an ASCII escape (ESC), a control character, or an ASCII delete (DEL). If the user types an unrecognized function key sequence, .I tn3270 sends an ASCII bell (BEL), or a visual bell if defined in the user's termcap entry, to the user's terminal and nothing is sent to the IBM host. .PP If .I tn3270 is invoked without specifying a remote host system name, it enters local command mode, indicated by the prompt ``tn3270>''. In this mode, .I tn3270 accepts and executes all the commands of .IR telnet (1), plus one additional command: .TP +2 transcom Specify \s-UNIX\s0 command for IBM 4994 style transparent mode processing. .PP .I Tn3270 command mode may also be entered, after connecting to a host, by typing a special escape sequence. If .I tn3270 has succeeded in negotiating 3270 mode with the remote host, the escape sequence will be as defined by the map3270 (see .IR map3270 (5)) entry for the user's terminal type (typically control-C); otherwise the escape sequence will initially be set to the single character '^]' (control right square bracket). .PP While in command mode, any host login session is still alive but temporarily suspended. The host login session may be resumed by entering an empty line (press the RETURN key) in response to the command prompt. A session may be terminated by logging off the foreign host, or by typing ``quit'' or ``close'' while in local command mode. .SH FILES /etc/termcap .br /etc/map3270 .SH AUTHOR Greg Minshall .SH NOTES .PP The IBM 4994 style transparent mode command is invoked when .I tn3270 receives IBM 4994 style transparent output from the remote host. Output and input pipes are created for communication between the two processes. The pipes are closed when a 3270 clear command is received from the remote hosts, signalling the end of transparent mode output. Transparent mode is necessary for sending ASCII control characters over the 3270 terminal connection; ASCII graphics terminal support is accomplished this way. Developers of .I transcom commands should note that the .I transcom stdin pipe end will be in CBREAK mode, with ECHO and CRMOD turned off. .SH SEE ALSO mset(1), telnet(1), curses(3x), termcap(3x), termcap(5), map3270(5), \fIYale ASCII Terminal Communication System II Program Description/Operator's Manual\fR (IBM SB30-1911) .SH BUGS Tn3270 is slow and uses system resources prodigiously. .PP Not all 3270 functions are supported, nor all Yale enhancements. .PP Error conditions (attempting to enter data in a protected field, for example) should cause a message to be sent to the user's terminal instead of just ringing a bell. --- map3270.5 .\" Copyright (c) 1986 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms are permitted .\" provided that the above copyright notice and this paragraph are .\" duplicated in all such forms and that any documentation, .\" advertising materials, and other materials related to such .\" distribution and use acknowledge that the software was developed .\" by the University of California, Berkeley. The name of the .\" University may not be used to endorse or promote products derived .\" from this software without specific prior written permission. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED .\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. .\" .\" @(#)map3270.5 4.2 (Berkeley) 12/21/88 .\" .TH MAP3270 5 "December 21, 1988" .UC 6 .SH NAME map3270 \- database for mapping ascii keystrokes into IBM 3270 keys .SH SYNOPSIS .B /etc/map3270 .SH DESCRIPTION When emulating IBM-syle 3270 terminals under \s-UNIX\s0 (see \fItn3270\fR(1)), a mapping must be performed between sequences of keys hit on a user's (ascii) keyboard, and the keys that are available on a 3270. For example, a 3270 has a key labeled .B EEOF which erases the contents of the current field from the location of the cursor to the end. In order to accomplish this function, the terminal user and a program emulating a 3270 must agree on what keys will be typed to invoke the .B EEOF function. .PP The requirements for these sequences are: .nf .ta 4n 9n .sp 1) that the first character of the sequence be outside of the standard ascii printable characters; .sp 2) that no sequence \fIbe\fR an initial part of another (although sequences may \fIshare\fR initial parts). .sp .fi .SH FORMAT The file consists of entries for various keyboards. The first part of an entry lists the names of the keyboards which use that entry. These names will often be the same as in .I /etc/termcap (see .IR termcap (5)); however, note that often the terminals from various termcap entries will all use the same .I map3270 entry; for example, both 925 and 925vb (for 925 with visual bells) would probably use the same .I map3270 entry. Additionally, there are occasions when the terminal type defines a window manager, and it will then be necessary to specify a keyboard name (via the .B KEYBD environment variable) as the name of the entry. After the names, separated by vertical bars (`|'), comes a left brace (`{'); the definitions; and, finally, a right brace (`}'). .PP Each definition consists of a reserved keyword (see list below) which identifies the 3270 function (extended as defined below), followed by an equal sign (`='), followed by the various ways to generate this particular function, followed by a semi-colon (`;'). Each way is a sequence of strings of .I printable ascii characters enclosed inside single quotes (`\(aa'); various ways (alternatives) are separated by vertical bars (`|'). .PP Inside the single quotes, a few characters are special. A caret (`^') specifies that the next character is the ``control'' character of whatever the character is. So, `^a' represents control-a, ie: hexadecimal 1 (note that `^A' would generate the same code). To generate .B rubout (DEL), one enters `^?'. To represent a control character inside a file requires using the caret to represent a control sequence; simply typing control-A will not work. Note: the ctrl-caret sequence (to generate a hexadecimal 1E) is represented as `^^' (not `^\e^'). .PP In addition to the caret, a letter may be preceeded by a backslash (`\e'). Since this has little effect for most characters, its use is usually not recommended. For the case of a single quote (`\(aa'), the backslash prevents that single quote from terminating the string. For the case of a caret (`^'), the backslash prevents the caret from having its special meaning. To have the backslash be part of the string, it is necessary to place two backslashes ('\e\e') in the file. .PP In addition, the following characters are special: .sp .nf .in +0.5i `\eE' means an escape character; `\en' means newline; `\et' means tab; `\er' means carriage return. .in -0.5i .fi .sp It is not necessary for each character in a string to be enclosed within single quotes. `\eE\eE\eE' means three escape characters. .PP Comments, which may appear anywhere on a line, begin with a hash mark (`#'), and terminate at the end of that line. However, comments cannot begin inside a quoted string; a hash mark inside a quoted string has no special meaning. .PP .SH 3270 KEYS SUPPORTED The following is the list of 3270 key names that are supported in this file. Note that some of the keys don't really exist on a 3270. In particular, the developers of this file have relied extensively on the work at the Yale University Computer Center with their 3270 emulator which runs in an IBM Series/1 front end. The following list corresponds closely to the functions that the developers of the Yale code offer in their product. .sp .B In the following list, the .B starred ("*") .B functions are not supported by .IR tn3270 (1). An unsupported function will cause .IR tn3270(1) to send a (possibly visual) bell sequence to the user's terminal. .sp .nf 3270 Key Name Functional description (*)LPRT local print DP dup character FM field mark character CURSEL cursor select CENTSIGN EBCDIC cent sign RESHOW redisplay the screen EINP erase input EEOF erase end of field DELETE delete character INSRT toggle insert mode TAB field tab BTAB field back tab COLTAB column tab COLBAK column back tab INDENT indent one tab stop UNDENT undent one tab stop NL new line HOME home the cursor UP up cursor DOWN down cursor RIGHT right cursor LEFT left cursor SETTAB set a column tab DELTAB delete a columntab SETMRG set left margin SETHOM set home position CLRTAB clear all column tabs (*)APLON apl on (*)APLOFF apl off (*)APLEND treat input as ascii (*)PCON xon/xoff on (*)PCOFF xon/xoff off DISC disconnect (suspend) (*)INIT new terminal type (*)ALTK alternate keyboard dvorak FLINP flush input ERASE erase last character WERASE erase last word FERASE erase field SYNCH we are in synch with the user RESET reset key-unlock keyboard MASTER_RESET reset, unlock and redisplay (*)XOFF please hold output (*)XON please give me output ESCAPE enter telnet command mode WORDTAB tab to beginning of next word WORDBACKTAB tab to beginning of current/last word WORDEND tab to end of current/next word FIELDEND tab to last non-blank of current/next unprotected (writable) field. PA1 program attention 1 PA2 program attention 2 PA3 program attention 3 CLEAR local clear of the 3270 screen TREQ test request ENTER enter key PFK1 program function key 1 PFK2 program function key 2 etc. etc. PFK36 program function key 36 .SH A SAMPLE ENTRY The following entry is used by tn3270(1) when unable to locate a reasonable version in the user's environment and in /etc/map3270: .sp .nf name { # actual name comes from TERM variable clear = '^z'; flinp = '^x'; enter = '^m'; delete = '^d' | '^?'; # note that '^?' is delete (rubout) synch = '^r'; reshow = '^v'; eeof = '^e'; tab = '^i'; btab = '^b'; nl = '^n'; left = '^h'; right = '^l'; up = '^k'; down = '^j'; einp = '^w'; reset = '^t'; xoff = '^s'; xon = '^q'; escape = '^c'; ferase = '^u'; insrt = '\E '; # program attention keys pa1 = '^p1'; pa2 = '^p2'; pa3 = '^p3'; # program function keys pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E='; pfk13 = '\E!'; pfk14 = '\E@'; pfk15 = '\E#'; pfk16 = '\E$'; pfk17 = '\E%'; pfk18 = '\E'; pfk19 = '\E&'; pfk20 = '\E*'; pfk21 = '\E('; pfk22 = '\E)'; pfk23 = '\E_'; pfk24 = '\E+'; } .fi .SH "IBM 3270 KEY DEFINITONS FOR AN ABOVE DEFINITION" The charts below show the proper keys to emulate each 3270 function when using the default key mapping supplied with .IR tn3270 (1) and .IR mset (1). .sp .nf Command Keys IBM 3270 Key Default Key(s) Enter RETURN Clear control-z Cursor Movement Keys New Line control-n or Home Tab control-i Back Tab control-b Cursor Left control-h Cursor Right control-l Cursor Up control-k Cursor Down control-j or LINE FEED Edit Control Keys Delete Char control-d or RUB Erase EOF control-e Erase Input control-w Insert Mode ESC Space End Insert ESC Space Program Function Keys PF1 ESC 1 PF2 ESC 2 ... ... PF10 ESC 0 PF11 ESC - PF12 ESC = PF13 ESC ! PF14 ESC @ ... ... PF24 ESC + Program Attention Keys PA1 control-p 1 PA2 control-p 2 PA3 control-p 3 Local Control Keys Reset After Error control-r Purge Input Buffer control-x Keyboard Unlock control-t Redisplay Screen control-v Other Keys Erase current field control-u .fi .SH FILES /etc/map3270 .SH SEE ALSO tn3270(1), mset(1), \fIYale ASCII Terminal Communication System II Program Description/Operator's Manual\fR (IBM SB30-1911) .SH AUTHOR Greg Minshall .SH BUGS .I Tn3270 doesn't yet understand how to process all the functions available in .I map3270; when such a function is requested .I tn3270 will beep at you. .PP The definition of "word" (for "word erase", "word tab") should be a run-time option. Currently it is defined as the kernel tty driver defines it (strings of non-whitespace); more than one person would rather use the "vi" definition (strings of specials, strings of alphanumeric). --- etc/map3270 # # Copyright (c) 1987 Regents of the University of California. # All rights reserved. The Berkeley software License Agreement # specifies the terms and conditions for redistribution. # # @(#)map3270 1.1 (Berkeley) 11/20/87 # # # /etc/map3270 (/usr/new/etc/map3270 before migration) # mail corrections and additions to "termcap" # # this file contains mappings between characters entered from the keyboard, # and 3270 keys, for use by programs (like tn3270) doing 3270 emulation # from unix. # # inside the single quotes, a caret ("^") introduces a control character # sequence (rub out = ^?, by the way). also inside the single quotes, # a backslash ('\') introduces an escaped character. Also, \n, \r, \t, # are all as in c, and \E is another way of representing escape. # # NOTE that while we are defining lots of function, much of that # function (ie: local editing keys) may not yet be available from # tn3270. 3a | adm3a { enter = '^m'; clear = '^z'; nl = '^n'; tab = '^i'; btab = '^b' | '\E^i'; left = '^h'; right = '^l'; up = '^k'; down = '^j'; home = '^@'; delete = '^d' | '^?'; # rubout eeof = '^e'; einp = '^w'; insrt = '\E '; dp = '^u'; fm = '^y'; # pf keys pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E:'; pfk12 = '\E-'; pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16'; pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20'; pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24'; # program attention keys pa1 = '^p1'; pa2 = '^p2'; pa3 = '^p3'; # other keys cursel = '\E.'; centsign = '^\'; # local control keys reset = '^t'; # well, there is a little confusion here... master_reset = '^g'; flinp = '^x'; reshow = '^v'; # redisplay screen escape = '^c'; # escape to telnet command mode # local editing keys settab = '\E;'; deltab = '\E\''; clrtab = '\E+'; setmrg = '\E('; sethom = '\E!'; coltab = '\Ei'; colbak = '\Eb'; indent = '\El'; undent = '\Eh'; } # end of adm3a 920c | tvi920c | 920b { # tvi920c definitions... # command keys enter = '^m'; clear = '^z'; # cursor movement keys nl = '^^' | '^n'; # home tab = '^i'; btab = '^b' | '\E^i'; left = '^h'; right = '^l'; up = '^k'; down = '^j'; home = '^@'; # edit control keys delete = '^?' | '^d'; # delete eeof = '^e'; einp = '^w'; insrt = '\E '; dp = '^u'; fm = '^y'; # program function keys # F1 to F11 pfk1 = '^a@^m'; pfk2 = '^aA^m'; pfk3 = '^aB^m'; pfk4 = '^aC^m'; pfk5 = '^aD^m'; pfk6 = '^aE^m'; pfk7 = '^aF^m'; pfk8 = '^aG^m'; pfk9 = '^aH^m'; pfk10 = '^aI^m'; pfk11 = '^aJ^m'; # SHIFT-F11 pfk12 = '^aj^m'; # ESC F1 to ESC F11 pfk11 = '\E^a@^m'; pfk12 = '\E^aA^m'; pfk13 = '\E^aB^m'; pfk14 = '\E^aC^m'; pfk15 = '\E^aD^m'; pfk16 = '\E^aE^m'; pfk17 = '\E^aF^m'; pfk18 = '\E^aG^m'; pfk19 = '\E^aH^m'; pfk20 = '\E^aI^m'; pfk21 = '\E^a`^m'; # ESC SHIFT-F1 to ESC SHIFT-F4 pfk21 = '\E^a`^m'; pfk22 = '\E^aa^m'; pfk23 = '\E^ab^m'; pfk24 = '\E^ac^m'; pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E='; pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16'; pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20'; pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24'; # program attention keys pa1 = '^a`^m' | '^p1'; pa2 = '^aa^m' | '^p2'; pa3 = '^ab^m' | '^p3'; # miscellaneous 3270 keys cursel = '\E.'; centsign = '^\'; # local control keys reset = '^t'; # there is some confusion here... master_reset = '^g'; flinp = '^x'; reshow = '^v'; escape = '^c'; # escape to telnet command mode # local editing keys settab = '\E;'; deltab = '\E\''; clrtab = '\E:'; setmrg = '\E*'; sethom = '\E!'; coltab = '\Ei' | '\EI'; colbak = '\Eb' | '\EB'; indent = '\El' | '\EL'; undent = '\Eh' | '\EH'; } # end of tvi920c table... 925 | tvi925 | 925vb | tvi925vb | televideo 925 { # command keys enter = '^m'; clear = '^z'; # cursor movement keys nl = '^j' | '^n'; tab = '^i'; btab = '\EI'; left = '^h'; right = '^l'; up = '^k'; down = '^v'; home = '^^'; # edit control keys delete = '^?'; # that's rubout... eeof = '^e'; einp = '^w'; insrt = '\E ' | '\EW'; # program function keys pfk1 = '^a@^m'; pfk2 = '^aA^m'; pfk3 = '^aB^m'; pfk4 = '^aC^m'; pfk5 = '^aD^m'; pfk6 = '^aE^m'; pfk7 = '^aF^m'; pfk8 = '^aG^m'; pfk9 = '^aH^m'; pfk10 = '^aI^m'; pfk11 = '^aJ^m'; pfk12 = '\EQ'; pfk13 = '\E^a@^m'; pfk14 = '\E^aA^m'; pfk15 = '\E^aB^m'; pfk16 = '\E^aC^m'; pfk17 = '\E^aD^m'; pfk18 = '\E^aE^m'; pfk19 = '\E^aF^m'; pfk20 = '\E^aG^m'; pfk21 = '\E^aH^m'; pfk22 = '\E^aI^m'; pfk23 = '\E^aJ^m'; pfk24 = '\E\EQ'; pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E='; pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16'; pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20'; pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24'; # program attention keys pa1 = '^a`^m'; pa2 = '^aa^m'; pa3 = '^ab^m'; # other keys centsign = '^\'; # local control keys reset = '^t'; # again, there is some confusion here... master_reset = '^g'; flinp = '^x'; reshow = '^b'; escape = '^c'; # escape to telnet command mode # local editing keys settab = '\EY'; deltab = '\Ey'; clrtab = '\E:'; setmrg = '\ET'; sethom = '\Et'; coltab = '^p'; colbak = '^o'; indent = '\ER'; undent = '\EE'; } 924 | tvi924 { # command keys enter = '^m'; clear = '^z'; # cursor movement keys nl = '^j'; tab = '^i'; btab = '\EI'; left = '^h'; right = '^l'; up = '^k'; down = '^v'; home = '^^'; # edit control keys delete = '^?'; # that's rubout... eeof = '^e'; einp = '^w'; insrt = '\E ' | '\EW'; dp = '^u'; fm = '^y'; # program function keys pfk1 = '^a@^m'; pfk2 = '^aA^m'; pfk3 = '^aB^m'; pfk4 = '^aC^m'; pfk5 = '^aD^m'; pfk6 = '^aE^m'; pfk7 = '^aF^m'; pfk8 = '^aG^m'; pfk9 = '^aH^m'; pfk10 = '^aI^m'; pfk11 = '^aJ^m'; pfk12 = '^aK^m'; pfk13 = '^aL^m'; pfk14 = '^aM^m'; pfk15 = '^aN^m'; pfk16 = '^aO^m'; pfk17 = '^af^m'; pfk18 = '^ag^m'; pfk19 = '^ah^m'; pfk20 = '^ai^m'; pfk21 = '^aj^m'; pfk22 = '^ak^m'; pfk23 = '^al^m'; pfk24 = '^am^m'; pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E='; pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16'; pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20'; pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24'; # program attention keys pa1 = '^a`^m'; pa2 = '^aa^m'; pa3 = '^ab^m'; # other keys centsign = '^\'; # local control keys reset = '^t'; # again, there is some confusion here... master_reset = '^g'; flinp = '^x'; reshow = '^b'; escape = '^c'; # escape to telnet command mode # local editing keys settab = '\EY'; deltab = '\Ey'; clrtab = '\E:'; setmrg = '\ET'; sethom = '\Et'; coltab = '^p'; colbak = '^o'; indent = '\ER'; undent = '\EE'; } h19 | heath | h19b | heathkit | heath-19 | z19 | zenith { enter = '^m'; clear = '^z'; nl = '^n' | '^?'; tab = '^i'; btab = '^b'; left = '^h'; right = '^l'; up = '^k'; down = '^j'; home = '^@'; delete = '^d'; eeof = '^e'; einp = '^w'; insrt = '\E '; # pf keys pfk1 = '\E?p\E?q'; pfk2 = '\E?p\E?r'; pfk3 = '\E?p\E?s'; pfk4 = '\E?p\E?t'; pfk5 = '\E?p\E?u'; pfk6 = '\E?p\E?v'; pfk7 = '\E?p\E?w'; pfk8 = '\E?p\E?x'; pfk9 = '\E?p\E?y'; pfk10 = '\E?q\E?p'; pfk11 = '\E?q\E?q'; pfk12 = '\E?q\E?r'; pfk13 = '\E?q\E?s'; pfk14 = '\E?q\E?t'; pfk15 = '\E?q\E?u'; pfk16 = '\E?q\E?v'; pfk17 = '\E?q\E?w'; pfk18 = '\E?q\E?x'; pfk19 = '\E?q\E?y'; pfk20 = '\E?r\E?p'; pfk21 = '\E?r\E?q'; pfk22 = '\E?r\E?r'; pfk23 = '\E?r\E?s'; pfk24 = '\E?r\E?t'; pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E='; pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16'; pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20'; pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24'; # program attention keys pa1 = '\EP'; pa2 = '\EQ'; pa3 = '\ER'; # other keys centsign = '^\'; # cursel = '\E.'; # find out what this does master_reset = '^g'; # local control keys reset = '^t'; # well, there is a little confusion here... flinp = '^x'; reshow = '^v'; # redisplay screen escape = '^c'; # escape to telnet command mode # local editing keys settab = '\E;'; clrtab = '\E:'; setmrg = '\E\''; sethom = '\E!'; coltab = '\Ei'; colbak = '\Eb'; indent = '\El'; undent = '\Eh'; } # end of h19 co | c100 | concept | c100-4p | concept100 { enter = '^m'; clear = '^z' | '^\2'; nl = '^n'; tab = '^i'; btab = '^b'; left = '^h' | '\E>'; right = '^l' | '\E='; up = '^k' | '\E;'; down = '^j' | '\E<'; home = '\E?'; delete = '^d' | '^?' | '^\1'; eeof = '^e' | '^\3'; einp = '^w'; insrt = '^\0'; # pf keys pfk1 = '\E\E1' | '^\5'; pfk2 = '\E\E2' | '^\6'; pfk3 = '\E\E3' | '^\7'; pfk4 = '\E\E4' | '^\8'; pfk5 = '\E\E5' | '^\9'; pfk6 = '\E\E6' | '^\:'; pfk7 = '\E\E7' | '^\;'; pfk8 = '\E\E8' | '^\<'; pfk9 = '\E\E9' | '^\='; pfk10 = '\E\E0' | '^\>'; pfk11 = '\E\E-' | '^\?'; pfk12 = '^\@'; pfk13 = '^\A'; pfk14 = '^\B'; pfk15 = '^\)'; pfk16 = '^\*'; pfk17 = '^\+'; pfk18 = '^\,'; pfk19 = '^\-'; pfk20 = '^\.'; pfk21 = '^\/'; pfk22 = '^\C'; pfk23 = '^\D'; pfk24 = '^\E'; pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '^f12'; pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16'; pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20'; pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24'; # program attention keys pa1 = '^\%'; pa2 = '^\&' | '\E+'; pa3 = '^\\''; # other keys cursel = '\E.'; aplon = '\E{'; aplend = '\E}'; aploff = '\E_'; master_reset = '^g'; centsign = '\E\\'; # local control keys reset = '^t'; # well, there is a little confusion here... flinp = '^x'; reshow = '^v'; # redisplay screen escape = '^c'; # escape to telnet command mode # local editing keys settab = '\E\E;'; clrtab = '\E\E:'; setmrg = '\E\E*'; sethom = '\E\E!'; coltab = '\E\Ei'; colbak = '\E\Eb'; indent = '\E\El'; undent = '\E\Eh'; } # end of concept avt | avt-8p-s | avt-4p-s | avt-rv { enter = '^m'; clear = '^z' | '\EOM'; nl = '^?'; tab = '^i'; btab = '^b'; left = '^h' | '\E[D'; right = '^l' | '\E[C'; up = '^k' | '\E[A'; down = '^j' | '\E[B'; home = '\EOn'; delete = '^d'; eeof = '^e'; einp = '^w'; insrt = '^ ' | '\E '; # pf keys pfk1 = '\EOq' | '\E1'; pfk2 = '\EOr' | '\E2'; pfk3 = '\EOs' | '\E3'; pfk4 = '\EOt' | '\E4'; pfk5 = '\EOu' | '\E5'; pfk6 = '\EOv' | '\E6'; pfk7 = '\EOw' | '\E7'; pfk8 = '\EOx' | '\E8'; pfk9 = '\EOy' | '\E9'; pfk10 = '\EOP\EOp' | '\E0'; pfk11 = '\EOP\EOq' | '\E-'; pfk12 = '\EOP\EOr' | '\E='; pfk13 = '\EOP\EOs' | '^f13'; pfk14 = '\EOP\EOt' | '^f14'; pfk15 = '\EOP\EOu' | '^f15'; pfk16 = '\EOP\EOv' | '^f16'; pfk17 = '\EOP\EOw' | '^f17'; pfk18 = '\EOP\EOx' | '^f18'; pfk19 = '\EOP\EOy' | '^f19'; pfk20 = '\EOQ\EOp' | '^f20'; pfk21 = '\EOQ\EOq' | '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24'; # program attention keys pa1 = '\E\EOP' | '^p1'; pa2 = '\E\EOQ' | '^p2'; # local control keys escape = '^c'; # escape to telnet command mode master_reset = '^g'; centsign = '^\'; # local editing keys settab = '\E;'; deltab = '\E\''; clrtab = '\E:'; setmrg = '\E,'; sethom = '\E.'; coltab = '\E\E[B'; colbak = '\E\E[A'; indent = '\E\E[C'; undent = '\E\E[D'; } # end of avt, etc. tvipt | vp | televideopt { enter = '^m'; clear = '^z'; nl = '^n'; tab = '^i'; btab = '^b'; left = '^h'; right = '^l'; up = '^k'; down = '^j'; home = '^^'; delete = '^?'; eeof = '^e'; einp = '^w'; insrt = '\E '; # pf keys pfk1 = '\E1' | '^A@^m'; pfk2 = '\E2' | '^AA^m'; pfk3 = '\E3' | '^AB^m'; pfk4 = '\E4' | '^AC^m'; pfk5 = '\E5' | '^AD^m'; pfk6 = '\E6' | '^AE^m'; pfk7 = '\E7' | '^AF^m'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E!' | '\E^A@^m'; pfk12 = '\E@' | '\E^AA^m'; pfk13 = '\E#' | '\E^AB^m'; pfk14 = '\E$' | '\E^AC^m'; pfk15 = '\E%' | '\E^AD^m'; pfk16 = '\E^AE^m' | '\E\^'; pfk17 = '\E&' | '\E^AF^m'; pfk18 = '\E*'; pfk19 = '\E('; pfk20 = '\E)'; # program attention keys pa1 = '^AG^m'; pa2 = '^AH^m'; pa3 = '^AI^m'; # other keys # # cursel = '\E.'; centsign = '^\'; # local control keys reset = '^t'; # well, there is a little confusion here... master_reset = '^g'; flinp = '^x'; reshow = '^v'; # redisplay screen escape = '^c'; # escape to telnet command mode # local editing keys settab = '\E;'; clrtab = '\E:'; setmrg = '\E['; sethom = '\E+'; coltab = '\Ei' | '\EI'; colbak = '\Eb' | '\EB'; indent = '\El' | '\EL'; undent = '\Eh' | '\EH'; } # end of tvipt vt100 | vt100nam | pt100 | vt125 | vt102 | direct831 | tek4125 | pcplot | microvax{ enter = '^m'; clear = '^z' | '\EOM'; nl = '^?'; tab = '^i'; btab = '^b'; left = '^h' | '\EOD'; right = '^l' | '\EOC'; up = '^k' | '\EOA'; down = '^j' | '\EOB'; home = '\EOn'; delete = '^d'; eeof = '^e'; einp = '^w'; insrt = '^ ' | '\E '; # pf keys pfk1 = '\EOq' | '\E1'; pfk2 = '\EOr' | '\E2'; pfk3 = '\EOs' | '\E3'; pfk4 = '\EOt' | '\E4'; pfk5 = '\EOu' | '\E5'; pfk6 = '\EOv' | '\E6'; pfk7 = '\EOw' | '\E7'; pfk8 = '\EOx' | '\E8'; pfk9 = '\EOy' | '\E9'; pfk10 = '\EOP\EOp' | '\E0'; pfk11 = '\EOP\EOq' | '\E-'; pfk12 = '\EOP\EOr' | '\E='; pfk13 = '\EOP\EOs' | '^f13'; pfk14 = '\EOP\EOt' | '^f14'; pfk15 = '\EOP\EOu' | '^f15'; pfk16 = '\EOP\EOv' | '^f16'; pfk17 = '\EOP\EOw' | '^f17'; pfk18 = '\EOP\EOx' | '^f18'; pfk19 = '\EOP\EOy' | '^f19'; pfk20 = '\EOQ\EOp' | '^f20'; pfk21 = '\EOQ\EOq' | '^f21'; # program attention keys pa1 = '\E\EOP' | '^p1'; pa2 = '\E\EOQ' | '^p2'; # local control keys escape = '^c'; # escape to telnet command mode master_reset = '^g'; centsign = '^\'; # local editing keys settab = '\E;'; deltab = '\E\''; clrtab = '\E:'; setmrg = '\E,'; sethom = '\E.'; coltab = '\E\E[B'; colbak = '\E\E[A'; indent = '\E\E[C'; undent = '\E\E[D'; } # end of vt100, etc. sun { enter = '^m'; clear = '^z' | '\E[222z'; nl = '^j'; tab = '^i'; btab = '^b' | '\E[195z' | '\E[216z'; left = '^h' | '\E[D' | '\EOD'; right = '^l' | '\E[C' | '\EOC'; up = '^k' | '\E[A' | '\EOA'; down = '\E[B' | '\EOB'; home = '\E[218z'; delete = '^d' | '^?'; eeof = '^e' | '\E[214z'; einp = '^w' | '\E[213z'; insrt = '\E ' | '\E[220z'; dp = '^u'; fm = '^y'; # pf keys pfk1 = '\E[224z' | '\E1'; pfk2 = '\E[225z' | '\E2'; pfk3 = '\E[226z' | '\E3'; pfk4 = '\E[227z' | '\E4'; pfk5 = '\E[228z' | '\E5'; pfk6 = '\E[229z' | '\E6'; pfk7 = '\E[230z' | '\E7'; pfk8 = '\E[231z' | '\E8'; pfk9 = '\E[232z' | '\E9'; pfk10 = '\E[208z' | '\E0'; pfk11 = '\E[209z' | '\E-'; pfk12 = '\E[210z' | '\E='; pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16'; pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20'; pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24'; # program attention keys pa1 = '^p1' | '\E[211z'; pa2 = '^p2' | '\E[212z'; pa3 = '^p3'; # other keys cursel = '\E.'; centsign = '^\'; # local control keys reset = '^t'; # well, there is a little confusion here... master_reset = '^g'; flinp = '^x'; reshow = '^v'; # redisplay screen escape = '^c'; # escape to telnet command mode # local editing keys settab = '\E;'; clrtab = '\E+'; setmrg = '\E('; sethom = '\E!'; coltab = '\Ei'; colbak = '\Eb'; indent = '\El'; undent = '\Eh'; } # end of sun # # Works with /usr/ucb/tn3270 except tn3270pc which requires /usr/new/tn3270. # msk22714 | mskermit22714 | msk227 | mskermit227 { # # 9-5-86 gts # MS-Kermit UCB 227.14 to Unix then tn3270 to CMS. # Includes underlying ADM3A keystrokes for full S/1 compatibiliy. # Attempts to work for both "do unix" and "do cms" keyboards. Differences are # marked with (C) for CMS only or (U) for Unix only. Incidental effects are # enclosed in square brackets []. # New functions WERASE Ctrl-\ and FERASE Ctrl-_. enter = '^m'; # <--' clear = '^z'; # keypad + (C) nl = '^n'; # keypad End (C) tab = '^i'; # --->| btab = '^b' | '\E^I'; # |<--- (C|U) left = '^h'; # keypad Left right = '^l'; # keypad Right up = '^k'; # keypad Up down = '^j' | '\EB'; # keypad Down (U|C) # [ keypad End (U) ] home = '^^' | '^@'; # keypad Home (U|C) dp = '^u' | '^a'; # [ keypad PgUp (U) ] fm = '^y'; delete = '^d' | '^?'; # keypad Del # [ keypad PgDn (U) ] eeof = '^e'; einp = '^w'; # keypad - (C) insrt = '\E ' | '\Ei'; # keypad Ins (C|U) # pf keys IBM PC/XT/AT and ADM3A Esc d pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10= '\E0'; # pf keys IBM PC/XT/AT Shift and ADM3A Ctrl-F nn pfk11='^f11'; pfk12='^f12'; pfk13='^f13'; pfk14='^f14'; pfk15='^f15'; pfk16='^f16'; pfk17='^f17'; pfk18='^f18'; pfk19='^f19'; pfk20='^f20'; # pf keys IBM PC/XT/AT Ctrl- and ADM3A Ctrl-F nn pfk21='^f21'; pfk22='^f22'; pfk23='^f23'; pfk24='^f24'; pfk25='^f25'; pfk26='^f26'; pfk27='^f27'; pfk28='^f28'; pfk29='^f29'; pfk30='^f30'; # pf keys IBM PC/XT/AT Ctrl-Shift- and ADM3A Ctrl-F nn pfk31='^f31'; pfk32='^f32'; pfk33='^f33'; pfk34='^f34'; pfk35='^f35'; pfk36='^f36'; # pf keys IBM PC/XT/AT Alt-1 to Alt-= (generated as, Esc d, ^F 11, ^F 12) # pf keys ADM3A Esc d (d = 1 to 0 interpreted as above) pfk11 = '\E-'; pfk12 = '\E='; # program attention keys (same as ADM3A) pa1 = '^p1'; # Alt-F1 pa2 = '^p2'; # Alt-F2 pa3 = '^p3'; # Alt-F3 #pa4 = '^p4'; # Alt-F3 #testreq = '^pr' | '^pR'; # Alt-F5 # other keys cursel = '\E.'; werase = '^\'; ferase = '^_'; # local control keys master_reset = '^g'; reset = '^r' | '^t'; flinp = '^x'; reshow = '^v'; escape = '^c'; # escape to telnet # local editing keys settab = '\E;'; deltab = '\E\''; clrtab = '\E:' | '\E+'; setmrg = '\E('; sethom = '\E!'; coltab = '\EI'; #coltab = '\Ei' | '\EI'; # cannot use Esc i colbak = '\Eb'; # on S/1 \EB is down #colbak = '\Eb' | '\EB'; # cannot use Esc B indent = '\El' | '\EL'; undent = '\Eh' | '\EH'; # on S/1 \EH is Home } # end of msk22714 # ansisys | ansisysk | nansisys | nansisysk { # # 9-5-86 gts # IBM PC/XT/AT using the ansi.sys | ansi.sysk | nansi.sys | nansi.sysk termcaps. # # PROBLEM: cannot use periods in termcap name until mset fixed (gts 9-5-86). # # PROBLEM: cannot use eval `mset ...` until Unix csh changed to allow more # than 1024 characters in an environment string or until mset changed to # return only the filename if the resulting string is longer than 1024. # # PROBLEM when NUL (^@) immediately follows a Return: Unix telent apparently # ignores the NUL! (Can tn3270 negotiate a different newline?) # # Nearly identical to the map3270 for the IBM PC TN3270, which itself is nearly # identical to the MS-Kermit UCB 227.14 keyboard which in turn was a modest # improvement of the BIJOU Yterm keyboard. See HELP TN3270PC on CMS. # Includes the underlying ADM3A keystrokes for full S/1 compatibility. # Adds some Ctrl-keypad keys to compensate for TN3270 ROMBIOS dependency # which prevents separate use of the keypad plus and minus keys. # Adds new functions WERASE and FERASE. # enter = '^m'; # <--' clear = '^z' | '^@w'; # Ctrl-Home nl = '^n' | '^@O'; # keypad End tab = '^i'; # --->| btab = '^b' | '^@^O'; # |<--- left = '^h' | '^@K'; # keypad Left right = '^l' | '^@M'; # keypad Right up = '^k' | '^@H'; # keypad Up down = '^j' | '^@P'; # keypad Down home = '^^' | '^@G'; # keypad Home # (cannot use Ctrl-@) dp = '^u'; fm = '^y'; delete = '^d' | '^?' | '^@S'; # keypad Del eeof = '^e' | '^@u'; # keypad Ctrl-End einp = '^w'; insrt = '\E ' | '^@R' | '\E\Ei'; # keypad Ins # pf keys IBM PC/XT/AT pfk1 = '^@;'; pfk2 = '^@<'; pfk3 = '^@='; pfk4 = '^@>'; pfk5 = '^@?'; pfk6 = '^@@'; pfk7 = '^@A'; pfk8 = '^@B'; pfk9 = '^@C'; pfk10= '^@D'; # pf keys IBM PC/XT/AT Shift pfk11 = '^@T'; pfk12 = '^@U'; pfk13 = '^@V'; pfk14 = '^@W'; pfk15 = '^@X'; pfk16 = '^@Y'; pfk17 = '^@Z'; pfk18 = '^@['; pfk19 = '^@\\'; pfk20 = '^@]'; # pf keys IBM PC/XT/AT Ctrl- pfk21 = '^@\^';pfk22 = '^@_'; pfk23 = '^@`'; pfk24 = '^@a'; pfk25 = '^@b'; pfk26 = '^@c'; pfk27 = '^@d'; pfk28 = '^@e'; pfk29 = '^@\f'; pfk30 = '^@g'; # pf keys IBM PC/XT/AT Ctrl-Shift- (cannot be done yet with PC tn3270) # pf keys IBM PC/XT/AT Alt-d pfk1 = '^@x'; pfk2 = '^@y'; pfk3 = '^@z'; pfk4 = '^@{'; pfk5 = '^@|'; pfk6 = '^@}'; pfk7 = '^@~'; pfk8 = '^@^?';pfk9 = '^@^@';pfk10= '^@^A'; pfk11='^@^B'; pfk12= '^@^C'; # pf keys ADM3A Esc d pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10= '\E0'; pfk11 = '\E-'; pfk12 = '\E='; # pf keys ADM3A Ctrl-F n n pfk1 = '^f01'; pfk2 = '^f02'; pfk3 = '^f03'; pfk4 = '^f04'; pfk5= '^f05'; pfk6 = '^f06'; pfk7 = '^f07'; pfk8 = '^f08'; pfk9 = '^f09'; pfk10= '^f10'; pfk11= '^f11'; pfk12= '^f12'; pfk13= '^f13'; pfk14= '^f14'; pfk15= '^f15'; pfk16= '^f16'; pfk17= '^f17'; pfk18= '^f18'; pfk19= '^f19'; pfk20= '^f20'; pfk21= '^f21'; pfk22= '^f22'; pfk23= '^f23'; pfk24= '^f24'; pfk25= '^f25'; pfk26= '^f26'; pfk27= '^f27'; pfk28= '^f28'; pfk29= '^f29'; pfk30= '^f30'; pfk31= '^f31'; pfk32= '^f32'; pfk33= '^f33'; pfk34= '^f34'; pfk35= '^f35'; pfk36= '^f36'; # program attention keys pa1 = '^p1' | '^@h'; # Alt-F1 pa2 = '^p2' | '^@i'; # Alt-F2 pa3 = '^p3' | '^@j'; # Alt-F3 #pa4 = '^p4' | '^@k'; # Alt-F4 #testreq = '^pr' | '^pR' | '^@l' # Alt-F5 # other keys cursel = '\E.'; werase = '^\'; ferase = '^_'; pfk7 = '^@I' | '\E^U'; # keypad PgUp pfk8 = '^@Q' | '\E^D'; # keypad PgDn # local control keys reset = '^r' | '^t'; master_reset = '^g'; flinp = '^x'; reshow = '^v'; escape = '^c'; # escape to TN3270 command prompt # local editing keys settab = '\E;'; deltab = '\E\''; clrtab = '\E:' | '\E+'; setmrg = '\E('; sethom = '\E!'; coltab = '\Ei' | '\EI'; colbak = '\Eb' | '\EB'; # on S/1 \EB is down indent = '\El' | '\EL'; undent = '\Eh' | '\EH'; # on S/1 \EH is Home } # end of ansi.sys # tn3270pc | ibm-3278-2 { # # 2-14-87 gts # # MAP3270 for the IBM PC logged into Unix with PC TN3270 with TERM=nansisys, # nansisysk, ansisys or ansisysk, hence requires KETBD=tn3270pc. # # MAP3270 for the IBM PC # Nearly identical to the MS-Kermit UCB 227.14 keyboard which in turn was # an modest improvement of the BIJOU Yterm keyboard. # Includes underlying ADM3A keystrokes for full S/1 compatibiliy. # Adds some Ctrl-keypad keys to compensate for TN3270 ROMBIOS dependency # which prevents separate use of the keypad plus and minus keys, and adds # new functions WERASE, FERASE, WORDTAB, WORDBACKTAB, WORDEND and FIELDEND. # Where possible these extensions are compatible with IBM PC keystroke usage # (see XT technical reference manual Keyboard Usage Guidelines). # Includes F11 and F12 keys from the new IBM PC/XT/AT keyboard. # centsign = '\Ec' | '\EC'; # CentSign for input enter = '^m'; # <--' clear = '^z' | '^Aw'; # Ctrl-Home nl = '^n' | '^AO'; # keypad End tab = '^i'; # --->| btab = '^b' | '\E^I' | '^A^O'; # |<--- left = '^h' | '^AK'; # keypad Left right = '^l' | '^AM'; # keypad Right up = '^k' | '^AH'; # keypad Up down = '^j' | '^AP'; # keypad Down home = '^^' | '^AG' | '^@'; # keypad Home dp = '^u'; fm = '^y'; delete = '^d' | '^AS'; # keypad Del eeof = '^e' | '^Au'; # keypad End einp = '^w'; insrt = '\E ' | '^AR'; # keypad Ins # pf keys IBM PC/XT/AT pfk1 = '^A;'; pfk2 = '^A<'; pfk3 = '^A='; pfk4 = '^A>'; pfk5 = '^A?'; pfk6 = '^A@'; pfk7 = '^AA'; pfk8 = '^AB'; pfk9 = '^AC'; pfk10= '^AD'; # pf keys IBM PC/XT/AT Shift pfk11 = '^AT'; pfk12 = '^AU'; pfk13 = '^AV'; pfk14 = '^AW'; pfk15 = '^AX'; pfk16 = '^AY'; pfk17 = '^AZ'; pfk18 = '^A['; pfk19 = '^A\\'; pfk20 = '^A]'; # pf keys IBM PC/XT/AT Ctrl- pfk21 = '^A\^';pfk22 = '^A_'; pfk23 = '^A`'; pfk24 = '^Aa'; pfk25 = '^Ab'; pfk26 = '^Ac'; pfk27 = '^Ad'; pfk28 = '^Ae'; pfk29 = '^Af'; pfk30 = '^Ag'; # pf keys IBM PC/XT/AT Alt-d pfk1 = '^Ax'; pfk2 = '^Ay'; pfk3 = '^Az'; pfk4 = '^A{'; pfk5 = '^A|'; pfk6 = '^A}'; pfk7 = '^A~'; pfk8 = '^A^?';pfk9 = '^A^A^@';pfk10= '^A^A^A'; pfk11='^A^A^b'; pfk12= '^A^A^c'; # pf keys NEW IBM PC/XT/AT Keyboard pfk11='^A^A^e'; pfk12= '^A^A^f'; # pf keys ADM3A Esc d pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10= '\E0'; pfk11 = '\E-'; pfk12 = '\E='; # pf keys ADM3A Ctrl-F n n pfk1 = '^f01'; pfk2 = '^f02'; pfk3 = '^f03'; pfk4 = '^f04'; pfk5= '^f05'; pfk6 = '^f06'; pfk7 = '^f07'; pfk8 = '^f08'; pfk9 = '^f09'; pfk10= '^f10'; pfk11= '^f11'; pfk12= '^f12'; pfk13= '^f13'; pfk14= '^f14'; pfk15= '^f15'; pfk16= '^f16'; pfk17= '^f17'; pfk18= '^f18'; pfk19= '^f19'; pfk20= '^f20'; pfk21= '^f21'; pfk22= '^f22'; pfk23= '^f23'; pfk24= '^f24'; pfk25= '^f25'; pfk26= '^f26'; pfk27= '^f27'; pfk28= '^f28'; pfk29= '^f29'; pfk30= '^f30'; pfk31= '^f31'; pfk32= '^f32'; pfk33= '^f33'; pfk34= '^f34'; pfk35= '^f35'; pfk36= '^f36'; # program attention keys pa1 = '^p1' | '^Ah'; # Alt-F1 pa2 = '^p2' | '^Ai'; # Alt-F2 pa3 = '^p3' | '^Aj'; # Alt-F3 treq = '^pr' | '^pR' | '^Al'; # Alt-F5 # other keys cursel = '\E.'; werase = '^\'; ferase = '^_'; wordtab = '^At'; # Ctrl-Right wordbacktab = '^As'; # Ctrl-Left wordend = '^A^A^d'; # Ctrl-PgUp fieldend = '^Av'; # Ctrl-PgDn pfk7 = '^AI'; # keypad PgUp pfk8 = '^AQ'; # keypad PgDn # local control keys reset = '^r' | '^t'; master_reset = '^g'; flinp = '^x'; reshow = '^v'; escape = '^c'; # to command prompt disc = '^pS1D'; # disconnect (suspend)? sync = '^pS1S'; # in sync with user? # local editing keys settab = '\E;'; deltab = '\E\''; clrtab = '\E:' | '\E+'; setmrg = '\E('; sethom = '\E!'; coltab = '\Ei' | '\EI'; colbak = '\Eb' | '\EB'; # on S/1 \EB is down indent = '\El' | '\EL'; undent = '\Eh' | '\EH'; # on S/1 \EH is Home } # end of tn3270pc --- OK, now the diffs... *** /tmp/get28715 Mon Feb 6 20:10:42 1989 --- telnet/Source/commands.c Mon Feb 6 19:05:45 1989 *************** *** 16,22 **** */ #ifndef lint ! static char sccsid[] = "%W% (Berkeley) %G%"; #endif /* not lint */ #include --- 16,22 ---- */ #ifndef lint ! static char sccsid[] = "@(#)commands.c 1.15 (Berkeley) 2/6/89"; #endif /* not lint */ #include *************** *** 1109,1115 **** } #endif /* defined(MSDOS) */ sin.sin_addr.s_addr = inet_addr(argv[1]); ! if (sin.sin_addr.s_addr != -1) { sin.sin_family = AF_INET; (void) strcpy(hnamebuf, argv[1]); hostname = hnamebuf; --- 1109,1115 ---- } #endif /* defined(MSDOS) */ sin.sin_addr.s_addr = inet_addr(argv[1]); ! if (sin.sin_addr.s_addr != (unsigned long) -1) { sin.sin_family = AF_INET; (void) strcpy(hnamebuf, argv[1]); hostname = hnamebuf; *** /tmp/get28733 Mon Feb 6 20:11:23 1989 --- telnet/Source/utilities.c Mon Feb 6 19:58:32 1989 *************** *** 16,22 **** */ #ifndef lint ! static char sccsid[] = "%W% (Berkeley) %G%"; #endif /* not lint */ #define TELOPTS --- 16,22 ---- */ #ifndef lint ! static char sccsid[] = "@(#)utilities.c 1.11 (Berkeley) 2/6/89"; #endif /* not lint */ #define TELOPTS *************** *** 115,124 **** --- 115,126 ---- length -= BYTES_PER_LINE; offset += BYTES_PER_LINE; if (length < 0) { + fflush(NetTrace); return; } /* find next unique line */ } + fflush(NetTrace); } *** /tmp/get28752 Mon Feb 6 20:12:24 1989 --- telnet/Source/telnet.c Mon Feb 6 19:58:58 1989 *************** *** 16,22 **** */ #ifndef lint ! static char sccsid[] = "@(#)telnet.c 5.33 (Berkeley) 6/29/88"; #endif /* not lint */ #include --- 16,22 ---- */ #ifndef lint ! static char sccsid[] = "@(#)telnet.c 5.38 (Berkeley) 2/6/89"; #endif /* not lint */ #include *************** *** 284,289 **** --- 284,290 ---- return; /* Never reply to TM will's/wont's */ default: + hisopts[option] = 0; fmt = dont; } printring(&netoring, fmt, option); *** /tmp/get28778 Mon Feb 6 20:12:47 1989 --- tn3270/ctlr/api.h Mon Feb 6 19:07:56 1989 *************** *** 14,20 **** * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * ! * %W% (Berkeley) %G% */ /* --- 14,20 ---- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * ! * @(#)api.h 4.2 (Berkeley) 2/6/89 */ /* *************** *** 319,327 **** * into which of the "words". */ struct highlow { unsigned char ! #if defined(vax) || defined(ns32000) al, ah, bl, --- 319,345 ---- * into which of the "words". */ + #include /* Get ENDIAN from machine/endian.h */ + + /* Determine endian'ess (if necessary) */ + + #if !(defined(BYTE_ORDER) && defined(BIG_ENDIAN)) + #define LITTLE_ENDIAN 1234 /* least-significant byte first (vax) */ + #define BIG_ENDIAN 4321 /* most-significant byte first (IBM, net) */ + + #if defined(vax) || defined(ns32000) + #define BYTE_ORDER LITTLE_ENDIAN + #endif /* defined(vax) || defined(ns32000) */ + + #if defined(sun) || defined(tahoe) || defined(ibm032) || defined(pyr) || defined(gould) + #define BYTE_ORDER BIG_ENDIAN + #endif /* defined(sun) || defined(tahoe) || defined(ibm032) || defined(pyr) || defined(gould) */ + + #endif /* !(defined(BYTE_ORDER) && defined(BIG_ENDIAN)) */ + struct highlow { unsigned char ! #if BYTE_ORDER == LITTLE_ENDIAN al, ah, bl, *************** *** 330,337 **** ch, dl, dh; ! #endif /* defined(vax) || defined(ns32000) */ ! #if defined(sun) || defined(tahoe) || defined(ibm032) || defined(pyr) ah, al, bh, --- 348,355 ---- ch, dl, dh; ! #endif /* BYTE_ORDER == LITTLE_ENDIAN */ ! #if BYTE_ORDER == BIG_ENDIAN ah, al, bh, *************** *** 340,346 **** cl, dh, dl; ! #endif /* defined(sun) || defined(tahoe) || defined(ibm032) || defined(pyr) */ }; struct words { --- 358,364 ---- cl, dh, dl; ! #endif /* BYTE_ORDER == BIG_ENDIAN */ }; struct words { *** /tmp/get28795 Mon Feb 6 20:12:56 1989 --- tn3270/ctlr/screen.h Mon Feb 6 19:06:44 1989 *************** *** 14,20 **** * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * ! * %W% (Berkeley) %G% */ #define INCLUDED_SCREEN --- 14,20 ---- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * ! * @(#)screen.h 4.2 (Berkeley) 2/6/89 */ #define INCLUDED_SCREEN *************** *** 109,118 **** (((c)&ATTR_DSPD_MASK) == ATTR_DSPD_HIGH) #define IsHighlighted(p) \ (IsHighlightedAttr(FieldAttributes(p)) && !IsStartField(p)) - - - #define MAX(x,y) ((x)<(y)? (y):(x)) - #define MIN(x,y) ((x)<(y)? x:(y)) typedef unsigned char ScreenImage; --- 109,114 ---- *** /tmp/get28813 Mon Feb 6 20:13:05 1989 --- tn3270/ctlr/outbound.c Mon Feb 6 16:25:45 1989 *************** *** 16,22 **** */ #ifndef lint ! static char sccsid[] = "%W% (Berkeley) %G%"; #endif /* not lint */ #include --- 16,22 ---- */ #ifndef lint ! static char sccsid[] = "@(#)outbound.c 4.2 (Berkeley) 2/6/89"; #endif /* not lint */ #include *************** *** 392,397 **** --- 392,411 ---- case ORDER_RA: Ensure(3); i = Addr3270(buffer[0], buffer[1]); + if ((i < 0) || (i > HighestScreen())) { + char s_buffer[200]; + + sprintf(s_buffer, "tn3270: %s%d.\n\t%s%d%s%d%s\n", + "Invalid 3270 order 'Repeat to Address' to address ", + i, + "(Screen currently set to ", + NumberLines, + " by ", + NumberColumns, + ".)"); + ExitString(s_buffer, 1); + /*NOTREACHED*/ + } c = buffer[2]; if (c == ORDER_GE) { Ensure(4); *************** *** 416,421 **** --- 430,449 ---- i = WhereAttrByte(BufferAddress); c = FieldAttributes(i); i = Addr3270(buffer[0], buffer[1]); + if ((i < 0) || (i > HighestScreen())) { + char s_buffer[200]; + + sprintf(s_buffer, "tn3270: %s%d.\n\t%s%d%s%d%s\n", + "Invalid 3270 order 'Erase Unprotected to Address' to address ", + i, + "(Screen currently set to ", + NumberLines, + " by ", + NumberColumns, + ".)"); + ExitString(s_buffer, 1); + /*NOTREACHED*/ + } do { if (IsStartField(BufferAddress)) { c = FieldAttributes(BufferAddress);