What's new in QTERM for V4.3 - in no particular order: ^\ P sends have some more sophisticated flow control, for both individual character transmission, and line breaks, based on echo of characters back from the remote system. When QTERM is in local echo mode characters receivced are expanded to / pairs, and if half duplex or split screen is invoked as well as local echo, locally typed 's also get expanded in the same manner. This makes local echo a bit more useful since it means that neither the local user nor someone talking remotely will need to add a after their 's - QTERM does it as needed. 'q' option to make protocol transfers quiet 'c' option to get Xmodem receive to start in Checksum mode Major overhaul of Kermit - the bugs in the 4.2g implementation have been fixed, and several extensions added: extended block checks, long packets, and server operation. !% m and !% o have become !& m and !& o, and a third option has been added: !& l to turn on and off "Looking for" logging. m and o are initially on, and l is off: !& l 0 forces it off, !& m 1 forces it on, and !& o switches to the other state. !@ and !# (numeric variable manipulation) have gained two counterparts: !$ and !% to set and test string variables (these include the parameters of the script) It is now possible to "type" through a waiting script: while a script is waiting for a match in a normal /send/expect/ line, or a ![ - or ![ : line, characters typed at the keyboard are sent to the modem, and two ^\ escapes are recognised: ^\ . to send a break, and ^\ , to hang up. When expect string is matching (or not) in a .send.expect. line, the last 64 characters received from the modem are kept in the buffer used by the ![ - command, so that tests can be made later with ![ = (etc.) commands, this buffer is also used by the ![ : "wait for silence" command. !< - and !< . (read buffered from keyboard and read single character from keyboard) now take a variable name (i.e. a single letter). For !< -, the letter is the target string variable that will receive the input text, for !< . the numeric variable receives the value of the character typed. This means that !< = and !< , are no longer needed: !% and !# will permit testing keyboard input. Strings and variables can be used in lines: giving $a anywhere in a script line gets substituted by string variable a (and $1 becomes the first parameter to the script), similarly @a anywhere on a script line gets replaced by the numeric value of variable a. The VT100 emulation code has been almost totally re-written, and does a far better job than the 4.2 code. There are limits - double size characters can't be done, nor can alternate character sets, and some operations will take a long time (i.e. set up lots of delay). However, the special VT100.TC termcap file is no longer needed, since a standard VT100 termcap will suffice. However read QTERM.DOC for comments on how it behaves when certain screen codes are missing !~ ? to test the existance of a file has been split into two commands: !~ Y filename `label jumps if the file does exist, and !~ N filename `label jumps if the file doesn't exist - The second is most useful in a script when you only want to do something if a file exists (e.g. upload it, ^\ P it or whatever), that way !~ N allows a jump over the code if the file is not there. The ^\ D code has stopped using the BIOS to read the directory, instead it uses BDOS calls 17 and 18. The bad news is that the statistics line is not shown (maybe something will be put in for the next version), however the good news is that it will work under CP/M 3.0, and also this change has reduced QTERM's memory requirement by about 5 to 6 K.