home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1996 May / PCOnline_05_1996.bin / linux / source / xap / x3270 / x3270-3.0 next >
Text File  |  1995-10-10  |  13KB  |  368 lines

  1. x3270 3.0 -- Update 1
  2. ===============================================================================
  3.  
  4. 0. Introduction
  5.  
  6. x3270 3.0 is an IBM 3278 terminal emulator for X windows.  It can be used to
  7. communicate with any IBM host that supports 3270-style connections over TELNET.
  8. It can also communcate with hosts that use line-by-line ASCII mode to do
  9. initial login negotiation before switching to full-screen 3270 mode.
  10.  
  11. It uses its own special fonts to fully emulate the special symbols displayed on
  12. a 3278.  If you grow tired of using a graphical workstation to do an exact
  13. emulation of the appearance of a dumb terminal, you can use any constant-width
  14. X font.
  15.  
  16. 0. History
  17.  
  18. x3270 3.0 is a heavy revision of Jeff Sparkes' x3270 1.2.  It incorporates
  19. almost all of the enhancements already available in other improved versions of
  20. x3270 (cut and paste, hollowing cursor, etc.) and a number of significant
  21. changes and improvements.
  22.  
  23. Thanks to --
  24.     Robert Viduya, for the original SunView 3270tool;
  25.     Jeff Sparkes, for the original X port and for inspiring so many of us to
  26.      improve on it;
  27.     Peter Johnston, for insisting that each new function he wanted was just an
  28.      itty bitty change, honest;
  29.     Thomas Vogler, for requesting the original ASCII functionality and helping
  30.      debug it;
  31.     Pekka Nikander, for helpful advice in internationalization and X trivia,
  32.      and yet more porting and debug help;
  33.     Distinguished bug hunters: David Summers, Ian Daniel, Kevin Murphy, George
  34.      Pallas;
  35.     and everyone else who has put up with my naive stumblings through X.
  36.  
  37. 1. Enhancements from Release 1.2
  38.  
  39. 1.1 Performance
  40.  
  41. Screen painting is faster.  Much faster.
  42.  
  43. 1.2 Connect/Disconnect
  44.  
  45. You do not need to specify a hostname on the command line.
  46.  
  47. x3270 no longer exits when the host disconnects.
  48.  
  49. You can put a list of common IBM host names in a file.
  50.  
  51. You can specify a string to be be sent to a host when you connect to it.  This
  52. string can include TABs to enter data into multiple fields, and ENTER keys
  53. (newlines) to send an ENTER AID and wait for the keyboard to unlock.
  54.  
  55. 1.3 Menu Bar
  56.  
  57. There is a menu bar with the following options:
  58.     Quit...
  59.     Disconnect        break the current connection
  60.     Exit x3270        terminate the application
  61.     Options...
  62.     About x3270...        friendly informational pop-up
  63.     ---
  64.     Keypad (optional)    pop up (or down) the 3270 keypad
  65.     ---
  66.     Monocase
  67.     Blinking cursor
  68.     Show Timing        display time between sending an AID and the
  69.                  keyboard unlocking
  70.     Track Cursor        show cursor position on status line
  71.     ---
  72.     Trace 3270 DS        trace 3270 data semi-readably on stdout
  73.     Trace TELNET        trace TELNET negotiations and data on stdout
  74.     ---
  75.     Underline Cursor
  76.     Block Cursor
  77.     ---
  78.     3270 Font        the original 3270 font (14-point)
  79.     3270-12 Font        a smaller 3270 font (12-point)
  80.     Other Font...        pop-up to enter another font name
  81.     ---
  82.     Line Mode        change TELNET modes (if ASCII)
  83.     Character Mode
  84.     ---
  85.     Model 2            change 3270 model
  86.     Model 3
  87.     Model 4
  88.     Model 5
  89.     Connect...
  90.     (list of hosts)
  91.     Other... (popup window)
  92.  
  93. The menu bar is turned off with "*menuBar: false" or if the size of the
  94. emulator font makes the window too small to hold it.  The menus can also be
  95. popped up with Ctrl and the mouse buttons.
  96.  
  97. 1.4 Keypad
  98.  
  99. There is a mouse-clickable keypad containing all of the PF, PA, cursor control
  100. and miscellaneous 3270 keys.  It can be toggled on and off with a button in the
  101. upper right of the window.  The command-line option "-keypad" or the "*keypad"
  102. resource determines where it goes:
  103.     right    separate window, to the right of the main window (default)
  104.     bottom    separate window, below the main window
  105.     integral    integrated into the bottom of the main window
  106.  
  107. The keypad can be displayed at startup with "*keypadOn: true".
  108.  
  109. 1.5 Fonts
  110.  
  111. The font used by x3270 is configurable with the command-line option "-efont" or
  112. the resource "emulatorFont."
  113.  
  114. An additional 3270 font (3270-12) is provided.
  115.  
  116. Separate bold fonts are provided (3270bold and 3270-12bold) for speed.
  117.  
  118. x3270 can use any standard constant-spaced X font, but some of the cute stuff
  119. on the status line might not look as nice.
  120.  
  121. Many perfectly good constant-spaced fonts are misconfigured and x3270 doesn't
  122. like them; try a '!' in front of the name to override some of the checking.
  123.  
  124. The font can be changed at any time with a menu option or the SetFont action.
  125.  
  126. 1.6 Cut/Paste
  127.  
  128. Xterm-like mouse selection is supported.  The selection region is a rectangle,
  129. rather than a continuous band on the screen, because this is more "3270-like."
  130.  
  131. The middle mouse button performs a "paste" action like xterm's.
  132.  
  133. The mouse can be configured to act more like OpenWindows with a keymap option.
  134.  
  135. 1.7 ANSI Emulation
  136.  
  137. Placing "a:" in front of a host name causes x3270 to emulate an ANSI terminal
  138. (more or less a VT100 or xterm) until the remote host negotiates 3270
  139. emulation.  Un-negotiating 3270 mode causes a disconnect.
  140.  
  141. Line mode / character mode is negotiable with a menu option.
  142.  
  143. 1.8 Status Line
  144.  
  145. The cursor position is reported in the lower-right corner.  The resource
  146. "*cursorPos: false" or a menu option will turn it off.
  147.  
  148. The time between sending an AID key and the host unlocking the keyboard can be
  149. displayed next to the cursor position.  The resource "*timing: true" or a menu
  150. option will turn it on.  If the transaction takes more than 1 second, the
  151. timing display is updated once a second.
  152.  
  153. 1.9 Internationalization
  154.  
  155. This version of x3270 supports international EBCDIC character sets and
  156. keyboards in a manner similar (but not quite identical) to version 1.3.
  157. The "-charset" option or "*charset" resource specifies an alternative mapping
  158. between EBCDIC codes and displayed graphics.  Character sets supported include
  159. "us" (the default), german, finnish, uk, norwegian and french.  The character
  160. set name "oldibm" is also supported to deal with older U.S. hosts that use
  161. different EBCDIC codes for the square bracket characters.
  162.  
  163. Unlike version 1.3, specifying a "charset" does not modify your keyboard
  164. mapping.  Instead, the "-keymap" option and "*keymap" resource accept
  165. modifiers, that is, they can be specified as a comma-separated list of keymap
  166. names.  The keymap modifiers "finnish7" and "norwegian7" are defined, as is the
  167. modifier "ow", which swaps the middle and right mouse buttons to make them
  168. operate more like OpenWindows.  (For example, to speficy a Sun-4 keyboard with
  169. 7-bit Finnish key mappings and OpenWindows mouse buttons, speficy "-keymap
  170. sun-k4,finnish7,ow".
  171.  
  172. Character sets and keymap modifiers are implemented entirely in resources, so
  173. it is easy to add or correct definitions.
  174.  
  175. 1.10 Icons
  176.  
  177. The icon can either be a cute bitmap or a miniature of the screen image.  The
  178. -activeicon switch or "*activeIcon: true" resource turns on active icons.  The
  179. default font for the icon (*iconFont) is nil2.  Window manager dependencies
  180. abound.
  181.  
  182. Twm doesn't label application-supplied icon windows.  x3270 will supply its own
  183. icon label if "*labelIcon" is true.  The icon label font is controlled by
  184. "*iconLabelFont".
  185.  
  186. 1.11 Miscellany
  187.  
  188. The block cursor hollows out when the mouse cursor leaves the x3270 window.
  189.  
  190. The cursor can be made to blink with a resource (*blink: true) or a menu
  191. option.
  192.  
  193. For debugging, the TELNET and 3270 data streams can be traced on standard
  194. output.
  195.  
  196. The window and icon labels contain useful information.
  197.  
  198. The model number (screen size) may be changed while running, so long as you are
  199. disconnected.
  200.  
  201. The PA3 and 3270 ATTN keys (from v1.3) are implemented.
  202.  
  203. 2. Some Bugs Fixed
  204.  
  205. The last line of the display was not being refreshed on an expose event.
  206.  
  207. ERASE WRITE was not properly implemented (it is supposed to put the terminal in
  208. 24x80 mode until an ERASE WRITE ALTERNATE is received).
  209.  
  210. The "SYSTEM" wait condition on the status line was being displayed at
  211. inappropriate times.
  212.  
  213. A TAB key on a screen with no unprotected fields caused an infinite loop.
  214.  
  215. A field from which data had been deleted (with the DELETE key) was not marked
  216. as modified.
  217.  
  218. If the 3270 font could not be found, x3270 used the wrong font and painted the
  219. screen with garbage.
  220.  
  221. If there was a "*font" entry in the user's .Xdefaults, x3270 would find that
  222. font instead of its own font, with similarly unpleasant results.
  223.  
  224. If the host sent an invalid 3270 command, x3270 crashed silently.
  225.  
  226. If the host was not an IBM host, x3270 would either hang or fail cryptically.
  227.  
  228. Screen updates on ordinary field input were jerky and slow.
  229.  
  230. The 3270 READ MODIFIED command returned incorrect values for attribute bytes,
  231. causing all fields to appear to be nondisplayed.
  232.  
  233. Characters that changed attributes (but not character codes) were not always
  234. redisplayed properly.
  235.  
  236. The shift-key display was wrong if the mouse entered or left the window with
  237. a shift key pressed.
  238.  
  239. 3. Incompatibilities
  240.  
  241. This code cannot use the 3270 font supplied with the v2.65beta release (nor can
  242. any of the other versions of x3270; I disagree with v2.65's author's decision
  243. to re-order the 3270 font).  It can use the fonts supplied with 1.2 and 1.3
  244. BETA, or any constant-width X font.
  245.  
  246. The APL keyboard mappings supplied with the "apl" keymap modifier are somewhat
  247. different from those supplied with v2.65beta.  However, they are defined
  248. entirely with resources, so you can modify them easily.
  249.  
  250. The x3270 app-defaults file must be updated in order to run this version.  The
  251. new app-defaults file is not compatible with any other release.
  252.  
  253. 4. Build Hints
  254.  
  255. 4.1. HP
  256.  
  257. To build on HP boxes, you may need to uncomment the following in Imakefile:
  258.  
  259.     EXTRA_DEFINES = -D_HPUX_SOURCE
  260.  
  261. 4.2 nil2 Font
  262.  
  263. If for some reason you are missing the font alias for the "nil2" font, you can
  264. uncomment the following in X3270.ad:
  265.  
  266.     x3270.iconFont: -misc-nil-medium-r-normal--2-20-75-75-c-10-misc-fontspecific
  267.  
  268. 4.3 SunOS Undefined Symbols
  269.  
  270. If you are building for Sun Solaris 1, you may get the following undefineds:
  271.    _sin
  272.    _cos
  273.    _pow
  274.    _floor
  275.  
  276. These can be fixed by adding the following line to the top of the Imakefile:
  277.     EXTRA_LOAD_FLAGS = -lm
  278.  
  279. If you are building for Sun Solaris 2, you may get the additional undefineds:
  280.     inet_addr
  281.     socket
  282.     setsockopt
  283.     gethostbyname
  284.     shutdown
  285.     getservbyname
  286.     connect       
  287.  
  288. These can be fixed by adding the following line to the top of the Imakefile:
  289.     EXTRA_LOAD_FLAGS = -lm -lnsl -lsocket
  290.  
  291. Finally, if you are building for Sun OpenWindows Version 4, you may get the
  292. following undefineds:
  293.    _get_wmShellWidgetClass
  294.    _get_applicationShellWidgetClass
  295.  
  296. This is a bug in Sun's X11 libraries, and can be corrected by obtaining patches
  297. 100512-02 and 100573-03 from Sun.  As a short-term workaround, you can add the
  298. following to the top of the Imakefile, forcing x3270 to be statically linked:
  299.     CCOPTIONS = -Bstatic
  300.  
  301. 4.4 memmove
  302.  
  303. If your C library includes the memmove() function, you can add the following to
  304. top if the Imakefile to take advantage of it:
  305.     EXTRA_DEFINES = -DMEMORY_MOVE=memmove
  306.  
  307. 5. Bugs Fixed and Enhancements Since v3.0
  308.  
  309. 5.1 APL Support (!)
  310.  
  311. Prerequisite #1: Extended the special 3270 fonts to include all of the
  312. characters in the IBM U.S. EBCDIC character set (and the ISO Latin-1 set).
  313.  
  314. Prerequisite #2: Added support for composite characters, e.g., pressing and
  315. releasing Compose, then C, then comma, produces a C-cedilla.
  316.  
  317. Finally: Added support for APL through an additional font that replaces
  318. accented letters and special characters with APL characters, and with an
  319. additional keymap modifier and composite definitions.
  320.  
  321. 5.2 Cut/Paste
  322.  
  323. Cut and paste were not supported correctly.  The insert-selection() action
  324. would paste each selection it was told to use, rather than just the first one
  325. found.
  326.  
  327. The end-selection() action paid no attention to its parameters (it just used
  328. PRIMARY), so the selection type could not be modified in the app-defaults
  329. file.  It also neglected to relinquish the selection when the text was
  330. unhighlighted on the screen.
  331.  
  332. The "ow" (OpenWindows) modifier in the app-defaults file has also been modified
  333. to use the OpenWindows CLIPBOARD selection.
  334.  
  335. 5.3 Telnet Port
  336.  
  337. Added the ability to specify a numeric port number (e.g., x3270 -port 23).
  338.  
  339. 5.4 memcpy Fix
  340.  
  341. Shortly before release, all references to bcopy() were changed to memcpy().
  342. Alas, memcpy() does not behave well with overlapping buffers.
  343.  
  344. 5.5 Miscellany
  345.  
  346. Fixed some minor problems with missing bold fonts.
  347.  
  348. The DELETE key, when pressed on a 1-character-wide field, caused fireworks.
  349.  
  350. Implemented DeleteWord (^W) and DeleteField (^U) actions.  Restored the
  351. MoveCursor action and gave up on the notion of combining it with select-start.
  352. Note that this is an incompatibility with v3.0 -- MoveCursor is now
  353. Shift<Btn1Down>, rather than some unpredictable side-effect of cut-and-paste on
  354. plain <Btn1Down>.  I hope no one got used to the old functionality.
  355.  
  356. Fixed a misnamed function key in the HP keymap.
  357.  
  358. Fixed a Home key problem that had already been fixed in v2.65.
  359.  
  360. Fixed a problem in the implementation of auto-skip fields.
  361.  
  362. =====
  363.  
  364. Keep those cards and letters coming...
  365.  
  366.                 Paul Mattes
  367.                 pdm@cnt.com (note new e-mail address)
  368.