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 <cr> characters receivced are expanded to
<cr> / <lf> pairs, and if half duplex or split screen is invoked as well
as local echo, locally typed <cr>'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 <lf> after
their <cr>'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.
