Chameleon Terminal Emulator Version 4.03 User's Guide 17 November 1984 (C)1984 John Howard Palevich 1. Introduction 1.1 Overview Chameleon converts your Ataricomputer into a powerful computerterminal. It emulates six terminals:"Glass TTY" (that is, a video terminal with the same features as a printing terminal), Lear Siegler's ADM-3A,Digital Equipment Corporation's VT-52,a non-standard extension to the VT-52 called the VT-52XL, the IBM 3031 ASCII terminal, and a Test terminal, useful for debugging. For every terminal type besides Test, Chameleon supportstab,backspace, line feed, form feed, and a visual bell signal. For the Glass TTY it supports word-wrapping. For the ADM-3A, the VT-52, and the VT-52XL, it also supports cursor addressing and basic editing features. For the VT-52XL, it supports character and line insert and delete, as well as reverse video. A termcap entry is provided for use with unix operating systems. Chameleon doesn't support the special graphics character set of the VT-52 or some rarely used ADM-3A features. Chameleon's major features are: 1. a 24-line, 40-, 80-, or 132-column character display (displaying 40 columns at a time) with a cursor lock feature for automatic horizontal scrolling 2. a buffer that saves up to nine previous pages of text 3. continuous communications at baud rates of 75 to 1200 baud and non-continuous (requires flow control) communication at rates of 1800 to 9600 baud 4. selectable parity 5. a BREAK signal 6. the full ASCII standard character set 7. selectable duplex 8. the ability to copy text from the screen and the previous page buffer to a file 9. the ability to transfer files between the Atari and most other computers, using either flow controlled, Modem, or Kermit protocols 10. using one of the supported modems, the ability to automaticly dial any of sixteen stored phone numbers, and to keep dialing numbers until a carrier tone is detected 11. a ram-resident disk utiltiy program, allowing most of the functions provided by the DOS 2 menu 1.2 Required Accessories - 48K RAM - a disk drive - at least one of the following: * Atari 850 Interface Module, and a standard RS-232C modem * Atari 835 Modem * Atari 1030 Modem * Atari 1450 computer (which contains a modem) 1.3 Optional Accessories - With the Atari 850, a Hayes Smartmodem, or other Hayes compatable modem - Printer 1.4 Contacting the Author Users wishing to contact the author about Chameleon way write to him at: John H. Palevich 175 Calvert Drive #F211 Cupertino, CA 95014 2. Getting Started 2.1 Attaching an RS-232C Device to the Interface Module If you are using an Atari 850, rather than one of the standard Atari modems, you will have to attach your RS-232C device to the Atari 850. Chameleon talks to Port 1 of the Atari 850. (This is the default behavior -- you can use the R: Device menu line to make Chameleon talk to any one of the four ports.) Only "Transmit Data", "Receive Data", and "Ground" need to be connected. "Data Terminal Ready" and "Request to Send" are set high (+12V = true) when Chameleon starts. This is done as a convenience to devices requiring these signals. Chameleon ignores all other signals. 2.2 Loading Chameleon into Computer Memory To load Chameleon into computer memory: 1. Remove all cartridges from your Atari computer. 2. Make sure all equipment is turned off. 3. Turn on all your peripherals. 4. When the BUSY light goes out on yur disk drive, open the disk drive door and insert the Chameleon diskette with the label in the lower right hand corner nearest to you. 5. Turn on your computer and TV screen and wait until Chameleon's device menu appears. 2.3 Chameleon's Device Menu Chameleon can talk to a number of Atari devices, but it has to know which one it should use. The first thing Chameleon will do is ask you which device to use. Below is an illustration of the device menu, which is the first screen you will see the first time you run an un-modified copy of Chameleon 4.0. If your copy of Chameleon has been customized (by using command Z from the utilities menu), Chameleon will try to use the device you specified in the Z command. If you have never used the Z command, or if that device doen't exist, you'll get this screen: Chameleon Terminal Emulator version 4.0 (c) 1984 John Howard Palevich ------------------------------------- 0 - no device (demonstration mode) 1 - Atari 850 with any modem 2 - Atari 850 with Hayes Smartmodem (or compatible modem) 3 - Atari 835 modem 4 - Atari 1030 modem 5 - Atari 1450 internal modem ------------------------------------- Which device to use (0-5)? _ ------------------------------------- Figure 2-1: Device Menu Screen You should type in the number of the device you want to use (or 0 if you don't have any device, but still want to investigate Chameleon). Then press the RETURN key. Chameleon will try to find the specified device. If it can, you will shortly see the main menu screen. Otherwise, you will be told that Chameleon failed to find the device, and you will be asked for another device. If this happens, make sure that your communications device is plugged in to the wall, connected to your Atari, and turned on! 3. The Main Menu 3.1 The Main Menu Keys After Chameleon finds a communications device, it presents you with its main menu. This is the menu which lets you control Chameleon's actions. It looks like this: Chameleon (c)1984 John H. Palevich ------------------------------------- ->Terminal Glass TTY Back S is CTRL-H Left Margin 2 Line Length 80 Cursor Free Scroll Smoothly File Transfer Protocol None File Name File Type Text Dialing Method Pulse Modem Mode Originate R: Device 1 Baud Rate 300 Parity None Duplex Full Flow Control ^S/^Q ------------------------------------- OPTION -move cursor to next parameter SELECT -change parameter's value START -begin terminal emulation D - dial a number U -utility menu P - pick up phone H -hang up phone S - save options R -restore options CTRL-Q - quit Chameleon Figure 3-1: Main Menu Screen 3.1.1 Selecting an item -- OPTION key Each time you press the OPTION key, the arrow moves down one line so that you can select the next item in the menu. You return to the first menu item after reaching the last one. You can also reverse the order by holding down the SHIFT key while pressing the OPTION key, which causes the arrow to move to the previous menu item. With this method, you return to the last menu item after reaching the first one. 3.1.2 Selecting a value for an item -- SELECT key Each time you press the SELECT key, a new value displays for the current menu item. Again, to reverse the order, hold down the SHIFT key while pressing the SELECT key, which causes the previous value to display. 3.1.3 Entering a file name The "File Name" line of the menu displays the file currently selected for file transfer operations. When you press the SELECT or SHIFT-SELECT keys, a blinking cursor replaces the old file name. Type in your new file name, using the BACK S key to correct any errors. Press RETURN to remove the cursor. If you always keep the "File Transfer Protocol" set to "None", then you can safely ignore the "File Name" line. 3.1.4 Moving to terminal mode -- START key Press the START key to move from the main menu to the terminal mode. See the chapter on terminal mode for details. 3.1.5 Dial a number -- D If you have an Atari 835, 1030, 1450, or hayes Smartmodem compatable modem, Chameleon can dial the other computer's number for you. Type D from the main menu to go to the dial menu. See the chapter on the dial menu for more information. 3.1.6 Utility menu -- U Chameleon will let you perform many of the functions of the DOS-II DUP program from within Chameleon. Type U from the main menu to go to the utility menu. See the chapter on the utility menu for more information. 3.1.7 Pick up the phone -- P If you have an Atari 835, 1030, 1450, or Hayes Smartmodem compatable modem, and you have manually dialed another computer, typing P in the main menu will make Chameleon pick up the phone line and attempt to establish communications with the other computer. If, after thirty seconds, Chameleon hasn't established communication, it will hang up the phone and return to the main menu. Type Q to quit waiting for the other computer before the thirty seconds are up. If Chameleon does establish communication, it will enter terminal mode. 3.1.8 Hang up the phone -- H If you have an Atari 835, 1030, 1450, or Hayes Smartmodem compatable modem, and you wish to terminate a phone connection with another computer, type H in the main menu. Chameleon will hang up the phone and return to the main menu. Hayes Smartmodem compatable modems take up to ten seconds to do this. If you get impatient, you may type Q to return to the main menu. 3.1.9 Save the main menu settings -- S Chameleon can save the current menu item settings in a disk file called LIZARD40.OPT. Current menu settings may be saved any time you are in the main menu. Just insert a DOS-II formatted writable disk in drive 1 and press the S key. Every menu item except the File Name will be saved into the file D:LIZARD32.OPT. 3.1.10 Restore the main menu settings -- R Saved menu settings may be restored any time you are in the menu. Just insert a DOS-II formatted disk containing the LIZARD40.OPT file into drive 1 and press the R key. Chameleon will try to read the saved options out of D:LIZARD40.OPT. If the file does not exist, or cannot be read, then Chameleon uses its standard defaults. If the file is read correctly, then menu items (except for the file name) are set to the stored values. Chameleon tries to read in the stored defaults when it is booted. This makes it easy to customize Chameleon to your application. 3.1.11 Quit Chameleon -- CTRL-Q Typeing CTRL-Q from the main menu will exit Chameleon and return you to DOS. If you are using an 850 and DOS 2.0, you must power-cycle your Atari before running Chameleon again. (Because DUP.SYS writes over the R: drivers.) 3.2 Menu Items 3.2.1 Terminal Use the first item to select the kind of terminal you want to emulate. Your choices are: Glass TTY This value simulates a typical printing terminal with tabs every eight columns, line feed, form feed, backspace, carriage return, and a visual bell signal. In addition, words typed at the end of the line are wrapped ont the next line, making it easier to read text formatted for very long lines. Glass TTY is sophisticated enough to be used with many computer installations. However, it isn't sufficient for time- sharing computers capable of sending special characters for cursor control, character editing, and so on. Select one of the video terminal values to communicate with such computers. VT-52 This value simulates the DEC VT-52 terminal, except for the keypad and the special graphics character set. Chameleon doesn't support the Enable Graphics and Disable Graphics commands. Normal mode lowercase characters print in place of graphics. While the alternate keypad mode isn't supported, you may type sequences from the following table to emulate the keypad: Key Normal Appl. 0 0 ESC ?p 1 1 ESC ?q 2 2 ESC ?r 3 3 ESC ?s 4 4 ESC ?t 5 5 ESC ?u 6 6 ESC ?v 7 7 ESC ?w 8 8 ESC ?x 9 9 ESC ?y - minus ESC ?m , comma ESC ?l . period ESC ?n ENTER RETURN ESC ?M up ESC A ESC A down ESC B ESC B right ESC C ESC C left ESC D ESC D blue ESC P ESC P red ESC Q ESC Q grey ESC R ESC R Table 3-1: VT-52 Alt. Keypad Mode VT-52XL This terminal is just like a VT-52, except that four additional escape sequences have been defined to aid editing. See the chapter on character and contol codes for more details. ADM-3A This value simulates a Lear Siegler ADM-3A terminal. It supports Option A (24 lines) and Option No. 1 (lowercase characters). However, it won't beep when the cursor crosses the 72nd character position. IBM 3031 Chameleon will emulate an IBM 3031 mainframe terminal is this mode. Basically, in 3031, it's a Glass TTY with half duplex, and the Kermit protocol checks this value to determine if you are talking to an IBM mainframe. Test Characters sent to the screen while Chameleon is in Test mode are printed as is. None of the control characters (even CR) are treated specially. When the cursor reaches the right margin, it moves down to the next line. When the cursor reaches the bottom of the screen, it scrolls the whole screen upward one line. thus, the last several thousand characters sent to Chameleon will be visible on the screen. This mode is useful for debugging new time-sharing systems because it lets you find all padding characters (like nulls and rub outs) or other control characters the other system might be sending you. 3.2.2 Back S is This item controls which character is sent to the other computer when you type the BACK S key. The choices are: CTRL-H This choice sends an ASCII BS (8) when you type the BACK S key. To get RUB you type SHIFT-BACK S. RUB OUT This choice sends an ASCII RUB (127) when you type the BACK S key. To get BS you type CTRL-H. 3.2.3 Left Margin many TV sets overscan. making the left two character positions of the screen un-readable. This item lets you select your left margin. Your choices are: 0 This choice lets you see a full forty characters across. 1 This choice gives you a one character margin. 2 This choice gives you a two character margin (like BASIC). 3.2.4 Line Length The line length of Chameleon can be adjusted to suit your preferences. The choices are 40, 80, and 132 characters long. 3.2.5 Cursor This item controls the behavior of the cursor. There are two ways the cursor can behave: Free The cursor is free to travel off the screen. On Screen The cursor is forced to remain on the screen at all times. On Screen is useful for editing text when the line length is set to 80 or 132. 3.2.6 Scroll When Chameleon does a line feed at the bottom of the screen, it has to move the text up one line, to make room for the new line. It can move the text up in two different ways: Smoothly which takes about an eighth of a second, but looks pretty. Coarsly which takes almost no time at all, but looks ugly. 3.2.7 File Transfer Protocol This item controls which type of file transfer Chameleon will do. See the chapter on transfering files for more information. The choices are: None No file transfer is selected Snapshot Transfer characters from the screen to an Atari device Send Transfer characters from an Atari device to another computer Receive transfer characters from the other computer to an Atari device Modem Send Transfer files from an Atari device to another computer using the MODEM2 protocol Modem Receive Transfer files from another computer to an Atari device using the MODEM2 protocol Kermit Send Transfer files from an Atari device to another computer using the Kermit protocol Kermit Receive Transfer files from another computer to an Atari device using the Kermit protocol 3.2.8 File Name The file transfer modes need a file name. If you have "File Transfer Protocol" set to "None", you needn't consider this line. Pressing the SELECT or SHIFT-SELECT keys for this item causes a blinking cursor to appear. Type in the name of the file you want to use. use the BACK S key to correct typing mistakes. Type RETURN to finish entering the file name. See the chapter on transfering files for more information. 3.2.9 File Type Use this type to tell Chameleon what kind of file you play to transfer. Chameleon needs this information to decide waht to do with end-of-line and tab characters. The choices are: Text This choice tries to map ASCII CR/LF to ATASCII EOL, and ASCII TAB to ATASCII TAB. During sending, EOL is converted to CR. During receiving, CR is converted to EOL and LF is ignored. Use this mode when transfering text files between your computer and another brand of computer. Binary In this choice, all characters are sent and received as is. Use this mode when transfering text files between your computer and another Atari computer, or when transfering non-text files between your computer and any other computer. 3.2.10 Dialing Method If you have an Atari 1030, or Hayes Smartmodem compatable modem, you can choose which dialing method to use when auto-dialing. The other modems that Chameleon supports can only pulse dial. Pulse use pulse dialing (which is universal) Tone use pone dialing (which is faster) 3.2.11 Modem Mode If your have an Atari 835, 1030, 1450, or Hayes Smartmodem compatable modem, you can choose to set your modem's communication mode. In any modem based communication, one of the modems must be set in originate mode, and the other in answer mode. Originate This mode is used to communicate with most time-sharing systems, bulliten boards, etc.. Answer This mode is used to communicate with another computer which has it's modem in orginate mode. 3.2.12 R: Device If you are not using an Atari 850 Interface Module, you may ignore this item. If you are using an 850, this item selects which of the four RS-232C ports Chameleon will use for communication. Most people use only port number one, but the choices are 1, 2, 3, or 4. 3.2.13 Baud Rate Use this item to select the baud (data transmission) rate. The values are in bits per second. Consult the manual or authorities for the system you're using for appropriate baud rates. Continuous transmission choices are: 75, 110, 134.5, 150, 300, 600, or 1200 baud. Non- continuous transmission (i.e. you'll need flow control, or you'll lose characters) is available at 1800, 2400, 4800, and 9600 baud. 3.2.14 Parity Use this item to select the kind of parity check sent from Chameleon to the other computer, and the kind of parity Chameleon expects from the other system. Consult the manual or authorities for the system you're using. None There is no parity bit; all eight bits of the character are considered to be data. Odd Characters are sent with odd parity. Received parity is ignored. Even Characters are sent with even parity. Received parity is ignored. Off Characters are sent with the parity bit set to zero. Received parity is ignored. 3.2.15 Duplex Use this item to control where the characters you type are sent. Full Keyboard characters go to the other system. Half keyboard characters go to both the other system and the screen. Use this mode to talk to systems requiring half duplex. 3.2.16 Flow Control This item selects the way in which Chameleon controls the flow of data between itself and the other computer. The choices are: None which means that the other computr has no means of flow control. When None is selected, the File Transfer Protocol modes send and receive, and baud rates in excess of 1200 baud, will probably lose characters. ^S/^Q Which means that the other computer will stop sending when it receives an ASCII XOFF(^S, code 19) and resume sending when it receives an ASCII XON(^Q, code 17). When Chameleon is Sending a file, it will pause on a ^S/^Q pair sent by the other computer. Echo Echo acts just like None, except during Sending, when Chameleon waits for the character sent to the other computer to come back (or "echo"). THis mode is designed to allow sending text to slow time sharing systems that do not support the ^S/^Q protocol. If a character doesn't echo within one quarter of a second, then the sending continues anyway. Short Delay Acts just like None, except during Sending, Modem Sending, Kermit Sending and Kermit Receiving, when it inserts a 1/60th of a second delay between each character sent to the other computer. This delay allows slow computers enough time to process each character. Medium Delay Acts just like Short Delay, except the delay is for 1/15th of a second. Long Delay Acts just like Short Delay, except the delay is for 1/4th of a second. If the other computer still can't keep up, and Echo mode doesn't work either, then you might as well type the information in by hand! 3.3 Example: Settings for Communication with Compuserve If you want to call ComuServe, or MicroNET through CompuServe, your settings typically would be a follows: Terminal Glass TTY Back S is CTRL-H Left Margin 2 Line Length 80 Cursor Free Scroll Smoothly File Transfer Protocol None File Name File Type Text Dialing Method Pulse Modem Mode Originate R: Device 1 Baud Rate 300 Parity Even Duplex Full Flow Control ^S/^Q Figure 3-2: Typical Main Menu 4. Dial Menu Chameleon uses the dial menu to automaticly dial a computer's phone number for you. You must have either an Atari 835, 1030, 1450, or Hayes Smartmodem compatable modem for the dial menu to work. To get to the dial menu, type D from the main menu. The dial menu looks like this: Computer Name (baud rate) # 555-1212 -------------------------------------- -> ------------------------------------- ------------------------------------- OPTION - move cursor to next number SELECT - enter new number START - dial number A - dial all numbers S-save numbers R- restore numbers ESC - go back to main menu Figure 4-1: Dial Menu Screen 4.1 Dial Menu Keys 4.1.1 Selecting an item -- OPTION key Each time you press the OPTION key, the arrow moves down one line so that you can select the next phone number in the menu. You return to the first phone number after reaching the last one. You can also reverse the order by holding down the SHIFT key while pressing the OPTION key, which causes the arrow to move to the previous phone number. With this method, you return to the last phone number after reaching the first one. 4.1.2 Entering a phone number To enter a phone number, use OPTION to move the arrow to a blank line (or a line containing a phone number you wish to replace) and press SELECT. A blinking cursor appears. Type in your new phone number, using the BACK S key to correct any errors. Press RETURN to finish entering the phone number. A valid phone number has three parts: - Name This is the name of the computer. It is ignored by Chameleon. It's what you use to remember which number calls what computer. The name can contain any printing characters except for '#' and '('. - (Baud) This is the baud rate of the other computer's modem. If this part of the phone number is missing, the baud rate from the main menu is used. The only two valid baud rates for this are "(300)" and "(1200)". If your modem can't actually communicate at 1200 baud, Chameleon will use 300 baud no matter what you say. - #Digits This is the actual number to dial. It can consist of any number of digits and the characters " ()-,". Digits are dialed in order. The characters " ()-" are ignored, and the "," character causes Chameleon to pause for three seconds -- which is useful when you're going through a private telephone system. Here are some imaginary but valid phone number entries. Note that the last one simply picks up the phone and waits for a carrier. Joe's BBS & Grill(1200)#9,18005551212 Molly's Sine City (300) # 555-1212 Annoy the Opertor # 0 Long Distance # 1 (617)253-1000 # 411 Table 4-1: Valid Phone Numbers Here are some imaginary but invalid phone number entries, along with the reasons they're invalid: 555-1212 -- need a '#' before the digits A#1 BBS # 555-1212 -- can't have a '#' in the name Touchie's # 555-1212 * 444 -- can't dial the '#' or '*' tones (Secret Agent) # 555-0007 -- can't have a '(' in the name Fogey (110) # 555-1212 -- can't choose a 110 baud rate Table 4-2: Invalid Phone Numbers After you enter a number, be sure to use the S command to save the numbers to diskette! Any time you exit the dial menu, and changes you may have made since the last S command will be lost! 4.1.3 Dialing a number -- START key Press the START key to dial the phone number you've selected. Check the status line (located between the list of phone numbers and the instructions) to follow the progress of your call. Type a 'Q' to quit dialing. If, after thirty seconds, Chameleon can't establish communication with the other computer, it will return to the dial menu. If Chameleon succeeds in establishing communications with the other computer, it'll go to terminal mode. (See the terminal mode chapter for details.) 4.1.4 Dialing a sequence of numbers - A key It's a universal law: "A good computer's number is busy." If the computer you're trying to reach is a popular one, it's likely that the phone number will be busy when you call it. If you'd like, you can have Chameleon dial a group of telephone numbers in sequence until it finally establishes communication with another computer. All you have to do is position the arrow next to the first number you'd like to try and press the 'A' key. Chameleon will then try each number in turn until it finds another computer. Blank lines are skipped, so if you want it to try the same number over and over again, blank out the other lines by pressing SELECT then RETURN for each one. When it finds another computer, it will enter terminal mode. Since none of the modems Chameleon works with can detect a busy signal, Chameleon must wait 30 seconds after dialing a phone number before it gives up. Sorry 'bout that. -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* Please be careful when you use the A command. If you accidentally annoy a telephone user by repeatedly dialing their number, your phone company will probably take away your telephone connection. -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 4.1.5 Save the phone numbers -- S Chameleon can save the current phone numbers in a disk file called D:LIZARD40.NUM. Just insert a DOS-II formatted writable disk in drive 1 and press the S key. 4.1.6 Restore the phone numbers -- R Saved phone numbers may be restored any time you are in the dial menu. Just insert a DOS-II formatted disk containing the LIZARD40.NUM file into drive 1 and press the R key. If the file does not exist, or cannot be read, then Chameleon uses its standard defaults. If the file is read correctly, then the phone numbers are set to the stored values. Chameleon tries to read in the stored defaults whenever it enters the dial menu. 4.1.7 Return to the main menu -- ESC Typing the ESC key will return you to the main menu without trying to dial a phone number. 5. Utility Menu Typing a U while in the main menu gets you the ram resident disk utilities. This is a menu modeled upon the standard DOS 2.0 menu, and it provides many of the more useful (and not coincidentally easiest to implement) features of the DOS 2.0 menu. Here's what it looks like: Ram Resident Disk Utilities 2.0s A. Disk Directory E. Rename File(s) B. Go To Main Menu F. Lock File(s) C. Copy File G. Unlock File(s) D. Delete File(s) I. Format Diskette Z. Set Default Communication Device Select item or RETURN for menu _ Figure 5-1: Utility Menu Screen If you have used the DOS 2.0 menu, you shouldn't have any trouble with the utility menu. Some of the options are missing, and others, like the C command, don't have the options that are available on the DOS 2.0 menu. This menu is intended to allow you to do the most important DOS functions while remaining within Chameleon. If you find that the functions provided aren't enough, you'll have to quit Chameleon, use the real DOS menu, and restart Chameleon. All utility menus are selected by typing the letter of the utility then the RETURN key. Most of the utilities will ask for an additional line of input, which you should type in, ending with the RETURN key. If you change your mind about executing a utility, type the BREAK key rather than the RETURN key. 5.1 Disk Directory -- A The A command is used to get a disk directory. If you want to see all the files on disk 1, just type RETURN when you are asked for a "Search spec". Otherwise, type in the search specification you want. The directory will be shown on the screen. 5.2 Return to the main menu -- B The B command returns you to Chameleon's main menu. 5.3 Copy a file -- C The C command copies a single file. This command can be used (like it's DOS 2.0 counterpart) to send a file to the screen or the printer, as well as transfer a file from one diskette to another. It cannot, however, append one file to another, nor can it copy multiple files from one place to another. 5.4 Delete file(s) -- D The D command deletes all files that match the "Delete file spec". All the files will be deleted at once -- you will NOT be asked about each one. (i.e. the /N option is always in effect.) 5.5 Rename file(s) -- E The E command renames all files matching the search spec before the comma to match the search spec after the comma. Remember that the device specifier is included only for the spec before the comma. 5.6 Lock file(s) -- F The F command locks all files matching the search spec. Locked files cannot be deleted, renamed, or over-written. Locked files appear with an asterisk before their names in a directory listing. 5.7 Unlock file(s) -- G The G command unlocks all files matching the search spec. Unlocked files are the ordinary kind that can be deleted, renamed, and overwritten. 5.8 Format Diskette -- I The I command asks you which drive you wish to format, makes sure that you want to format it, then formats that drive. Be careful not to format a diskette containing information that you wish to keep. 5.9 Set Default Communication Device -- Z The Z command sets the default communication device by saving the device number you select in the file D:LIZARD40.DEV. When Chameleon is booted, it looks in the file D:LIZARD40.DEV for a device number, and tries to boot that device first. If the default device is connected and turned on, Chameleon will boot it and go to the main menu automaticly. If the device doesn't respond, Chameleon will tell you so and stay in device menu. If you regularly use only one particular communications device, setting a default communication device will save you some time and effort. 6. Terminal Mode Terminal mode is the mode you use to actually communicate with another computer. It's a grey screen with (some of the time) a line of inverse-video text at the top. When you first enter terminal mode, the screen will look like this: Terminal mode... (OPTION - quits) ------------------------------------- [] Figure 6-1: Terminal Mode Screen The terminal mode consists of two parts, the status line (in reverse video), and the terminal display, which is twenty four lines of grey text. Located at the left margin of the top line of the terminal display is a green box. This is the terminal display's cursor. 6.0.1 Recalling the main menu -- OPTION key When you're in terminal mode, you can recall the main menu by pressing the OPTION key. The arrow will point to the last menu item you selected. Characters sent to you while you're in the main menu will be lost. 6.0.2 Vertical and horizontal scrolling Most time sharing system programs format text for 80 column wide printing terminals. Since the Atari video screen is only 40 characters wide, and only 24 lines high, you can't see all the text at one time. Your Atari can, however, keep much more text in its memory than it can show on the screen. Chameleon uses this ability to give you most of the benefits of an 80 column screen as well as most of the benefits of a printing terminal. In essence, when you are in the terminal mode Chameleon shows you a 24 x 40 character window onto a much larger "virtual" screen. This virtual screen is as wide as the Line Length item of the menu, which is to say between 40 and 132 characters wide, and as long as it can be and still fit in your Atari'S memory. The virtual screen is always between 24 and 255 lines long, depending upon the amount of memory your Atari has, the File Transfer Protocol, the Baud Rate, and the Line Length. You navigate around the virtual screen with aid of the START, SELECT, and SHIFT keys. To try horizontal and vertical scrolling, use the main menu to set the Terminal Type to Glass TTY, the Cursor to Free, the Duplex to Half, the File Transfer Protocol to None and Line Length to 80. Press START to enter the terminal mode. 6.0.2.1 Vertical Scrolling--SELECT key If you type some text and then type the RETURN key repeatedly, you'll soon notice that the cursor moves down to the bottom line of the screen and remains there, while the text you've typed in scrolls off the top of the screen. If you press and hold the SELECT key, the screen will scroll down and the text you typed will return to view. As this happens, the cursor changes to an arrow pointing down to its "true" position. As you continue to hold down the SELECT key, the text you typed will continue to scroll down, and if you have enough memory, it will even disappear from view off the bottom of the screen. Eventually, though, you'll bump into the upper screen. Press and hold the RETURN key, and in a little while the text you typed will scroll off the top of the virtual screen, too. Once it does this it has been erased from the Atari's memory and can never be retrieved. To return to the bottom of the virtual screen, press the SHIFT+SELECT keys and hold them down. The screen will scroll up and bring the cursor back into view. 6.0.2.2 Horizontal scrolling--START and SHIFT + START keys Type a sentence (such as, "The quick brown fox jumped over the...") until you reach the right-hand side of the line. If you continue to type, you'll notice the cursor has become an arrow pointing right, off the edge of the screen, toward where the next character should display. Press the START key and watch the characters scroll leftward, until the screen is blank and the cursor has changed back into a small square on the left-hand edge of the screen. You've just used the START key to scroll, character-by- character, to the rightmost 40 columns of the 80-column display. To return to the first 40 columns, press SHIFT+START. You can use START and SHIFT+START to center the cursor on whatever column you wish. When the cursor is positioned in its true location, it displays as a square. When it is located in a screen area other than its true location (i.e., in the previous page buffer or on columns across the screen), it displays as an arrow pointing towards its true position. 6.0.2.3 Combining vertical and horizontal scrolling You can use the SELECT and SHIFT+SELECT keys and the START and SHIFT+START keys to position yourself anywhere on the virtual screen. If characters are typed by you or sent by the remote computer while the cursor is off the screen, they will be displayed in the correct spot, but you won't see them until you return to the portion of the screen that contains the cursor. 6.0.2.4 Locking the Cursor for Faster Data Entry Set the CURSOR item of the menu to ON SCREEN. This causes Chameleon to keep the cursor on the screen at all times. If characters sent to the screen would cause the cursor to move off the screen, Chameleon will scroll automatically to keep the cursor square on the screen. This feature is useful when you have a lot of information to type in. You can type faster when Chameleon keeps track of the cursor on the screen, because you won't have to stop every few words to reposition the cursor with the START and SHIFT+START keys. For long printouts, many people prefer to control scrolling themselves (CURSOR LOCK OFF), since them can them move the screen around to read the text at their own reading rate as well as back up to reread a section. 6.0.2.5 File Transfer Protocol and the Virtual Screen All the file transfer protocols except Snapshot work more smoothly when there is a large amount of memory to buffer text. When File Transfer Protocol is set to any of these modes the virtual screen is reduced to 24 lines (the height of the actual screen). When the File Transfer Protocol is set to None or Snapshot, Chameleon does not need to buffer text, and so the virtual screen again expands to fill all of the memory. 6.0.2.6 When is the Virtual Screen Cleared? The virtual screen is cleared of all the text it contains whenever its size or shape is altered. In particular the screen will clear if: - you change from one the the buffered File Transfer Protocol modes to one of the unbuffered File Transfer Protocol modes - you change the baud rate - you change the Line Length The most important case where the virtual screen will NOT clear is when you change File Transfer Protocol from None to Snapshot, which makes it easy to copy a portion of your virtual screen to file. 6.0.3 System Reset and Break Key If you press the SYSTEM RESET key, you'll have to power-cycle your Atari to regain control. Chameleon has disabled the computer console's BREAK key in menu or terminal mode because it's so easy to press mistakenly and because the interface module software would stop sending data in that case. When a file I/O is in progress (for example, when you're entering or leaving menu mode, or during File Transfer Protocol mode), you can use the BREAK key to abort the I/O. 6.0.4 Sending a "Break" Signal to the Host Computer You'll sometimes want to send a "break" signal to the host computer-- to tell it to stop sending data. To do so, press the SHIFT+Atari keys. Each time you press these keys, Chameleon will send a half-second of BREAK signal to the other computer. File Transfer Protocols and Technical Information 1. Simple File Transfer Protocols 1.1 Terms File Transfer Protocol is a generic term for any method of moving data from one place to another, for instance, between two Atari computers or between an Atari computer and a large time sharing system. Sending refers to moving data from your Atari computer to some other computer. Receiving refers to moving data from another computer into your Atari computer. There are many ways to send and receive information. Chameleon supports three different file transfer protocols: - simple protocols, which can be used with almost any other computer - Modem protocols, which work with many microcomputers - Kermit protocols, which work with many time-sharing computers The Modem and Kermit protocols are described in later chapters. This chapter describes the simple protocols. These protocols have been designed to work with almost any other computer or time-sharing system. Unfortunately, these protocols are not as easy to use, nor as error-resistant as the Modem or Kermit protocols. If the computer you want to talk to supports either the Modem or the Kermit protocols, you should use them instaid. 1.2 Flow Control Since the Atari computer can't receive characters while it is accessing the disk drive, Chameleon must be able to tell the other computer to stop sending information, then to start sending it again. This ability to stop and start is known as flow control. For the simple protocols, that is, for Send and Receive, Chameleon uses ^S/^Q flow control. This is also known as XON/XOFF flow control, and is supported my most time sharing computers. If this isn't the case with your computer, contact the system's staff and ask about getting "XON/XOFF flow control" installed (or write a program to simulate such a feature). "XON/XOFF flow control" refers to the process whereby a system stops printing characters when you (or Chameleon) send it an ASCII ^S (for XOFF), and then waits for you (or Chameleon) to send an ASCII ^Q (for XON), when it continues sending characters. Chameleon uses this flow control to tell the system to stop sending characters for a moment, so that it can turn off the RS-232C port and save the characters it has collected to the file you specified. Thus if your system doesn't have flow control, you can't receive more characters at a time than Chameleon has room for in its internal buffer. This internal buffer varies, depending on the size of your computer, from about 300 to 32,000 bytes. When one Chameleon is sending a file to another Chameleon, the first one will stop sending characters when it gets a ^S and it will restart when it receives a ^Q. Thus, two Atari computer owners who each own Chameleon can transfer uncopyrighted files to one another over phone lines. 1.2.1 Types of devices that can send You can send from any device from which you can read, except for C: (cassette) K: (keyboard), S: (TV monitor), and E: (Screen Editor) devices, which either Chameleon uses or would interfere with Chameleon. This essentially restricts you to sending disk files. D1:HILOGAME.BAS Disk file 1.2.2 Types of devices that can receive You can receive to any device that you can write to, except for C: (cassette) S: (TV monitor) and E: (Screen Editor) devices, which would interfere with Chameleon. Examples are: P: Printer D1:DATAFILE.TXT Disk file 1.3 Sending to a Time Sharing Program To send a file to a time sharing system, follow these steps: 1. Establish a connection with the system, log in, and run your favorite editor. 2. Go into text entry mode. If the mode requires line numbers make sure your file has them. If a certain sequence of characters will stop text entry, check that your file does not contain those characters. Similarly, make sure your file has no control characters that might abort the editor and return you to the top level. 3. Press the OPTION key to go into Chameleon's menu mode. Change the File Name menu line to the file you want to send. Select a File Type of Text. Select a File Transfer Protocol of Send. 4. Press the START key. Chameleon will put you into terminal mode. 5. Press the SHIFT+OPTION keys to start the sending. Chameleon will open your file and send it to the other computer. 6. Chameleon continues to send until one of three events occurs: - It comes to the end of the file, whereupon it prints Quitting to terminal mode and returns you to terminal mode. - You type the Q key on the keyboard, whereupon it prints Quitting to terminal mode and returns you to terminal mode. - A file I/O error occurs, whereupon it prints File I/O error ###, where ### is an error code listed in the appendix, and returns you to terminal mode. 7. Once you're back in terminal mode, you can type the special characters that tell your system's text editor you're finished inputing characters. That's it. 1.3.1 Notes Older time sharing systems often assume terminals will type only a few characters a second, and some -- such as the author's Unix system -- will crash if characters are sent continuously at 2400 baud. If you find that you lose characters when you send, use the Flow Control item of the menu to slow down sending to a rate your system can handle. Note also that there are often more efficient ways to save characters from the terminal than with a text editor. Characters can be sent directly to a file (ask a systems staff member if you're familiar with how to do this). This kind of procedure lets the system save your characters faster (and so lose fewer of them). When File Type is Text, Chameleon sends a carriage return after each line, which may cause the lines to write over one another on the display, but it's usually the correct way to enter text to a time sharing system. Use a specifically prepared file and the File Type Binary mode if your text editor requires something else. 1.4 Receiving from a Time Sharing System The steps for receiving a file are as follows: 1. Press the OPTION key to go to Chameleon's main menu. 2. Select File Name and enter the file name. Select the appropriate File Type option (probably Text), and set File Transfer Protocol to Receive. 3. Press the START key. Chameleon will put you into terminal mode. 4. Type all but the last character (which is typically pressing the RETURN key) of the command to send the file to your terminal. 5. Press SHIFT+OPTION. The prompt "Type char; I'll send it, then start" will appear. Now type the last character in your command (probably RETURN). 6. Receiving will begin. It will continue until one of two events occurs: - You type a Q character, whereupon Chameleon types QUITTING TO TTY MODE and returns you to terminal mode. - A file I/O error occurs. Chameleon will display a File I/O error was ### message, where ### is an error code listed in the error code appendix. The receive file is closed when you type the Q. If you press SHIFT+OPTION again, before changing the File Name, the same file will be re-opened. If this is a disk file, the old contents will be lost. 1.4.1 Notes Some operating systems use characters like tab (ASCII 9) to compress the number of spaces in a file. There's usually a way to tell the system not to do so; otherwise, you'll have to go through the received file and manually convert the tabs to the appropriate number of spaces. When a ^S is sent to the time sharing system, it must stop sending data within 100 characters. If it doesn't, you'll get the message The Buffer Overflowed, and you'll lose all the characters sent from that point to when the system finally does stop sending data. 1.5 Taking a Photograph of the Screen Use the Snapshot option of the File Transfer Protocol mode to copy part or all of the virtual screen to an Atari file. The steps are as follows. 1. Press the OPTION key to go to Chameleon's menu mode. 2. Select File Transfer Protocol Snapshot, and set File Name to the file name you want to dump to. If you want each line of text to end in an Atari EOL, then you should set File Type to Text. If you want each line to end in a CR/LF pair, set the File Type to Binary. 3. Press the START key to go to terminal mode. 4. When you're ready to send a copy of part of the virtual screen to your specified file, press the SHIFT+OPTION keys. 5. Chameleon will display the message Mark Top of Region. Use the SELECT and SHIFT+SELECT keys to scroll the virtual screen up and down until the first line you want to copy is at the top of the TV screen. Then hit the SPACE BAR. 6. Chameleon will display the message Mark Bottom of Region. Use the SELECT and SHIFT+SELECT to scroll the virtual screen up and down until the last line you want to copy is at the bottom of the TV screen. Hit the SPACE BAR. 7. Chameleon displays the message Dumping Screen for You and saves the screen to your specified device. Only the characters from the left edge of the screen to the rightmost nonblank character of each line will be saved. 1.5.1 Notes If, in the middle of marking the region to dump, you decide not to dump that text, you can type Q to quit out of the snapshot. Chameleon says OK then, I won't dump and returns you to terminal mode. If any error occurs, Chameleon displays a File I/O error was ### message, where ### represents an error code listed in the File I/O error code appendix and returns you to terminal mode. Otherwise, it displays the message Quitting to terminal mode and returns you to terminal mode. If no errors occur, you can continue to copy portions of the virtual screen (presumably new data has been written to it) by pressing the SHIFT+OPTION keys again. One copy will be written to your specified device each time you press these keys. Chameleon ignores any characters sent to it while it's dumping the screen. If you press SHIFT+OPTION again, before you've changed the File Name, the contents of the disk file will be lost. 1.6 Transferring a File Between Two Atari Home Computers The steps for transferring information from one Atari Home Computer to another are as follows: 1. Establish a telephone connection between the two computers. One agrees to be the sender, the other the receiver. Each user turns on their modem and loads Chameleon into RAM. 2. The receiver sets up her system to: - File Transfer Protocol Receive - File Name <whatever> - File Type Binary 3. The sender sets up his system to: - File Transfer Protocol Send - File Name <whatever> - File Type Binary 4. The receiver presses the SHIFT+OPTION keys and types an asterisk (*). 5. When the sender sees the asterisk, he presses the SHIFT+OPTION keys. 6. Transfer of the file should then begin. 7. When it finishes, both parties hang up their phones. 1.6.1 Notes Both parties should exercise good judgment in transferring only files whose copyright allows for such transfer. The flow control File Transfer Protocol used by Chameleon is extremely general, but also extremely trusting. If you have poor quality communication lines, some characters will probably be lost or changed during transmission. For a text file, these occurrences are of little consequence. For a binary file, however, it's very important that all characters transmit exactly as is. For these files, make sure to set INPUT PARITY and OUTPUT PARITY to NONE. For serious use of File Transfer Protocol over low-grade lines, you really want a checksummed file transfer protocol, like the Modem and Kermit protocols described in the next chapters. 2. Modem File Transfer Protocol Modem is a public domain protocol for transferring files between many kinds of computers. It was designed by Ward Christensen for use with CP/M might become the standard file transfer protocol for personal computers because: - It defines a standard format for text files. - It detects and corrects errors in transmission. - It can transfer all eight bits of a binary file. Chameleon uses Modem protocol when the File Transfer Protocol item reads Modem Send or Modem Receive. Modem Send transfers files from the Atari to the remote computer, and Modem Receive transfers files from the remote computer to the Atari. 2.1 What Kinds of Files can be Transfered Using Modem The Modem protocol is designed around the CP/M file format, which is much simpler than the Atari DOS-II file format. On a CP/M system, text and binary files are stored in exactly the same way, and all files are a multiple of 128 characters long. Text files end at the first ^Z in the file, while binary files start loading at 100 hex and end on a 128 byte boundary. The Atari DOS-II file format, on the other hand, stores files as any number of bytes, with special "magic number" bytes at the start of the file. The Atari DOS-II file system is "smarter" than the CP/M file system. While this is a good thing for Atari users, it does mean that some Atari files have no CP/M counterpart. Chameleon tries its best to convert Atari file to and from CP/M files, but there are some restrictions. Chameleon's Modem can: - send text files - receive text files - send Atari DOS-II binary files - receive Atari DOS-II binary files Chameleon's version of the Modem protocol can't - send a text file with a control-z in it (this is a CP/M problem) - receive a CP/M binary file (this is also a CP/M problem) Since CP/M binary files contain machine language for the 8080/Z80, which the 6502-based Atari can't execute anyway, these restrictions are not very important. 2.2 Modem screen messages The Modem protocol divides the file being transferred into small parts, called "blocks." Each block is sent with a number (from 0 to 255, starting with 1 and wrapping from 255 to 0) and some other characters that help the receiver detect any errors that might have occurred in transmission. If there are no errors, an ACK (short for acknowledge) code is sent to the sender. If there are errors, then an NAK (short for negative-acknowledge) is sent, and the sender will re-transmit the block again. More details of the protocol can be found in the Modem appendix. Anyway, while a Modem file transfer is in progress, Chameleon displays a status message telling you how the transfer is progressing. It's general format is: For Modem Send: If block ### was sent without error: Got ACK for Block ### If block ### was sent incorrectly: Got NAK for Block* ### For Modem Receive: If block ### was received without error: Sent ACK 4 Block ### If block ### was received incorrectly: Sent NAK 4 Block* ### 2.3 Modem Send To send a file to another computer using the Modem protocol, follow these steps: 1. Establish a connection with the system, log in, and run that system's remote-Modem program. specify that the remote system is going to receive the file. 2. Press the OPTION key to go into Chameleon's menu mode. Set the File Name item to the file you want to send. Change File Type to the type of file you want to send. Select a File Transfer Protocol of Modem Send. 3. Press the START key to go to terminal mode. 4. Press the SHIFT+OPTION keys to start the Modem sending. 5. Chameleon continues to send until one of these events occurs: - It comes to the end of the file, whereupon it prints Quitting to Terminal mode and returns you to terminal mode. - You type a 'Q' character on the keyboard, whereupon it prints Quitting to Terminal Mode and returns you to terminal mode. - A file I/O error occurs, whereupon it prints File I/O error ###. ### is an error code which is explained in the error code appendix. - It fails to transmit a block more than ten times, whereupon it prints Aborting: too many NAKs and returns you to the terminal mode. 6. The other computer's Modem program knows when the file transmission is over, so it will automatically save the file and exit. 2.4 Modem Receiving The steps for receiving a file with the Modem protocol are as follows: 1. Run the remote system's remote-Modem program, asking it to send the file you want. 2. Press the OPTION key to go to Chameleon's menu mode. 3. Select File Name and enter the file name. Select the appropriate File Type option (probably Text), and set File Transfer Protocol to Modem Receive. 4. Press the START key to go to terminal mode. 5. Press SHIFT+OPTION to begin transfering. 6. Receiving will begin. It will continue until one of these events occurs: - You type a "Q" character, whereupon Chameleon types Quitting to Terminal Mode and returns you to terminal mode. - A file I/O error occurs. Chameleon will display a File I/O error was ### message, where "###" is an error code. - Chameleon receives ten bad blocks in a row, in which case it displays Aborting: too many NAKs and returns you to terminal mode. - The file transfers successfully, in which case Chameleon prints Qutting to terminal mode and returns you to terminal mode. 7. If you press SHIFT+OPTION again, before changing the File Name, the data in the file will be destroyed. 2.5 Using Modem to Transfer a File Between Two Ataris The steps for transferring information from one Atari Home Computer to another using the Modem protocol are as follows: 1. Establish a telephone connection between the two computers. One agrees to be the sender, the other the receiver. Each user turns on their modem and loads Chameleon into RAM. 2. The receiver sets up her system to: - File Transfer Protocol Modem Receive - File Name <whatever> - File Type Binary 3. The sender sets up his system to: - File Transfer Protocol Modem Send - File Name <whatever> - File Type Binary 4. The receiver types an asterisk (*) and presses the SHIFT+OPTION keys. 5. When the sender sees the asterisk, he presses the SHIFT+OPTION keys. 6. Transfer of the file should then begin. 7. When it finishes, both parties hang up their phones. 3. Kermit File Transfer Protocol The Kermit file transfer protocol was designed by Columbia University for error free file transfer between a wide variety of personal and time-sharing computers. While not yet as available in the micro-computer community as the Modem protocols, Kermit has two advantages: 1. You can transfer more than one file at a time 2. You can transfer files between your Atari and half duplex IBM mainframe computers. A complete description of the Kermit protocol can be found in the June 1984 issue of "Byte" magazine. It's titled, "Kermit: A File-Transfer Protocol for Universities, Part 1: Design Considerations and Specifications", by Frank da Cruz and Bill Catchings, Byte, vol. 9, No. 6, pp. 255-278. 3.1 What kinds of files can be transfered using Kermit Kermit was designed primarily for transfer of text files between microcomputers and large time-sharing computers. Every Kermit implementation, including this one, supports text transfer. There are several methods of transfering binary data using the Kermit protocol. Chameleon uses the simplest one; simply preserving the parity bit. This means that Chameleon's Kermit will properly transfer a binary file if (and only if) the Parity is set to None, and all eight bits of data actually make it from one computer to the other. This means that you will probably be able to transfer a binary file to any other microcomputer which supports Kermit, but not to most time-sharing systems. 3.2 Kermit screen messages While a Kermit transfer is in progress, the status line of the terminal screen will display messages reflecting the state of the file transfer. Here are the important messages: "Receiving <file name> <packet number> <retry flag> (Q-quits)" this means that the file named <file name> is being received by your computer. The <packet number> should cycle from 0 to 63, with about 80 characters of the file being received each time the number changes. <Retry flag> is character that appears whenever a transmission error occurs. "Sending <file name> <packet number> <retry flag> (Q-quits)" this means that the file named <file name> is being sent by your computer. The <packet number> should cycle from 0 to 63, with about 80 characters of the file being sent each time the number changes. <Retry flag> is character that appears whenever a transmission error occurs. "Aborting; unexpected '#' packet" this means that either Chameleon or the other computer is confused. Check that you've told one computer to send, and the other computer to receive, and try again. 3.3 Kermit Sending To send a file to another computer using the Kermit protocol, follow these steps: 1. Establish a connection with the system, log in, and run that system's remote Kermit program. Specify that the remote system is going to receive the file. For example, on a DEC Vax, running VMS, you would type: $ Kermit <RETURN> Kermit-32> receive <RETURN> 2. Press the OPTION key to go into Chameleon's menu mode. Set the File Name item to the file you want to send. Note that, with Kermit, you can send multiple files by using the '*'. For example, to send all the files on the diskette in drive 1, you would set the File Name to: File Name D1:*.* Change File Type to the type of file you want to send. Select a File Transfer Protocol of Kermit Send. 3. Press the START key to go to terminal mode. 4. Press the SHIFT+OPTION keys to start sending the file. 5. Chameleon continues to send until one of these events occurs: - It comes to the end of the file, whereupon it prints Quitting to Terminal mode and returns you to terminal mode. - You type a 'Q' character on the keyboard, whereupon it prints Quitting to Terminal Mode and returns you to terminal mode. - A file I/O error occurs, whereupon it prints File I/O error ###. ### is an error code which is explained in the error code appendix. - It fails to transmit a block more than ten times, whereupon it prints "Aborting: Other host not responding" and returns you to the terminal mode. 6. When you've returned to terminal mode, repeatedly press the RETURN key until you see the other computer's prompt. Then type "Exit" and RETURN. On a VMS system, for example, that would look like this: <return> Kermit-32> exit <return> $ If there was a file error, the other computer's Kermit program mays still be trying to receive the data. In that case, you will have to type ten to twenty carriage returns before you get the other system's prompt back. 3.4 Kermit Receiving The steps for receiving a file with the Kermit protocol are as follows: 1. Establish a connection with the system, log in, and run that system's remote Kermit program. Type all but the last character of the command to send the files you wish to receive. For example, on a DEC Vax, running VMS, to have all the files in the default directory sent to your Atari, you would type: $ Kermit <RETURN> When you've returned to terminal mode, repeatedly press the RETURN key during the computer's prompt. Then type "Exit" and RETURN. On a VMS system, for example, that would look like this: <return> Kermit-32> exit <return> $ If there was a file error, the other computer's Kermit program mays still be trying to send the data. In that case, you will have to type ten to twenty carriage returns before you get the other system's prompt back. 3.5 Using Kermit to transfer files between two Ataris The steps for transferring information from one Atari Home Computer to another using the Kermit protocol are as follows: 1. Establish a telephone connection between the two computers. One agrees to be the sender, the other the receiver. Each user turns on their modem and loads Chameleon into RAM. 2. The receiver sets up her system to: - File Transfer Protocol Receive - File Name D1: - File Type Binary 3. The sender sets up his system to: - File Transfer Protocol Send - File Name <whatever> - File Type Binary 4. The receiver presses the SHIFT+OPTION keys and types an asterisk (*). 5. When the sender sees the asterisk, he presses the SHIFT+OPTION keys. 6. Transfer of the file should then begin. 7. When it finishes, both parties hang up their phones. 3.6 Kermit File Conversion This section is for advanced users interested in the internal format of the Atari Kermit file format--details of the actual Kermit protocol may be found in the Byte article. 3.6.1 File names Atari DOS II file names consist of a letter, followed by up to seven letters or digets, optionally followed by a period and zero to three more letters or digets. Happily, this exactly matches Kermit's standard for file names. Most computer systems will accept Atari DOS II style names, but you should check for any limitations. (Some systems, for example, allow only five characters before the period.) Some other computer systems allow very long file names. Chameleon will happily pass any file name it receives on to DOS II. If the received file name is illegal, Chameleon will report an error message and abort the transfer, leaving you in terminal mode. You can solve this problem by renaming the files on the other computer to conform to the Atari DOS II standard. 3.6.2 File Type Text On Kermit Send, Atari text files are converted into standard text files as follows: - All EOLs ($9b) are converted into CR($0d)/LF($0a) pairs - All Atari-TABs ($7f) are converted into ASCII-TABs ($09) - The high bit is removed from each character. On Modem Receive, standard text files are converted into Atari text files as follows: - All CRs ($0d) are converted into EOLs ($9b) - All LFs ($0a) are removed from the file - All ASCII TABs ($09) are converted into ATASCII TABS ($127) 3.6.3 File Type Binary No translations are made for File Type Binary. If the Parity is set to None, and if the transmission medium and the other computer preserve the eighth bit, then the binary data will be transmitted without change. 3.7 Special instructions for using Kermit with an IBM Mainframe Large time sharing IBM computers can run a version of the Kermit protocol under the CMS environment. Chameleon's Kermit must be told that it is communicating with an IBM mainframe in order to properly transfer files. To transfer files to an IBM mainframe, you must set the main menu line Terminal Type to IBM 3031. 4. Character and Control Codes Following are the character and control codes for each terminal type Chameleon emulates: Table 4-1: The Keyboard When you have Parity set to NONE, the Atari key controls whether the high bit is ON or OFF (most Operating Systems don't care). Characters such as CTRL-4 or CTRL-SHIFT-<any key>, which aren't legal in ATASCII (or ASCII) cause Chameleon to lock until you type a legal character. Table 4-2: Control Codes 4.1 TEST terminal The TEST terminal type simple prints all character it receives, including control codes. Bytes with the high bit set appear in inverse video. Control characters appear as their ATASCII equivalents (e.g., ASCII nulls show up as little hearts and CTRL-P as a little club). 4.2 GLASS terminal The GLASS TTY terminal type prints all characters except ASCII 0-31 and ASCII 127. Most control codes are ignored. The following, however, are recognized: ^G visual bell (flash screen border) ^H back space (cursor left) ^I tab to next 8-column tab stop ^J line feed (cursor down) ^L form feed (clear screen, home cursor) ^M carriage return Table 4-3: Glass TTY Control Codes When the cursor is at the end of a line and a character is typed, the word and the cursor are "wrapped" to the next line. 4.3 IBM 3031 terminal The IBM 3031 is a terminal type designed for communicating with IBM mainframe computers. It is very much like a Glass TTY, but it forces half duplex. The Kermit file transfer protocol has to know wether or not it is communicating with an IBM mainframe. It checks the main menu, and assumes that it is talking to an IBM mainframe if the Terminal Type is set to IBM 3031. 4.4 ADM-3A Terminal The ADM-3A terminal prints the same characters as the Glass TTY, but it handles a different set of control characters. They are as follows: ^G visual bell (flash screen border) ^H back space (cursor left) ^J line feed (cursor down) ^K cursor up ^L cursor right ^M carriage return ^Z clear screen, home cursor ^[ Y+32 X+32 move cursor to (X, Y) ^^ home cursor Table 4-4: ADM-3A Control Codes 4.5 VT-52 Terminal The VT-52 terminal prints the same characters as the GLASS TTY. It reacts to control characters the same as the GLASS, except when ESC (decimal 27) is received. Chameleon will treat the next character received specially; if it isn't in the following table, Chameleon ignores the character; if it is in the table, the action is as indicated. ESC, followed by: A Move cursor up one line. B Move cursor down one line. C Move cursor right one column. D Move cursor left one column. H Move cursor to top left corner. I Reverse line feed. J Clear from cursor to end of screen. K Clear from cursor to end of line. Y <Y+32> <X+32> Move cursor to (X,Y). Z Send ESC / Z to the other computer. Table 4-5: VT-52 Escape Codes 4.6 VT-52XL Terminal The VT-52XL is an imaginary terminal. It's just like the VT-52, except that six more escape sequences have been defined. ESC, folowed by: F Enter reverse video mode. G Exit reverse video mode. L Insert a space at the cursor. M Delete the character at the cursor. N Insert a blank line at the cursor. O Delete the line at the cursor. Table 4-6: VT-52XL Extended Codes If you are using a Unix time-sharing system, for example, you could send the file UNIXTERM.CAP (provided on the Chameleon diskette) to your unix system, then type "source chameleon" to the csh to provide full support for Chameleon. set noglob; setenv TERM vt52xl ; setenv TERMCAP 'xl|vt52xl|Chameleon:\ :so=\EF:se=\EG:\ :al=\EN:dl=\EO:im:em:ic=\EL:dm:ed:\ :dc=\EM:bs:cd=\EJ:ce=\EK:\ :cl=\EH\EJ:cm=\EY%+ %+ :co#80:li#24:\ :nd=\EC:pt:sr=\EI:up=\EA:\ :ku=\EA:kd=\EB:kr=\EC:kl=\ED:'; unset noglob; echo Chameleon supported ; Figure 4-1: Text of UNIXTERM.CAP I. File I/O Error Codes 67 can't FTP from/to the C device 69 can't FTP from/to the E device 75 can't FTP from/to the K device 82 can't FTP from/to the R device 83 can't FTP from/to the S device 128..255 Standard ATARI DOS errors. II. Modem 2 Protocol Specification The Modem 2 protocol was designed to be used with CP/M based personal computers. It was invented prior to 1/1982 by Ward Christensen. At one time, he could be reached via CBBS/Chicago at (312) 545-8086, or by voice at (312) 849-6279. Space considerations force the ommision of the full Modem 2 Protocol Spec. Note that this version of Chameleon is fully compatable with the AMODEM 4.x implementation of the Modem protocol. Happy Telecommunicating!