home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / BEEHIVE / COMMS / QTERM42G.ARC / QTERM.DOC < prev    next >
Text File  |  1991-08-11  |  18KB  |  321 lines

  1. QTERM
  2. =====
  3.  
  4. If QTERM is invoked with no arguments, it starts up, and after signing
  5. on, you are immediately connected with the modem. If an argument file
  6. is provided, then it is assumed to be a chat script (see 'X'), and the
  7. chat script is immediately activated. With this file as with all others
  8. that can be entered, user numbers can be included in the filespecification:
  9. B3:CHAT.XYZ will look for the file in user area 3 on drive B: Either the
  10. drive or the user alone can be given: A:FOO.FOO and 7:BAZ.BAR are both
  11. acceptable, anything not given defaults to the current values. On
  12. completion of the chat script, command passes to normal connected
  13. operation. All special actions are initiated by typing the escape
  14. character, what happens next is determined by the next character typed.
  15. Note that while all letters here are shown in upper case, lower case works
  16. equally well: so <escape> b also activates the code to set the baud rate.
  17. As delivered, the escape character is set to control backslash, however it
  18. can be changed by patching QTERM: see QTERM.PAT for details, so to print
  19. help type '^\' '?', etc. In all the descriptions that follow, references to
  20. the escape character refer to this (i.e. '^\' and not the ESC key - '^[')
  21.  
  22. At several places in QTERM it is necessary to be able to encode control
  23. characters and other "non-printing" characters in a visible mode, to
  24. do this a special escape mechanism is used. To start one of these escape
  25. sequences a backslash '\' is used, followed by one or more characters to
  26. define the desired character. The following are provided: '\r' carriage
  27. return (0x0d), '\n' linefeed (0x0a), '\t' tab (0x09), '\b' backspace
  28. (0x08), '\e' escape (0x1b), '\k' break, and '\d' delay. '\k' causes a
  29. break to be sent if this string is subsequently sent to the modem (as in
  30. a chat script), and '\d' causes a delay of two seconds when used in a
  31. chat script. In addition a backslash can be followed by up to three
  32. octal digits to send the character with that representation: so '\177'
  33. would send a delete, and '\003' or '\3' would send a control C; this can
  34. also be done for hexadecimal representations: in this case '\x' is the
  35. leadin, and it is followed by up to two hexadecimal digits: so '\x7f'
  36. would again send a delete, and '\xd' could be used in place of '\r' to
  37. send a carriage return. The rule for determining how many characters are
  38. used when scanning an octal or hex number is as follows: octal has a
  39. maximum of three, hex a maximum of two (not including the \ or \x
  40. respectively): use at most that many characters, or stop early if an
  41. inappropriate character is encountered.
  42.  
  43. Retyping the escape character (i.e. typing it twice) sends a single copy
  44. of the escape character to the remote system.
  45.  
  46. Other characters and what they do are:
  47.  
  48. ? - Print help - QTERM provides a brief synopsis of the available commands.
  49.  
  50. . - Send a break - If QTERM has been patched to do it, this will transmit
  51. a tenth of a second break.
  52.  
  53. , - Hang up modem - This is done by deactivating DTR for a short time, which
  54. causes most modems to hang up. Again QTERM has to be patched to do this.
  55. Alternatively, if your modem doesn't respond to DTR, it is possible to
  56. have QTERM transmit a string to cause a hangup: for example the:
  57.  
  58.     '<delay> +++ <delay> ATH0'
  59.  
  60. as required by a HAYES compatible modem. See the patch documentatin for
  61. details.
  62.  
  63. B - Change baud rate and mode - This will first prompt you, your response
  64. must look like the following:
  65.  
  66.     nnnn
  67.     nnnn mmm
  68.     * mmm
  69.     nnnn mmm -3 20 500 +S.
  70.  
  71. where 'nnnn' is a number specifying the baud rate. Up to eight options
  72. are available: 300 600 1200 2400 4800 9600 19200 and 38400, although not
  73. all of these may be enabled. 'mmm' is a byte format specifier made up
  74. of three characters. The first must be '7 ' or '8' to specify the number
  75. of data bits; the second 'E', 'O', or 'N' for even, odd, or no parity;
  76. and the third '1' or '2' for the number of stop bits. The * in the third
  77. example is used as a place holder when the mode is to be changed, but
  78. not the baud rate. So, for example: '1200' would change to 1200 baud
  79. leaving the mode as is; '300 8n1' would switch to 300 baud, and select
  80. 8 data bits, no parity, and 1 stop bit; and '* 7E2' would change the
  81. format to 7 data bits, even parity, and 2 stop bits, while leaving the
  82. baud rate alone. Two other options can be added to this line: the '-'
  83. option is a way of specifying three delays that can be set, and the '+'
  84. option can set the characters used to enable and disable character
  85. transmission from the remote system.
  86.  
  87. If both the '-' and '+' options are used, then the '+' must follow the '-'
  88. (as above in the example).
  89.  
  90. The '+' option changes the characters that QTERM will use for flow
  91. control. When a system is sending text to QTERM, which is being saved
  92. in a file, QTERM needs to be able to stop the remote system from
  93. sending when it writes to disk. Most of the time ^S and ^Q are
  94. recognised, but for the few systems that use other characters, this
  95. option allows them to be changed. Following the '+' should be exactly two
  96. characters ('S' and '.' in the example), the first becomes the "stop"
  97. character, and the second the "start" character. These characters can
  98. be '\' escapes if needed.
  99.  
  100. If the '-' option is used, it should be followed by up to three numbers.
  101. The first is a delay in seconds after the "stop" character is sent.
  102. Since some systems take longer to respond to the "stop" character than
  103. others, the delay time can be changed. QTERM starts up with one second
  104. of delay, but by specifying -3 or -6 or whatever, this delay can be
  105. changed. -0 is possible, but not recommended unless your remote system
  106. responds instantly. The second number is a delay in milliseconds between
  107. character sends in 'P' transmits (see below). Note that this time is
  108. the time between the start of each character transmission, rather than
  109. a time between the end of one and the start of the next. So if this
  110. delay was set to 15 milliseconds at 1200 BPS, where each character
  111. takes about 8 milliseconds to transmit, there would be 8 milliseconds
  112. spent sending the character, and then 7 milliseconds of idle time: the
  113. total being 15. The third number is the delay at the end of a line in
  114. 'P' transmission: this is also a count of milliseconds, and this delay
  115. occurs after transmission of a carriage return. Note that it is possible
  116. to selectively set these values: if a '*' is entered as a place holder
  117. then the delay value for that position will not be changed, i.e.
  118.  
  119.     -* 20
  120.  
  121. would leave the stop delay alone, set the character delay to 20
  122. milliseconds, and leave the end of line delay alone.
  123.  
  124. Although QTERM always claims to have made the changes to the baud rate
  125. and communication mode, they will only happen if the necessary patches
  126. are applied. Note that for the second character of the mode specifier,
  127. both lower and upper case are accepted.
  128.  
  129. C - Open an input catch file - This prompts for a filename, and then opens
  130. that file for output. All subsequent data received up the line from the
  131. modem port will be written to the file.
  132.  
  133. Y - Put catch file on hold - This keeps the output file open, but temporarily
  134. disables transfer of data. A second <escape> 'Y' will re-enable capture
  135. of data.
  136.  
  137. Z - Close a catch file - This closes the output file, and disables data
  138. capture until another catch file is opened.
  139.  
  140. D - Display local directory - This prompts for a single CP/M wildcard
  141. file specificier, and then lists all files that match. Note that an
  142. empty filename is assumed to be '*.*'. This option will only work
  143. with CP/M 2.2 and compatible systems: it is disabled under CP/M 3.0.
  144. When the files are being printed, QTERM will stop after each screenful
  145. (23 lines), hitting return will print a single line, any other key will
  146. print a full page.
  147.  
  148. E - Toggle remote echo - This toggles echo to the remote system. This will
  149. most likely be used when the remote system is a terminal or another
  150. computer running a terminal program. It causes all characters received
  151. from the modem to be re-transmitted back to the modem, creating the
  152. impression that the far end is running in half duplex mode. Caution
  153. should be used to make sure that you don't set up an 'infinite loop'
  154. where the remote system is also echoing: because then the first
  155. character that returns will be sent out again by QTERM, to be returned
  156. by the remote, to be sent out again by QTERM .....
  157.  
  158. H - Toggle half duplex - This simply causes all keyboard input to be
  159. echoed to the screen.
  160.  
  161. I - Print status information - This prints a summary of QTERM's current
  162. state, showing the state of the various toggles, delays, what the
  163. current drive and user are, etc.
  164.  
  165. J - Junk control characters - This causes QTERM to discard all control
  166. characters received from the remote system that are not considered
  167. important. Important control characters are: carriage return (0x0d);
  168. linefeed (0x0a); backspace (0x08); and tab (0x09). In this mode, if
  169. the remote system is sending characters with the MSB set, and bit 7
  170. masking is not enabled (see 'M'), then all characters with bit 7 set
  171. will also be discarded.
  172.  
  173. L - Toggle linefeed transmit for 'P' - When 'P' is used to send a file
  174. to a remote system, it normally transmits all useful characters: i.e.
  175. all printable ascii characters from ' ' to '~', tabs, and carriage
  176. returns. This toggle ensables the transmission of line feeds, for
  177. cases where it is needed. Note that when QTERM starts, this is off,
  178. i.e. the default is not to transmit linefeeds.
  179.  
  180. M - Toggle bit 7 mask - When this is enabled, all characters received from
  181. the remote have the most significant bit stripped. This may be useful
  182. when QTERM is running in 8n1 mode, but the remote is transmitting in
  183. 7e1 mode - the top bit will contain parity, and this strips it off.
  184.  
  185. N - New default drive and user. This will prompt, and allow entry of a drive
  186. user specification (i.e 'A7:' or 'B14:' or 'C:' or '9:'), this then
  187. becomes the default for all file operations. Note that it is possible
  188. to user the CP/M BDOS functions to set drive and user during the entry
  189. hook code (see QTERM.PAT), so if the entry code selects D2:, and all
  190. scripts are on D2: just entering QTERM SCRIPT at the CCP prompt would
  191. find SCRIPT on D2:. Also note that after the entry hook code, QTERM makes
  192. a note of where it is (i.e. in the above case D2: ) When a chat script
  193. is invoked with the 'X' command, QTERM will first look at the drive
  194. given, or on the default if no drive is specified. If that fails, then
  195. QTERM will take a second look in the drive/user area as saved after the
  196. entry hook. The rationale behind this is to place all chat scripts in
  197. one place: these can subsequently move the default around (see the '!'
  198. section of chat scripts), or 'N' commands can be used to move around.
  199. However it does not matter what the current default drive/user is, QTERM
  200. can always find the scripts by lookng back at the area it noted.
  201.  
  202. O - Toggle output to the printer - This simply toggles a switch that causes
  203. all data received to be transmitted to the printer.
  204.  
  205. P - Print a file to remote - This prompts for a filename, and then transmits
  206. that file to the remote system. While this transfer is in progress, the
  207. keyboard is ignored, except that typing control 'X' will cancel the
  208. transfer. Note that the 'L' command may come in useful with this command,
  209. check how your remote system behaves.
  210.  
  211. T - Type a local file - This also prompts for a filename, and then prints that
  212. file to the screen locally. While this is in progress, a control 'X' will
  213. cancel it, Output can also be paused by typing control 'S', which will
  214. halt until another character is typed. If this character is control 'X'
  215. the output will be aborted, any other continues the printout.
  216.  
  217. U - Invoke user function - QTERM can be patched to include a user defined
  218. function, this is the command to call it. This subroutine can be used for
  219. any purpose required, for example keyboard mapping can be enabled, or some
  220. special screen sequence can be printed, or whatever is needed. The patch
  221. documentation provides information on how to patch this into QTERM, and
  222. also explains how it is possible to prompt for information from within
  223. this subroutine.
  224.  
  225. V - Toggle VT100 emulation - This function requires the following screen
  226. abilities be specified before it will work (see QTERM.PAT for details):
  227. clear to end of line, and clear to end of screen. Note that the VT100
  228. emulation is as complete as it can be, however the alternate character
  229. sets are not recognised, and all the display attribute commands are mapped
  230. to the single highlight mode encoded in the patch area.
  231.  
  232. W - Toggle split window mode - This requires that the insert line and delete
  233. line screen abilities be specified (see QTERM.PAT for details). It puts
  234. QTERM into a mode where send and receive text are shown in two separate
  235. windows. This can be useful when using QTERM to communicate with another
  236. communication program running in terminal mode, because it keeps what
  237. is typed on the keyboard separate from what is received from the remote
  238. system. After selecting window mode, QTERM prompts for window size: there
  239. are two options, 'b' or 's' (big or small). This refers to the receive
  240. window: when small, the screen is split exactly in half: 11 lines for
  241. both send and receive. Big mode makes the receive window 18 lines deep,
  242. the send window is only 4 lines: this will be useful when far more text
  243. is being received than is being sent.
  244.  
  245. R - Receive a file using protocol - This option prompts for a mode and
  246. optional receive file information. Xmodem and Kermit are both supported.
  247. Respond with 'k' to go into Kermit receive, or 'x' to go into Xmodem
  248. receive. Normally files are received on the current default drive,
  249. however by entering a drive or a user (e.g. 'k b7:') files will be
  250. received in the specified location. In addition, if Xmodem is not
  251. being used in batch mode, a filename can be given here. Non-batch
  252. Xmodem has a default filename, this can be used to override it. Note
  253. that a space MUST be present between the k or the x and the
  254. filename / drive specification for proper operation. Normally QTERM
  255. is silent, however if an 'a' option is given immediately after the
  256. 'x' or 'k' (as in 'ka c4:') QTERM will alert on termination of transfer
  257. by ringing the terminal bell. While the transfer is in progress, a
  258. control 'X' will abort it.
  259.  
  260. S - Send a file using protocol - This also prompts, the response should be
  261. 'k filelist ....' or 'x filelist ....' where 'filelist ....' is a list
  262. of CP/M filespecifiers: wildcards are permitted. Single filespecifiers
  263. are separated from one another by spaces, and there must be a space
  264. before the first filespecifier. There are options that can be given
  265. immediately following the k / x. For Kermit, the only option available
  266. is 'b', to forces binary mode. Kermit usually sends files in text
  267. mode, i.e. 0x1a is taken as end of file. If you want to transfer a
  268. binary file, specify the mode as 'kb filename.com'. Xmodem has the
  269. following options: 'b' - use Xmodem batch (AKA Modem7 batch mode);
  270. 'y' - use Ymodem batch mode; 'k' - use 1K packets. So 'xbk a12:*.com'
  271. would send all .COM files on drive A:, user area 12, using Modem7
  272. batch mode and 1K packets. To match names to various combinations:
  273. xyk will give true Ymodem (known sometimes as ymodem batch), xk gives
  274. Xmodem 1K (sometimes incorrectly called ymodem), xy gives Ymodem batch,
  275. but forces 128 byte packets, xbk will use Modem7 batch mode, but with
  276. 1K packets. Note that the Kermit implementation will attempt to use both
  277. hi bit quoting and repeat character packing for sending. As with protocol
  278. reception, this procedes in silence, however if an 'a' option
  279. (i.e. 'xkya 4:*.txt') is given, QTERM will ring the bell on completion;
  280. in addition, a control 'X' will abort the transfer.
  281.  
  282. K - Program a function key - This prompts for a key number and a string
  283. to be loaded under that key. The first character entered may be an
  284. 's' to specify the string should be sent slowly. Normally function
  285. key strings are transmitted at full speed, however the 's' creates
  286. a tenth second delay between characters. Following the 's' (if given)
  287. or as the first character if no 's' is given, must be a digit between
  288. '0' and '9': this specifies the key number. Finally comes the string
  289. that will be loaded under the key. Maximum string length is 14
  290. characters, longer strings are truncated. Backslash escape sequences
  291. are permitted, see the description in the section on chat scripts
  292. for a full explanation of what is available. As a few examples:
  293.  
  294.     s2hello\r
  295.  
  296. would program function key 2 to send 'hello <cr>' slowly, and:
  297.  
  298.     3userid = 17\e
  299.  
  300. would program function key 3 to send 'userid = 17 <esc>' at full speed.
  301.  
  302. 0-9 - Send function key string - After <escape> 'K' has been used to load
  303. strings into the function keys, <escape> '0' etc. will activate the
  304. function key, causing the string it contains to be sent. Note that if a
  305. function key string contains the QTERM <escape> character, it will not
  306. invoke the function in question. So loading \x1c,\x1cq
  307. (<escape> , <escape> q) under a key cannot be used to provide a
  308. "hangup and exit" from QTERM.
  309.  
  310. X - Activate a chat script - This prompts for a filename, then it reads
  311. the file, and does the chat script given. Following the filename can be
  312. parameters for use in the script, much as SUBMIT.COM allows parameters
  313. to be passed to a .SUB file. If a chat script is given to QTERM as a
  314. command line argument when it is invoked from the CCP, then the following
  315. command line arguments will become the parameters to the chat script.
  316.  
  317. A chat script is a means for getting QTERM to automatically send and
  318. receive text, this can be used to auto-dial, connect to remote systems,
  319. log in to them, and do whatever else is wanted. A companion file
  320. QTCHAT.DOC explains the workings of chat scripts.
  321.