File MSchange.lst 9 Jan 1990 Last addition to this list: 9 Jan 1990 MS Kermit developers: This is a description of the significant modifications to the source code for version 3.0 to this date. Please do NOT let these files or .exe files be placed in public hands; there are far too many changes in the works during beta testing to let massive confusion occur. You may send mail to jrd@watsun.cc.columbia.edu or to regular jrd@cc.usu.edu. Joe Doupnik (801) 750-2982 work Utah State Univ 1. Data segment renamed from "datas" to be "data" 2. Stack segment renamed from "cstack" to be "stack" 3. Segment ordering, determined in mssdef.h, is now code, data, stack. If you add segments, ensure they are placed before stack. 4. All references to rskp and r have been removed. Instead use the carry flag to transmit success (carry clear) or failure (carry set). 5. Command line parser codes have been renamed for clarity, otherwise the call mechanism is unchanged. Use cmeol for end of line (cmcfm), cmword for a word (cmfile), and cmline for the rest of the line (cmtext). 6. A string handed to procedure PROMPT now needs to be asciiz so that dollar signs can appear in it. Watch MSUxxx.asm since PROMPT is used there. 7. Space for macro definitions, and the 128 byte work buffer for each Take file, are now allocated directly from DOS in paragraph chunks. This frees us from the older fixed 2KB buffer. 8. MSSSET.ASM has been split into MSSSET (Sets, macros) and MSSSHO (Shows). 9. MSSFIN.ASM is no longer used, as a benefit of the segment reordering. 10. Protocol portions of the system independent code are new as a result of adding sliding windows. Largest packet is now 2000 bytes. 11. New command SET WINDOW sets an upper limit on window slots in use; 1 is no windowing. Window negotiation and use is otherwise automatic between Kermits. So is the final packet size within windows (length <= 2000 / negotiated window slots, with user specs being a cap). Thus we can have long packets within sliding windows. The formatted file transfer screen will show "Window slots in use: " when windowing is active. 1 is normal at the receiver unless a packet is lost. 12. New command WRITE where log file is Session, Packet, Transaction object is date, INPUT-buffer, path, text, time, version of Kermit Text may follow these items. 13. New IBM-PC command SET TERMINAL REPLAY which reads and displays the file with the current terminal emulator settings, including Tek mode. 14. The IBM-PC VT102 emulator has all system dependencies removed and handled as simple calls on procedures located in file MSYIBM.ASM (at the end). The emulator is scheduled for major changes to incorporate ISO level enhancements to bring it close to the DEC VT320 level. If planned changes to the Tek emulator are done then we will be close to a VT340 but without split screens and dual sessions. 15. Empty disk drives are now detected before letting DOS trap us with A/R/I except when the REMOTE HOST or PUSH commands are used. 16. Server mode allows protection by a username and a password. New command DISABLE LOGIN-bypass turns on sensitivity to this pair. Supply the templates by command SET SERVER LOGIN . Passwords may contain embedded spaces. From the client side the user would need to issue REMOTE LOGIN username password. 17. Show Macros now operates in paged mode (a la More). 18. Macros can be created and removed by a calling procedure DODECOM (the DO/DEFINE MACRO common worker routine) by preparing a command line in global buffer rdbuf (see mssset.asm) and supplying it's length in CX. DODECOM operates as if we had given the command DEFINE . 19. SPACE and REMOTE SPACE now permit a following disk drive ident (C:). -------- 20. 10 April fix VT102 SET TERM CHARACTER-SET command to retain its values across interruptions in Connect mode. Broken in MSK 2.32/A. No date change to mstibm.exe. 21. 17 April clear active filename in mssrcv.asm when receive operation finishes. --------- 22. 29 April. Many improvements from Jack Bryans, including movement of the ports structure from msscom.asm to msx???.asm, together with removal of the formal baud rate definitions such as b000xxx from the mssdef.h file. Also, he separated mssset.asm into mssset.asm and msssho.asm. 23. Revise tab stop arrays and supporting code in the IBM VT102 emulator. 24. Fixup loose ends concerning Server mode and transaction logging. 25. Straighten out handling of the packet debug buffer when packets are preceeded by garbage. Add more screen space for visual debugging. 26. Start adding VT320 level support to the VT102 emulator. Much much more to be done in this area so expect ups and downs. 27. Slightly revise file deletion in mssrcv.asm to help transaction logging. 28. Updated files are mssdef.h, msscom, mssfil, mssker, mssrcv, mssser, mssset, msster, msxibm, and mszibm.asm. --------- 6 May 1989 29. Add reading of special DOS Environment SET lines when initializing Kermit. The lines are of the form SET KERMIT=command;another command;yet another command;etc SET KERMIT0= SET KERMIT1= ... SET KERMIT9= as seen at DOS level. Each can be 128 bytes long, overall. On the right of the equals sign can be various specialized Kermit commands. Present now is INPUT-buffer-length followed by a number (2-65535) representing the space desired in the script INPUT buffer. Normal Kermit commands and variables cannot be referenced in the Environment; this facility is intended mostly to control the size of certain buffers as Kermit initializes itself. File mssker.asm has the table, initab, of recognized keywords. Many such commands can be placed on a single line by separating them with semicolons (Environment style). Lines are read in the order given above, despite their order of appearance at DOS level. 30. Remove many deceased labels and external references found by Jack Bryans. Affects all MSS*.asm files. ---------- 31. 7 May. Remove more unused material from mssdef.h, move modem structure to MSX..., shorten structure termarg in files msster.asm and MSX/MSY. Tnx again to Jack B. for the careful sifting. 32. Add Environment command ROLLBACK for terminal emulator screen rollback buffer. The quantity is the number of 24 line screens. This command is likely to change slightly in the near future. 33. 8 May. New limits on ROLLBACK are 1 to 130 screens (of size found when Kermit initializes). 130 is likely unobtainable on loaded systems. 26KB are preallocated for COMMAND.COM copy #2. Applies to IBM PC only today. 34. 9 May. Add Bert Tyler's (NIH) new code to manage terminal emulator roll back buffer with minimal scrolling (hence crisp paging). File msyibm.asm. 35. 10 May. Add new command SHOW MEMORY, to display free memory quantities (the pieces and the total). Small corrections to a) rollback code and b) Take/macro closure procedure and command echo control. 36. 14 May. Move all "include mssdef.h" lines to be at line 3 in the file, to aid automated searching for unused tokens by Jack B. 37. Add procedure lnouts, in file mssfil.asm, which computes an ascii number to buffer [di], but also inserts national thousands separator characters in the ascii text. Regular lnout does not do this. The separator is in global byte thsep computed in mssker.asm; force this to be zero temporarily to prevent insertion. The character is obtained from DOS Get Country Info. Separators are used in SPACE, SHOW MEMORY, SHOW STATISTICS commands. 38. Cleanups in getbaud in msxibm.asm and many places in msyibm.asm (modeline, rollback space computation, screen initing code). SET KERMIT=ROLLBACK now accepts a minimum value of 0 to omit all screen rollback space. 39. 16 May. Correct, I hope, problem of incorrect 8-bit quoting negotiation. Add minor corrections to files msscom, mssrcv, msssen, mssser, msgibm, and msyibm.asm. Reinstate Heath-19 to terminal emulation (it's ops table got skipped in one place and H-19 was no more, sigh); file mszibm.asm. ---------- 40. 22 May. Add VT320 User Definable Keys (UDKs). Key names are SET KEY verbs \KdecF6...\KdecF14,\KdecHELP,\KdecDO,\KdecF17...\KdecF20, which represent the corresponding keys on a DEC type LK201 keyboard. Use SET KEY to tie these verbs to a physical key. By default these keys send ESC [ ~ in VT320 mode, where the pair of ascii number digits are 17 through 34, in the order of keys above and nothing in VT102 mode. The exceptions in VT102 mode are: \KdecF11...\KdecF13 send ESC, BS, and LF, respectively. The keys may have other definitions assigned to them by the host. The assignment mechanism is the host sends a Device Control Sequence (DCS) of the form DCS Pc; Pl | Ky1/St1; Ky2/St2; ... ST where DCS is hex 90 (8-bit environment) or ESC P, Pc is a digit of 0 to clear all UDKs before defining any (default), or 1 to clear the current UDK before redefining it, Pl is a key lock, presently ignored, but will be 0 or 1, | is a required Final character, hex 7c, Kyn is a pair of digits between 17 and 34 to represent the keys as above, / is a required separator, Stn is the definition string written as pairs of hex digits for each final definition byte, ; separates items, as usual in things like escape sequences, ST is hex 9c (8-bit environment) or ESC \. Example: ESC P 1 | 17 / 48 65 6c 6c 6f ESC \ defines \KdecF6 to send the string "Hello". 17 is DEC's F6 key, the pairs of hex digits spell the word from the ASCII Left table (upper or lower case a-f is ok). An empty string removes the definition and lets the key send ESC [ num num. Currently a string is limited to 61 hex digits (60 plus one left over); extras are discarded without notification. 41. Permit 8-bit control characters, C1 stuff, if parity is NONE and DISPLAY is 8-bits. More work will be added in this area. VT320 emulator only. 42. Modify XON/XOFF procedure when in Connect mode. If the host sends XOFF and we wish to send a character then emit a local Beep, cancel the XOFF, and send the character. Other operating modes will be blocked until an XON arrives or an internal timer expires, as usual. Present only in the IBM PC version at this time. --------- 43. 29 May. Add the bulk of VT320 features other than character set swapping and Sixel. Default terminal is now a VT320, with submodes of VT102, VT52, Heath-19, and Tek 4010+. Most, but not quite all, status reports are present. Selectable erasure will not be present. Affects files msssho, msyibm, mszibm.asm and mssdef.h. Much more to be done here. What a job! 44. Add command SET TERMINAL CONTROLS 7-BIT (default) or 8-BIT to let VT320 mode use C1 8-bit control codes. C1 recognition works in only VT320 mode and if operating it will bypass SET DISPLAY 7/8. Note: real VT100's are 7-bit only devices. 45. Add six more keys found on DEC LK201 keyboards: decFind, decInsert, decRemove, decSelect, decPrev, decNext. These are keyboard verbs found in files msuibm.asm and msyibm.asm. They send CSI 1 ... CSI 6, resp, if the terminal is a VT320 or send nothing otherwise. 46. 30 May. Add several ANSI only cursor steering commands to mszibm.asm. Un-break the SET TERMINAL command parser regarding obtaining bit field arguments; that area needs redesign. ---------- 47. 4 June. VT320 emulator: add more reports, add National Replacement Char sets (12 of them), add support for ISO 2022 style G0, G1, G2, G3 display character sets (with attendent GL and GR pointers plus single and locking shifts). There are some loose ends concerning which character sets do which things, particularly since VT102's and VT320's differ considerably; I left things as VT102 char set mappings for now. 48. Enhance command SET TERMINAL CHARACTER-SET to have options of ASCII, British, Dutch, Finnish, French, French-Canadian, German, Italian, Norwegian/Danish, Portugese, Spanish, Swedish, Swiss, and ALT-Char-ROM. Except for the first and last items these select a DEC National Replacement Character set. When NRC's are active then 8-bit control is turned off (back to 7-bit), as per DEC's specs. NRC's modify the underlying basic ASCII code table by substituting up to 12 new chars. 49. Modify SET TERMINAL CONTROLS and SET DISPLAY 8/7-bit commands in the VT320 emulator. SET DISPLAY imposes a 7 or 8 bit wide channel for incoming characters; the default is 7-bit. The VT320 emulator is always prepared to sense and act on incoming 8-bit control codes, but SET DISPLAY can remove the high bit of chars so the C1 set is not used (exception is when SET TRANSLATION yields 8-bit output, it follows directly after the SET DISPLAY filter and preceeds testing for controls). SET TERMINAL CONTROLS 7-bit or 8-bit determines whether outgoing control codes can be sent in short 8-bit or long 7-bit format (8-bit CSI becomes 7-bit ESC [, etc). The host can also modify the CONTROLS setting. Default is CONTROLS of 7-bit. Recall, outgoing are modified by CONTROLS, incoming see DISPLAY first and otherwise always react to 8-bit control codes. DEC seems to have arranged (sic) things this way. Hint for VAX TPU/EVE users: SET DISPLAY 8-bit, attach verb \kdecHelp to a key, leave SET TERM CONTROLS at 7-bit if you like (VMS will do so anyway in response to a VMS SET TERM/INQUIRE command), and run happily. 50. 5 June. Fix Take file access priv mask for DOS 2.xx (mssker.asm). Add yet more report stuff to mszibm.asm and tweak Help text in msuibm.asm. 51. 12 June. Just about finished the VT320. Add status line quirks for both VT320 and Heath-19, add more reports and gain closer adherence to the real hardware for both kinds. 52. Add Tek support for Wyse-700 high resolution monitors (with special display adapter board), from Mikko Laanti. Beware that currently there is no "presence" test and selecting the Wyse may hang the machine if not present. 53. Add a feature to packet reading: if two Control-C's arrive in succession then treat them as if the local user had typed Control-C, but only if Control-C is neither the start of packet nor end of line character. --------- 54. 15 June. Add fuller character set support in the VT320 emulator. Vis - Character sets in VT320 and VT102 modes: ASCII ("B"/94) ISO Latin-1 ("A"/96) DEC UK-ASCII ("A"/94, available only in VT102 mode) DEC Supplemental Graphics ("%5"/94), DEC Special Graphics ("0"/94 and "2"/94) DEC Technical set (">"/94) a VT340 item not in a real VT320 ALT-ROM (Kermit specific, "1"/94/96) DEC National Replacement Chars (all 12 sets) Startup: GL = G0 = G1 = ASCII (or ALT-ROM if selected by SET TERM CHAR ALT-ROM), GR = G2 = G3 = ISO Latin-1. When an NRC is designated by SET TERM CHAR and selected by CSI ? 42 h the NRC table replaces G0..G3 at the time of selection. When thus designated and selected incoming characters are forced to 7 bits and 8-bit Controls (outgoing) is turned off. No designation means no selection. Selecting a character set with the wrong sized designator yields no action. msxibm, mszibm 55. Add presence test for Wyse-700 high resolution display adapter. msgibm 56. Add correction for subtle IBM keyboard Bios bug of hanging a system when entering value "240" with the ALT key held down. This is a Bios special internal value also used as part of a key's "break" scan code. msuibm 57. 16 June. Add sensing of Environment SHELL= line, and if present use the executable filespec when doing a PUSH within MS Kermit. SHELL= must be done manually by saying to DOS SET SHELL=filespec, not to be confused with the SHELL= line in file CONFIG.SYS. Use a complete filespec. mssker 58. Let Kermit local command DELETE use full wildcards in the filespec. Previously a *.* filespec was rejected. Drive being ready is checked first. Apply drive ready check to local TYPE command also. 59. Add first cut at supporting IBM's Extended Bios async server system. User installs their EBIOS driver and uses Kermit with SET PORT BIOS<1-4>. The rest is supposed to be automatic. Includes sending a BREAK, Hangup, and interrupt driven reception. Works via IBM's serial port interrupt interceptor (EBIOS). msxibm -------------- 60. 23 June. Rearrange some SHOW items to gain more screen space. msssho.asm 61. Refine VT320 emulator in IBM version. Added User Preferred Supplemental Set as an internal option: default is DEC Supplemental Graphics ("%5"/94), alternative is ISO Latin-1 ("A"/96). msxibm, mszibm.asm. 62. Writeup of current VT320/VT102/VT52/Heath-19 emulator is in file vt320emu.txt. 63. Add 80/132 column support for AT&T EGA VDC600 video display board. msyibm 64. 24 June. Improve server's response to reception of FIN/LOGOUT/BYE commands. LOGOUT and BYE now execute a HANGUP to break any modem/network connection. If DISABLE FIN has been given to the server then server mode is not exited; this allows a server to run perpetually yet lets users logout of the micro and have the line hungup. When SET SERVER LOGIN has been given to the server then FIN/LOGOUT/BYE all logically logout that user. 65. Permit REMOTE command responses to be redirected. Syntax is to add > filespec to the end of the command line holding REMOTE etc. In such a case a received file-like response will be treated the same as a GET or RECEIVE (filename collision avoidence/renaming, etc). Any legal DOS filename is allowed, including device names. Be aware that the REMOTE command line is scanned from the end toward the beginning to find a ">" redirection symbol and may see one you wish to go to the host; in that case end the command line on a new ">" with no following characters. The empty filespec will prevent redirection. Example: REM dir > x.x sends directory listing to file x.x REM dir >*.txt > shows directory listing on screen for files matching host syntax ">*.txt" 66. 27 June. Fixup loose ends for screen printing in the IBM version. msy, msz ---------- 67 4 July. Clarify character set options when running as different terminal types. Here is the current summary. Comments are more than welcome. VT320 Character set storage areas G0 G1, G2, and G3 Any 94 char set Any 94 or 96 char set ASCII ("B"/94) default G1 default is ASCII ("B"/94), G2 and G3 defaults are ISO Latin-1 ("A"/96) Special Graphics ("0"/94, "2"/94) Alt-Rom ("1"/94) (MS Kermit only) Supplementary Graphics ("%5"/94) Technical (">"/94) (from VT340) User Preferred, UPSS, if Suppl Gr. UPSS if ISO Latin-1 or Suppl Gr. National Replacement Characters are forced into all sets when activated by CSI ? 42 h but only if a has been previously selected by SET TERMINAL CHARACTER-SET . VT102 Character set storage areas G0 and G1 G2 and G3 ASCII ("B"/94) Default ASCII ("B"/94) Default Special Graphics ("0"/94, "2"/94) Alt-Rom ("1"/94) (MS Kermit only) Supplementary Graphics ("%5"/94) Technical (">"/94) (from VT340) National Replacement Characters Always ASCII ("B"/94) are selected and activated by SET TERMINAL CHARACTER-SET and affect only G0 and G1. [Note: there are several variations of DEC VT10x; the emulator comes closest to the VT102 as rendered in the DEC Rainbow computer. A real VT320 in VT100 mode removes access to G2 and G3; the VT102 has G2 and G3 holding ASCII.] VT52 is used as a sub-mode of a VT320 (default) or a VT102. Only GL = G0 with ASCII is available. ESC F loads line drawing graphics, ESC G reloads ASCII. Heath-19. Same as for VT52 in non-ANSI mode, but while in ANSI mode ESC [ 10 m and ESC [ 11 m duplicate the ESC F and ESC G operations. A correllary is that changing terminal types by SET TERMINAL resets character sets to their default states (perhaps with NRCs). Briefly, VT102 mode automatically forces use of NRCs if a country has been selected, and they occupy G0 and G1. Similarly, for VT102 mode G2 and G3 are forced to hold ASCII. No NRCs are available under VT52 and Heath-19 modes. Also, when NRCs are active incoming characters have their high bit removed. Undoubtedly, there will be future refinements in this complex area, including doing something useful with SET TRANS IN. [My Nation's birthday was spent on this National problem.] msx/y/zibm 68. Attempt to dampen complaints about CSI 0 m forcing IBM PC display adapters into "dim" mode. The strategy is now use the MSK startup screen intensity, or that specified by SET TERMINAL COLOR 0/1, as "DEC normal" and the alternative as "DEC bold." Thus a DOS level bold display yields emulation of "DEC normal" as bold and emulation of "DEC bold" shows as "IBM dim", unless of course the opposite were true in which case the opposite becomes true(!). Got it? 69. Fix problem of SET TERMINAL COLOR not taking effect immediately in Tek emulation. msgibm 70. 5 July. Correct command exit procedures for FIN/LOGOUT/BYE when acting as a server. mssser.asm 71. Move control sequence parser to file msscmd.asm for use in terminal emulation as well as in ISO level file transfers. msscmd, mszibm. 72. 9 July. Add support in msxibm.asm of the National Semiconductor 16550A UART chip in receiver fifo mode. This chip is a plug-in replacement for the ubiquitous 8250 and 16450 UARTs found in PC/XT's and AT's, resp. In fifo mode a 16 character receiver buffer is available in the UART itself. The chip is programmed to interrupt MS Kermit when 8 characters are in the buffer or when fewer are present but 4 character times have elapsed without any characters having been removed. The strong advantage of the chip is that buffer: it greatly reduces problems associated with insufficient cpu speed to service the UART, such as when operated above 38400 baud. Beware: the 16550(no A) has serious bugs and cannot be operated in fifo mode (early production runs of PS/2's have a 16550, later runs have a 16550A). National Semi chip number 16550AFN, cost is about $US24. Special thanks go to Danne Norstedt, danne@stacken.kth.se, and to Campbell Scientific of Logan Utah for providing helpful advice about this chip. Another be aware of: 8250(no letter) has bugs, 8250B is a v. slow bug fix edition, 8250A is a faster largely bug free edition, 16450 is the AT bus speed (8 MHz) version, 16550 has bugs, 16550A is the desired object. Also, the 16550A must be specifically programmed by the applications program to obtain fifo mode, otherwise it runs like a 16450/8250A. With the fifo in operation a 8 MHz 1 wait state AT has the MSK file transfer throughput of a 20 MHz 386, and fewer serial port overrun problems from concurrent disk i/o. PS/2 tests are desired. 73. 26 July. Add IBM-PC commands SET TERMINAL KEYPAD {NUMERIC, APPLICATION} where numeric is the default, and revise the Tek emulator disable cmd to be SET TERMINAL TEK4010 {c/r, DISABLE, ENABLE}, where c/r both enables and changes the terminal type but adding enable or disable does not change the terminal type. msxibm, mszibm. 74. Add command SET DUPLEX {HALF, FULL}. This functions with modem signals RTS and CTS to request and receive permission to transmit characters. The line turning/line release character is that used for packet End of Line, normally a carriage return. Selecting half duplex turns on local-echo and disables flow control; selecting full duplex turns off local-echo and enables flow control (which still may be to use none). The CTS interlock is bypassed if modem signal DSR is not asserted (no modem). An approximate 10 second timeout is imposed on blocked sending; exceeding the timeout forces out the character regardless of CTS. Half and full duplex are not effective for network ports, and half duplex plus packet sliding windows is a sure loser. mssset, msssho. 75. Add heuristic to file sender: if windowing is inactive then consider a NAK out of the window (not the currently active packet) to be an ACK for the currently active packet, to accomodate non-windowing Kermits, but if windowing is active then that NAK means resend all unACK'd packets. The current file receiver does not employ NAKing outside the window. Using a NAK to substitute for an ACK is risky business, in my opinion, but so many existing Kermits, including MSK 2.32, send it that we have no alternative. 76. 5 August. Correct problem of working filename being remembered after SEND-ing has finished. 77. Make the "active" packet size shown in help files react more quickly to SET WINDOW and SET RECEIVE or SEND PACKET commands. 78. By popular demand allow keyboard verbs to be embedded in text strings. The changes are currently in msuibm.asm, the end of proc keybd and new proc keysv. msuibm, and really for all msu files. Example syntax of a difficult string is two right arrow keys: {\{krtarr}\{krtarr}}. The leading brace is required to avoid the string being read as a single verb and the inner braces delineate verb names. 79. 6 August. Let National Replacment Character set become active in VT320 mode when the user states the SET TERMINAL CHARACTER-SET command, rather than waiting for the host to do so. Differs now from a real VT320. mszibm 80. 8 August. Bug fixes. Correct SET SEND PACKET to really act as an upper limit. Correct small problems with item 78 above. msssen, mssset. 81. In msuibm.asm set variable ttyact (Connect mode active) to zero when sending strings so networks will get the whole string in one packet. ttyact is set non-zero on the last string character to force out the packet at that time. 82. Move terminal emulator control code from msxibm.asm to msyibm.asm to balance file sizes. Just cut and paste. 83. 21 August. Add protection against wierd codes in CSI <..> z and ESC c terminal reset commands. Tnx to Terry Kennedy. mszibm 84. Add 132 column support for STB's VGA/EM and VGA/EM-16 VGA boards. msyibm Tnx to Terry Kennedy 85. IBM PC Keyboard: let typewriter Enter key be defined separately from ^M. 86. Upon testing transparent printing with a real VT320 simplify emulator simplify the code in mszibm to handle this case. In particular when emulating a VT102 absorb CSI 6 i which is sent by DEC's ALL-IN-ONE package and is absorbed by VT102s (but not by VT320's). 87. 3 Sept. Add SET TERMINAL DECnet node name to IBM PC version. Includes both LAT and CTERM interfaces; must be used with DECnet-DOS. msxibm 88. Add SET PORT NOVELL as an alternative type to UB-One, Int 6Bh network interface. Use NASI/NACS with Novell NetWare. Add unassigned keyboard verb \knethold to invoke the Int 6Bh session "HOLD" command. In addition, let \khangup hangup the current session but leave others going. msxibm, msuibm. 89. Add corrections in msyibm.asm from Terry Kennedy. Add code reduction in msscmd, mssser, etc from Jack Bryans. 90. 10 Sept. Add fine points to SET PORT responses. msxibm, msyibm, msssho. Include all known network names in SHOW COM display. 91. Add to IBM-PC command SET TERMINAL REPLAY the ability to quit early with Control-C. msxibm, msuibm 92. Add control of DOS "BREAK ON, OFF" within Kermit to keep it off while Kermit is in control. mssker 93. Internal improvements in packet decoder. mssfil 94. 11 Sept. Revise parts of SET PORT for cases of missing or incompatible hardware UARTs (both cases yield Bios serial port usage). msxibm 95. 22 Sept. Change Server LOGIN parameter to be enabled as a default, but a lack of a username and password from SET SERVER LOGIN will cause checks to by bypassed. The current LOGIN keyword is now LOGIN rather than LOGIN-BYPASS. DISABLE ALL also defeats LOGIN (know your callers). 96. Set the default server timeout (interval between NAKs while waiting for business) to be zero rather than three times the normal packet timeout. 97. Allow the file transfer keyboard controls Control-C,E,X,Z to be typed as just alphabetic letters (case insensitive), to aid the handicapped. 98. Add SET TERMINAL BELL {AURAL, VISUAL}. Visual blinks the screen by reversing the video for 40 milliseconds plus screen writing time. 99. Modify default prompt to be MS-Kermit, to agree with the vernacular. 100. Bug fixes in file receiving code related to file closure/deletion. 101. Tektronix support additions (some of much, very unstable). ESC / x1; y1; dx; dy; pattern y fill rectangle whose lower left corner is x1,y1 and width and height are dx,dy with a pattern. Pattern description 1 solid foreground color 2 halftone foreground 3 lines going up 4 lines going down 5 horizontal lines 6 vertical lines 7 slanted cross-hatching 8 vertical cross-hatching 9 checkerboard Note: the patterns are locked to absolute 0,0 so that smaller regions are aligned with larger regions. Each pattern is a tiling 8x8 pixel cell. Pattern values outside the range 1..9 result in use of the currently defined pattern value; omitting the pattern field in the escape sequence is one way of employing the currently defined pattern (forces 0). ESC @ through ESC H select fill pattern Patterns are as listed above, with the correspondence of 1=@, 2=A, 3=B, 4=C, 5=D, 6=E, 7=F, 8=G, 9=H. ESC / Pn d set pixel operation kind Pn description 0 OR dots using foreground coloring 1 write using background coloring 2 XOR using foreground coloring 3 write using foreground coloring The default pixel op is OR and is reinstated upon screen clearing. The VT340 DCS below is parsed but presently causes no action: DCS P1; P2; P3 q string ST Sixel Data string where P1 is an obsolete pixel size parameter P2 0 or 2 means write 0 bits in background color 1 means do not touch 0 bits P3 is ignored (horizontal grid size) string includes chars 3fh to 7eh code for six pixels placed vertically with least significant bit at the top ! Pn char repeat Sixel char Pn times " Pan; Pad; Ph; Pv set raster attributes # Pc; Pu; Px; Py; Pz set coloring attributes for Sixels $ (dollar sign) return to left margin on this line - (minus sign) return to left margin on line below 102. Place Tektronix material, file msgibm.asm, into a separate code segment named "code2", include reference to code2 in mssdef.h, and introduce suitable near/far call interfacing in msgibm.asm. Lots to do here. 103. 27 Sept. Reduce word BAUD to obscurity but accept as SPEED alternative. 104. Add mathematical form of IF statements. The form is IF [NOT] where is < or = or > is a 16 bit Kermit number (backslash may be omitted), or keywords ARGC, COUNT, or ERRORLEVEL. ARGC is 1 + number of arguments in the currently active Macro/Take file, and each Macro/Take file has an individual copy (similar to COUNT). Only the first two letters of these three words is checked. Subsititution variables are permitted anywhere. The math equivalent is IF , i.e. reverse Polish notation. Examples: IF < ARGC 2 echo there were no arguments to this macro/Take IF NOT = 3 ERRORLEVEL echo not at errorlevel 3 105. Add command ASKQ as a non-echoing version of ASK. 106. 30 Sept. Permit optional LAT password in SET PORT DECnet node password command. Password is ignored if not using a LAT connection. Thanks to Terry Kennedy, Terry@spcvxa.Bitnet, for corrections to DEC's manual. 107. Include support of Intel's OpenNET network over NetBios. Code is by Fred Richter of Intel, add'l mods by me. His comments, paraphrased: "Command "SET PORT OPENNET nodename" opens a terminal connection to RMXII, RMXIII, UNIX386 5.3.2, or Xenix 3.5 systems running the OpenNET SW. The changes are fairly trivial, since the actual network interface on the PC is NETBIOS, but with some MINOR changes for node naming conventions, and a small handshake at session startup. Also, some minor tweaks to the NETBIOS support for better error detection (I hope), and allowing more overlap of network receives with PC processing since we run NETBIOS (and ISO transport) on a smart card." Fred Richter, Intel Corp., 516 231-3300, fred@polyof.poly.edu Nice to have you aboard, Fred and Intel, and thanks for the tweaks. 108. Add more escape sequences to Tek emulator: ESC / Pn a or ESC / Pn b or ESC / Pn c set user definable line drawing patterns. Pn is a 16 bit number, expressed in ascii, and the lsb is plotted first. Three such user patterns are available. ESC x and ESC y and ESC z select one of the three above line drawing patterns. DCS P1; P2; P3 q string ST Sixel Data string now works. P1 is ignored and so are the set raster and set color subcommands, for now. 109. Revise Show Statistics screen to be multicolumnar. 110. 2 Oct. Add rectangle drawing command to Tektronix emulator ESC / P1; P2; P3; P4 x where P1 is the Tek x coord of the lower left corner P2 is the Tek y coord " " " " " P3 is the height in Tek coord P4 is the width in Tek coord 111. 3 Oct. Added to Tektronix emulator ESC / 2 h set destructive space condition ESC / 2 l reset " " " (default) ESC / 9 h set destructive backspace condition ESC / 9 l reset " " " (default) Destructive mode writes a whole character cell in the background color. Add additional rectangle fill patterns of 10 = dots 11 = horizontal herringbone 12 = vertical herringbone 13 and above = draw border without filling 112. 7 Oct. Put back terminal emulation fast char insert/delete code into msyibm.asm and revise mszibm.asm to match, to stop complaints of flickering cursor. Other systems will need to revise their code too (not a major thing). Add a couple more small fixes to msyibm.asm. 113. Include support for DEC LK250 keyboards (cross between regular DEC LK201 and an IBM Enhanced keyboard), from Terry Kennedy, Terry@spcvxa.Bitnet, St. Peter's College. Support requires presence of TSR program MSLK250.COM (either from the Kermit area of Columbia University as file MSLK250.ASM and/or MSLK250.BOO or use the equivalent program from Digital Equipment Corporation itself). The TSR manages the keyboard to switch between DEC and DOS modes so that MS Kermit will use DEC mode when in Connect mode and DOS mode otherwise (such as at the Kermit command line, in DOS, etc). This is accomplished automatically. Key mappings are arranged to use DEC labeled keys for the standard Kermit functions, with special Kermit operations such as screen rollback using the same keys as on regular IBM keyboards. The TSR program uses interrupt 15h with a signature of 1234h. An AT (80286) machine or higher is needed to operate the LK250 keyboard. New code is in files msuibm.asm, msxibm.asm, and msyibm.asm. 114. In the NetBios receive packet code let the error code of request cancelled be an allowable deficiency (yields no error and no new data). From Fred Richter. msxibm.asm 115. 11 Oct Add cmd SET TRANSMIT {Fill-empty-lines, Line-Feeds-sent} {ON, OFF} This enhances the script TRANSMIT (raw upload) command to send a space for an empty line (helps some file systems) and/or send a LF when one appears in the source file (general flexibility though not needed normally). Defaults are both off. mssdef.h, mssset, msssho, mssscp.asm. 116. 17 Oct. Correct bugs with SET PORT DEC Password parsing and do more thorough presence detection with interrupts 69h (CTERM) and 6ah (LAT). Thanks to Terry Kennedy. Slightly revise DECnet error msgs. msxibm.asm 117. Install recognition of backslash notation in the prompt portion of ASK and ASKQ. mssset.asm. Correct ordering of help for "REMOTE ?". mssser. 118. Let DEC's LK250 keyboard COMPOSE key be mapped as ESC (\27). msuibm 119. Include Terry Kennedy's improved support TSR MSLK250.ASM. Terry says that DEC has similar code embedded in their products, but not as a TSR. 120. Slightly improve response to user typed XOFF while in Connect mode: let this stop all reading of the "serial port", and cancel this stoppage if MS Kermit sends any other character afterward. msxibm.asm 121. 21 Oct. Correct display of \127 as a padding character. msssho. 122. Add to WRITE command: can also be SCREEN can also be ARGC, COUNT, or ERRORLEVEL 123. Add recognition of command REMOTE KERMIT SET while acting as a server. mssser.asm 124. Add elements of ISO file transfer facilities. SET FILE {BINARY, TEXT} binary means literal, text means regular or can have translation of character sets. SET TRANSFER CHARACTER-SET {LATIN1, TRANSPARENT} SET FILE CHARACTER-SET {CP437, CP850, CP860, CP863, CP865} SET FILE WARNING {ON, OFF} same as SET WARNING These items are skeletons for the most part. mssset,msssho,mssrcv,msssen, and mssdef.h 125. Add automatic recognition of the active IBM Code Page. Shows with SHOW FILE command. mssker.asm 126. 22 Oct. Modify SET TRANSMIT command to work as follows: SET TRANSMIT Fill-empty-line {NONE, SPACE, character} SET TRANSMIT PROMPT SET TRANSMIT Line-Feeds-sent {ON, OFF} Where character can be a single ordinary character or \number form. The settings are visible via the SHOW SCRIPT command. mssscp.asm, mssset.asm, msssho.asm, and mssdef.h 127. Add command alias SET LOG for the regular LOG command. 128. Revise SHOW LOG display. Change default session log name from KERMIT.LOG to SESSION.LOG. msssho.asm 129. Change Visual Bell word "aural" to "audible." msyibm.asm 130. Undo "improvement" of Control-S typed by user stops reading immediately. At least one Emacs user complained that it suppressed normal Emacs output for the Search command. No easy way out, sorry, aside from using \Kholdscrn keyboard verb. msxibm.asm 131. 24 Oct. Bug fixes, to WRITE ARGC and COUNT, and to LOG SESSION, plus other small fixes. msster.asm, msssen.asm, msssho.asm 132. 2 Nov. Change command confirm request msg to "press ENTER to execute command", and a couple related to use press and ENTER. msscmd, msssho, mssset, msssen, msster.asm. 133. Embellish SET PORT DEC command by allowing the host name to be "*" to display a list of known LAT service names (does not make a connection). 134. 6 Nov Add SET TERMINAL CHARACTER-SET TRANSPARENT to list of char sets. This causes the VTxxx emulator to use the native display adapter chars for bytes 0a0h-0ffh (160-255 decimal). Bytes 80h-9fh are still 8-bit control codes. Pseudo character set ident of "?"/96 is used and the set is assigned to G2. mszibm.asm, msyibm.asm 135. Add command REPLAY which does the same as SET TERM REPLAY and does not replace the latter. Code for this moved to msster.asm. mssker.asm, msster.asm, msyibm.asm 136. 7 Nov. Minor corrections for more "press ENTER" msgs. Make SET TERM CHARACTER-SET take effect immediately. Correct DISABLE KERMIT command. msssen.asm, mssser.asm, mssset.asm, mszibm.asm 136. Add to VT320 emulator SET TERMINAL CHARACTER-SET options the keywords LATIN-1, DEC-MCS, and modify the meaning of the ASCII parameter. LATIN-1, the default, is ordinary ASCII in GL and ISO-LATIN-1 in GR. DEC-MCS (Multinational Character Set) is ASCII in GL and DEC Supplemental Graphic in GR. Now ASCII means strip any 8th bit of characters before use. Both of these GR tables are mapped to set G2. Note that Latin-1 and DEC Supplemental Graphic (DEC-MCS) differ slightly by Sup Gr having spaces for several characters and a couple of substitutions; DEC-MCS is hardly worth considering compared to Latin-1. mssdef.h,msyibm,mszibm. 137. 8 Nov. Modify the filtering of Connect mode bytes by SET DISPLAY 7/8. Previously SET DISPLAY 7-bit applied only to characters about to be displayed but not those destined for printing or occuring within Escape sequences. Transparent printing from Unix machines, in particular, encountered problems because the screen had the parity bit removed but the printed text did not, nor did the recognizer of the printing done Escape sequence ESC [ 4 i. Now all characters entering the terminal emulator have their high order bit affected by SET DISPLAY, including those destined for the Session log file and printer. Users of 8-bit wide channels should say SET DISPLAY 8-BITS to recognize bytes with their high bit on. msyibm.asm, mszibm.asm 138. 11 Nov Add version 3.0 flavor to DEC Rainbow files msurb1.asm and msxrb1.asm. Gary Stebbins, stebbins@guiduk.enet.dec.com, did the most recent updates a day ago. 139. 12 Nov Change command SET WARNING {ON, OFF}, aka SET FILE WARNING {ON, OFF}, to include setting of NO-SUPERSEDE. This new setting causes rejection of a received disk file which already exists. The local file name is changed to NUL and an 'X' is returned in the first available ACK. Frequent requests have been made for this setting. mssfil.asm 140. Add details to SET ATTRIBUTES command to use keywords of {ON, OFF, CHARACTER-SET, DATE-TIME, LENGTH, and TYPE}. ON and OFF apply to all attributes and the default is ON. If an attribute is OFF then it is not sent and during reception it is ignored. mssset, msssho, mssrcv, msssen, msgibm, msyibm, mssdef.h. 141. Correct a serious bug introduced accidently in a recent edit cycle. A text message slipped into the code for sending ending abnormally and that could crash a machine (data in place of code) if the retry limit were exceeded and other circumstances. Affected file is msssen.asm. Updated msscom.asm to eliminate chances of a stray Message: appearing rarely accidently. 142. 17 Nov. For Half Duplex operations of IBM-PC version add test of UART transmitter shift register being empty before dropping RTS (was holding register being empty, which could truncate the final character). 143. 19 Nov. Add command SET UNKNOWN-CHARACTER-SET {KEEP, CANCEL}, where Keep is the default. It does nothing at the present time. mssset, msssho, mssrcv.asm. 144. Refresh Kermit's idea of the current character-set Code Page when returning from a PUSH to DOS. Remove option ASCII from SET FILE Character-set, leaving only Code Page entries. Default to CP437 if no Code Page information is available. mssker, mssset, mssdef.h 145. Force DOS to write out the Transaction log as we write it, for DOS 3.30 and later. mssfil.asm 146. 25 Nov. Allow attributes packet to be sent as multiple packets if the pkt length is short. Place as many attributes into a packet as possible. Trouble arises with attribute of Date-Time and with the command MAIL filespec user@node when extremely short packets (~20 bytes) are used. If these items fit into no packet the file is not sent (via forcing a protocol file-skip operation the same way as if the user typed "X"). SET FILE TYPE BINARY uses attribute ""B8 and TYPE TEXT uses "#AMJ. SET TRANSFER CHAR TRANSPARENT uses attribute *!A and CHAR LATIN1 uses *!C followed by another attribute of 2&I2/100. Note that while SET FILE TYPE BINARY informs a knowledgable host about files we send, this has no effect on files sent from a host or server (it's our attribute but only the file sender emits attributes packets; sending hosts and servers will operate with their own default settings for each file). msssen.asm, mssser.asm, mssrcv.asm, mssdef.h. 147. Create the tables needed to translate between ISO 8859-1 Latin1 and Code Pages (CP437, 850, 860, 863, 865). These are now found in mssfil.asm and parts were in mszibm.asm. This activates SET TRANSFER CHARACTER-SET and SET FILE TYPE commands. A closest approximation is made in the tables with non-translatable characters replaced by a query mark ("?"). Checked with CP437 and CP850, but not with the others. The tables are shared with terminal emulation. As yet the NRC tables need updating for CPs other than CP437. Note that Kermit uses the settings given by the user unless an arriving attributes packet says perform differently. Server mode defaults to the user's settings after each operation. Also be aware that transferring material under SET TRANSFER CHAR LATIN1 rules means a) codes 00h - 7fh remain intact (as GLeft) b) codes 80h-ffh being sent are put through the CPnnn to LATIN1 table, c) incoming codes 80h-9fh are regarded as 8-bit controls (no translation) d) incoming codes 0a0h-0ffh are translated back to the active Code Page, e) thus nearly all the IBM-PC line drawing characters are converted to query marks. CP850 gives the best overall match to LATIN1. SET UNKNOWN-CHARACTER-SET command is still a dummy. mszibm.asm, mssfil.asm. 148. In file msxibm.asm ensure that the HANGUP command runs with the serial port initialized and leaves with it shut down. Tnx to Drew Derbyshire for noticing a possible uninitialized state at command execution time. 149. 26 Nov. Move most screen display utilities from mssfil.asm to msssho.asm to balance file sizes and to leave room in mssfil.asm for character set functions. mssfil, msssho.asm 150. SET UNKNOWN-CHARACTER-SET {KEEP (default), CANCEL} is now active. If an incoming file specifies a character set which we do not know (we know only "I2/100" Latin1 at the moment) then either reject the file if CANCEL has been selected or use the default character set from the SET TRANSFER CHARACTER-SET command if the default KEEP option is active. mssrcv, msssen, mssset.asm 151. Put in skeleton character set command LOAD to read a user defined pair of translation tables. It is inactive at this time. Specs are from file ISOK4.TXT (ISO-Kermit, Draft 4, 24 August 1989). mssfil.asm 152. 29 Nov 1989. Modify ECHO command to permit display of 8-bit characters. Correct problem of not recognizing script labels if they terminated in a Tab character. mssscp.asm 153. 30 Nov. Correct problem of skipping colon of a label if it were the first character of a macro definition. mssscp.asm 154. Add VT320 identification string item, "4" to say the emulator supports Sixel Graphics. The VT320 ident string (response to SET TERM/INQUIRE) is [ ? 63; 1; 2; 4; 8; 9 c meaning VT300-series, 132 col, printer, Sixel graphics, UDkeys, NRC. Unix systems might validate a VT300-series device by parsing just [ ? 63 c and ignore the small digits after "63" because the terminals have a variable list of enhancements (the small digits tell which ones). The MS Kermit VT102 emulator reports itself with [ ? 6 c. VMS version < 5 sites can say $ SET TERM/DEVICE=VT200 because VT300 recognition started in VMS 5. mszibm.asm 155. 3 Dec. Revise character attributes to remove an explicit "2" attribute but include the character set information as data following 'C' in the "*" attribute (results from SET FILE TYPE TEXT). mssrcv, msssen 156. Activate command LOAD to load a file transfer character set translation table for use as a Code Page substitute under the SET FILE CHARACTER-SET USER-DEFINED command. The User-defined tables (one for incoming, one for outgoing text) are initially defined as identities and are then revised by the LOAD command. Still a few loose ends of book keeping here. The table is 128 bytes long and forms GR (high bit set codes). Notice that the file sender needs to SET TRANSFER CHARACTER-SET LATIN1 for these tables to be invoked (set the receiver the same way if attributes packets for that purpose are unavailable). mssfil.asm 157. Add National Replacement Character sets for each of five Code Pages, 60 tables overall. The appropriate table is selected by going to DOS for the current CP setting (CP437 is the default) and to the SET TERMINAL CHARACTER-SET for the country. Enlarged other tables to 128 bytes for easy reuse by both terminal emulator and file transfers. mszibm.asm 158. 4 Dec. Add support to send a BREAK for 3Com Bridge Application Program Interface (BAPI) Bios serial port path with external session management. Presence test is Int 14h, function ax=0af00h, returns ax=0af01h and carry bit clear. 159. 6 Dec. Create global equ VERSION as 300 (hundreds = major, tens/units = minor revs) in mssdef.h. Thus 300 is MS Kermit 3.00 in the vernacular. mssdef.h, mssker, msssho, msster 160. Add item VERSION to command IF ... joining ARGC, COUNT, ERRORLEVEL, and a number or a \number. mssscp 161. Validate operation of MSK as an external "terminal emulator" for use with FTP Software Inc's TNGLASS.EXE program containing the Bios serial port attachment point. This permits Kermit to be used across the TCP/IP Telnet interface via SET PORT BIOS1. TNGLASS.EXE was updated on 6 Dec 89 to cure a small problem so don't use an earlier version. FTP's syntax is "TNGLASS -e Kermit ". msxibm 162. 8 Dec. Revise screen saving procedure in msyibm.asm. Try to allocate a memory buffer from DOS at save time with the current screen size (vs allocating a fixed size one at Kermit startup). If memory is unavailable then use video page 1 but fail, no save, if Environments are in use. Deallocate the old save buffer if a new one is required by a new screen dimension. This strategy preserves unusual sized text screens when Tek graphics are used; previously those text screens went to video page 1 yet graphics cleared that page. A typical 80x25 screen requires 4KB. msyibm 163. Invent new (last?) method of changing terminal emulation between 80 and 132 columns. If the internal method fails to find a matching video board then invoke file COLS80.BAT or COLS132.BAT to do the work. The PATH= list will be searched if necessary. If the appropriate file cannot be found then the screen change request from the host is ignored. The serial port is shut down and restarted around execution of the .BAT file, the same as if PUSHing to DOS which in fact is basically what we do. The user is expected to put commands in these files to change the screen dimensions, usually by running a program supplied by the video board vendor. The active screen is the same as during terminal emulation. mssker.asm, msyibm.asm 164. 10 Dec. Start sketching in Tek graphics dump screen to file procedures. File format is according to TIFF version 5.0 rules. File name is TIFF0001.TEK, or higher ending numbers if name collisions occur. Screen dump is initiated by keyboard verb \Kdump (IBM default keys Control-End), the same as for text screens. Only one graphics screen dump per file. Presently this is active only for CGA screens. Tested with WordPerfect version 5.0, but this gives me two divide errors and the StripOffsets element seems to need an immediate value rather than a pointer to a set of values. Probably just me, but I'm not too sure about it. No image compression done at this stage. mssfil.asm, msgibm.asm 165. 11 Dec. More TIFF work in file msgibm.asm. With the aid of my freshly updated PC Paint (MS version) which imports/exports TIFF files now all display adapters using basic CGA organization (CGA, Herc, Wyse, AT&T, DEC,...) can write uncompressed files acceptable to both WordPerfect 5 and PC P. EGA stuff is in progress. Expect major code revisions in msgibm as the colored EGA section develops. Renamed output files to be TEKPLT01.TIF et seq to be easier to remember and type. msgibm.asm 166. 13 Dec. Add command REMOTE SET as a synonym for command REMOTE KERMIT SET . They do exactly the same thing. mssser. 167. 14 Dec. Revise the whole REMOTE SET business to send/receive the commands below as dedicated protocol items rather than as text. They go into type G packets with data of S . Taken from Columbia draft document on the subject. Command Code Values REMOTE SET ATTRIBUTES IN ALL 132 0 = OFF, 1 = ON REMOTE SET ATTRIBUTES IN LENGTH 133 0 = OFF, 1 = ON REMOTE SET ATTRIBUTES IN TYPE 134 0 = OFF, 1 = ON REMOTE SET ATTRIBUTES IN DATE 135 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN CREATOR 136 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN ACCOUNT 137 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN AREA 138 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN BLOCK-SIZE 139 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN ACCESS 140 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN ENCODING 141 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN DISPOSITION 142 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN PROTECTION 143 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN GPROTECTION 144 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN SYSTEM-ID 145 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN FORMAT 146 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN SYS-INFO 147 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES IN BYTE-COUNT 148 0 = OFF, 1 = ON REMOTE SET ATTRIBUTES OUT ALL 232 0 = OFF, 1 = ON REMOTE SET ATTRIBUTES OUT LENGTH 233 0 = OFF, 1 = ON REMOTE SET ATTRIBUTES OUT TYPE 234 0 = OFF, 1 = ON REMOTE SET ATTRIBUTES OUT DATE 235 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT CREATOR 236 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT ACCOUNT 237 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT AREA 238 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT BLOCK-SIZE 239 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT ACCESS 240 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT ENCODING 241 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT DISPOSITION 242 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT PROTECTION 243 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT GPROTECTION 244 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT SYSTEM-ID 245 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT FORMAT 246 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT SYS-INFO 247 0 = OFF, 1 = ON X REMOTE SET ATTRIBUTES OUT BYTE-COUNT 248 0 = OFF, 1 = ON REMOTE SET FILE TYPE 300 0 = TEXT, 1 = BINARY X REMOTE SET FILE NAMES 301 0=CONVERTED, 1=LITERAL REMOTE SET FILE COLLISION 302 0 = RENAME, 1=REPLACE, X 2 = BACKUP, X 3 = APPEND, 4 = DISCARD, X 5 = ASK X REMOTE SET FILE REPLACE 303 0=PRESERVE, 1=DEFAULT remote set file incomplete (MSK only) 310 0 = discard, 1 = keep REMOTE SET INCOMPLETE 310 0 = DISCARD, 1 = KEEP REMOTE SET BLOCK-CHECK 400 number (1, 2, or 3) REMOTE SET RECEIVE PACKET-LENGTH 401 number (10-9024) REMOTE SET RECEIVE TIMEOUT 402 number(any,0=no timeout) REMOTE SET RETRY 403 number (any, 0=no limit) REMOTE SET SERVER TIMEOUT 404 number(any,0=no timeout) REMOTE SET TRANSFER CHARACTER-SET 405 Character Set Designator REMOTE SET WINDOW-SLOTS 406 number (1-31) All the commands above may be sent from a client MS Kermit. However, those items marked with an "X" will be failed by an MS Kermit server. In addition, o REMOTE SET FILE INCOMPLETE is added as a natural synonym for REMOTE SET INCOMPLETE. o The acceptable strings for incoming REMOTE SET TRANSFER CHARACTER-SET are "A" for TRANSPARENT and "I2/100" for LATIN1. We need a better scheme than the "A" above. o All incoming REMOTE SET ATTRIBUTE commands are collapsed to make IN and OUT refer to the same attribute for transfers in either direction. o The server responds with text messages of either "Command succeeded" or "Command failed". mssdef.h, mssfil.asm, msssen.asm, mssser.asm, mssset.asm, msssho.asm 168. Save the entire set of flags and transmission parameters (dtrans, trans) around server mode, to help prevent setting being carried over from session to session. I probably missed a few things, considering the quantity of SETs available. mssser.asm 169. 15 Dec. Add a Tektronix screen report to both text and Tek emulators. Request is ESC [ ? 256 n or for 8-bit text mode CSI ? 256 n Response is ESC [ ? 256; height; width; num colors n where height and width are the graphics screen dimensions and num colors is 1 or 16. Pure text mono systems (no graphics) return the special response ESC [ ? 256; 24; 80; 0 n. If 8 bit controls are active text mode responds with CSI. ESC [ ? ...n is a DEC private sequence but 256 seems like a safe unused parameter. This report was suggested by WordPerfect Corp. msgibm.asm, mszibm.asm 170. Change the file transfer character set used if an Unknown kind is specified in an attributes packet to be TRANSPARENT (no translation). mssrcv.asm 171. Modify failure responses to REMOTE SET to be an Error packet with msg of "Unknown server command" or "Command failed", as appropriate. mssser 173. 16 Dec. Add to Tek emulator support of VT340 style Sixel color palette commands. The VT340 has 16 palette registers. They may be initialized to other than the startup default foreground color within the command DCS P1; P2; P3 u string ST Sixel Graphics command where string holds substring # Pc; Pu; Px; Py; Pz Pc is the VT340 palette register to be set, 0-15 Pu is the units of color information, 1 = HLS, 2 = RBG For Hue Lightness Saturation (from Tektronix 4027 color standard): Px = Hue angle, 0-360 degrees. The colors are mapped around the color wheel in 60 degree segments as Hues 0-29 = blue 30-89 = magenta (blue + red) 90-149 = red 150-209 = yellow (red + green) 210-269 = green 270-329 = cyan (green + blue) 330-359 = blue Py = Lightness, 0-100%, Pz = Saturation, 0-100% Lightness Sat = 51-100 Sat = 11-50 Sat = 0-10 86-100 bold white bold white bold white 71-85 bold hue bold white bold white 57-70 bold hue grey (dim white) grey 43-56 bold hue dim hue black 29-42 dim hue grey grey 14-28 dim hue black black 0-13 black black black Note that Py = Pz = 50 gives the widest spectrum. For RGB: Px = red, 0-100%, Py = green, 0-100%, Pz = blue, 0-100% If any color exceeds 50% then the bold bit is turned on for the ensemble (IBM ega display adapter constraint for RGBi). Palette registers can be selected by the substring # Pc followed by a non-numeric char other than ";" where Pc is the VT340 palette register, 0-15. Palette registers are reloaded with the current foreground color when the emulator is (re)initialized. This addition necessitated some redesign of control sequence parsing in the Tek emulator so retesting is warranted. msgibm.asm 174. 17 Dec. Correct small bug about file name collision handling introduced this week during the REM SET changes. mssfil.asm 175. Correct recent bug of not recognizing word SPACE in SET TRANSMIT. Tnx to Bert Tyler for spotting it. Also revise slightly the TRANSMIT code involving sending filler or LF characters. mssscp.asm 176. 18 Dec. Add small change to file msyibm so that when using Half Duplex and the terminal emulation has NewLine mode on then the RTS line is not dropped until both CR (normal line turn char) and LF have been sent. Done specially for a company using Kermit in half duplex mode via radios. Small reminder here: the RTS/CTS handshaking is effective only if a) SET DUPLEX HALF has been stated AND b) the "modem" asserts DSR; if no DSR then no handshaking. Don't send trailing LF's from scripts in HDX. 177. 19 Dec. Add to Tek emulator recognition of DCS p S (M Pm (H Ph L Pl S Ps )) ST and DCS p S (M Pm (R Pr G Pg B Pb )) ST as meaning initialize VT340 palette register Pm with HLS or RGB values. No specs available on these two at the present time, reverse engineering. msgibm.asm 178. Fix a serious bug which kills the system when SET TRANSFER CHAR LATIN1 and sending a file to a host. The problem was a destroyed register in the character set translator and appears as a 65KB packet length. mssfil.asm 179. 20 Dec. Modify the LOAD command to be LOAD TRANSFER-CHARACTER-SET. mssfil Fix tiny bug with REM SET TRANSFER command. mssser. 180. 21 Dec. Tek bug fixes etc. Item 177 turns out to be a Regis command and will be removed entirely. 181. Add VT320 and Tek terminal emulator sensitivity to Request CSI 2 $ u (terminal state, color palette report) which has Responses of ESC P 0 $ s ESC \ (null report) for monochrome video, or ESC P 2 $ s <5 byte palette group>//..<16th group> ESC \ where a 5 byte group is Pc ; Pu ; Px; Py; Pz Pc is palette number, 0-15 in that order Pu = 2 is reporting in RGB (no HLS report) Px, Py, Pz are the RGB values, respectively as 0, 30, or 60 per cent. "/" between groups. Note that the Request can have an optional second Parameter indicating whether the Response should use HLS or RGB. It is ignored here. 182. Add Tek screen to TIFF file for ega screens. File is uncompressed. 183. Tek emulator: add current Kermit version number and local time/date to TIFF files. 184. Set Tek emulator colors according to VT340 default map: palette 0 is background, palette 7 is foreground, as follows - palette b/w color palette b/w color 0 bkgnd black black 8 dim grey dim grey 1 white bold blue 9 grey blue 2 white bold red 10 grey red 3 white bold green 11 grey green 4 white bold magenta 12 grey magenta 5 white bold cyan 13 grey cyan 6 white bold yellow 14 grey yellow/brown 7 foregnd grey grey 15 white white 185. 26 Dec. Much much work on Tek and Sixel. Revise item 181 RGB report to say 0, 40%, or 80% for none, regular, or bold colors, to help WP/VMS 5.0. Also revise determination of incoming RGB coloring such that a bold color will surpress existance of any dim colors. Removed item 177 material. msgibm 186. Again, for WP/VMS make arrival of Sixel Graphics command while in text emulator be a very special case. When this happens feed the arriving command, DCS P1; P2; P3 q string ST to the Tek emulator in 7 bit form and require the Tek emulator to return control to the text emulator after the final ST (ESC \ to Tek) has arrived. This lets Sixel Graphics be plotted on the Tek screen and text on the text screen. When we do this set the Tek "text cursor" (where the first Sixel datum goes) be set to the equivalent position of the regular text cursor, with accomodation for different numbers of text lines between the two systems. The user can toggle terminal types, ALT white-minus key or verb \Ktermtype, to review graphics or text screens (WP/VMS makes a total hash of staying on one screen or the other, constantly bouncing back and forth, so the user is best left with the toggle to outwit these activities). msgibm, msyibm, mszibm.asm 187. For the moment include elementary cursor steering and screen clear 7-bit escape sequences in Tek mode. These are ESC [ Pn @, ESC [ Pn A, ESC [ Pn B, ESC [ Pn C, ESC [ Pn D, ESC [ Pn E, ESC [ Pn F, ESC [ Pn G, ESC [ Pr; Pc H, ESC [ Ps J, ESC [ Ps K, ESC [ Pn X, ESC [ Pn a, and ESC [ Pr d. The text-like rows and columns are scaled from the text screen rows but use 80 column width (640 dots across the screen). The hope was, at the time, to have WordPerfect/VMS do it's operations all on the Tek graphics screen. Alas, WP/VMS is not so obliging and it makes a mess when characters overwrite themselves. msgibm 188. Other smoothing out of items in the VT300 emulator. mszibm.asm I must take this opportunity to express deep thanks to Terry Kennedy for sending Fed Ex a complete set of VT340/VT330 manuals for this week's recent work. That's help when most needed. I could not have survived without them! Thanks also to Paul Whitmer of WordPerfect for many long conversations and a temporary copy of WP/VMS v5.0. 189. Try to preserve text mode screen dimensions around interludes of Tek screens. This may be only partly successful but works with 132x43 line screens on my Video 7 VGA board. msgibm 190. More small adjustments to coloring in Tek mode, and other tiny fixes. 191. 30 Dec. Many changes to file msgibm.asm. Add recognition of ESC M (cursor reverse index, go up), ESC Z (report ident, ident is now that of the VT320). Gobble up most unknown escape sequences. Improve logical pixel operations. Internals include recognition of destructive space and destructive backspace. External new command SET TERMINAL GRAPHICS CHARACTER-WRITING {TRANSPARENT (default), OPAQUE} also controls destructive spacing. Include sensing of TerminalR and TerminalS escape sequences and ESC [ Pr; Pc f. msgibm, msyibm, msgibm 192. Support of cursor steering escape sequences within Tek mode now scale the motions of cursor up/down, relative and absolute, and cursor to absolute row and/or column to the size of the text mode screen. Cursor forward and backward relative and all screen clearing escape sequences work on the Tek 8x8 dot character size. Beware that Tek and text screen sizes usually share no common factor so registration will suffer. msgibm 193. VT320 mode and Sixel commands. The current strategy is when the VT320 emulator senses a Sixel DCS it sends a screen clear to the Tek emulator followed by the DCS preamble and then switches to Tek sub-mode to process all further incoming material; the user must manually toggle back to text mode emulation (ALT-). It also forces on OPAQUE character writing and destructive backspacing for Tek mode. Clearing the Tek screen also sets the cursor to the upper left corner. msgibm, msyibm, mszibm 194. Let Tek mode sense 8-bit control codes. Other 8-bit characters have their high bit removed. SET DISPLAY 7/8 determines whether the emulators see the high bit. Destructive backspacing will likely be the default condition in a day or two. msgibm 195. Send the Tek (VT340) color palette settings report to the host, upon its request, with short pauses between each character to help reduce host overrun. It's a long DCS. VMS users may well require SET TERM/HOSTSYNC with WordPerfect/VMS, and even that may not be enough. The symptom of overrun is WP/VMS returns Sixel pictures with unexpected colorings. WP figure (picture) and page previews look pretty nifty! msgibm 196. Various code fixes suggested by Jack Bryans. Several mss*.asm files. 197. Create workaround for sending the color palette report (item 193 above). Remove per character timing, insert a fixed timing window of 15 sec to wait to send while being held by an XOFF, sound bell if we have to force that blockage. This speeds sending the DCS if the host is able to empty its buffer promptly. msgibm, msxibm 198. 1 Jan. Minor work on transfer character sets. Modify mssfil, mssrcv, msssen, and mssset to use a table of character sets for SET TRANSFER CHARACTER-SET. The table is short (Transparent, Latin1) but expandable. Let the receiver select the character set for decoding according to that specified in the arriving attributes packet (else the user specified character-set if no attribute). Unknown character sets are treated as before: default of Keep the file and use Transparent translation at the receiver, or Cancel, via SET UNKNOWN-CHARACTER-SET {KEEP, CANCEL}. 199. Minor tweaks to file msgibm.asm and msxibm.asm for small things. It seems that the Telnet software available here is unable to cope with the sending of the long color palette DCS report of VT340's and quits the connection abruptly part way through the sequence. Adding pauses helped some but not much and were removed. 200. Remove (comment out) the LOAD command pending further discussions. mssker.asm, mssset.asm 201. 7 Jan. Add new command SET TRANSLATION KEYBOARD {ON, OFF}. ON is the default. Add mechanisms to translate printable keycodes read from DOS or the Bios from the current Code Page to the current SET TERMINAL CHARACTER-SET for on the wire transmission. Keys reported as scan code (special ones) are not affected. Translation occurs before keycodes are looked up in tables for SET/SHOW key. The Terminal Character-sets which are not affected are ASCII, ALT-ROM, and TRANSPARENT. The current Code Page for keyboard translation is checked whenever Connect mode is entered or whenever a SET/SHOW key command is issued. This mechanism is effective only in Connect mode and during SET/SHOW KEY. It does not apply to scripts (the TRANSMIT and OUTPUT commands in particular). mssdef.h, mssset, msssho, msuibm, msyibm, mszibm. 202. Note that selection of DEC Technical Char set by the host will not appear correctly under Code Page 850 because that CP lacks far too many of the math symbols. Use CP437, or others, instead. 203. Final work on detailed graphics, in particular enforcing pixel logical operations on rectangle drawing. Add escape sequence ESC / Px; Py; Pwidth; Pheight; Ppat z (HDS 2000/3000 terminal) to mean fill rectanglular area from lower left corner Px, Py of width Pwidth and height Pheight with pattern Ppat and then enclose it with a line. It is a combination of ESC / ...x and then ESC / ...y. The pattern is drawn with the current pixel op code set by ESC / Pd d (default is draw in foreground, skip 0 bits); the line is drawn in foreground absolute (skip 0 bits). All use Tek coordinates. msgibm 204. Add commands ESC / P1; P2;...; P8 C and ESC / P1; P2;...; P8 D to permit host definition of two filling patterns. Each Pn is interpreted as 8 bits of the pattern with P1 being the top of an 8x8 pattern. Empty parameters are used as binary 0's. HDS2000/3000 terminal. msgibm 205. Extend the escape sequence to select patterns so that ESC @ .. ESC M select patterns 1..14. The last two are the host definable patterns in item 204 above. msgibm 206. Revise Tek screen clearing slightly to not reset the pixel operation code nor the line drawing pattern. msgibm Here is a summary of the pixel operation codes, settable by ESC / Pd d Pd pixel operation 0 draw 1's in foreground color 1 draw 1's in background color 2 XOR 1's with foreground color 3 write absolute, 1's in foreground and 0's in background color The rectangle commands are now - ESC / Px; Py; Pw; Ph x draw a box, using the currently active line pattern. Px, Py is the lower left corner and Pw; Ph are the spans, all in Tek coords. Drawn in absolute foreground color ESC / Px; Py; Pw; Ph; Pf y fill a rectangular area with pattern Pf Uses the current pixel op ESC / Px; Py; Pw; Ph; Pf z do ESC /...y filling and then do ESC /...x border And this is a short test sequence demonstrating the commands - ESC [ 44 m set blue background in palette 0 ^L clear the screen, set to blue bkgnd Note on ^L: it used to reset the coloring and line drawing patterns, but no longer. ESC [ 31; 42 m set new red fore (pal 7), green back (pal 0) ESC / 3 d set pixel op code of 3, force both colors ESC / 5;5 ;100;100 ;3 z bordered and filled (slants) rectangle should be red lines with green bkgnd fill and the rest of the screen still blue (ESC / 3 d) 207. Include binary patch facility from Jack Bryans, jafw801@calstate.Bitnet. At Kermit startup file MSKERMIT.PCH is searched for and if found it is read and executed. If the file is invalid Kermit still loads after an error message, provided the errors are not fatal. File format is 300 ; optional comment (where 300 is the version number for the patches) DS:xxxx xx xx ; optional comment. DS (or CS) are case insensitive CS:xxxx xx xx xx ; locations must be 4 hex chars, contents must be 2 And more DS: or CS: lines. Version number mismatches produce a message and no patching. Each source file has a specific label, such as cspker, at the start of its code segment to identify that file's code. File MSSCMD.ASM must be Linked first for the patch mechanism to be effective. File msscmd.asm has the list of such labels for use by the patcher in mssker.asm. All files changed 208. Later, revise keyboard character set translation to occur After SET KEY etc code has worked on the keyboard information. Thus, SET/SHOW KEY will indicate the local Code Page pattern but not the on-wire code. msuibm.asm 209. 8 Jan, beta-5. Revise support of 3Com BAPI LAN port to use high numbered Bios calls particular to that interface, given the news that 3Com will no longer support the conventional calls. Adds 3Con(BAPI) to the list of SET PORT items. msxibm. Note, the BAPI interface runs with external session management and the Enter Command Mode key is replaced by keyboard verb \Knethold. Comment out load/readln material to free more code space. mssfil 210. 9 Jan, beta-6. Correct problem receiving files from systems which declare Binary files with attribute of just "B rather than "B8". Make SET ATT TYPE OFF work correctly. mssrcv.asm 211. Ensure the Tek GIN mode termination character is sent intact. msgibm 212. Turn off Patch code til the mechanism is more stable. mssker.asm