braden@VENERA.ISI.EDU.UUCP (07/09/86)
I have recently installed the Berkeley version of tn3270 on my Sun 3 work station. I used the public tar file tn3270tar, mentioned in Greg Minshall's message copied to tcp-ip on June 6; the main program file is dated 5/13/86. The Sun environment caused some difficulties; for example, you must give tn3270 a Sun window of exactly the size of the emulated 3278 screen (in my case, 43*80; see below), or it just dies due to bad return code form curses. It also took me awhile to work out a sensible mapping of the essential 3278 keys onto the Sun 3 keyboard, avoiding the keys that Suntools wants to keep to itself. In addition, there were some significant problems in tn3270 itself, when used to access both the Wisconsin VM code and the UCLA MVS code. These were as follows: 1. It has been recommended that the terminal type be updated to a 3278-2, which has 24 lines of 80 characters. However, both VM and MVS are prepared to handle the more modern screen size of 43*80, so if you have a competant terminal (like a Sun), I strongly suggest you use the terminal type 3278-4. In this case, it is necessary to update the defined constant NUMBERLINES in 3270.h to be 43. [tn3270 really should take the terminal type (or at least a Boolean selecting long/short screens) from a parameter, and NUMBERLINES should be a variable set as a result.] 2. tn3270 does not support the Erase Write Alternate command, which both VM and MVS send. Its effect should be exactly like Erase Write, but it needs to be included in the case statement in datastream.c, or it defaults to Write; the result is a failure to clear the screen sometimes, which is BAD. 3. tn3270 supports only the non-SNA commands, not the SNA commands. Here's a summary of the relevant command codes: command non-SNA SNA ------------------------------------------ Erase/Write x'05' x'f5' Erase/Write alternate x'0d' x'7e' Write x'01' x'f1' Erase All unprotected x'0f' x'6f' Read Buffer x'02' x'f2' Read Modified x'06' x'f6' It happens that VM and MVS use the non-SNA and SNA commands, respectively, as most appropriate to their system environment. I believe that IBM FSD intends to standardize on the SNA flavor, and update the VM code to send it. In any case, any reasonable 3278 emulator should accept both sets (I think the VM and MVS User Telnets do so). 4. tn3270 does not properly return to NVT mode when the server negotiates back to NVT mode (although the VM code doesn't do this, the MVS code does). 5. tn3270, when in NVT mode, carries over the egregious bug from the Berkeley telnet program: in local echo, it send end-of-line as LF instead of the CR LF dictated by the TELNET protocol spec. Why do we have to put up with this petty protocol anarchism? Of these problems, 1-3 are the most serious and fortunately are quite trivial to fix. Upon request, I will send the updates I used. ________ Bob Braden
root@BU-CS.BU.EDU.UUCP (07/11/86)
I know that WiscNet supports RFC930 (Terminal Type Option) which a version of tn3270 from Rice used successfully, it's a nice option in that it's transparent (doesn't interfere with speaking to hosts who don't support/need it), or at least should be (it was with the other tn3270.) I believe it is more like what you want in that I don't believe you can get the 3270 servers to emulate arbitrary screen sizes, just various specific 3278 models (which vary discretely in size.) Which to ask for could be discerned by querying the local screen size (either via the TERMCAP which is active or the ioctl() on later editions, such as SUN or 4.3bsd.) We might put this in one of these days, if we do we'll announce it (or if anyone else does I'd appreciate a copy.) -Barry Shein, Boston University
milazzo@rice.edu.UUCP (07/13/86)
"I know that WiscNet supports RFC930 (Terminal Type Option) which a version of tn3270 from Rice used successfully" Barry: The 3270 support I wrote for telnet is NOT "a version of tn3270". I wrote the original version of the code long before hearing of tn3270, and possibly before tn3270 was written. I have never seen any version of tn3270. My code examines the user's terminal type and chooses the largest suitable screen size from the following list: 3278-5, 3278-4, 3278-3, 3278-2, 3278-1, 3277-1. If the user's terminal is not a CRT or is too small for any of these terminal types, telnet simply remains in NVT mode. If the user's terminal is an oddly-shaped window, such as on a SUN, telnet uses the appropriate upper left portion of the window. On startup it assumes the default size for the chosen 3270 model, and switches to the alternate size upon receipt of an EWA. My code currently does not support SNA codes, negotiation back to NVT mode, or light pens. It incompletely implements the PT order, and has problems with SYS REQ, though the last may be WISCNET's fault, not mine. SNA codes and negotiation back to NVT mode are trivial fixes. The remainder present varying degrees of difficulty. PEN SELECT would be easy to add, but real light pen support (say with the mouse on a SUN) is fairly difficult. Paul G. Milazzo Dept. of Computer Science Rice University, Houston, TX Domain: milazzo@rice.EDU, milazzo@rice.ARPA BITNET: milazzo@ricenet UUCP: {cbosgd,convex,hp-pcd,sun,waltz}!rice!milazzo
root@BU-CS.BU.EDU.UUCP (07/13/86)
Apologies for any misunderstanding, I knew that Paul's code was not derivitive of the tn3270 code, I was using the term generically ("a version of tn3270".) I only meant to bring out that not only can various 327x's be supported via subnegotiation, it's even been done (by Paul) and it works. -Barry Shein, Boston University