%OP%JUY %OP%TM2 %OP%BM2 %OP%LM5 %OP%HE/%H2%Z88 Users' Club Software Library %CO:A,12,72%%H1%%H2%Z88COM.DOC -- DOCUMENTATION FOR Z88COM (Version 2.3) Phil Wheeler --- 28 Jan 1989 (rev. 2/7/89) %JL%Z88COM is a publically available (but NOT public domain) communications %JL%program for the Cambridge Z88. Restrictions are pretty simple: %JR%Download it, give it away, upload it to bulletin boards -- do anything %JL%but sell it. And -- my copyright notice must be included in all %JR%copies; otherwise, you may remove comments, etc. Modify code and %JL%borrow it if you like -- but do so at your own peril; machine code is pretty unforgiving! %JR%Z88COM supersedes Z88TRM, and is 2-3 times faster (all upload and %JL%download code is in machine language). But Z88TRM is the model and %JR%gives useful info on the flow of the program, so it will remain available. %JR%Z88COM works in conjunction with the built-in Terminal function of the %JL%Z88. It provides autodial and redial from a user-provided phone list %JR%(in a file named PHONE.LOG), and xmodem upload and download of any Z88 %JR%(binary or ASCII) file. PHONE.LOG is built to include the strings needed for auto-logon. %H1%Operation %JR%Before going to Basic, or doing anything else, go to the Panel ([]S) %JL%and configure your serial port parameters to the baud rate of your %JR%modem (300/1200/2400 baud), no parity and no Xon/Xoff. Z88COM will not %JL%modify your comm parameters "on the fly" like many other comm programs %JR%-- sorry about that! In the case of Compuserve, for example, that %JL%means you will need to tell DEFALT (GO DEFALT) that you are logging in %JR%with no parity. I've been using CIS this way for years, and it presents %JL%no problems -- except you will have to decode graphics characters at logon if you do it manually. %JR%If you get Z88COM.CLI, you will need to load it to Basic (a fairly long %JL%process). After doing so, do SAVE"Z88COM.BAS". Of course, if you get %JR%Z88COM.BAS directly (e.g., with Z88TRM.BAS in your Z88 or by using a desktop machine and PC-LINK), this step will be eliminated. %JR%After LOADing Z88COM, type RUN. At this point, the most likely problem %JL%will be an absent or defective PHONE.LOG file; see below for how to %JR%prepare that file. The first thing you should see on your screen is %JL%"Loading M/L code .... ". This is needed only once, so long as you do nothing to exit the program; if you do exit, just RUN again. %JL%At the opening menu you can D)ial the phone, G)o to Terminal, E)xit to %JR%Basic, R)eceive a file, M)essage Upload, or S)end a file . %JL%First thing to do is dial. You can choose from five numbers in this %JL%version. Autodial supports Hayes compatible modems only; but, with %JR%this code in Basic, you can modify it to your own needs. Or you can go to Terminal and dial manually. %JL%Connecting will take you right to Terminal, as will completion (or failure) of any main menu function. %JL%Terminal is pretty straightforward. When you need to get back to %JR%Z88COM's main menu to do an upload or download, just go to Basic (hit %JL%[]B, the Square key and the B key), and you will go directly there. %JL%It's all pretty natural. One cautionary note: If you have any other %JR%Basic programs as Suspended Applications, you may go there instead! %JL%Best not have any other Basic applications suspended while using Z88COM. %JL%After you finish a download or upload, you will taken back to Terminal %JR%automatically. Typically, you may miss a bit of info on the screen due %JL%to the transition not being instantaneous; this depends on the Host %JR%computer. Usually hitting ENTER after returning to Terminal will repeat the missing information. %JR%Message upload is a new feature with Version 2.3. It will upload a %JR%Pipedream file, without linefeeds added, to a remote system. Line %JL%pacing is controlled by the parameter PACE in line 90. If you are %JR%sending too fast for the receiving system (a common problem when %JL%sending message to GEnie), just go to Basic and type '90 PACE=#', %JR%replacing # by the number of seconds you want between sending %JL%successive lines. Currently this function has been used successfully %JR%with the Z88 Support BBS, Compuserve and GEnie. On GEnie, you will %JL%need to set PACE=.5 or maybe even PACE=1 to avoid overrunning the %JR%message buffer there. Because of the ECHO we need in GEnie (the ^R %JL%effect) you will also see a blank line echoed on your screen while %JR%sending there; it's normal and these blank lines are NOT going into the message. %JR%Z88COM is pretty well error trapped; but something may get by (e.g., %JL%subtle timing issues). If you get a long delay, just wait; most of %JR%these are covered by a timeout timer (which I have set to 15 seconds %JL%for Compuserve uploads). By the way, CIS uploads take a while to get %JR%started, since Compuserve has to send three C's (which takes it 20-40 %JL%seconds!) to figure out you are uploading in Checksum mode rather than CRC (not now included in this program). %JL%If you do escape from the program with a file open, there is virtually %JR%no way to kill or otherwise use that file without a Warm Reset; in that %JL%case you will lose all existing instantiations (suspended and active %JR%operations), but the directory files will remain intact. If the %JL%program detects a Fatal Error, it will tell you and then kill itself (that instantiation, not the directory copy). %H1%Creation of PHONE.LOG %JR%Z88COM now provides a "dead-reckoning" type of auto-logon; that means %JR%it sends the logon string in the blind, without looking at the host's %JL%prompts. It does this with timing delays tailored to each system (see below). %JL%You can build a PHONE.LOG file from scratch or edit the sample I have %JL%uploaded. The structure is 5 groups, as below. Note that items following a < symbol are comments and not to be included in the file. Torrance Z88 BBS < BBS name 370-2754 < Phone number (with prefix as needed) 2 < Number of chars (20h) at connect (for handshaking) 1 < Delay from last char to log on string in seconds 1 < Delay between lines in logon string Phil{Wheeler{Y{pwd{ < Log on string; '{' means return (CR) Torrance CIS Node \ 'pwd' is the password you use 542-4311 0 < No initial chars for CIS 2 < CIS needs longer delays here 3 < and here CIS{71266,125{PASS*WORD{GO M100SIG{ GEnie L.A. 513-6893 1 5 0 < one line for GEnie, so no delay here needed ^RXTA13393,PASSWORD,655{ < ^R will cause a CONTROL R to be sent to System Y \ make GEnie echo 1-206-555-5555 1 2 1 { System Z 555-5555 1 2 1 { %JL%Delay times are provided to allow for the host's delays between %JR%connecting and starting to send logon prompts, and to accommodate the %JL%delays between logon prompts. CIS tends to need long delays, other %tems lower dela the ves in thele k for me;u may need to experiment a bit. %JL%The PHONE.LOG file has two special characters. A left brace ({) causes %JR%a CR (carriage return) to be sent. It should be used to separate lines %JL%in the logon transaction, as in this system (First, Last, Y, password %JR%are on separate lines). A carat (^) tells the program to send the %JL%following character as a control character (^C, ^R, etc.); The letter %JR%MUST be upper case in this implementation. With GEnie, a ^R will make the system go full duplex (echo). %JR%It's pretty straightforward. One caution: It MUST be loaded and saved %JL%using the 'plain text' option of Pipedream. And you must have all five %JR%numbers, with dummies for some if you like (e.g., as in System Y and System Z above). %H1%Closing Comments %JR%I think this program is pretty solid. Of course, it is difficult to %JR%simulate all the error conditions which can occur in an xmodem %JL%transfer. So please report all results -- good, bad or "Huh?" that you see. %JL%This program is a combination of Basic and machine code. It really demonstrates the power available in the Z88. Phil Wheeler -- 2/5/89 %CO:B,12,60%%CO:C,12,48%%CO:D,12,36%%CO:E,12,24%%CO:F,12,12%