MODEM -- An XMODEM/CRC Terminal Program for the Model 200 Tom Jennings, Fido Software, Box 77731, San Francisco CA 94107 19 Apr 90 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 MDM200.DO (and you are reading MDMDOC.DO!) ---------------- TO INSTALL MODEM comes packed in a BASIC program, so that you can download with TELCOM. To install, simply run MDM200 from BASIC: RUN "MDM200" This will create "MODEM.CO". You can delete MDM200.DO now, (presumably you'll save a copy on tape or disk in case you have to do it again...). ---------------- 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 can only run in 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 silver cord should be plugged into the telephone line; the telephone set does not need to be connected, unlike 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 disk file you specify. CAPTure is stopped when you press F3 again, or automatically when you exit to the main menu. F4/BAUD How you 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 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 9600 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. 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 XMODME/checksum simply don't exist. ---------------- Thanks to Tracy Allen for his help and the CO2BA loader for the Tandy 200!