Classic Computer Magazine Archive COMPUTE! ISSUE 73 / JUNE 1986 / PAGE 65

For Amiga

Philip I. Nelson, Assistant Editor

Requirements: Amiga computer with RS-232C modem.

Online! is a full-featured telecommunications program that allows any Amiga to communicate with remote computers, bulletin boards, and commercial information services such as CompuServe. Since Online! takes full advantage of the Amiga's graphics-oriented operating system, the program is intuitive and convenient to use. In most cases, selecting an option is as simple as moving the mouse pointer to the desired menu item. But don't confuse ease of operation with a lack of features; this program offers a wide range of options, making it suitable for serious applications as well as recreational use.
    For most home use (calling an information service, for instance), you'll want to use the default TTY, or dumb terminal configuration. But you can also choose from three popular DEC terminal modes (VT-102, VT-100, and VT-52) or ANSI emulation. The default window-with a status display line at the top, screen borders, and a sizing gadget at the lower-right corner-has room for a 79-column X 22-line text area. Other display options include a borderless 80 X 23 window, which removes the sizing gadget but leaves the status line in place, and a full 80 X 24 window which has neither a status line nor a sizing gadget.
    The most novel display feature is the split or chat window, which is designed for realtime electronic conferencing (like the CB service on CompuServe). On many terminal programs, realtime conferencing is a very confusing business. Since your own keystrokes are intermixed with incoming characters, it's very difficult to keep track of what you're typing. By echoing only your keystrokes in a separate window, OnLine!'s chat feature eliminates the confusion.
    Unlike some early Amiga software that completely takes over the machine, OnLine! is clearly designed to exist in a multitasking environment. In all configurations except the 80 X 24 window, you can use sizing and/or depth gadgets to gain access to the Workbench or other windows. This welcome feature makes it possible to perform other tasks while the terminal remains active. For instance, you might want to open a new CLI window to check whether a disk has enough space to hold a file that you've captured.

Few things are more frustrating than establishing a communications link only to find that the computer at the other end of the line requires a protocol that your software can't handle. OnLine! goes to considerable lengths to provide control over all the parameters you need, without forcing you to specify settings more often than necessary. When you first run the program, it defaults to the configuration used by most commercial information services: 1200 bps (bits per second), 7-bit word length, even parity, and a stop bit of 1. But these parameters (and many more) are easily changed via onscreen menus.
    Once you've chosen new settings, you can save them in a terminal file, which also includes display choices, phone numbers (for an autodialing modem), and macrokey definitions (see below). Terminal files are a real boon to anyone who calls more than one service regularly. Instead of reconfiguring the program manually each time, you need only set the parameters once for each service and save them in a terminal file. After that, you simply select the desired terminal file from a menu. When OnLine! loads the file, it configures the display window, sets all the necessary parameters, and even dials the number for you automatically.
    It's easy to see how this sort, of automation speeds up and simplifies the process of getting online. Going one step further, you can also customize the way in which the program boots up. Whenever you run OnLine!, it looks for a special file named OnLine!.trm. If the disk contains a terminal file of that name, the program comes up with the settings specified in the file, and dials the phone number if one is included.
    You can also save time by creating a custom macrokey definition for one or more of the Amiga's ten function keys. Once a macrokey has been defined, it sends as many as 64 characters to the serial port with only one keypress. In the simplest case, you might program a key to transmit a commonly used command such as BYE or GO AMIGAFORUM. By including control codes and linking together more than one macrokey, it's possible to create much more elaborate one-key sequences.

OnLine! screen shot
OnLine! is a convenient, professional-
quality telecommunications program for
Amiga computers. This screen shows the
chat window feature designed for real-
time teleconferencing.

    Unlike some terminal programs, OnLine! has no separate phone book as such. Instead, two phone numbers (a primary number and one alternate) can be stored as part of each terminal file. If you need more than two numbers for a certain service, you could store additional numbers in macrokey definitions, which also become part of the terminal file. The autodial feature lets you set the number of times to redial the primary and alternate numbers before giving up. The default number of retries is zero, meaning that if the primary number isn't answered within 30 seconds, OnLine! dials the alternate number (if one is supplied) or simply hangs up.
    If you've ever had to write a program to transfer data files from one computer to another, you know that character translation, while extremely simple in theory, can soak up a lot of programming time in practice. OnLine! lets you edit any of its seven 256-byte character-translation tables (which relate to screen, keyboard, printer, and serial input/output) simply by calling the table from a menu and editing the character values onscreen. This makes it easy to do character translations or filter out undesired characters for various purposes. When streaming input to a printer, for instance, you can check for certain characters which might be interpreted as control codes, producing unwanted results.

    Perhaps the most advanced feature of OnLine! is its ability to execute scripts. A script file is simply a collection of commands stored in a text file on disk (similar to a batch or script file in AmigaDOS). When you load a script file, OnLine! automatically performs all the commands found in the file. In other words, the script feature is actually a mini-language interpreter; you can write simple programs, store them in disk files, and execute them whenever you like. This powerful capability makes it possible for the system to carry out an elaborate series of actions without any supervision on your part.
    To illustrate what a script can do, say that you want the program to wait until 3 a.m. (when rates are low), dial up a fictional information service called ChompuSerf, log on to the service, enter Data Library 3 in the area called Amigashop, download a file named EXAMPLE.BAS, log off the service, hang up the phone, and save the captured file to disk. Your script file might look something like this:

REPLY "ATDT 1 919 555 1212"
REPLY "55555,1212"
WAIT STRING "Password:"
WAIT STRING "your choice!"
REPLY "go amigashop"

    The first command in this script causes OnLine! to wait until the system clock equals 03:00, or 3 a.m. (of course, it's your responsibility to set the time correctly at the beginning of the session). The next command calls ChompuSerf by sending a Hayes-format autodial command to the modem. The next two REPLY commands simulate the process of pressing RETURN twice. The following WAIT STRING commands cause the program to pause until a particular character string is received. Each REPLY command sends a character string, so by REPLYing to prompts as needed, we move to the Amigashop section of ChompuSerf, enter Data Library 3, and download the file EXAMPLE.BAS. The CAPTURE OPEN command opens the ASCII capture buffer, specifying a buffer length of 100K. When the capture is complete, we log off ChompuSerf (REPLY "BYE"), hang up the phone (OFFLINE), and save the captured file to disk with CAPTURE SAVE.
    The example script is actually quite primitive compared to what OnLine!'s command set allows. More advanced commands such as IF, WHEN, ASK, JUMP, SKIP, and ABORT permit the script to test for certain conditions, branch to other parts of the script program, and interact with the user to a certain extent. The DO command even lets you load and execute a second script file from within the first.
    Writing an automated script like the example shown here requires that you know in advance exactly what the remote system will send in the way of prompts and what you must supply as responses. The simplest way to glean such information is to note each prompt/reply sequence on paper as you go through a typical session. Once that's done, you can write the script file using the ED system editor or a word processor.
    But that process takes time and multiplies the chance for errors. OnLine's learn mode automates the process of creating script files by letting you capture the relevant information on the fly, In learn mode, the program automatically records the most recent prompt as well as your last reply, giving you a chance to edit each string on the spot and insert additional commands before adding it to the script file. At the end of a session, you should have a script that requires little or no extra editing.

Transfer Options
Online! offers several options for capturing or sending data files, including ASCII capture, standard XMODEM protocol, XMODEM with CRC (cyclic redundancy checksum) error-checking, and HVP (Hayes verification protocol). The timing requirements for standard XMODEM are relaxed somewhat to facilitate communications via packetswitching networks. Though it's not supported by every information service, CRC error-checking improves the reliability of XMODEM transfers.
    One headache that confronts Amiga owners concerns XMODEM transfers of executable machine language files. Since the XMODEM protocol always sends a file in even 128-byte chunks, any file that doesn't divide evenly by 128 is padded with extra characters when you download it with XMODEM. If you try to load and run a padded file, AmigaDOS notices the padding, concludes that the file is not executable, and refuses to run it. Chopping off the padding is a simple matter from BASIC, but the file is useless until that's done. So this problem adds just one more layer of aggravation and delay to the process of getting someone else's program to work on your computer.
    It's worth noting that the padding problem applies only to XMODEM transfers-more specifically, to XMODEM transfers of executable machine language files or other binary files for which exact file length is critical. It shouldn't affect text that you save from the capture buffer, or ASCII text files (including BASIC programs in ASCII form) downloaded with XMODEM. Of course, the padding problem isn't unique to Online! or any other terminal program. It's a consequence of the way that XMODEM and AmigaDOS treat certain files, and occurs with any Amiga terminal program that supports XMODEM.
    Online! does not contain any feature to help you chop executable files downloaded with XMODEM. However, it does support HVP protocol (compatible with Smartcom) which can transfer executable files without padding. The only problem with HVP, or any protocol other than standard XMODEM, is that not everyone uses it. (Perhaps the best solution is for programmers to pad their executable files before uploading them to public bulletin boards.)

Confusing Manual
While the Online! instruction manual is fairly complete, it is disorganized. All the information is there - someplace - but it's not always easy to find. Despite the manual's length of 100 pages, there is no index. Fortunately, documentation is less important for a menu-oriented program of this type, which displays nearly every option onscreen. Many people will be able to use Online! without glancing at the manual. But some important program features-learn mode, for instance-don't appear in the menus at all.
    On the whole, however, Online! is a very impressive package with the look and feel of a finished, professional product. It's convenient, reliable, and well-integrated with the Amiga's personality. Another plus is the quality of customer service. The authors (MicroSystems Software, Inc.) offer technical support in two different forms: on voice lines during regular business hours, and on their own 24-hour, 7-day BBS. I found that questions to the customer BBS were answered very promptly.

Micro-Systems Software, Inc.
4301-18 Oak Circle
Boca Raton, FL 33431