Z88 Stuff ref. file Z88Stuff.zip From: Ground ftp://ground.ecn.uiowa.edu/apple2/Collections/1WSW/ After downloading, unzip using WinZIP or a similar utility. Resulting file is Z88STUFF.SHK After transferring Z88STUFF.SHK to your Apple II or IIgs, unShrink using ShrinkIt or GS.ShrinkIt. This is a small collection of Cambridge Z88 files I have found of use to me overthe year's in working with the Z88 and my Apples/PC's: A couple of Term Programs, an archiver and a neat little Forth for the Z88. These file's won't be of any useto you, unless you have a Z88. The Z88 is real cheap now and are a great littlelaptop. Any question? I can be reached at be946@freenet.carleton.caJim AKA Simon ________ Includes Z88COM Z88COM.DOC -- DOCUMENTATION FOR Z88COM (Version 2.3) Phil Wheeler --- 28 Jan 1989 (rev. 11/21/89) ----------------------------------------------------- [NOTE: Z88COM will not work properly with Xon/Xoff enabled. So, if you are having problems, go to panel ([]S) and make sure you have selected no Xon/Xoff] Z88COM is a publically available (but NOT public domain) communications program for the Cambridge Z88. Restrictions are pretty simple: Download it, give it away, upload it to bulletin boards -- do anything but sell it. And -- my copyright notice must be included in all copies; otherwise, you may remove comments, etc. Modify code and borrow it if you like -- but do so at your own peril; machine code is pretty unforgiving! Z88COM supercedes Z88TRM, and is 2-3 times faster (all upload and download code is in machine language). But Z88TRM is the model and gives useful info on the flow of the program, so it will remain available. Z88COM works in conjunction with the built-in Terminal function of the Z88. It provides autodial and redial from a user-provided phone list (in a file named PHONE.LOG), and xmodem upload and download of any Z88 (binary or ASCII) file. PHONE.LOG is built to include the strings needed for auto-logon. Operation --------- Before going to Basic, or doing anything else, go to the Panel ([]S) and configure your serial port parameters to the baud rate of your modem (300/1200/2400 baud), no parity and no Xon/Xoff. Z88COM will not modify your comm parameters "on the fly" like many other comm programs -- sorry about that! In the case of Compuserve, for example, that means you will need to tell DEFALT (GO DEFALT) that you are logging in with no parity. I've been using CIS this way for years, and it presents no problems -- except you will have to decode graphics characters at logon if you do it manually. If you get Z88COM.CLI, you will need to load it to Basic (a fairly long process). After doing so, do SAVE"Z88COM.BAS". Of course, if you get 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. After LOADing Z88COM, type RUN. At this point, the most likely problem will be an absent or defective PHONE.LOG file; see below for how to prepare that file. The first thing you should see on your screen is "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. At the openning menu you can D)ial the phone, G)o to Terminal, E)xit to Basic, R)eceive a file, M)essage Upload, or S)end a file . First thing to do is dial. You can choose from five numbers in this version. Autodial supports Hayes compatible modems only; but, with this code in Basic, you can modify it to your own needs. Or you can go to Terminal and dial manually. Two users have pointed out to me that Z88COM as written will not autodial on a pulse dialing system. The fix is to modify line 530, replacing "ATDT" by "ATDP" (for Hayes-compatible modems). Connecting will take you right to Terminal, as will completion (or failure) of any main menu function. Terminal is pretty straightforward. When you need to get back to Z88COM's main menu to do an upload or download, just go to Basic (hit []B, the Square key and the B key), and you will go directly there. It's all pretty natural. One cautionary note: If you have any other Basic programs as Suspended Applications, you may go there instead! Best not have any other Basic applications suspended while using Z88COM. After you finish a download or upload, you will taken back to Terminal automatically. Typically, you may miss a bit of info on the screen due to the transition not being instantaneous; this depends on the Host computer. Usually hitting ENTER after returning to Terminal will repeat the missing information. Message upload is a new feature with Version 2.3. It will upload a Pipedream file, without linefeeds added, to a remote system. Line pacing is controlled by the parameter PACE in line 90. If you are sending too fast for the receiving system (a common problem when sending message to GEnie), just go to Basic and type '90 PACE=#', replacing # by the number of seconds you want between sending successive lines. Currently this function has been used successfully with the Z88 Support BBS, Compuserve and GEnie. On GEnie, you will need to set PACE=.5 or maybe even PACE=1 to avoid overunning the message buffer there. Because of the ECHO we need in GEnie (the ^R effect) you will also see a blank line echoed on your screen while sending there; it's normal and these blank lines are NOT going into the message. Z88COM is pretty well error trapped; but something may get by (e.g., subtle timing issues). If you get a long delay, just wait; most of these are covered by a timeout timer (which I have set to 15 seconds for Compuserve uploads). By the way, CIS uploads take a while to get started, since Compuserve has to send three C's (which takes it 20-40 seconds!) to figure out you are uploading in Checksum mode rather than CRC (not now included in this program). If you do escape from the program with a file open, there is virtually no way to kill or otherwise use that file without a Warm Reset; in that case you will lose all existing instantiations (suspended and active operations), but the directory files will remain intact. If the program detects a Fatal Error, it will tell you and then kill itself (that instantiation, not the directory copy). Creation of PHONE.LOG --------------------- Z88COM now provides a "dead-reckoning" type of auto-logon; that means it sends the logon string in the blind, without looking at the host's prompts. It does this with timing delays tailored to each system (see below). You can build a PHONE.LOG file from scratch or edit the sample I have 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 { Delay times are provided to allow for the host's delays between connecting and starting to send logon prompts, and to accommodate the delays between logon prompts. CIS tends to need long delays, other systems lower delays. the values in the file above work for me; you may need to experiment a bit. The PHONE.LOG file has two special characters. A left brace ({) causes a CR (carriage return) to be sent. It should be used to separate lines in the logon transaction, as in this system (First, Last, Y, password are on separate lines). A carat (^) tells the program to send the following character as a control character (^C, ^R, etc.); The letter MUST be upper case in this implementation. With GEnie, a ^R will make the system go full duplex (echo). It's pretty straightforward. One caution: It MUST be loaded and saved using the 'plain text' option of Pipedream. And you must have all five numbers, with dummies for some if you like (e.g., as in System Y and System Z above). Closing Comments ---------------- I think this program is pretty solid. Of course, it is difficult to simulate all the error conditions which can occur in an xmodem transfer. So please report all results -- good, bad or "Huh?" that you see. This program is a combination of Basic and machine code. It really demonstrates the power available in the Z88.