Smart Communications and a Modem Connect you to the outside World. With your PC, a modem, and the Smart Communications module contact with the computer community can be a snap. Connection with local elec- tronic bulletin boards can bring to you the resources of thousands of PC users and programmers. Shareware, public domain software, utilities, games, help with problem software, problem hardware, all these services are available, either free of charge or for a very nominal fee, to those with a modem and a good communications program like Smart. The Smart Communications module and project processing can sim- plify access to these services. Your project can totally automate log- ging on, working through the menus, downloading, logging off and fi- nally un-archiving your file selection making a program, game, utility, or information file available to you on your own computer. Many electronic bulletin boards provide services such as bulletin posting that allow users to ask questions or make comments directed to either a specific individual, group of individuals or all who log on to the bulletin board. Take for example, a problem I recently faced. I had purchased a bar-code reader for my PC and wished to print bar-code labels for inventory items. Leaving a message on a local bulletin board brought this response. "Download BARCODE.ARC, a bar-code 3 of 9 printer utility." I downloaded the program and am now printing my own bar-code labels. But message exchange is only a part of the service or help ex- tended to the PC user. For me, file transfers are the greatest service bulletin boards offer. Bar-code printer utilities, public domain text editors, and the best games I have ever played on my PC have all come from a local bulletin board. And with a Smart communications project access is so simple anyone, including my 10 year old daughter, can with ease select a title, download, un-archive and use the files and pro- grams made available. To automate use of the bulletin board a project using the communi- cations module must be written. To write a successful project it will be important for you to understand and be able to use a few of the com- munications commands. Of course proper installation of your modem is essential. Once your modem is installed obtain a listing of bulletin boards in your area. Practice logging on and downloading files. Get familiar with the bulletin board that you feel will be of most benefit. After you become accustomed to using the Profile-Define, Settings-Load, Dial-Carrier-Number, and Receive-Xmodem commands you will be able to incorporate them into a project that will fully automate the communica- tions sessions. With these skills you will be able to write a specific communications project file containing the Bulletin board profile, and specific Match and Output commands that will allow your project to suc- cessfully move through the bulletin board menu structure. After our first project file is defined the same can be modified for use with a second project file that can make file selection and downloading a one step process. Using the Capture File command during practice sessions will allow you to record entire communications sessions for reference use. This you will find to be of great aid in writing your project. Two projects will be listed. The first project, PC-LIB, is writ- ten specifically to log onto and download a file from a local Bulletin board named PC-Library. The file name to be downloaded is initialized as %1. The second project file, a Data-Manager project file loads and allows one to browse an index of nearly four thousand file selections, select a title to be downloaded, jump to the Communications module and execute a slightly modified project file PC-LIB. Confused? Following the project listing is a play by play discus- sion of each line, how it is used and what it does. Read on. PROJECT FILE PC-LIB 1 confidence 5 2 quiet on 3 %1 ENTER FILE NAME YOU WISH TO DOWNLOAD 4 settings load PC-LIB 5 dial carrier number 6 match "FIRST Name:" 7 wait 1 8 output "First name, Last name, password" 9 match "continue ****" 10 output chr (32); 11 match "1 - 9 >" 12 output 2; 13 match "X,H,? >" 14 output "D" 15 match "File(s)? ->" 16 output "%1" 17 wait 1 18 receive xmodem %1 19 match "X,H,? >" 20 wait 2 21 output "G" 22 wait 2 23 hangup 24 wait 2 25 quit 26 end 1 confidence 5 For those not in the know confidence 5 eliminates the command list display and prompts. Since our project is in complete control of the communications session we don't need to see the command lists. 2 quiet on Project commands will not be displayed during project execution. 3 %1 ENTER FILE NAME YOU WISH TO DOWNLOAD Our project stops and asks the operator to type in the file name he/she wishes to download. The file name is stored in the parameter variable %1. 4 settings load PC-LIB The settings load command loads a previously writ- ten profile. In the profile the telephone number, baud rate, stop bits, duplex, and other information Smart needs in order to communicate with the computer at the other end, is stored. At the end of this article are the settings many bulletin boards use. They are enclosed so we can avoid discussing them now. 5 dial carrier number Dial is just that... dial. Carrier causes the com- puter to issue the carrier signal. Number means the default number contained in the settings already loaded. How are we doing so far? Still confused? I frequently use my wife as a sounding board for my explanations. She seemed to able to follow along so far. But sometimes she lies. 6 match "FIRST Name:" When the other computer answers it sends back in- formation that is displayed on our screen. The PC-Library logo appeared along with one or two short announcements. Then it asks "Enter your FIRST Name:". The "match" command does just that, it waits for a "match" (A PERFECT MATCH) to the text between the quotation marks. Notice I didn't have to match the entire sentence only the UNIQUE end of the sen- tence. The project waits until it can "match" the text, when it finds a match it moves on to the next line. 7 wait 1 Pauses 1 second. Sometimes the project will output so fast the other computer does not receive clearly. Insert- ing a "wait 1" between "match" and "output" slows things down just enough to help. 8 output "First name, Last name, password" Here "First name" is my first name, Doug. "Last name" would be Curtis and "password" is a secret. 9 match "continue ****" A few more messages appeared on the screen then the other computer sends the line..... "**** Press any key to continue ****" ...and waits for you to press any key to continue. 10 output chr (32); Presses any key. In this case it is the space bar. The semicolon is the instruction DO NOT issue a carriage re- turn with the output. Deleting the semicolon would have the effect of pressing return after pressing the space bar. 11 match "1 - 9 >" By now you should see how we move through the other computers menu structure. First we "match" the prompts they send, then we "output" a response that will move us to where we want to be. In this session I want to be in the Files Section so I.... 12 output 2; My wife just waved her hand in the air and left the room. So it looks like rough waters. 13 match "X,H,? >" The complete line looks like this: FILE -> Q,L,S,U,D,N,ND,G,X,H,? > But we need only "match" a UNIQUE part of the line. "X,H,? >" is unique enough. 14 output "D" "D" means download. By not including a semicolon a carriage return is sent after sending a "D". 15 match "Files(s)? ->" The bulletin board wants to know what file or files I wish to download. 16 output %1 Remember? We initialized %1 early on with the name of the file we wished to get. 17 wait 1 Slowing things up just a bit. 18 receive xmodem %1 This instructs Smart to receive the file being sent. 19 match "X,H,? >" The file has been successfully downloaded and the bulletin board now asks what we want to do next. We want to say good-bye so we... 20 wait 2 21 output "G" This may sound a little like eating and running, but remember, you can't be rude to a machine! 22 wait 2 We don't want to run out too fast. 23 hangup Just that. Hangup. 24 wait 2 25 quit Quits and exits. Originate Mode ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Name: PC Library ³ ³ Number: 435-3943 ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Modem Parameters ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ Modem: 4 ³ ³ Port: Serial-1 ³ ³ Speed: 1200 ³ ³ Data-length: 8 ³ ³ Parity: None ³ ³ Stop-bits: 1 ³ ³ Duplex: Full ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Next month: Integrating the Data-Manager with Communications. We will use a data base file created to hold the Master Index of files our local bul- letin board has available and combined with a project from Smart Tips, Trips, and Traps we will browse through the files, select something interesting and with just the press of the Return key our file will be automatically downloaded. All you will have to do is sit back and watch. **** Continued from last month **** PC-Library offers nearly four thousand titles of files and pro- grams for downloading to its users. An index of the files is contained in the file MASTER-D.ARC. Files are arranged by date. To use this in- dex with our Data-Manager we need to perform three tasks after down- loading. 1. Un-Archive the file. 2. Create a data base file such as the PC-LIB.DB. 3. Read the file MASTER-D.DIR into the data base. A note on ARCHIVED files: File transfer over phone lines can be time consuming. To speed up file transfer time the files are compressed, squeezed, crunched and made as small as possible. In the ARCHIVED form the files are not us- able so we UN-ARCHIVE them which un-compresses, un-squeezes, and un-crunches them back to their original size. The Master directory of nearly four thousand files on PC-Library bulletin board takes 23 min- utes to download. In its UN-ARCHIVED form it would take over twice as long. Because of this significant time savings nearly all files ob- tained from bulletin boards are ARCHIVE files and need to be UN-ARCHIVED. The program needed to perform this task is generally available on the same bulletin board you obtain ARCHIVED files from and can be downloaded. Un-archiving is a simple task. Using ARCE.COM Copyright (c) 1986-87 by Wayne Chin and Vernon d. Buerg, available on most bulletin boards, at the DOS prompt type: ARCE MASTER-D.ARC That's it! The MASTER-D.ARC file is Un-Archived into the file MASTER-D.DIR. After Un-archiving the MASTER-D.DIR file looks something like this: PC-CALC2 ARC 48572 04-23-84 Spreadsheet Part 2 of 2 PC-CALC1 ARC 81629 04-23-84 Spreadsheet Part 1 of 2 PCTOUCH ARC 11452 06-07-84 Improve your typing skills! CROSSREF ARC 73650 06-16-84 Basic cross referencing Program CASTLE ARC 67309 06-18-84 Best adventure game SYSOP has seen for PC! GSXXNUM ARC 47309 06-21-84 Unnumber and Renumber BASIC source code except it is nearly four thousand lines long! The data base we create needs to accommodate the data we have. Since the data is not separated with " " or , we need to use the Read-Fixed command to move the data into our data base. Since field [Name] is 9 characters in length, Read-Fixed will read the first 9 characters of each line into a record. [Ext] being 3 characters will read the next three characters. The remaining fields take their share of the data based on each fields length until the read reaches the end of the line and sees a Carriage Return then moves to the next record. By viewing the MASTER-D.DIR file with a ruler (such as the one in the Smart Word Processor) it is easy to count and add to determine how long each field needs to be to accommodate the data being read into it using the Read-Fixed command. Don't worry about [Name] being 9 characters in length. The 9th character in our field needs to hold the blank space between the name and the extension. In actual use Smart will delete unnecessary blank spaces in the field for us. PC-LIB.DB Field No Field Title Type Length Key Total Status 1 Name A 9 Y N 2 Ext A 3 N N 3 Size N0 11 N N 4 Date D 8 Y N 5 Description A 50 Y N Using the READ-FIXED-FIELDS [1;2;3;4;5] command moves the MASTER-D.DIR directory into our data base. Selecting KEY-ADD FIELD [1] creates a key field allowing us to organize by file Name. Later we will add the keys [Date] and [Description]. Many of you may recognize this next project. It's from Smart Tips, Tricks, and Traps. By Andrew Schwartz. Take note of lines 57 thru 59. Here when the return key is pressed to select a title, fields [1], file name field, and field [2], file extension, are combined with a period between the name and extension to form the complete DOS file name. For example if the pointer was pointing at the following line when we pressed Return: ÍÍ> PCTOUCH ARC 11452 06-07-84 Improve your typing skills! PCTOUCH would be combined with a "." and the Extension ARC to form PCTOUCH.ARC and initialized as %1. Now that we have initialized %1 as the file name we no longer need the line 3 %1 ENTER FILE NAME YOU WISH TO DOWNLOAD used in the communications project PC-LIB. To make the change in project file PC-LIB use the Remember Edit function to remove the line. Now create the following project: PROJECT FILE BROWSE 1 quiet on 2 repaint off 3 let %9 = chr(25) 4 let %8 = chr(24) 5 load PC-LIB screen standard 6 order key [1] 7 browse fields [1;2;3;4;5] 8 repaint on 9 repaint 10 label retry 11 menu clear box 22 1 23 80 0 1 no-border 12 menu print 1 2 14 1 Point to file you wish to\ 13 download then press Return. 14 menu print 1 65 14 1 ESC to exit 15 menu print 22 2 14 1 Enter = select 16 menu print 22 19 11 1 %8 = prev rec\ 17 Pg Up = previous screen Ctrl Home = first rec 18 menu print 23 10 14 1 record 19 menu print 23 19 11 1 %9 = next rec \ 20 Pg Dn = next screen Ctrl End = last rec 21 $key = inchar 22 if not ($key = 18432 or $key = 20480 or\ 23 $key = 13 or $key = 18688 or $key = 20736 or\ 24 $key = 30464 or $key = 29952 or $key = 26 27) 25 jump retry 26 endif 27 if $key = 18432 28 goto record previous 29 jump retry 30 elseif $key = 20480 31 goto record next 32 jump retry 33 elseif $key = 18688 and record - 20 > 0 34 %0 = record - 20 35 goto record rec-number %0 36 jump retry 37 elseif $key = 18688 and record - 20 <= 0 38 goto record rec-number 1 39 jump retry 40 elseif $key = 20736 and record +20 <= records 41 %0 = record +20 42 goto record rec-number %0 43 jump retry 44 elseif $key = 20736 and record + 20 >= records 45 %0 = record + 20 46 goto record rec-number %0 47 jump retry 48 elseif $key = 30464 49 goto record rec-number 1 50 jump retry 51 elseif $key = 29952 52 %0 = records 53 goto record rec-number %0 54 jump retry 55 elseif $key = 27 56 quit 57 elseif $key = 13 58 %1 = [1]|"."|[2] 59 jump communications project-file PC-LIB 60 endif We have reduced the long and sometimes tedious task of downloading a file to ONE step! But with nearly four thousand choices in titles finding what we are looking for takes too long. So, next month, we will enhance our project with an Input-screen offering Index selections such as: Use space bar or arrow keys to highlight subject Index. Then press Return. Menu Menu Programs Game Games and Entertainment Modem Communication Programs Tutorial Tutorials GIF Great Pictures Editor Text Editors Graphic Graphics Alpha Index listed Alphabetically Date Index listed by Date (Descending) Utility Utility Programs Printer Printer Utilities Select Select you own subject Index QUIT Also next month: Are you having problems with poor quality phone lines. Do your Xmodem file transfers have CRC errors. Learn how to use Ymodem and Ymodem batch (or almost any other communications protocol) within the Smart system. The following project line: 18 command /c dsz handshake both rb -y %1 which replaces: 18 receive xmodem %1 will be explained. See you next month. **** Continued from last month **** This month we are adding enhancements to our already created Project-file BROWSE. We will create several INDEX files from the PC-LIB data base and access these Indexes through an Input-screen. A special "Select" INDEX will QUERY and create an INDEX whenever we need an INDEX to search for items not found in our available Indexes. For example, if I wanted to find any memory resident calculators I would choose "Select" from the Input-screen. At the prompt "Enter search subject" I would type in "calculator". The project would QUERY for calculator, store the results in the INDEX SELECT, ORDER by INDEX SE- LECT, and display all records meeting the QUERY criterion. This was the result: ÍÍ>CALCULATE ARC 91008 08-18-85 A in-memory hidden calculator. GENLCALC ARC 33905 10-20-85 Calculator with memories. IRORC ARC 1795 12-12-85 INTRENAL RATE OF RETURN CALCULATOR. FFC4 ARC 19456 12-05-87 Resident four function Calculator. and 20 other calculators to choose from. We can easily find sev- eral calculators that look interesting. Input-screens and table selections spruce up projects and simplify operator use. The only bugaboo they have is that table selection does not support using the up and down arrow keys. And no matter what the screen says (use space bar), no one, including myself can resist the temptation to press an arrow key to move the highlighter. A macro can aid us here. Using Macro Define, define the up arrow key as +, the plus key. Define the down arrow as the -, minus key. Save the Macro definition using the name BROWSE. In our project file whenever we load our input-screen, load the Macro first. The project line following Input-screen load should be macro clear. Like this: 8 macro load BROWSE 9 Input-screen load BROWSE 10 macro clear Create this Input-screen. When defining the table use only 5 or 6 columns in width, the text will overflow OK. Make the target of input parameter 5, (%5). The table selections are; Menu, Game, Modem, Tuto- rial, GIF, Editor, Alpha, Date, Utility, Printer, Select, QUIT. The Index descriptions are text and not part of the table. When the Input-screen is loaded the highlighter should move from index to index, i.e.., from Menu to Game by pressing the space bar and the bottom of the screen should say Select for %5 (use space bar). Use space bar or arrow keys to highlight Index. Then press RETURN. Menu Menu Programs Game Games and Entertainment Modem Communications Programs Tutorial Tutorials GIF Great Pictures Editor Text Editors Alpha Index listed Alphabetically Date Index listed by Date (Descending) Utility Utility Programs Printer Printer Utilities Select Select your own subject Index QUIT Begin creating INDEX files by: Load PC-LIB screen standard, select KEY-ADD [4] DESCENDING. ORDER KEY [1] QUERY-NOW, [1] <> null, INDEX ALPHA ORDER KEY [4] QUERY-NOW, [1] <> null, INDEX DATE ORDER SEQUENTIAL Here are examples of QUERY definitions to use. After defining them run the QUERY PREDEFINED {query name} INDEX {index name} and build the INDEX'S as they are listed in the Input-screen above. The magic of QUERIES: Upper converts the field into upper case letters. ! Means contains. Stating our QUERY criterion as short as pos- sible returns the maximum number of records. If we Queried by "MENUS", plural, are INDEX would not contain any files containing "MENU", singu- lar. And we are looking at the [Description] field as well as the [Name] field. QUERY DEFINITION MENU upper([Name]) ! "MENU" or upper([Description]) ! "MENU" QUERY DEFINITION GAME upper([Name]) ! "GAME" or upper([Description]) ! "GAME" QUERY DEFINITION MODEM upper([Name]) ! "MODEM"or upper([Description]) ! "MODEM" or upper([Name]) ! "COMMUNICATIONS" or upper([Description]) ! "COMMUNICATIONS" Note the similarities in the above QUERIES. The following QUERY will be used when we choose "Select" from the Input-screen. It will QUERY by text stored in the parameter %6 and store the results in the INDEX SELECT. QUERY DEFINITION SELECT upper([Name]) ! upper(%6) or upper([Description]) ! upper(%6) Edit project file BROWSE. The completed project file should look like this: PROJECT FILE BROWSE 1 quiet on 2 repaint off 3 let %9 = chr(25) 4 let %8 = chr(24) 5 load pc-lib screen standard 6 label browse 7 repaint off 8 macro load browse 9 input-screen load browse 10 macro clear 11 if %5 = "QUIT" 12 quit 13 endif 14 if %5 = "Select" 15 %6 Enter search subject. 16 order sequential 17 query predefined select index select 18 endif 19 order index %5 20 browse fields [1;2;3;4;5] 21 repaint on 22 repaint 23 label retry 24 menu clear box 22 1 23 80 0 1 no-border 25 menu print 1 2 14 1 Point to file you wish to download \ 26 then press Return. 27 menu print 1 65 14 1 ESC back to menu 28 menu print 22 2 14 1 Enter = select 29 menu print 22 19 11 1 %8 = prev rec \ 30 Pg Up = previous screen Ctrl Home = first rec 31 menu print 23 10 14 1 record 32 menu print 23 19 11 1 %9 = next rec \ 33 Pg Dn = next screen Ctrl End = last rec 34 $key = inchar 35 if not ($key = 18432 or $key = 20480 or $key = 13 or \ 36 $key = 18688 or $key = 20736 or $key = 30464 \ 37 or $key = 29952 or $key = 27) 38 jump retry 39 endif 40 if $key = 18432 41 goto record previous 42 jump retry 43 elseif $key = 20480 44 goto record next 45 jump retry 46 elseif $key = 18688 and record - 20 > 0 47 %0 = record - 20 48 goto record rec-number %0 49 jump retry 50 elseif $key = 18688 and record - 20 <= 0 51 goto record rec-number 1 52 jump retry 53 elseif $key = 20736 and record +20 <= records 54 %0 = record +20 55 goto record rec-number %0 56 jump retry 57 elseif $key = 20736 and record + 20 >= records 58 %0 = record + 20 59 goto record rec-number %0 60 jump retry 61 elseif $key = 30464 62 goto record rec-number 1 63 jump retry 64 elseif $key = 29952 65 %0 = records 66 goto record rec-number %0 67 jump retry 68 elseif $key = 27 69 jump browse 70 elseif $key = 13 71 %1 = [1]|"."|[2] 72 jump communications project-file pc-lib 73 endif XMODEM is the communications protocol Smart uses. If you were to select RECEIVE you would be given two choices, TEXT-FILE or XMODEM. TEXT-FILE transfers are limited to TEXT only. If you wish to receive a program you need to use XMODEM. While XMODEM was the standard a few years ago, today much better transfer protocols are available and used. (i.e., YMODEM, ZMODEM, etc.) Most Smart users will not experience transfer problems using XMODEM, but many will. Poor quality telephone switching equipment can create havoc for your transfers. For those who do have transfer prob- lems, being restricted to XMODEM can be frustrating. But there is help! YMODEM is less susceptible to poor quality phone connections and has better error detection and correction capabilities than XMODEM. Although Smart does not directly support YMODEM or ZMODEM file trans- fers there are many ways Smart can use these protocols externally. DSZ.COM (c) Omen Technology, available on many bulletin boards is an XMODEM, YMODEM, and ZMODEM protocol transfer program that can be used by the Smart System. Writing a small project can automate the use of DSZ.COM. For example, replacing the line, 18 receive XMODEM %1 with 18 command /c DSZ.COM handshake both rb -y %1 ,in a communications project will access DOS and instruct DSZ.COM to receive a file transfer using YMODEM protocol. After file transfer is complete project execution will resume. Nifty, huh! If your communications session is manual, (you are not using a project), a macro invoking a short project file will accomplish the same task. 1. Define a macro for the key combination ALT R. Select MACRO Define, hold the ALT key and press the R key. Press F8, type in YMODEMR, press the RETURN key, press F10. Select MACRO SAVE. Use the file name DSZ. Viewing the macro you should see. Key Macro Definition ____________________________________________ ar | F8ymodemrCr | | 2. Select REMEMBER EDIT YMODEMR. Type in the following line: command /c DSZ.COM handshake both rb -y 3. goto command list 5. Select PARAMETERS. Automatic load of macro DSZ. DSZ is so nifty you don't even have to tell it the file name you are downloading. It obtains the file name from the sending computer. When you are in a communications session and wish to download using YMODEM protocol, Press F3, which returns you to the Status screen. Then hold the ALT key and press R. That's it! DSZ.COM must be in the current directory or a pathed directory. I copied DSZ.COM to the \SMART sub-directory. DSZ.COM will download to the current directory unless you specify a sub-directory. (i.e. 18 command /c DSZ.COM handshake both rb -y C:\SMART\CM\%1.) DSZ.COM usage instructions are included with the program. The au- thor suggests a $20 fee if you use the program. DSZ command parameters are not as easy to use as the Smart System transfer commands but, DSZ works when Smart doesn't! command /c DSZ.COM handshake both rb -y %1 command /c DSZ.COM 2 handshake both rb -y %1 for COM2 What it all means. command /c Smart system DOS access command. DSZ.COM DOS command to run the program. 2 The COM port your modem is using. DSZ defaults to COM1. So if your modem is connected to COM2 you must tell DSZ by inserting a 2. handshake both Handshaking is optional with Ymodem-Batch file transfers, but required with Ymodem-G and Zmodem. In otherwords, it doesn't hurt to handshake. rb Receive Ymodem-Batch. Batch allows you to receive more than one file. Since parameters, (i.e. %0, %1, etc), can hold up to 24 characters it is possible for you to type in two file names when initializing %1. I use Ymodem-Batch even if only downloading one file. You must tell the sending computer you are using Ymodem-Batch. When downloading from PC-Library using Ymodem-Batch, PC-Library prompts: Enter "YB" Before the file Name(s) For Ymodem BATCH Download What File(s)? -> So my project outputs "YB %1" or if my communications session is manual I type "YB WHEREIS.COM" to download the file WHEREIS.COM. I could have entered two file names also. (i.e., YB WHEREIS.COM DC105.ARC) And downloaded both. -y Overwrite old file if it exists. If you don't use this command DSZ will not transfer the file if the file already exists on the destination drive and direc- tory. %1 Smart parameter storing the file name we wish to download. The file name is optional with DSZ be- cause the sending computer sends the file name when it begins file transfer. There are many outstanding communications programs available to- day. Some of the better ones are shareware and available for download- ing from bulletin boards. I have access to most of them. So which one do I use? Smart Communications, of course. While Smart is pretty picky about modem support and does not provide protocol flexibility, it more than makes up for these short comings by providing the tools, through project processing, to customize. Other communications software supports advanced programming fea- tures ,similar to project processing, to automate downloading, etc. But the commands are so cryptic that writing even a very small program is just too darn time consuming. Here, see for yourself. ~ATZ{''''\$''''HI, I"'M MIKE Communications is important to me, but not important enough for me to have to learn, yet another, program language. And when I consider the advantages of integrating communications with a well organized data base, it is difficult to envision an easier way to connect with the outside PC world. If, after having read all this, you still have problems here is my telephone number (612) 545-5777. Calling too late or too early will get my answering machine. I am normally helpful, especially when it's your nickel! Douglas Curtis.