home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-07-29 | 73.7 KB | 1,824 lines |
- RBcomm v3.21 Copyright (c) 1989, 1990 Ralf Brown
-
- You may redistribute this program provided that you provide unmodified
- copies of all files, and do not charge any fee for making the copy.
-
- RBcomm is a lean and mean comm program which will run in 41K without file
- transfer capability or 65K with file transfer and shell-to-DOS capability.
- Since it is so lean, you will not get a lot of the fancy features of other
- comm programs, though there are plenty of features to let you get your work
- done (I've been using it exclusively for over two years, and have added
- features as I've found that I could be more productive with them than
- without).
-
- Features:
- small (runs in as little as 41K [65K with DSZ, 66K with Puma])
- DESQview-aware
- pop-up menus
- seamless file transfer using DSZ, PCZ, or Puma
- Zmodem and Puma autodownload (others easily added)
- shell to DOS, using less than 1K while shelled
- keyboard reassignment, powerful keystroke macros
- 20-number dialing directory
- ANSI/VT102, VT52, and AVATAR level 0 terminal emulations
- 132-column support
- supports the 16550A FIFOs
-
- Registration:
- Continued use of DSZ requires registration with Omen Technology, Inc.
- See the DSZ documentation for details.
-
- If you like RBcomm, send me a picture postcard of some sight in your
- area. If you don't like RBcomm, feel free to send me a postcard
- anyway, telling me what you don't like.
-
- Support:
- none (after all, I'm not getting any money for this). I will try to
- fix bugs as time allows.
-
- DISCLAIMER: This software is distributed AS IS. The author disclaims all
- responsibility for any damages which might be incurred as the result
- of using the program. The software is not guaranteed to work on any
- system other than the author's own.
-
-
- Ralf Brown
- School of Computer Science
- Carnegie Mellon University
- Pittsburgh, PA 15213
-
- ARPA: ralf@cs.cmu.edu
- UUCP: {harvard,ucbvax,uunet}!cs.cmu.edu!ralf
- BIT: ralf%cs.cmu.edu@cmuccvma
- FIDO: Ralf Brown 1:129/3.1
-
- Files in distribution:
- RBCOMM.DOC this file
- COMM.COM the RBcomm main program
- RBCONFIG.COM the configuration program
- MACRO.COM the keyboard macro compiler/decompiler
- R?-PIF.DVP DESQview program information files
- *.MAC keyboard macro definition sources
- *.RBM keyboard macro definition files
- *.HLP help screens for corresponding macro files
-
- Availability:
- The newest version is always available on:
- Doctor's WOC Inn 1:129/53 File Requests
- (412)881-7757
- 24 hours, USR HST 9600
-
- NorthStar Pitt 1:129/81 (same computer, different modem)
- (412)881-1749
- 1200/2400
-
- CS.CMU.EDU [128.2.222.173]
- directory /afs/cs.cmu.edu/user/ralf/pub
- You must change directly to this directory due to the way our
- anonymous FTP works.
-
- New versions will also be available here within a few days of release:
- Rosedale Dataline
- (301)866-4554
- 24 hours, USR HST 9600
- TP Board
-
- Fidonet nodes participating in DVNet
-
- WSMR-SIMTEL20.ARMY.MIL [26.2.0.4]
- directory PD:<MSDOS2.MODEM>
-
- System Requirements:
- at least 41K free memory (65K for file transfers)
- one or more serial ports
- DOS 2.0 or higher
- 64K disk space for swap file
-
- -------------------------------------------------------------------------------
- Installation
- ------------
-
- Before you use RBcomm for the first time, you need to tell it where to find
- its support files and how to talk to the modem. To do so, copy the RBcomm
- files to the directory in which you wish to install them, change to that
- directory, and type
-
- RBCONFIG COMM.COM
-
- (if COMM.COM is not in the current directory, use the full path, i.e.
- C:\COMM\COMM.COM, or RBCONFIG will not be able to find it)
-
- Please do not use your original copy. If you forget to run RBCONFIG, you
- will be told to do so when you attempt to run COMM.COM.
-
- You will now be asked (via a menu) to fill in several groups of information.
-
- Press 'D' to set the directories and extensions to use.
- RBcomm dir: where the keyboard macro files and dialing directory are stored
- Swap directory: where to store the swap file when running DSZ or COMMAND.COM
- a RAMdisk is ideal for storing the swap file
- Macro file extension: default extension to apply to keyboard macro files
- Default macro file: keyboard macro file to load on startup and hangup
- if this file does not exist, RBcomm will use a built-in set
- of default key bindings
-
- Press 'S' to select the serial port to use. You may setup
- configurations for "COM1" through "COM4", as well as the default port to
- use when not otherwise indicated in the dialing directory. The values
- given for "COM3" and "COM4" need not bear any relationship to the
- numbering of the actual serial ports in your system (you could, for
- example, set them up to be the same as "COM1" except for the length of
- the break signal). RBCOMM does check that "COM1" and "COM2" exist
- according to the BIOS data area, however, to avoid running in a DESQview
- window which has incorrect settings for supporting serial
- communications. You may specify a separate setup string for each port.
- The setup string needs to ensure that the modem echos back any commands
- it is sent, and asserts carrier detect only while actually connected
- with another modem (for Hayes-compatible "AT" command sets, "E1&C1")
-
- Press 'M' to define the modem setup. In this section, you need to enter
- several strings to be sent to the modem. Note that you may enter a ^M
- (carriage return) by pressing Alt-M (hold down the Alt key and press M),
- an Esc by pressing Alt-E, and a control-H by pressing Alt-H, and a DEL
- (ASCII 127) by pressing Alt-D.
-
- Press 'R' to define the modem's responses. These should be the minimum
- substring that uniquely identifies the response.
-
- Press 'P' to setup dialing parameters. You may specify the name of the dialing
- directory, how long to try before declaring a time-out, how long to wait before
- trying again, and the break length. Break length specifies the length of the
- signal that is sent when you give the break command (default Alt-B) in
- multiples of the standard clock tick of 55ms.
-
- Press 'Z' to set the parameters for Zmodem transfers. There are three sets of
- parameters for sending files with Zmodem, allowing you to tailor the best
- throughput under up to three separate sets of conditions. I use the "fast"
- set for BBSs, and the "medium" set for my Unix account. The "slow" set is
- configured by default for a system which can't handle full streaming.
- Note that PCZ will work just fine in place of DSZ if you set the program
- pathname to PCZ instead of DSZ, and provide sufficient memory (PCZ needs more
- memory than DSZ).
-
- The general DSZ parameters (second item on submenu) allow replacable
- parameters introduced by a percent sign. See the EXEC macro command for
- details. The replacable parameters are expanded each time DSZ is invoked.
- Note that the default "portx" will cause DSZ to report the port as COM9,
- but it will still use the correct serial port.
-
- Press 'C' to set the colors you want RBcomm to use. You may select the
- default and "underlined" colors, as well as the colors to use on menus.
-
- Press 'V' to determine whether 132-column mode should be enabled, whether to
- start in 132- or 80-column mode, and the register values needed to set 132-
- column mode. When running under DESQview, RBcomm can tell DESQview to set
- the virtual screen size to 132 columns if you specify zero for AX.
-
- Press 'T' to adjust a number of toggles.
- "Local echo" allows you to turn on half-duplex operation by default.
- "Verbose" sets whether to include terminal control sequences in a log file.
- Visual bell specifies whether to flash the screen or sound a beep when a
- ^G is received (internally-generated beeps always use sound).
- "Check for enhanced keyboard" determines whether RBcomm will use the
- enhanced keyboard BIOS calls if it thinks those calls exist. Some
- systems incorrectly indicate support for those calls. Set this to
- 'N' if RBcomm appears to hang your system.
- "Allow RBcomm to change NumLock" determines whether RBcomm will change the
- state of the NumLock key when it receives the "keypad numeric mode" or
- "keypad application mode" commands. Disabling the NumLock changes is
- useful for laptop users without a separate number pad.
- "Should backspace send delete" specifies whether the values sent by
- backspace and control-backspace should be exchanged.
-
- Finally, press 'O' for miscellaneous options.
- "Time between sends in idle mode" determines how often Idle mode (see
- Alt-I) sends some characters to keep the connection alive.
- "Answerback message" allows you to specify the string which RBcomm will
- send when it receives a ^E.
-
- On choosing "Quit" from the menu, you will be asked whether to save the
- new configuration to disk. If you specify that you want to save the changes,
- the executable on disk will be updated.
-
- ---------------------
- DESQview Installation
- ---------------------
-
- After performing the file copy and configuration described in the previous
- section, you need to install RBcomm on the DESQview Open Window menu. In
- DESQview, tap the Alt key to bring up the DESQview menu, then press "O" for
- the Open Window menu, and "AP" to add a program. Select "Other", then fill
- in the directory in which you've placed the RBcomm files and press Enter.
- You will be given the choice of RBcomm, RBcomm plus DSZ, and RBcomm 132col;
- select one or more and press Enter. Now use "CP" from the Open Window menu
- to change the paths and/or the keys for starting RBcomm.
-
- The only difference between "RBcomm" and "RBcomm + DSZ" is that the former
- allocates the minimum amount of memory for RBcomm to run (41K), which is not
- enough to invoke DSZ, but does save 25K when you do not need file transfer
- capability. If your environment is particularly large, you may need to use
- Change a Program to increase the window sizes by a K or two. With certain
- screen sizes, you may also need to give RBcomm 1K of system memory (on the
- advanced options screen).
-
- "RBcomm 132col" and "RBcomm + DSZ" are the same except that the former defines
- the maximum screen size to be 20 columns (this is not a mistake, it reduces
- the DESQview overhead) and gives RBcomm sufficient system memory to store the
- 132x25 screen (be sure to tell RBCONFIG to allow 132-column mode!). If you are
- not interested in the reason, skip the rest of this paragraph. DV normally
- reuses the same section of memory when resizing the virtual screen. However,
- resizing it beyond the maximum defined by the .DVP (and "Change a Program"
- only allows 127 columns) causes an entire new buffer to be allocated. Thus,
- minimizing the "maximum screen size" also minimizes the DESQview overhead by
- reducing the size of the screen buffer which gets discarded.
-
- RBcomm is sufficiently DESQview-aware to ask DV for the size of the screen.
- If you want a 120x60 screen, just set the maximum window size to 120 columns
- and 60 rows. DESQview will display as much as it can on your screen, but
- RBcomm will use the full size. If you have enabled 132-column mode with
- RBCONFIG, RBcomm will also switch to 132 columns by the given number of rows
- when it receives the sequence "<Esc>[?3h".
-
- RBcomm refuses to load itself twice on the same serial port when running
- under DESQview. However, when shelled to DOS, you can load another copy
- in a different window, but make sure to exit the second copy before
- returning from the DOS shell, or the first copy will abort.
-
- Finally, RBcomm returns the rest of its time-slice to DV if it doesn't need a
- full slice. This improves the performance of programs in other windows.
-
- -----------------------------------------------------------------------------
- Dialing Directory
- -----------------
-
- The dialing directory is a plain text file, containing up to twenty entries
- (any additional entries will be ignored). Each entry consists of two lines,
- looking like this, with no blank lines between entries:
-
- Doctor's WOC Inn
- 14128817757|4800N81|B|OPUS|password|\\N2
-
- The first line contains the description which will be used in the dialing
- directory and when dialing. The second line contains six fields separated by
- vertical bars. These fields are
-
- 1. number to dial (direct connection if empty)
- 2. modem parameters, containing in order
- baud rate (110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400,
- 57600)
- parity (N for none, E for even, O for odd, S for space,
- M for mark)
- data bits (5, 6, 7 or 8)
- stop bits (1 or 2)
- handshake to use when receive buffer is full
- (H for hardware RTS/CTS, X for software XON/XOFF)
- (optional, default is hardware)
- timed call flag
- (if handshake present and the character after the handshake
- is T, a short "bip" will sound about 50 seconds into each
- minute after establishing a connection. Every five
- minutes, the "bip" sounds twice)
- serial port number
- (if handshake is present, following either the handshake
- character or the "T" timed call flag with a comma and
- the number of the serial port will tell RBcomm to switch
- to that port before dialing)
- 3. terminal emulation
- A for ANSI with VT102 extensions
- B for ANSI-BBS (same as ANSI, but clearing screen also homes cursor,
- character set switching is disabled, and the AVATAR
- level 0 command set replaces two RBcomm private
- commands)
- V for VT52 with H19 extensions
- 4. keyboard macro file to load
- 5. password for this system (used by PASSWORD macro command). Display of
- passwords in the dialing directory may be turned on or off with
- RBCONFIG.
- 6. optional modem setup string, minus command lead-in defined by RBCONFIG
- (may include vertical bars). In the example above, the \\N2 tells
- my modem to use MNP error correction.
-
- If the keyboard macro file field is non-empty, the specified file will be
- loaded immediately upon successfully connecting with the remote system. Since
- each entry in the dialing directory can specify an independent set of keyboard
- macros, you can have a different set of keyboard bindings for each system.
- If the macro file specifies a binding for the ONLOAD "key", that macro will be
- executed immediately. Further, if the macro file specifies a binding for the
- AUTO "key", that macro will be executed immediately after the ONLOAD macro (if
- any).
-
- The setup string may contain the following special sequences:
- ~ pause for half a second
- \n send a line feed
- \r send a carriage return
- \f send a form feed
- \t send a horizontal tab
- \a send a ^G
- \b send a backspace
- \! send a break
- \~ send a tilde
- \\ send a backslash
-
- Example modem parameters:
- 1200E71X default COM port, 1200 bps, even parity, seven data
- bits, one stop bit, use Xon/Xoff handshake when
- receive buffer fills up
- 19200N81HT,2 COM2, 19,200 bps, no parity, eight data bits, one
- stop bit, use hardware handshake, and sound off
- every minute
-
- -----------------------------------------------------------------------------
- Environment Variables
- ---------------------
-
- RBcomm uses the following variables in its environment:
-
- COMSPEC specifies which program to load for Shell-to-DOS (Alt-D) and
- Execute-Program (Alt-G).
-
- RBCOMM overrides the default RBcomm data directory. The data directory
- is where RBcomm stores its dialing directory and all macro files.
-
- RBCDIAL overrides the default dialing directory file. Do not use a path
- in the value of this variable, only a filename and extension (which
- defaults to .DIR). The value of this variable will be appended to
- the data directory (either default or specified by the RBCOMM
- variable) to produce the name of the dialing directory.
-
- -----------------------------------------------------------------------------
- Keyboard Commands
- -----------------
-
- The commands described here may be bound to other keys, but the default
- keystroke named here may always be used when preceded by Alt-= (hold down
- the Alt key and press the equal sign at the upper right of the typewriter
- section of the keyboard).
-
- Alt-A attack dial
-
- Repeatedly dials the number you select from the dialing directory
- until a connection is established. You may also manually enter a
- number to attack-dial.
-
- Alt-B send break
-
- Alt-C call a number
-
- Dial the number you select from the dialing directory (once only).
- You may also manually enter a number to dial. If you are currently
- connected to another system, you will be prompted whether to hang
- up. Press Esc to abort the dial and return to the current session.
- Press "Y" to disconnect and then dial a new number, or "N" to maintain
- the current connection and load new macros and parameters without
- dialing.
-
- Note that the modem parameters always have an "H" appended when neither
- "H" nor "X" is present in the dialing directory, since the handshake
- defaults to hardware.
-
- Alt-D DOS shell
-
- Temporarily exit to DOS. Type "EXIT" to return to comm session.
- RBcomm will swap itself out of memory, leaving only 592 bytes plus
- its copy of the environment in memory. A 64K swap file will be
- created in the directory you specified with RBCONFIG, and will be
- deleted when you return to the comm session. File transfers also
- create the temporary swap file.
-
- Alt-E toggle local echo
-
- By default, RBcomm assumes that the remote system will echo any
- characters you need to see. After pressing Alt-E once, RBcomm will
- display any characters you type without requiring the remote system
- to echo them. After pressing Alt-E a second time, RBcomm will once
- again assume that the remote system will echo characters.
-
- Alt-F list files
-
- Display a three-up listing of the files matching a given filespec.
-
- Alt-G Go execute a program
-
- You will be prompted to enter a command. Everything up to the first
- blank is the program to execute (if it starts with an exclamation
- mark ['!'], the rest of the line is passed to COMMAND.COM, otherwise,
- you must specify a full path and extension--searching the path would
- significantly increase the size of the RBcomm executable), and the rest
- of the line is the command tail to pass to the program.
-
- Alt-H hang up
-
- Terminate the connection. First drops DTR, and if Carrier Detect is
- still active, sends the modem's hangup string. The default macro set
- is reloaded from disk (if present) or from the built-in defaults.
- If the CLEANUP "key" has a macro binding, it is executed before
- hanging up; if it includes the LOWER_DTR command, DTR will remain
- dropped.
-
- Alt-I idle
-
- This command allows you to keep a connection alive if you need to step
- away from your computer for a while. Sends a space followed by a
- backspace every two minutes (configurable with RBCONFIG) until you
- press a key to cancel the command.
-
- Alt-J jump to directory
-
- Pops up a window displaying the current directory. You may switch to
- a different directory by entering it in place of the displayed
- directory. Relative paths without a leading slash or backslash will
- change to a subdirectory of the current directory. If you specify a
- drive letter, that drive will become the current drive as well.
-
- Alt-K unused
-
- Alt-L toggle logging to file
-
- When pressed the first time, you will be asked for the name of a file
- to which all characters received from the remote system will be
- appended (percent signs introduce variable expansions--see the EXEC
- and OPEN_LOG commands below). When pressed the second time, RBcomm
- will no longer append received characters to that file. If verbose
- (see Alt-Y) is active, all characters will be appended exactly as
- received, otherwise any command sequences embedded in the received
- data are stripped out.
-
- Alt-M learn macro
-
- When you press Alt-M, you will be asked which key you want to assign
- the macro to. You may then enter a text string of up to 78 characters
- (if a TEXT macro is already assigned to the key, the current value
- becomes the default value in the input line), using the same editing
- keys used elsewhere.
-
- Alt-N unused
-
- Alt-O send file with slowed-down Zmodem
-
- This command will send the specified file(s) using the "slow" Zmodem
- parameters installed by RBCONFIG.
- (subject to change in future versions)
-
- Alt-P set parameters
-
- This command pops up a menu which allows you to set the following
- parameters: COM port, speed, parity, parity stripping, handshake,
- backspace translation, visual bell, and terminal emulation. You may
- also reset the terminal emulation to its initial state, in case the
- remote system leaves you stranded in a strange condition. Press Esc,
- Enter, or 'R' to exit this menu.
-
- Note that Alt-P will discard any characters which have been received
- but not yet processed, because it always reinitializes the serial
- port when it pops down.
-
- Alt-Q dial queue of numbers
-
- Repeatedly dials each number you specify until a connection is
- established with one of the numbers. The numbers are dialed in
- round-robin fashion until a connection is established. A beep will
- sound to notify you of the connection, and the name of the remote
- system and the modem's connect response will be displayed.
-
- You specify the numbers to dial by giving the digit or letter as it
- appears in the dialing directory (case is ignored on letters). A
- number may be specified more than once, and will be dialed more than
- once during a round of dialing attempts. As a shortcut, specifying
- an asterisk ('*') instead of a list of numbers will dial all numbers
- in the dialing directory in order.
-
- Alt-R receive file
-
- Pops up a menu allowing you to select the protocol with which you wish
- to receive a file from a remote system. Press ESCape if you do not
- wish to receive a file. Note that Zmodem features automatic download,
- so you do not need to press Alt-R unless you wish to give DSZ
- additional parameters. You may also add additional autodownloading
- protocols--see the WHEN macro command in the next section.
-
- Not listed on the menu: ^G, ^Y, and ^Z pop up a parameter prompt,
- then proceed with the download specified by the corresponding
- non-control letter.
-
- Alt-S send file
-
- Pops up a menu allowing you to select the protocol with which you wish
- to send a file to a remote system. Press ESCape if you do not wish to
- send a file. After selecting a protocol, you will be asked to enter
- the name of the file to send (Ymodem, Ymodem-G, and Zmodem allow
- wildcards and multiple filespecs).
-
- If you press the control character corresponding to the desired
- protocol, the file(s) will be deleted after a successful transfer.
- For batch transfers, only the files corresponding to the first
- filespec are deleted.
-
- Also unlisted on the menu: pressing 'R' (or ^R) will send with
- Zmodem using the "medium" parameters and pressing 'S' (or ^S) will
- send the file with Zmodem using the "slow" Zmodem parameters installed
- by RBCONFIG.
-
- Alt-T type ASCII file to other system
-
- sends an ASCII file to the remote system, pausing after each line
- for the return to be echoed. The send may be aborted at any time
- by pressing Escape.
-
- Alt-U load/save user interface as defined in keyboard macro file
-
- Note that keyboard macro files are always stored in the RBcomm
- directory as defined by RBCONFIG.
-
- WORDSTAR.RBM and EMACS.RBM contain the keyboard definitions for using
- WordStar (tm) and Emacs cursor movement commands on the cursor pad
- (i.e. Home goes to the start of the line, etc.) EMACS.RBM also binds
- all Alt-letter keys to be Esc-letter, making the Alt key into a true
- Emacs meta-key. You will need to use the Alt-= override to use the
- RBcomm commands while EMACS.RBM is loaded.
-
- Alt-V View file
- (toggle verbose, which used to be on Alt-V, is now on Alt-Y)
-
- Page through a text file. This is a very minimal file lister.
- Press the space bar to display next screenfull, Escape to quit.
-
- Alt-W unused
-
- Alt-X exit
-
- Terminate RBcomm. If you are still connected to the remote system
- (Carrier Detect asserted), you will be asked whether or not to hang
- up.
-
- Alt-Y toggle verbose
- (previously Alt-V)
-
- Toggles the verbose mode used with Alt-L. When not logging, the
- control characters which are not used for terminal commands will be
- displayed as ^X when received from the remote system. When logging to
- a file, terminal command sequences will only be stored in the log file
- if verbose mode is ON.
-
- Alt-Z send file with Zmodem
-
- This command will send the specified file(s) with the "medium" Zmodem
- parameters installed by RBCONFIG.
-
- Alt-1,2,3,4,5,6,7,8,9,0 dial first ten numbers in dialing directory
-
- Alt-F1 through Alt-F10 dial 11th through 20th number in dialing directory
-
- F1 pop up help screen
-
- Displays the contents of the help file for the current macro file
- (if that file is not found, RBcomm attempts to use RBCOMM.HLP).
- Press an Alt or function key to execute the default binding for the
- key. Escape exits immediately, and any other key pages through the
- help file (if more than 20 lines long).
-
- Alt-- cancel any pending WHEN, DELAYED, or WINDOW commands
-
- Alt-= use default binding of next keystroke
-
- If the keyboard has been redefined, pressing Alt-= will allow you to
- access the built-in default definitions (as listed in this section).
- Press Alt-= and then immediately press the key whose default
- definition you want to use.
-
- -----------------------------------------------------------------------------
- Line Editor
- -----------
-
- Whenever you are prompted for a line of input, you may use the following
- keys to edit the line:
-
- Esc abort
- Home move to start of line
- End move to end of line
- Right move a character right
- Left move a character left
- Del delete the character under the cursor and shift remainder of
- line left
- Backsp delete the character to the left of the cursor, and shift the
- remainder of the line left
- Return finish input
- Alt-D insert an ASCII DEL character
- Alt-E insert a literal Esc character
- Alt-H insert an ASCII backspace character
- Alt-M insert a literal Return character
- Alt-P insert the contents of the cut buffer
-
- -----------------------------------------------------------------------------
- Warnings
- --------
-
- Don't try to load a TSR while shelled to DOS. RBcomm won't be able to swap
- itself back in and will have to abort. Your connection will not be broken,
- however.
-
- Don't mess with the swap file while shelled. You'll be sorry.... (RBcomm is
- able to detect a missing or truncated swap file on returning, but not other
- changes)
-
- IMPORTANT: if you are swapping to a floppy drive, DO NOT UNDER ANY
- CIRCUMSTANCES replace that floppy disk while shelled to DOS or running a file
- transfer. You will definitely trash the file allocation tables and directory
- of the second disk. This is a problem with DOS itself (at least through
- 3.10, later versions may have corrected it) when faced with a diskette
- change while a file is open on the diskette which gets removed. The swap
- file is such an open file.
-
- -----------------------------------------------------------------------------
- Known Bugs and Limitations
- --------------------------
-
- Any OPEN_LOG command in the OnLoad macro will fail when the macro is loaded
- manually. There is no easy fix for this one, as it is tied in deeply with
- the way windows and the terminal emulator interact.
-
- If you are using a serial port which the BIOS does not recognize, you will
- need to get a program to initialize the port. Otherwise, RBcomm will most
- likely read garbage parameters from the port at startup, requiring you to
- set the parameters by hand with Alt-P.
-
- -----------------------------------------------------------------------------
- Macro Compiler
- --------------
-
- Syntax: MACRO {t|m} infile outfile
- where 't' specifies compilation from text file to keyboard macro file
- and 'm' specifies decompilation from macro file to text file
- default extensions are .MAC for text files and .RBM for macro files
-
-
- Important Note:
- RBcomm v3.1 and later macro files are COMPLETELY INCOMPATIBLE
- with earlier versions. You must recompile all your macro files.
- If RBcomm doesn't complain, you don't need to recompile.
-
- -------------------
- Macro File Commands
- -------------------
-
- Each command has the following form:
-
- keyname commandword [args]
-
- where keyname specifies to which key the command is to be bound. Keynames
- (which are not case-sensitive) are:
- F1 through F12 for the function keys
- +F1 through +F12 for the shifted function keys
- ^F1 through ^F12 for the control function keys
- @F1 through @F12 for the alt-function keys
- @A through @Z for the alt-letter keys
- @1 through @0 for the alt-digits
- Gray+, Gray-, Gray*, Gray/ for plus, minus, star, slash keys on keypad
- @Plus and @Minus, @Gr*, @Gr/ for Alt-Gray+, Alt-Gray-, Alt-Gray* and
- Alt-Gray/
- Left, Right, Up, Down for the cursor keys on the numeric pad
- Home, End, PgUp, PgDn, Ins, and Del for the other keypad keys
- KP5 for the '5' key on the number pad (enhanced keyboard)
- ^Home, etc. for the control versions of the numberpad keys
- CP_Home Home key on gray cursor pad
- CP_Up Up arrow on gray cursor pad
- CP_Down Down arrow on gray cursor pad
- CP_Enter Enter key on cursor pad
- etc.
- @Left, @Right, @Up, @Down, @Home, @End, @PgUp, @PgDn, @Ins, @Del for
- Alt- versions of the cursor pad keys
- ^Left, ^Right, etc for Ctrl- versions of the cursor pad keys
- ^Break for control-break
- @- @= @[ @\ @] @; @' @, @. @/ @` @* for various other Alt-keys
-
- There are also some pseudo-keys to which you may assign a macro:
- "OnLoad" is executed any time the macro file is loaded into memory
- "Auto" is executed automatically when a connection is established
- "Reconnect" is executed automatically when reconnecting without
- hanging up and redialing
- "CleanUp" is executed when hanging up if carrier detect is active
- "OnAbort" is executed whenever a macro other than OnAbort aborts and
- displays the **ABORTED** message, just prior to displaying
- the message
-
- And there is a no-operation pseudo-key for use by FORCE_CLEANUP:
- "Null" does nothing and returns immediately
-
- You may assign macros to control keys by specifying "^x" as the key name,
- where "x" is the control key you want to use. Similarly, you may assign
- a macro to a regular key by preceding the character representing the key
- by a backslash. Note that macros are never in effect when you are
- prompted for information by RBcomm; they only affect what (if anything)
- gets sent to the remote system.
-
- Finally, you may use "#nnn" where nnn is the decimal scancode of the key
- you wish to assign the macro to (values of 200 through 255 are reserved,
- 167 through 199 are currently unused by any key combinations supported
- by the BIOS).
-
- Note that the cursor pad keys will execute the binding for the
- corresponding number pad key if not specifically bound (but not vice
- versa). CP_Enter defaults to the binding for @Enter.
-
- The commandword is not case-sensitive, but you must include the
- underscore if present and use the entire commandword (abbreviations are
- not supported).
-
- With the exception of the ANSWERBACK, TEST, TEXT, WAITFOR, and WHEN commands,
- all commands which take a string argument pop up a prompt if the string
- is empty (i.e. ""). Strings may include the following special sequences:
- ^x specified control character
- ^? ASCII DEL (127)
- \a ^G (bell)
- \b backspace
- \e escape
- \f form feed
- \n line feed
- \r carriage return
- \t horizontal tab
- \v vertical tab
- \\ backslash
- \^ carat
- \0 ASCII NUL (for TEXT command only)
- For character arguments, you may specify either
- 'c'
- where the character c is interpreted as for a string, or you may specify its
- ASCII value.
-
- Everything from a semicolon (unless it is in a string) to the end of the line
- is considered a comment, as are blank lines.
-
- If a line starts with #include rather than a key name, the specified file
- will be compiled into the macro file as if it were part of the current text
- file. Note that the string is processed just like any other strings, so that
- you must double any backslashes (or use forward slashes, instead).
- Format:
- #INCLUDE "d:/path/filename"
- an extension of .MAC is assumed if no extension is given, and the drive letter
- and path are optional (default is current drive and directory). #INCLUDEs may
- be nested up to twelve deep.
-
- If a line starts with #ignore rather than a key name, any subsequent
- occurrences of the keyname following the #ignore will be ignored, just as if
- you had already defined a binding for the key. This is useful when
- #include'ing a file if you do not want all the bindings in the included file.
- Format:
- #IGNORE <keyname>
-
- For readability, you may give names to extended keys with the
- #DEFKEY <newname> <keynumber>
- command. User names will be lost on decompiling the macro file,
- however. For example, "#defkey Proc1 199" will let you refer to "Proc1"
- and "#199" interchangeably.
-
- ABORT
- abort the current macro or operation as if the user had pressed Esc.
-
- ABORT_UNTIL
- Abort any currently executing UNTIL command after the command(s) it
- controls complete. If multiple UNTIL commands are nested, each is
- aborted as the commands it controls complete, until all pending
- UNTILs have been aborted. Useful mainly in conjunction with the
- DELAYED command to provide a timeout on UNTIL loops.
-
- See also DELAYED, UNTIL.
-
- ANSWERBACK "string"
- sets the answerback message to the specified string. If the string is
- empty (i.e. ""), answerback is disabled (making ^E a cursor-positioning
- command), otherwise, answerback is enabled.
-
- AT hh:mm:ss
- execute the following line (or lines if a MULTI) at the specified
- time. If the specified time is less than the current time, the
- command(s) will be executed the next day. The seconds may be
- omitted, in which case they default to 0.
-
- Note: the command(s) may actually execute later than requested if
- RBcomm is busy processing incoming characters at the time the
- command should execute. The command will execute as soon as RBcomm
- empties its receive buffer.
-
- See also DELAYED.
-
- AUTO_ZMODEM
- reenable Zmodem and Puma autodownloads if they have been canceled by
- an ENDWHEN. This is functionally equivalent to
- WHEN 0 "**^XB00"
- RECEIVE 'Z'
- WHEN 0 "^X^H^XPuma^X^H^X"
- RECEIVE 'P'
- The autodownloads are also reenabled when hanging up, dialing, or
- loading a new macro file.
-
- WARNING: do not invoke while autodownload is enabled, as you will wind
- up invoking a download multiple times for one download request....
-
- Note: this command will be renamed to AUTO_XFER in a future release.
-
- See also ENDWHEN, WHEN.
-
- AWAITKEY
- pause until a key is pressed. The next function which reads a key
- will read the key which was pressed. Returns immediately if there
- was any typeahead (including RBcomm's key stack).
-
- See also KFLUSH.
-
- BEEP
- sound the bell. Useful mainly in conjunction with the MULTI or
- DELAYED commands (see below).
-
- BREAK
- send a break to the remote system
-
- CALL keyname
- execute the macro (if any) bound to the specified key and then continue
- executing the current macro (if inside a MULTI).
-
- See also GOTO_KEY, PUSHKEY.
-
- CANCEL_DELAYED which
- cancel the specified delayed action. Currently supported:
- ALL cancel all delayed actions
- LAST cancel the last executed DELAYED. If called a second
- time without an intervening DELAYED, the second call
- is ignored.
-
- See also DELAYED.
-
- CANCEL_NOTIFY
- remove the notify window immediately instead of at the end of the
- configured period of time.
-
- CHDIR "dir"
- change the DOS default directory to the specified directory.
-
- CLOSE_LOG
- close the current log file. If logging is off, this command has no
- effect.
- See also OPEN_LOG, TOGGLE_LOG.
-
- CUT num dir "search"
- search the screen backwards from the current cursor position until
- the search string (case sensitive) is found, then copy "num"
- characters in the indicated direction (AFTER or BEFORE) to the cut
- buffer. The contents of the cut buffer remain unchanged if the search
- string is not found (in which case the completion status is set to
- FAILED for testing by IF or UNTIL). The cut buffer may be sent to
- the remote system with the PASTE command, inserted into a line
- being edited by pressing Alt-P, or inserted with the %C variable
- expansion.
-
- Note that trailing blanks are deleted from the cut buffer. In
- addition, the CUT command treats the entire screen (even if a WINDOW
- command was used to restrict output to a portion of the screen) as a
- single long line, ignoring all line wrapping for both search and cut.
-
- Examples:
- Screen contains "1234test5678cursor here->" and the cursor is as
- indicated. Then
- CUT 3 BEFORE "test"
- places "234" into the cut buffer, while
- CUT 6 AFTER "test"
- places "5678cu" into the cut buffer. Further,
- CUT 7 BEFORE ""
- will place " here->" into the cut buffer.
-
- See also PASTE.
-
- DELAYED time
- execute the macro on the next line (or lines if it is a MULTI) the
- given amount of time from now. You may have up to six delayed
- commands active at any given time. The maximum delay time is 18
- hours; the macro compiler will complain if you attempt to use a
- greater delay. Times are specified as
- seconds
- minutes:seconds
- or hours:minutes:seconds
-
- Note: the command may actually execute later than requested if RBcomm
- is busy processing incoming characters at the time the command should
- execute. The command will execute as soon as RBcomm empties its
- receive buffer.
-
- See also CANCEL_DELAYED, WHEN.
-
- DIAL number redial
- dial the specified entry (0-19) from the dialing directory, or pop up
- the dialing directory if 'number' is PROMPT. 'redial' specifies how
- to dial:
- ONCE make only one attempt
- ATTACK try repeatedly until connected
- RECONNECT make a single attempt if not connected, or set
- parameters and password without dialing if already
- connected
-
- See also LISTDIAL.
-
- ECHO ON|OFF
- ECHO ON forces half-duplex (local echo on) mode, ECHO OFF forces
- full-duplex (local echo off).
- (see Alt-E)
-
- See also TOGGLE_ECHO.
-
- ENDWHEN which
- cancel the specified WHEN command. Currently supported:
- ALL cancel all WHENs except the Zmodem and Puma
- autodownloads
- ALL_XFER cancel all WHENs including the autodownloads
- LAST cancel the last executed WHEN. A second call without
- an intervening WHEN acts the same as ENDWHEN ALL.
-
- See also WHEN.
-
- EXEC "command-to-execute"
- everything up to the first blank in the string specifies the program to
- execute (either full path and extension, or "!prog" to let COMMAND.COM
- find and fire up the program), the remainder of the string is the
- command tail to pass to the program. Note that a following IF
- command will always consider the EXEC to have succeeded if you use the
- !prog form (that's because COMMAND.COM does not pass on the completion
- status of the program it runs).
-
- Within the command tail, a percent sign introduces a variable
- substitution. The following sequences are supported:
- %a hexadecimal I/O base address being used
- %C contents of the cut buffer
- %d current date, in format mm-dd-yy
- %D current directory, including drive
- %i IRQ number being used (0-15)
- %I get input from user. The following characters up to the next
- percent sign are used as the prompt and then discarded.
- %M current macro file name
- %p port number (1-4)
- %P port parameters, in same format as dialing directory
- display
- %s current serial port speed
- %t current time, in format hh:mm:ss
- %V get an environment variable. The following characters up to
- the next percent sign are used as the name of the variable
- and then discarded.
- %% a percent sign
-
- See also EXECN, IF, SHELL.
-
- EXECN "command-to-execute"
- This command is identical to EXEC, except that no error box is
- displayed in the event of an error.
-
- See also EXEC.
-
- EXIT
- End RBcomm. Will prompt you whether or not to hang up if you are
- still connected to another system.
-
- FDELETE "filespec"
- delete the file(s) named by filespec (which may include wildcards).
- Note that there is no confirmation requested, so use this command
- with care!!!
-
- See also FILES.
-
- FILES "filespec"
- display a three-up list of the files matching the filespec
-
- See also FDELETE.
-
- FORCE_CLEANUP keyname
- execute the following line(s), then execute the macro bound to
- "keyname" regardless of how the commands are exited (i.e. normally,
- ABORT, or <Esc>). FORCE_CLEANUPs may be nested, in which case
- the innermost one is the only one to execute unless the cleanup
- code executes an ABORT itself (then execution gets passed to the one
- enclosing it, etc.). If no cleanup is needed and the FORCE_CLEANUP
- is merely being used to prevent a complete abort on Esc, the pseudo-
- key Null may be used. Null is guaranteed to perform no action and
- return immediately.
-
- GOTO_KEY keyname
- continue execution with the specified macro (if bound). Never returns
- to the current macro. If the key is not bound (i.e. GOTO_KEY Null),
- execution resumes at the point from which the current macro was
- CALLed, effectively producing a return from a nested macro.
-
- See also CALL, PUSHKEY.
-
- HANGUP
- hang up. Executes macro bound to "CleanUp" before actually hanging
- up if carrier detect is active. After hanging up, the default macro
- file is reloaded (thus cancelling any remaining WHENs and DELAYEDs).
-
- See also HANGUP_ONLY.
-
- HANGUP_ONLY
- hang up, but do not execute the "CleanUp" macro or reload macro files.
-
- See also HANGUP.
-
- HELP
- pop up the help screen
-
- IDLE
- go into idle mode, sending a blank followed by a backspace every 2
- minutes. Press Esc to end idle mode.
-
- Both the interval and the sequence sent by idle mode may be configured
- with RBCONFIG.
-
- IF SUCCESS|FAILED|CONNECTED|OFFLINE|DV|NOT DV
- IF SUCCESS and IF FAILED conditionally execute a command based on the
- completion status of an immediately preceding EXEC, SHELL, SEND,
- SENDFILE, RECEIVE, RECEIVEFILE, or WAITFOR. The following line (or
- lines if a MULTI) is executed only if that prior command was
- successful in the case of IF SUCCESS, or if it failed in the case of
- IF FAILED.
-
- IF CONNECTED executes the following command if carrier detect is
- asserted, while IF OFFLINE executes the following command if
- carrier detect is deasserted.
-
- IF DV executes the following command if RBcomm has detected that it
- is running under DESQview, while IF NOT DV executes the following
- command only if RBcomm is not running under DESQview.
-
- For example, if you want to execute a program only after failing to
- see a particular string, you would use
-
- MULTI
- WAITFOR 10 "don't run program"
- IF FAILED
- EXEC "!someprog args"
- END
-
- See also ABORT_UNTIL, EXEC, SHELL, SEND, RECEIVE, WAITFOR, UNTIL.
-
- KFLUSH
- empty the keyboard buffer (including RBcomm's key stack).
-
- See also AWAITKEY.
-
- LEARN
- start learning a keyboard macro
-
- See also UI_MENU.
-
- LISTDIAL "numbers"
- dial the specified numbers from the dialing directory repeatedly until
- a connection is established with one of the numbers. If the empty
- string is specified, the user will be prompted for the numbers to dial.
-
- See also DIAL.
-
- LOAD_MACRO "file"
- load the specified macro file from the RBcomm directory. If an empty
- filename is given, the user will be prompted for a name, which
- defaults to the name of the currently loaded macro file. The current
- macro (if any) and any that it had interrupted are aborted. However,
- if the interruption occurred during a command of extended duration
- such as a WAITFOR, that command will complete normally before the
- macro is aborted.
-
- See also SAVE_MACRO, UI_MENU.
-
- LOG "filename" "message"
- append the specified message to the named file. Both the filename
- and the message may contain variable expansions as described under
- EXEC. If the filename is (or expands to) the empty string "", the
- expanded message is appended to the current log file (if any).
-
- See also OPEN_LOG.
-
- LOWER_DTR
- requests that DTR remain dropped after the next HANGUP or HANGUP_ONLY
- command. The best place to put this command is in your CleanUp macro.
-
- MESSAGE row col msg
- display the specified message starting at the given row and column on
- the screen. If either row or column is 255, use the current row or
- column.
-
- MESSAGEBOX msg
- if running under TopView or DESQview, a window with the given message
- will pop up for three seconds. This command is ignored otherwise.
-
- The message is limited to 40 characters, anything beyond that is
- ignored.
-
- See also NOTIFY, CANCEL_NOTIFY.
-
- MULTI
- the following lines, up to but not including a line starting with END,
- are assigned to the specified key. The macros assigned to the key
- may not total more than 253 bytes, and the macro compiler will
- complain if they do.
-
- The format of the following lines is the same as for a regular macro,
- except that you do not specify a keyname. For example, to make
- shift-F2 switch terminal emulation to VT52, use
-
- +F2 MULTI
- PUSHKEY 13 0
- PUSHKEY 'V' 0
- PARAM_MENU
- END
-
- Note: you may use { and } on separate lines as synonyms for MULTI
- and END.
-
- NOTIFY msg
- if running under TopView or DESQview, and RBcomm determines that it is
- in the background, a window with the given message will pop up for
- three seconds. This command is ignored otherwise.
-
- The message is limited to 40 characters, anything beyond that is
- ignored.
-
- See also CANCEL_NOTIFY, MESSAGEBOX.
-
- OPEN_LOG "file"
- if logging is on, the current log file will be closed. Then, the
- specified log file will be opened (if no name is given, a prompt is
- popped up). The same variable expansions which are valid for
- the EXEC command are applied to the filename which is given (or
- entered by the user).
-
- For example, to allow the environment variable RBLOG to specify the
- base name of the log file, use
- OPEN_LOG "%VRBLOG%.LOG"
-
- See also EXEC, CLOSE_LOG, TOGGLE_LOG, RECEIVE.
-
- PARAM_MENU
- pop up the "Set Parameters" menu
-
- PASSWORD
- send the password defined in the dialing directory. Does not send
- a carriage return or any other terminating sequence.
-
- See also TEXT, TYPE.
-
- PASTE
- send the contents of the cut buffer to the remote system.
-
- See also CUT.
-
- PAUSE num-ticks
- halt execution for num-ticks/18 seconds. Useful mainly in conjunction
- with the MULTI command (see above).
-
- PUSHKEY key scan
- or
- PUSHKEY keyname
- put the specified key/scancode pair onto RBcomm's internal keyboard
- stack, where the last pushed pair will be the next keystroke read
- by RBcomm. The stack is currently eight keystrokes in size, and any
- PUSHKEY executed while the stack is full will simply be ignored.
- "keyname" may be the name of any keystroke recognized by the macro
- compiler.
-
- Useful mainly in conjunction with the MULTI command (see above).
-
- RECEIVE 'type'
- start receiving a file with the specified protocol
- 0 prompt for protocol
- 'A' ASCII (capture to file--equivalent to OPEN_LOG "")
- 'X' Xmodem with parameters
- 'K' Xmodem-K with parameters
- 'Y' Ymodem
- '^Y' Ymodem with parameters
- 'G' Ymodem-G
- '^G' Ymodem-G with parameters
- 'Z' Zmodem
- '^Z' Zmodem with parameters
-
- See also IF, OPEN_LOG, SEND, TYPE.
-
- RECEIVEFILE 'type' "parameters"
- start receiving using the specified protocol (which may be any of the
- ones listed for RECEIVE except 0 or 'A'), passing the specified
- parameters to the file transfer module. Unlike RECEIVE, this command
- will not pop up any messages unless it is unable to load the file
- transfer module; in case of an error, the completion status is set
- to FAILED.
-
- See also RECEIVE, SENDFILE.
-
- REPEAT times
- repeat the command on the next line (or lines if a MULTI) the specified
- number of times.
-
- RFLUSH
- clear any characters which may still be in the serial port receive
- buffer.
-
- See also KFLUSH.
-
- SAVE_MACRO "file"
- save the current macros to the specified file, located in the RBcomm
- directory.
-
- See also LOAD_MACRO, UI_MENU.
-
- SEND 'type'
- prepare to send a file with the specified protocol
- 0 prompt for protocol
- 'A' ASCII
- 'X' Xmodem
- 'K' Xmodem-K
- 'Y' Ymodem
- 'G' Ymodem-G
- 'Z' Zmodem
- 'R' reduced-speed (medium) Zmodem
- 'S' slow Zmodem
- control character versions of any of the above ('^X', '^Y', etc) will
- delete the file(s) corresponding to the first filespec after sending.
-
- See also IF, SENDFILE, RECEIVE, TYPE.
-
- SENDFILE 'type' "file"
- send the specified file with the given protocol, which may be any of
- the ones listed for SEND except 0 or 'A'. Unlike SEND, this command
- will not pop up any messages unless it is unable to load the file
- transfer module; in case of an error, the completion status is set
- to FAILED.
-
- See also RECEIVEFILE, SEND.
-
- SHELL
- shell to DOS
-
- See also EXEC, IF.
-
- TEST EXISTS "filespec"
- determine whether any files matching the filespec exist. Sets the
- status to SUCCESS if at least one exists, FAILED if none. The status
- may be checked with IF or UNTIL commands.
-
- See also TEST WHEN, IF.
-
- TEST WHEN "str"
- determine whether a WHEN with the specified search string is currently
- active. Sets the status to SUCCESS if at least one exists, FAILED if
- there are no WHENs with the specified string. The status may be
- checked with IF or UNTIL commands.
-
- See also IF, WHEN, TEST EXISTS.
-
- TEXT "msg"
- send the specified characters out the comm port. "msg" is limited to
- 253 characters.
-
- TOGGLE_ECHO
- toggle the state of local echoing
-
- See also ECHO.
-
- TOGGLE_LOG
- if logging is currently on, turns off logging received data to file
- if logging is off, pops up a prompt for the name of the capture file
-
- See also OPEN_LOG, CLOSE_LOG.
-
- TOGGLE_VERBOSE
- toggle the state of verbose mode (see Alt-Y)
-
- See also VERBOSE.
-
- TRANSLATE_BS ON|OFF
- TRANSLATE_BS ON turns on backspace/delete swapping, TRANSLATE_BS OFF
- turns it off.
-
- TYPE "file"
- send the specified file to the remote system as a stream of ASCII
- characters. Pauses at the end of each line and waits for the carriage
- return to be echoed (will continue after three seconds even if the
- echo is not seen). Equivalent to
- SEND 'A'
- if no filename is given.
-
- See also SEND.
-
- UI_MENU
- pop up the load/save macro menu
-
- See also LEARN, LOAD_MACRO, SAVE_MACRO.
-
- UNTIL SUCCESS|FAILED|CONNECTED|OFFLINE
- repeatedly executes the following line (or lines if a MULTI) until
- the status of the last action is either success for UNTIL SUCCESS
- or failure for UNTIL FAILED. UNTIL CONNECTED repeatedly executes
- the following command until carrier detect becomes active, while
- UNTIL OFFLINE repeats until carrier detect drops.
-
- See also ABORT_UNTIL, IF.
-
- VERBOSE ON|OFF
- VERBOSE ON turns on verbose mode, VERBOSE OFF turns off verbose mode.
- (see Alt-Y)
-
- See also TOGGLE_VERBOSE.
-
- VIEW "filename"
- display the specified file one screenfull at a time. Pops up a prompt
- if the null filename is given.
-
- Pressing the space bar displays the next screen, Escape exits the
- file view.
-
- WAITFOR timeout "wait-string"
- wait up to timeout seconds for the specified string of characters to
- arrive over the comm port. Useful mainly in conjunction with the
- MULTI command (see below).
-
- You may test whether the string was actually received by following
- the WAITFOR with IF SUCCESS or IF FAILED (unlike versions prior to
- 3.11, a failed WAITFOR does not abort the MULTI it is a part of).
-
- See also IF.
-
- WHEN iterations "when-string"
- execute the command on the following line (or lines if it is a MULTI)
- whenever the "when-string" is encountered in the data stream coming
- from the remote system. After the string has been encountered
- "iterations" times, the WHEN is automatically canceled (if iterations
- is zero, the WHEN must be explicitly canceled with ENDWHEN).
- You may have up to six WHENs active at any time (eight if you cancel
- the autodownload [see ENDWHEN above]). All WHENs are canceled on
- hanging up or dialing a number, and autodownload is re-enabled.
-
- WHENs are tested in the order in which they were executed, so multiple
- WHENs with the same when-string will trigger in the order in which
- they were asserted.
-
- This can be an extremely powerful command. For example, you can
- implement another autodownloading (or uploading!) protocol simply by
- adding
- WHEN 0 "start-string"
- EXEC "xfer-program parms"
- to the AUTO or OnLoad macro. On CompuServe, you can make Ymodem
- autodownloading by adding
- WHEN 0 "initiate YMODEM receive"
- RECEIVE 'Y'
- to the OnLoad macro.
-
- The built-in Zmodem autodownload corresponds to
- WHEN 0 "**^XB00"
- RECEIVE 'Z'
- while Zmodem auto-upload can be added with
- WHEN 0 "**^XB01"
- SEND 'Z'
-
- The standard Puma autodownload is equivalent to the lines
- WHEN 0 "^X^H^XPuma^X^H^X"
- RECEIVE 'P'
- [thanks to Matthew Thomas for publishing his autodownload string!].
-
- See also DELAYED, ENDWHEN.
-
- WINDOW row col width height
- limit the terminal emulator to a portion of the full screen.
-
- WINDOW 0 0 255 255 will restore use of the full screen regardless of
- the screen size.
-
- -----------
- Time Limits
- -----------
-
- The maximal time intervals which may be specified for various commands are:
- 255 ticks (~14 seconds) PAUSE
- 255 seconds (4.25 minutes) WAITFOR
- 18 hours (64800 seconds) DELAYED
-
- -----------------------------------------------------------------------------
- Terminal Emulation
- ------------------
-
- RBcomm supports four terminal emulations. ANSI provides standard ANSI
- escape sequences plus most VT102 and many VT200 escape sequences. BBS
- is identical to ANSI except that clearing the screen with Esc-[-J or
- Esc-[-2-J also homes the cursor, and character set switching is
- disabled. AVATAR is identical to BBS except that two of RBcomm's
- private commands are replaced by the AVATAR level 0 command set.
- Finally, VT52 replaces many of the Esc-letter sequences in ANSI with the
- actions a VT52 or H19 would perform. In addition, in all of these
- modes, RBcomm has its own, much more compact command set.
-
- ------------------
- Control Characters
- ------------------
-
- ^A move cursor up a line (will become ^^ in the next release)
- ^B move cursor right one position
- ^C move cursor down a line
- ^D move cursor left one position, does not wrap to previous line
- ^E send the answerback string to the remote system
- ^F special sequences (see below)
- ^G sound bell, or flash screen if visible bell enabled
- ^H move cursor left one position, wraps to previous line
- ^I move to next tab stop
- ^J move cursor down a line, scrolling screen when at bottom
- ^K insert a blank line
- ^L clear screen and home cursor
- ^M move cursor to start of line
- ^N "shift out"--switch to G1 character set (VT100)
- ^O "shift in"--switch to G0 character set (VT100)
- ^P clear rest of line
- ^R clear rest of screen
- ^T change character attribute to underlined
- ^U clear underlined attribute
- ^V (BBS) start of an AVATAR command (see below)
- (other) change to reverse video
- ^W cancel reverse video
- ^X insert a blank at the cursor's position, push rest of line right
- ^Y (BBS) repeat the following character the number of times specified by
- the second character after the ^Y
- (other) delete character at cursor position, rest of line shifts left
- ^Z delete line cursor is on
- ^[ escape sequence (see below)
- ^\ turn on insert mode
- ^] turn off insert mode
- ^^ move cursor up a line
- ^_ the following two characters (less 32) specify the new cursor
- column and row. i.e. ^_-blank-blank homes the cursor.
-
- ----------------
- Escape Sequences
- ----------------
- Esc-blank-F turn off eight-bit control characters
- Esc-blank-G turn on eight-bit control characters. When eight-bit control
- characters are enabled, many of the characters from 80h through
- 9Fh are equivalent to Esc-<char-40h>.
- Esc-( (VT100) next character ('0', '1', '2', 'A', or 'B') sets G0 character
- set
- Esc-) (VT100) next character ('0', '1', '2', 'A', or 'B') sets G1 character
- set
- Esc-# (VT100) next character sets character size
- only '8' implemented -- fill screen with 'E's for alignment display
- Esc-7 save cursor
- Esc-8 restore cursor
- Esc-< set terminal emulation to ANSI
- Esc-= set keypad application mode (if allowed to change NumLock by RBCONFIG)
- Esc-> set keypad numeric mode (if allowed to change NumLock by RBCONFIG)
- Esc-@ turn on insert mode
- Esc-A move cursor up
- Esc-B move cursor down
- Esc-C move cursor right
- Esc-D (ANSI) "index"--move cursor down, scroll if at bottom
- (VT52) move cursor left
- Esc-E (ANSI) move to start of next line, scroll if at bottom
- (VT52) clear screen
- Esc-F (ANSI) not implemented
- (VT52) select graphics character set
- Esc-G (ANSI) not implemented
- (VT52) select text character set
- Esc-H (ANSI) set horizontal tab at current position
- (VT52) home cursor
- Esc-I (ANSI) horizontal tab
- (VT52) reverse linefeed, scrolls down if already on top line
- Esc-J (ANSI) not implemented
- (VT52) clear to end of screen
- Esc-K (ANSI) not implemented
- (VT52) clear to end of line
- Esc-L (ANSI) not implemented
- (VT52) insert a new line at cursor
- Esc-M (ANSI) "reverse index"--cursor up, reverse scroll if at top
- (VT52) delete cursor line
- Esc-N (ANSI) not implemented
- (VT52) delete char at cursor, rest of line shifts left
- Esc-O (ANSI) not implemented
- (VT52) turn off insert mode
- Esc-Y move cursor, next two characters are row + 32, column + 32
- Esc-Z request identification
- (ANSI) RBcomm returns the string "rbcommN.NNx" where N.NN is the
- version number and "x" is a single byte identifying implemented
- capabilities
- bit 0: screen storing implemented (set)
- bit 1: file transfer implemented (set)
- bit 6: always set (makes character printable)
- remaining bits reserved
- (VT52) RBcomm returns the string Esc-/-Z, indicating a VT100 emulating
- a VT52.
- Esc-[ ANSI sequence, see below
- Esc-] Operating System Command. The following characters through an Esc-\
- sequence (maximum 80 characters) are skipped, as this command has
- no effect.
- Esc-^ ANSI Privacy Message. The following characters through an Esc-\
- sequence (maximum 80 characters) are accumulated. If running under
- DESQview, the first 40 are displayed in the notification window;
- otherwise, the accumulated characters are discarded.
- Esc-_ Application Program Command. The following characters through an
- Esc-\ sequence (maximum 80 characters) are skipped, as this command
- has no effect.
- Esc-c reset to initial state
- Esc-j save cursor position (Heath H19)
- Esc-k restore cursor position (Heath H19)
- Esc-l erase line (Heath H19)
- Esc-p turn on bold characters
- Esc-q turn off bold characters
- Esc-v turn on line wrap (Heath H19)
- Esc-w turn off line wrap (Heath H19)
- Esc-z reset terminal emulation (Heath H19)
-
-
- --------------
- ANSI Sequences
- --------------
-
- All of the sequences listed here consist of Esc-[ followed by zero or more
- numbers separated by semicolons followed by the command letter. Therefore,
- only the command letter will be listed. X1, X2, etc refer to the specified
- numeric argument, and usually are followed by a default value in parentheses.
- All cursor positioning commands number rows and columns starting at 1.
-
- @ insert X1 (1) blanks, shifting rest of line to the right
- A move cursor up X1 (1) lines
- B move cursor down X1 (1) lines
- C move cursor right X1 (1) positions
- D move cursor left X1 (1) positions
- E move cursor down X1 (1) lines, scroll if at bottom
- F move cursor up X1 (1) lines, scroll if at top
- G move cursor to position X1 (1) in current line
- H move cursor to row X1 (1), column X2 (1)
- I move to X1st (1) following horizontal tab position
- J case X1 (*): 0 clear from cursor to end of screen
- 1 clear from start of screen to cursor
- 2 clear screen
- * default is 0 for ANSI and VT52, 2 for ANSI-BBS and AVATAR
- K case X1 (0): 0 clear from cursor to end of line
- 1 clear from start of line to cursor
- 2 clear line
- L insert X1 (1) lines at cursor
- M delete X1 (1) lines at cursor
- P delete X1 (1) characters at cursor, rest of line shifts left
- S scroll up X1 (1) lines
- T scroll down X1 (1) lines
- X erase X1 (1) characters starting at cursor position, cursor stays put
- Z move cursor to X1st (1) preceding horizontal tab position
- ` move cursor to position X1 (1) in current line
- a move cursor X1 (0) positions from current position in line
- c device attribute report
- responds by sending Esc-[-?-6-c (VT102)
- d move cursor to line X1
- e move cursor X1 (0) lines from current line
- f move cursor to row X1 (1), column X2 (1)
- g case X1 (0): 0 clear horizontal tab at current position
- 3 clear all horizontal tab stops
- '>' clear all horizontal tab stops, then set tabs every
- N positions (i.e. Esc-[->-5-g sets tabs every five
- columns)
- h select mode
- case X1 (0): ?2 set emulation to ANSI
- ?3 select 132-column mode (if enabled by RBCONFIG)
- 4 turn on insert mode
- ?5 turn on inverted video
- ?6 set top of scrolling region to current line, bottom
- to bottom of screen (relative cursor positioning)
- ?7 turn on wrap mode
- 12 turn on local echo
- 20 turn on newline mode (send CRLF when CR pressed)
- ?25 turn cursor on (make visible)
- l reset mode
- case X1 (0): ?2 set emulation to VT52
- ?3 select 80-column mode
- 4 turn off insert mode
- ?5 turn off inverted video
- ?6 set top of scrolling region to topmost line, bottom
- to bottom of screen (absolute cursor positioning)
- ?7 turn off wrap mode
- 12 turn off local echo
- 20 turn off newline mode (send only CR when CR pressed)
- ?25 turn off cursor (make invisible)
- Note: may not work on all systems or in all video
- modes
- m select graphic rendition
- for each Xn in order,
- 0 reset attributes to white on black, turn off reverse
- video
- 1 set bold
- 4 set underlined
- 5 set blinking
- 7 set reverse video
- 8 set invisible (black on black)
- 21 turn off bold
- 22 turn off bold
- 24 turn off underlined
- 25 turn off blinking
- 27 turn off reverse video
- 30 set foreground color
- -
- 37
- 40 set background color
- -
- 47
- Note: Esc-[-m is equivalent to Esc-[-0-m
- n device status report
- case X1 (0): 5 report terminal status
- always sends Esc-[-0-n (terminal OK) to remote
- 6 report cursor position
- sends string Esc-[-row-;-col-R to remote system
- 15 printer status
- sends Esc-[-?-1-3-n (no printer) if no printer defined
- Esc-[-?-1-0-n if printer is ready
- Esc-[-?-1-1-n if printer is not ready
- [currently always sends ?13n]
- 25 report User Definable Key status
- always sends Esc-[-?-21-n (UDK's locked)
- 26 report keyboard dialect
- always sends Esc-[-?-27-;-1-n (US ASCII)
- r set scrolling region to rows X1 (1) through X2 (lines-on-screen)
- s save cursor (may not be nested)
- u restore cursor
- x request terminal parameters (VT100)
- case X1 (0): 0 sends back string indicating bits, parity, speed
- 1 sends back string indicating bits, parity, speed
- the string sent is
- Esc-[-<id>-;-<parity>-;-<bits>-;-<tspd>-;-<rspd>-;1;0x
- where <id> is 2 if X1 was 0 and 3 if X1 was 1
- <parity> is 1 for none, 2 for space, 3 for mark, 4 for odd,
- and 5 for even
- <bits> is 1 for 8, 2 for 7, 3 for 6, and 4 for 5 data bits
- <tspd> and <rspd> are the transmit and receive speeds:
- 16 -> 110 bps
- 32 -> 150 bps
- 48 -> 300 bps
- 56 -> 600 bps
- 64 -> 1200 bps
- 88 -> 2400 bps
- 104 -> 4800 bps
- 112 -> 9600 bps
- 120 -> 19200 bps
- 128 -> 38400 bps
- 136 -> 57600 bps
- z reset terminal emulation (Heath H19)
- blank extended ANSI sequence
-
- -----------------------
- Extended ANSI sequences
- -----------------------
-
- If the command character for an ANSI sequence is a blank, the NEXT character
- specifies the actual operation.
-
- @ scroll left X1 (1) columns
- A scroll right X1 (1) columns
-
- ------------------------
- Special RBcomm sequences
- ------------------------
-
- When RBcomm receives a ^F, the following character specifies the actual
- command.
-
- ^x display the IBM PC screen character corresponding to the control
- character
- 0 turn off visual bell, ^G will beep
- 1 turn on visual bell, ^G will flash the screen, but internally
- generated beeps still sound
- 2 flash the screen
- 3 beep even if visual bell turned on
- 4 fill area. Identical to AVATAR ^V^M (see below)
- 5 repeat character. Identical to AVATAR ^Y (see above)
- 6 repeat pattern. Identical to AVATAR ^V^Y (see below)
- ; set terminal emulation to UW (not yet implemented). Does not affect
- any other settings.
- < set terminal emulation to VT102/ANSI. Does not affect any other
- settings
- = set terminal emulation to ANSI-BBS. Does not affect any other
- settings.
- > set terminal emulation to VT52. Does not affect any other settings.
- ? query terminal emulation type. Sends back <127><type> where type is
- 'A' for VT102/ANSI, 'B' for ANSI-BBS, 'V' for VT52, and 'U' for
- UW.
- @ send identification (see Esc-Z)
- A if next character is '0' through '7', save the current screen in the
- specified slot. This may silently fail if there is not enough memory
- available (thus the remote system must be capable of redrawing the
- screen itself). For technically minded: Screens are first stored in
- the near heap, then in the far heap (to store all ten screen requires
- a memory partition of about 85K using 80x25 screens, more if the screens
- are larger). Any screens in the far heap are lost when swapping, such
- as running DSZ or shelling to DOS. Using a 65K partition will allow
- you to store four or five screens in the near heap, none in the far
- heap.
- Note: this command will change in the next release
- B if next character is '0' through '7', restore the screen from the
- specified slot where a screen should have been previously saved with
- ^FA. If no screen has been saved in the slot, command fails. Sends
- a response of 127-<digit>-<status> to the remote system, where the
- digit is the slot number from the ^FB command, and status is 'Y' if
- the screen was restored or 'N' if the screen remains unchanged.
- Note: this command will change in the next release
- C if next character is '0' through '7', free the specified slot, so that
- it is as if no screen had ever been saved there.
- Note: this command will change in the next release
-
- ------------------------
- AVATAR command sequences
- ------------------------
-
- ^V^A set screen attribute to low seven bits of following character
- ^V^B set blink
- ^V^C move cursor up a line
- ^V^D move cursor down a line
- ^V^E move cursor left one space
- ^V^F move cursor right one space
- ^V^G clear from cursor to end of line
- ^V^H<r><c> move cursor to row <r> and column <c>, where the upper left corner
- is 1,1
- ^V^I turn on insert mode until next AVATAR command (except ^Y and ^V^Y)
- ^V^J scroll area up. Next five characters specify number of lines to
- scroll, top margin, left margin, bottom margin, and right margin (all
- margins are based on 1,1 being the upper left corner of the screen)
- ^V^K scroll area down. Next five characters are as for ^V^J
- ^V^L clear area. Next three characters specify screen attribute for cleared
- area, number of lines less one, and number of columns less one. The
- blink bit of the attribute is ignored, and the current display attribute
- is set to the attribute of the cleared area.
- ^V^M fill area. Next four characters specify screen attribute for filled
- area, character to fill with, number of lines less one, and number of
- columns less one. The current display attribute is set to the filled
- attribute with blinking turned off.
- ^V^N delete character at cursor position
- ^V^Y repeat pattern. The following character specifies the length of the
- pattern to be repeated, followed by the pattern, and finally followed
- by a single character indicating the number of times to repeat the
- pattern. The pattern may contain command sequences, but is limited
- to 80 characters (longer patterns are truncated to 80 characters).
-
- -----------------------------------------------------------------------------
- Acknowledgements
- ----------------
-
- Thanks to Thomas Zerucha for his numerous comments and suggestions, many of
- which have been implemented.
-
- Thanks to Walter Cox for his comments and suggestions on v2.81, one of the
- included keyboard bindings, and his patience in testing new versions.
-
- Thanks to Mike Weaver for his comments and suggestions, some of which have
- been implemented.
-
- Thanks to Dave Doren for banging on the macro language and reporting bugs
- and possible enhancements.
-
- -----------------------------------------------------------------------------
- Program History
- ---------------
-
- v2.72 9/3/89 first public release
- v2.81 10/4/89 second public release
- v3.01 1/6/90 third public release
- v3.02 1/14/90 minor bugfixes, some H19 extensions added
- input line editor now blinks control characters rather than
- using ^X notation, ^BS acts as BS, Alt-D inserts ASCII 127
- made existing functions available as new macro commands
- FDELETE, AWAITKEY, KFLUSH, and ABORT.
- v3.03 1/20/90 removed key-reassignment under Alt-M, saving over 300 bytes
- added VERBOSE, ECHO, and TRANSLATE_BS macro commands
- added answerback message
- v3.04 2/2/90 changed macro file format to allow larger macros
- added #include macro file inclusion command
- added MESSAGEBOX, LOWER_DTR and ANSWERBACK macro commands.
- v3.05 2/10/90 changed macro file again to allow control key reassignment
- added ANSI Privacy Message (Esc-^) command
- v3.06 2/25/90 made existing function CANCEL_NOTIFY available as macro command
- maximum delay time now 3600 seconds
- v3.10 3/10/90 added VIEW macro command, bound to Alt-V (old Alt-V now Alt-Y)
- added support for multiple comm ports without reconfiguring
- added %I in EXEC command-tail
- v3.11 3/31/90 added IF, UNTIL, ABORT_UNTIL macros
- improved handling of multiple comm ports
- added #ignore to macro compiler
- fixed minor bug in disk-swapping code
- v3.12 4/21/90 made SENDFILE and RECEIVEFILE available as macro commands
- fixed origin-mode & scrolling-region bugs in terminal emulator
- added %a and %i in EXEC command-tail
- added seamless Puma file transfers
- 4/28/90 (fourth public release)
- v3.13 6/23/90 macro compiler bugfixes (e.g. IF CONNECTED/OFFLINE now work)
- manual dial before directory dial now uses proper port
- added IF DV and IF NOT DV commands
- (limited release)
- v3.14 6/30/90 added WINDOW, FORCE_CLEANUP, and HANGUP_ONLY commands
- now able to reconnect without dropping carrier
- added %V, %d, %t variable expansions
- OPEN_LOG now expands variables
- time limit on DELAYED raised to 18 hours
- (limited release)
- v3.15 7/7/90 added AT, LOG, and EXECN commands
- internal changes
- (limited release)
- v3.16 7/14/90 made Puma autodownload present by default
- added RBCDIAL environment variable
- added REPEAT, CUT and PASTE macro commands
- added OnAbort and Null pseudokeys
- (limited release)
- v3.20 7/22/90 internal changes
- added TEST WHEN/TEST EXISTS/RFLUSH/GOTO_KEY commands
- CUT now sets SUCCESS/FAILED
- (limited release)
- v3.21 7/29/90 fixed problems with GOTO_KEY
- (fifth public release)
-