═══ 1. Main Window ═══ Welcome to AFMOScom beta version 0.70. (c) AFMOS Software 1993 1994 You are now at the center of activity for AFMOScom. From here, you can configure the program, add sessions, and control your modem. Select any of the following for more details about the control: Toolbar Status Display Modem Action Phone Number Dial Button Exit Button Hangup Button Terminal Status The program is divided into 2 parts. This is the server section, the terminal section is called the client and it will be started as soon as a the modem successfully connects to a remote host. The following Command line switches are accepted -cl Thread priority class [0-4] -pri Thread priority within class [0-31] -pip Pipe Size in KB [0-30] Example comm -cl 3 -pri 10 -pip 5 Will start the comserver using the second highest priority class for the threads which access the com port. With in this priority class, it is at level 10. The data pipe between the com server and the terminals uses a 5 KB buffer in each direction. ═══ 1.1. Toolbar ═══ The toolbar consists of the following buttons. The bitmap indicates that the modem has lowered it's CD signal. While, the symbol indicates that the modem has rasied it's CD signal. Pressing selecting this entry will show the modem status. The symbol opens the DialDirectory. The symbol starts the default upload protocol. The symbol starts the default download protocol. The symbol open the script execution window. The symbol activates the help for the control with the focus. ═══ 1.2. Modem Status ═══ The modem status button brings up a dialog box which displays the current status of the modem registers. They cannot be changed even though a check box is used. ═══ 1.3. Status Display ═══ The status display displays the current state of the program. The message "Dialing" indicates that the modem is currently dialing. The message "Off Line" indicates that the modem is NOT connected. The message "On Line" indicates the the modem is connect to a remote host. ═══ 1.4. Modem Action ═══ This window displays the commands being set to the modem and the responses the modem sends back. It is meant as a little extra security so that the user can verify the modem is doing what he or she wants it to. ═══ 1.5. Phone Number ═══ This window displays the phone number of the current session. It also allows the number to be changed without affecting the number stored for the current session. ═══ 1.6. Dial Button ═══ When this button is pressed, the modem is instructed to dial the number in the Phone Number box. While dialing, the button changes to "ABORT". In this state, clicking it will abort the dialing procedure. ═══ 1.7. Exit Button ═══ Pressing this button will exit the program and terminate the terminal. ═══ 1.8. Hangup Button ═══ When this button is pressed, the modem will be instructed to hangup. While dialing and hanging up, the button will be disabled to prevent multiple threads from accidentally being started and competing for access to the modem. ═══ 1.9. Terminal Status ═══ This window displays the status of the terminal. The message "connected" will appear once the terminal has connected to the server. ═══ 2. Dial Directory ═══ This window allows one maintain the dial directory and to change the currently active session (Selection in the dial directory). A session is simply a entry in the dial directory. The container control allow one to easily modify the entries in the directory. ═══ 2.1. PopUpMenu ═══ The menu is composed of the following items: Dial Add Clone Settings Select all Deselect all Help Dial This selection start the dialing process. All currently selected entries are dialed in turn. Add A new entry is created at the end of the list. Clone A new entry, which is identical to the entry for which the popup menu was created, is added to the end of the list. Settings Opens the settings notebook for the active entry. There is no need to close the setting window when modifiing multiple entries. The setting window will update itself as settings are requested for new entries. Select all and Deselect all Either selects all or unselectes all of the entries in the session list. ═══ 2.2. System Menu ═══ Additional entries have been added to the system menu. These are: Close w/o Change Help Dail Close w/o Change This allows the dial directory (AKA session list) to be closed without changing the currently active session. Otherwise, the first selected session, will be made the current session. Help Displays the help screen for the dialog window. Dial Works the same as the Dial on the popup menu. ═══ 2.3. Session List ═══ This is the list of currently defined sessions. The fields to the left of the divider are editable, while the fields to the right of the divider are not. The fields are edited by holding the ALT key and clicking with the left mouse button (the same procedure used for any other container). ═══ 3. Port Unavailable ═══ This dialog appears if the default comport cannot be opened. Select a new comport and press OK to continue otherwise press Abort to stop the program. ═══ 3.1. Port List ═══ Select a port from this list. ═══ 3.2. OK ═══ Pressing this button will result in an attempt to open the selected port. If the port is unable to be opened, this dialog box will remain open. ═══ 3.3. Abort Load ═══ Pressing this button will terminate this application. ═══ 4. Global Settings ═══ The global settings affect the entire comm server and all of the dial directory entries. ═══ 4.1. File does not exist ═══ The file shown in the FileName entry field does not exist. The name of a file which does exist must be entered before any other selections can be made. ═══ 4.2. Terminal Setup ═══ The terminal setup page will eventually allow terminals to be added and deleted. Dial directories which are not currently active, will not be updated if a terminal is removed. Manual session setting adjustments will be needed in this case. The terminals support both a physical and virtual screen size. The physical size number of rows and columns that will be displayed in the window. For VIO terminals, this is limited by the hardware and a best fit approach will be used. The virtual screen size is the size of the emulated terminal. If the virtual screen size is smaller than the physical screesize, the the can be used to pan the virtual screen around on the physical window/display. ═══ 4.2.1. Virtual Screen Row Number ═══ The number of rows in the virtual screen. ═══ 4.2.2. Virtual Screen Col Number ═══ The number of columns in the virtual screen. ═══ 4.2.3. Physical Screen Row Number ═══ The number of physical rows the terminal will attempt to use. ═══ 4.2.4. Physical Screen Col Number ═══ The number of physical Columns the terminal will attempt to use. ═══ 4.2.5. Full Screen Button ═══ Allows the VIO terminals to be run in a full screen. ═══ 4.2.6. Windowed Button ═══ Allows the VIO terminals to be run in a window. ═══ 4.2.7. PM Button ═══ This button should be used for PM based terminals. ═══ 4.2.8. Terminal List ═══ This is the list of the currently defined terminals. ═══ 4.2.9. File Path ═══ The fully qualified file name of the .exe which hold the selected terminal emulation should be entered/displayed in this box. If the name is entered incorrectly, one will not be able to edit any additonal terminals until the correct fully qualified name is done. ═══ 4.2.10. Browse Button ═══ Eventually, this button will allow additonal terminals to be added. ═══ 4.2.11. Switch to Foreground Upon Connection ═══ If this option is checked, the terminal will be brought to the foregorund when the connection is complete. ═══ 4.3. Line Setup ═══ This page allows one to change the COM port that is currently being used. ═══ 4.3.1. Com Port ═══ One can select a port from this list or type in teh name of an alternative port. ═══ 4.4. Modem Setup ═══ This page allows modems to be added, deleted or modified. Like the other global settings, changes here affect dial directories that are not currently active. ═══ 4.4.1. Modem List ═══ This is the list of currently defined modems. The buttons to the left of this list can be used to add and delete defined modems. Currently, they are not functional. The configuration of the currently selected modem appears on this page. ═══ 4.4.2. Add Modem ═══ Not Functional ═══ 4.4.3. Delete Modem ═══ Not Functional ═══ 4.4.4. Initialization String ═══ This is the primary initialization string that will be sent to the modem each time it is dialed. Control Characters ═══ 4.4.5. Dial Prefix ═══ Typically, this is either the ATDP or ATDT string. Control Characters ═══ 4.4.6. Dial Suffix ═══ Typically, this is the \r string. Control Characters ═══ 4.4.7. Hangup String ═══ Either this string consists of the control codes to hang up the modem (typically +++~~~ATH^M), or a delay string to control how long the DTR is dropped. Control Characters ═══ 4.4.8. DTR hangup ═══ If this option is used, then a few ~ characters should be placed in the hangup string to control how long the DTR is dropped. ═══ 4.4.9. Connection Timeout ═══ This is the amount of time in seconds, that the com server will wait for a "connect" or "no connect" string to arrive before aborting the dial. This is independent of the time out that may be set in the modem using the init string. ═══ 4.4.10. Hardware Flow Control ═══ When checked, RTS/CTS hand shaking will be initiated. ═══ 4.4.11. Connect String List ═══ This is a list of strings which are returned from the modem indicating a successfull connection. ═══ 4.4.12. Add Connect String ═══ This button will add the string in the entry field of the connect string list to the list. ═══ 4.4.13. Delete Connect String ═══ This button will delete the currently selected connect string. ═══ 4.4.14. BPS for Speed Match ═══ This is the BPS that will be used when the selected connect string is returned IF the Speed Match selection is checked. ═══ 4.4.15. Speed Match Button ═══ When matched, the BPS of the comport is set to match the BPS that corresponds to the returned connect string. ═══ 4.4.16. No Connect String List ═══ This in a list of the strings returned from the modem which indicate an unsucessful connection. ═══ 4.5. Global Paths ═══ Directories for various files. ═══ 4.5.1. DownLoad Path ═══ The directory into which files will be downloaded. ═══ 4.5.2. Download Browse Button ═══ This button activates the directory browsing window. ═══ 4.5.3. Upload Path ═══ The directory into which files will be uploaded. ═══ 4.5.4. Upload Browse Button ═══ This button activates the directory browsing window. ═══ 4.5.5. Script Path ═══ The default directory for script files. ═══ 4.5.6. Script Path Browse Button ═══ This button activates the directory browsing window. ═══ 4.5.7. Terminal Path ═══ The default directory for terminal exes. ═══ 4.5.8. Terminal Path Browse Button ═══ This button activates the directory browsing window. ═══ 4.6. Automatic Download Page ═══ This page allows one to define the protocols activated when the quick upload and download buttons are used, as well as the automatic download strings. ═══ 4.6.1. Default Upload Protocol ═══ The protocol selected from this list will be executed when the quick upload toolbar items is used. ═══ 4.6.2. Default Download Protocol ═══ The protocol selected from this list will be executed when the quick download toolbar items is used. ═══ 4.6.3. Recieve Protocol List ═══ This is a list of the receive protocols registered with the server. When a protocol is selected, it's auto download string is displayed in the entry field (if it has one), where it can be edited. ═══ 4.6.4. Auto Download String ═══ This entry field allows the auto download string for the protocol selected in the list to be edited. ═══ 4.7. Protocol Setup ═══ This page allows the user to customize the selection of installed protocols. ═══ 4.7.1. Protocol List ═══ This is a list of all the protocols supported by the protocol DLLs. Selecting a protocol from this list shows it's installed name in the entry field. An empty entry field indicates that the protocol is not installed. ═══ 4.7.2. Installed Name ═══ The name under which the selected protocol is displayed to the user. This field is blank if the protocol is not to be displayed. ═══ 5. Dial Directory Settings ═══ These setting only affect the currently selected session. They update as new sessions are updated. ═══ 5.1. Page 1 ═══ This page allows the various line parameters to be changed. ═══ 5.1.1. Xon Character ═══ Not used yet. ═══ 5.1.2. Xoff Character ═══ Not used yet. ═══ 5.1.3. Break Character ═══ Not used yet. ═══ 5.1.4. Error Character ═══ Not used yet. ═══ 5.1.5. Data ═══ Number of Data Bits. ═══ 5.1.6. Parity ═══ Number of Parity Bits. ═══ 5.1.7. Stop Bits ═══ Number of Stop Bits. ═══ 5.1.8. BPS ═══ Bits Per Second ═══ 5.1.9. Enable Xon/Xof Flow control ═══ Not used yet. ═══ 5.1.10. Enable alternative break ═══ Not used yet. ═══ 5.1.11. Enable alternative error ═══ Not used yet. ═══ 5.2. Page 2 ═══ Terminal Setup ═══ 5.2.1. Terminal List ═══ The terminal to be used for the current session can be chosen from this list. ═══ 5.3. Page 3 ═══ Modem Settup ═══ 5.3.1. Modem List ═══ The modem to be used for the current session can be chosen from this list. ═══ 5.4. Dial Control ═══ The Dial Control window is brought up when dial is selected from the dial directory. ═══ 5.4.1. ABORT ═══ Stops dialing and closes the window immediately. ═══ 5.4.2. Skip ═══ Stops dialing the current session, and goes to the next one in the list. ═══ 5.4.3. Remove ═══ Removes the current session from teh list, and stops dials the next one. ═══ 5.4.4. Dial List ═══ The list of sessions in the dial queue. The session being dialed is highlighted. ═══ 5.4.5. Repeat Dial ═══ When checked the list will be dialed, until a connection is made. ═══ 5.4.6. Dial Count ═══ The number of times the list has been traversed. ═══ 6. Scripting Language ═══ REXX/2 is used as the scripting and macro laguage. The following table lists the external REXX functions added by the server and their usage. ┌───────────────┬───────────────┬─────────────────────────┐ │Function │Syntax │Usage │ ├───────────────┼───────────────┼─────────────────────────┤ │WaitFor │call WaitFor │This function waits until│ │ │string │the string string is │ │ │ │received. │ ├───────────────┼───────────────┼─────────────────────────┤ │Wait │call Wait num │This function waits num │ │ │ │milliseconds. │ ├───────────────┼───────────────┼─────────────────────────┤ │Write │call Write │This function writes │ │ │string │string to the com port. │ ├───────────────┼───────────────┼─────────────────────────┤ │Read │string=Read() │This function reads the │ │ │ │com port and returns the │ │ │ │read cahracters to string│ │ │ │. │ ├───────────────┼───────────────┼─────────────────────────┤ │Script │call Script │This function waits for │ │ │recieve,send │the string recieve is │ │ │ │received and then outputs│ │ │ │the string send │ └───────────────┴───────────────┴─────────────────────────┘ ═══ Control Character ═══ Either the "C" representation or ASCII representation of the control characters can be entered. However, the default is to display control character in "C" notation. ┌───────────────┬───────────────┬───────────────┐ │ASCII value │ ASCII │ C │ ├───────────────┼───────────────┼───────────────┤ │ │representation │representation │ ├───────────────┼───────────────┼───────────────┤ │0 │^@ │ │ ├───────────────┼───────────────┼───────────────┤ │1 │^A │ │ ├───────────────┼───────────────┼───────────────┤ │2 │^B │ │ ├───────────────┼───────────────┼───────────────┤ │3 │^C │ │ ├───────────────┼───────────────┼───────────────┤ │4 │^D │ │ ├───────────────┼───────────────┼───────────────┤ │5 │^E │ │ ├───────────────┼───────────────┼───────────────┤ │6 │^F │ │ ├───────────────┼───────────────┼───────────────┤ │7 │^G │\a │ ├───────────────┼───────────────┼───────────────┤ │8 │^H │\b │ ├───────────────┼───────────────┼───────────────┤ │9 │^I │\t │ ├───────────────┼───────────────┼───────────────┤ │10 │^J │\n │ ├───────────────┼───────────────┼───────────────┤ │11 │^K │\v │ ├───────────────┼───────────────┼───────────────┤ │12 │^L │\f │ ├───────────────┼───────────────┼───────────────┤ │13 │^M │\r │ ├───────────────┼───────────────┼───────────────┤ │14 │^N │ │ ├───────────────┼───────────────┼───────────────┤ │15 │^O │ │ ├───────────────┼───────────────┼───────────────┤ │16 │^P │ │ ├───────────────┼───────────────┼───────────────┤ │17 │^Q │ │ ├───────────────┼───────────────┼───────────────┤ │18 │^R │ │ ├───────────────┼───────────────┼───────────────┤ │19 │^S │ │ ├───────────────┼───────────────┼───────────────┤ │20 │^T │ │ ├───────────────┼───────────────┼───────────────┤ │21 │^U │ │ ├───────────────┼───────────────┼───────────────┤ │22 │^V │ │ ├───────────────┼───────────────┼───────────────┤ │23 │^W │ │ ├───────────────┼───────────────┼───────────────┤ │24 │^X │ │ ├───────────────┼───────────────┼───────────────┤ │25 │^Y │ │ ├───────────────┼───────────────┼───────────────┤ │26 │^Z │ │ ├───────────────┼───────────────┼───────────────┤ │27 │^[ │ │ ├───────────────┼───────────────┼───────────────┤ │28 │^\ │ │ ├───────────────┼───────────────┼───────────────┤ │29 │^] │ │ ├───────────────┼───────────────┼───────────────┤ │30 │^^ │ │ ├───────────────┼───────────────┼───────────────┤ │31 │^_ │ │ └───────────────┴───────────────┴───────────────┘ ═══ 7. Trouble Shooting ═══ This section covers some of the common problems. Why won't my modem dial ? There is two possible reasons why this would happen: 1) The terminal selected is not set up to point to a correct terminal .exe file. 2) The modem dial suffix or prefix is incorrect. Typically, a ^M is used as the prefix.