recordzmodem - a zmodem protocol debugger
recordzmodem [options] PROGRAM [args ...]
recordzmodem intercepts standard input and output of PROGRAM and writes zmodem protocol information to the standard error output.
Each line of output consists of the process ID of PROGRAM, followed by a blank, followed by one or two tag character, followed by a blank, followed by protocol information or data.
The tag character may be '>' (something was sent to the child PROGRAM), '<' (something was sent from the child) or '=', meaning that the line contains a dump of data instead of protocol information. In the later case the a '<' or '>' indicating the direction of the data dumped.
recordzmodem somewhat changes the timing of the protocol transactions. This is unfortunate but inevitable.
When data is dumped it is
encoded to not contain any special characters anymore. A
'<' character is encoded as '<<', other characters
ranging from ASCII 33 to 126 are printed literally, other
characters are printed as '<XX>', where X is a
hexadecimal digit.
If not all data is dumped then line dumped will end with
three dots (...).
Note that data dumped because of the --input or --full-input options has undergone zmodem link level escaping, while this escaping has been removed at later stages of the processing.
In all examples the file "outputfile" will contain information useful for seeing what's going on.
recordzmodem 2>outputfile lrz
The output will contain a human readable translation of all zmodem frames and data subframes, but without any data.
recordzmodem -d 2>outputfile lsz
This time the output will show the start line of all data subframes.
This program is still not finished. It can not deal with variable headers now. It still cannot recognize all protocol flags. It will not show some unknown flags.
Encryption, LZW and RLE encodings probably never will be understood.
recordzmodem was added in version 1.9.0.
Uwe Ohse, uwe@ohse.de
lsz(1), lsb(1), lsx(1), lrz(1), lrb(1), lrx(1), lrzsz_intro(7),