MODEM -- An XMODEM/CRC Terminal Program for the Model 200 Tom Jennings, Fido Software, Box 77731, San Francisco CA 94107 19 Apr 90 rev. 30 May 92 This skimpy document will have to suffice for now. More will come¨ later, maybe. At the end of this file is a complete list of the¨ files that comprise this package. If all you want is to run the¨ program, you only need MODEM.DO (and you are reading MDMDOC.DO!) ---------------- TO INSTALL MODEM.DO is a BASIC program provided as a .DO text file, that will generate MODEM.CO, the executable binary program. The problem of course is that you can't download anything but text files with TELCOM. MODEM.CO is about 1700 bytes long, which isn't all that large, but the Tandy 200 is pretty limited memory-wise. So you have to go through the following gyrations to create MODEM.CO from the MODEM.DO file. You need to do this from an empty or nearly empty memory bank. 1. Execute BASIC. Do: LOAD "MODEM.DO". This should take only a few seconds. 2. While in BASIC, do: SAVE "MODEM.BA". .BA files are slightly more compact than BASIC programs stored as text. This step is also fast. 3. Return to the main Menu (F8). You should see the file MODEM.BA you just saved. Delete MODEM.DO. (We need the memory!) 4. Run MODEM.BA now. It should say "Loading, wait...", about 10 seconds later, "Saving as MODEM.CO" then you should see the familiar "Ok". F8 to the menu. 5. Done. You can delete the MODEM.BA file. MODEM.CO is the modem program. ---------------- USING MODEM.CO Simply run it from the main menu. If it doesn't load but just¨ beeps at you, you don't have to reload it; in BASIC do: CLEAR 0,59392 And try again. If you get ?OM ERROR, you ran out of memory! When you run MODEM, it uses the settings from the last time you¨ used TELCOM or MODEM, except that MODEM will not do HALF DUPLEX,¨ and PARITY is always IGNORE. (SEE BUG LIST) ---------------- Function Keys F1/DISC Disconnects the modem, if online. No effect if RS232 is selected¨ or not online. F2/DIAL Selects the internal modem at 300 baud, and dials the number you¨ enter. The beige cord should be plugged into the telephone line;¨ the telephone set does not need to be connected, unlike TELCOM. Dialing with MODEM is far simpler than TELCOM. MODEM will dial the phone, and wait for a connection, forever if¨ necessary; you must abort the attempt with F1/DISConnect. F3/CAPT CAPture is more or less the same as TELCOMs "DOWNLOAD".¨ Everything you see on your screen *after* you start a CAPTure is¨ saved in the file you specify. CAPTure is stopped when you¨ press F3 again, or automatically when you exit to the main menu. F4/BAUD You can choose the modem (always at 300 baud) or the RS232 port¨ at the specified baud rate. Though the prompt shows only 300,¨ 1200, 2400 and 9600, you can enter any of the selections in¨ TELCOM. MODEM remembers the current settings in the same place that¨ TELCOM does; if you use one setting exclusively you won't have to¨ set it. (SEE BUG LIST) F5/RECV Receive (download) a file using XMODEM, from the remote¨ computer/BBS to your Tandy 200. To download a file from a BBS,¨ start the download on the BBS first; when the BBS says it is¨ ready to start, then press F5, enter a filename, and the download¨ will start. Pressing BREAK or Control-C during an XMODEM transfer will abort. The file name does not (and if the original name doesn't fit in 6¨ characters, cannot!) have to be the same file name. If a file of the same name already exists on your Tandy 200, then¨ MODEM will ask "Overwrite (Y,N)". "N" will abort the command¨ immediately; "Y" will delete the file, and create a new, empty¨ one. F6/SEND Send (upload) a file using XMODEM or XMODEM/CRC, from your Tandy¨ 200 to the remote computer/BBS. The process is the same as above;¨ get the remote computer started first, and when it is ready,¨ press F5 and enter the name you want to use for the file you are¨ about to send. F7 Not used (yet). F8\MENU Guess. ---------------- Files Included/Available MDM200.DO Creates a MODEM.CO when run on your '200 MDMDOC.DO This file MODEM.DO ROM2/ASM source, with full comments (too large to fit in a Tandy 200!) MODEM.OUT ROM2/ASM source, stripped of comments, to fit in Tandy 200. SCRUNCH.EXE An MSDOS program that strips comments assembly language programs so they will fit in a Tandy 200! ---------------- Assembly Language Environment Basically, MODEM is a single source file, MODEM.DO, you do a¨ CLEAR 0,59392 like it says at the start of the file, and assemble¨ it. One slight problem is that MODEM.DO is larger than the 200's¨ memory. So I wrote a SCRUNCH program that strips off all comments¨ and blank lines, and the resulting file, about 8K, fits quite¨ nicely. I edit MODEM.DO on my IBM, SCRUNCH it to the compact¨ MODEM.OUT, and XMODEM that to the 200. Here's how I do it, on my 200 with Traveling Software's ROM2. 1. Edit MODEM.DO on the IBM. 2. Scrunch it: SCRUNCH MODEM. Produces MODEM.OUT 3. Launch MODEM or TELCOM a. If MODEM, just F5 and receive file "MODEM". b. If TELCOM, STAT 58N1ENN, F2/Download "MODEM". 3. Launch BASIC. a. The first time, CLEAR 0,59392 (or whatever the comment in MODEM.DO says) 4. CALL 921,2 (invoke ROM2) 5. Enter "ASM MODEM" at the prompt 6. (you deal with errors, etc) 7. Remember last address displayed. Convert to decimal. 8. SAVEM"MODEM",59392,xxxx,59392 (where xxxx is the last address, in decimal.) 9. Now you've got a MODEM.CO in your 200. ---------------- Known Bugs and Annoyances Bugs: F4/BAUD doesn't remember current-settings, but always starts up¨ in 2400 baud. Annoyances: F2/DIAL doesn't do touch-tone; speaker is off, and phone¨ disconnected, so you cannot hear call progress. Annoying if it¨ doesn't connect right away. I don't have any modem information. F3/CAPT doesn't "light up" in use. (ie. F3 key not in reverse¨ video.) F5/RECV XMODEM receive is always done checksum, not CRC. The¨ problem is user-interface, ie. I didn't want to make MODEM ask¨ crc vs. checksum, which most people (rightly) don't know nor care¨ about. Sorry CRC fanatics, but rather thorough analysis (and a few¨ 100,000+ hours stats) indicates that the REAL WORLD (not¨ calculator) error rate for CRC vs. checksum simply isn't that¨ high. Line errors are nearly-never single- nor double-bit; they¨ are burst errors, and trash a dozen or more bytes at a time (more¨ at higher baud rates), so in practice, the proverbial "flipped¨ two bits" that would sneak by XMODEM/checksum simply don't exist. ---------------- Thanks to Tracy Allen for his help and the CO2BA loader for the¨ Tandy 200!