@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED CHAMELEODOC 385 COPYING---D3:CHAMELEO.DOCl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 128ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u7K8P?@     Y`  Y0 l `7L 䙣ލT}Ȏ!"` !"H h`lDD SAB.YALPSID:D"NUR䙣ލmJKVkABBELIFNTOTBLRLINLHALMAOUSCREELTWAIdA V} @ @` @ @r @f@3@@s& W}Ad##*****************************n##* NOVATARI DOCUMENT *x##* DISPLAY PROGRAM *##* X}BY JOE WATERS *##* JULY, 1985 *##***************************** ADISPLAY TITL Y}E A DISPLAY DOCUMENT##*****************************CHECK FOR KEYPRESSAdAU" Z}F:Ad,"AU" A0AdAU$##*****************************SEND LINES TO PRINTERB: [},"6.  @"$'##*****************************,SPLIT B$ INTO TWO LINES6 6-@   ( \} AJ-&6@T7<,0  A`^' Ah r6-%@ A |!(7@< ]},!(7%@,"F:Ad,AU" A$##*****************************READ DOCUMENT FILE + ^}AR@ A` @@-@@ A A` _} -%@@ A@ A` AB:," A&.-@ `}B:,!7<,0 $'. A0 :( AD 6.7,6-B:,N AX b&-%@@f a}&@l A@v A`  AP@$##*****************************W b}RITE TITLE+@%@+-@+(@GENESEE )-@@)(@ATARI )-@ c}@)(@GROUP ,-@@,(@ Ӡ,-@@,(@ chameleon4- d}@@4(@terminal emulator0-@@0(@ 0-@@ 0(@ e} ,-@@,(@ .-@@.(@ -@A f} &&;@,;A,;@8,6.ΠȠ6.D1:CHEMTEC.DOC 6-@6-@` g} 6-@*6-@r4 6-&>6-P:'@,H6-@8&R-@A \ + h}AR@f+'-P:+@@&B:,,'@,@+(p_(_(TThe documentation for this file is formatted for a st i}andard 80-column printer.zR(R(GYou can, however, view the documen- tation on the if you wish.c(c(XWoul j}d you like to display the docu- mentation file on the or on the ?((Enter OR : 0#@ k}@K:0)@@(>:,4S)>:,4P(>:,( A `i%2A@@ l}9-@@= _2i A &6->:,4S&6-@ Ap m}I+@%@/0@@@I0@6-@1-1(@1) TURN INT n}ERFACE ON0-@%@0(@ (IF NEEDED)U-%@U(@02) POSITION PRINT HEAD AT o}TOP OF PAGE.7-%@ 7(@3) TURN PRINTER OND-%@D(@4) PRESS ANY KEY p} TO START A$ +AR@. A8##@@P:B A L' q}-@@'( CHECK PRINTERV-@@` `'-@@'( ˠj-@@` r} t@~ B ApI+@%@/0@@@I0@6-@ s}-##(@DOCUMENTATION WILL##(@BE SCROLLED ACROSS(@ YOUR SCREEN. ( t}@ !!(@TO STOP OR START!!(@SCROLLING, PRESS((@ANY KEY.((@ $$(@ u}ź YOU CANNOT GO!!(@BACKWARDS, ONLY %(@ FORWARDS.%(@ !!(@press any k$} Chameleon Terminal Emulator w} Version 4.02 File Transfer Protocols x} and Technical Information y} 17 November 1984 (C)1984 John Howard Palevich z} Distributed by the NOVATARI PROGRAM EX{}CHANGE 4408 Manor Hall Lane Fairfax, Virginia 22033|} Chameleon Technical Info }}Table of Contents ================= 1. Simple File Transfer Protocols ~} 4 1.1 Terms 4 1.2 Flow Control } 5 1.2.1 Types of devices that can send 5 1.2.2 Types} of devices that can receive 5 1.3 Sending to a Time Sharing Program 5 }1.3.1 Notes 6 1.4 Receiving from a Time Sharing System 7} 1.4.1 Notes 7 1.5 Taking a Photograph of the screen } 8 1.5.1 Notes 8 1.6 Transferring a File Between Two At}ari Home Computers 9 1.6.1 Notes } 9 2. XModem File Transfer Protocol 11 2.1 What Kinds }of Files can be Transfered Using XModem 11 2.2 XModem Screen Messages 12 2.3 }XModem Send 12 2.4 XModem Receiving 13 } 2.5 Using XModem to Transfer a File Between Two Ataris 14 2.6 Atari <--> CP/M File Conversion } 14 2.6.1 File Type Text 14 2.6.2 File Type Binary } 15 3. Kermit File Transfer Protocol 16 3.1 What Kinds} of Files Can Be Transfered Using Kermit 16 3.2 Kermit Screen Messages 16 3.3} Kermit Sending 17 3.4 Kermit Receiving 18} 3.5 Using Kermit to Transfer Files Between Two Ataris 19 3.6 Kermit File Conversion } 20 3.6.1 File names 20 3.6.2 File Type Text } 20 3.6.3 File Type Binary 20 3.7 Instructions For Using }Kermit With An IBM Mainframe 21 4. Character and Control Codes 22 4.}1 TEST terminal 22 4.2 GLASS terminal 23} 4.3 IBM 3031 terminal 23 4.4 ADM-3A Terminal } 23 4.5 VT-52 Terminal 24 4.6 VT-52XL Terminal } 25 Page 2 Chameleon } Technical Info Appendixes ========== } I. File I/O Error Codes 26 II. XModem 2 Protocol Specification } 26 List of Figures ==========}===== Figure 2-1: XModem FTP Status Msgs. 12 Figure 4-1: Text of UNIXTERM.CAP } 25 List of Tables ========}====== Table 4-1: The Keyboard 22 Table 4-2: Glass TTY Control Codes } 23 Table 4-3: ADM-3A Control Codes 24 Table 4-4: VT-52 Escape }Codes 24 Table 4-5: VT-52XL Extended Codes 25 } Page 3 Chameleon Tec}hnical Info Chapter 1 Simple File Transfer Protocols } ============================== 1.1 Terms ========= FILE TRANSFER PROTOCO}L is a generic term for any method of moving data from one place to another, for instance, between two Atari comp}uters or between an Atari computer and a large time sharing system. SENDING refers to moving data from you}r 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 differ}ent file transfer protocols: - SIMPLE PROTOCOLS, which can be used with almost any other computer } - XMODEM PROTOCOLS, which work with many microcomputers - KERMIT PROTOCOLS, which work with many time-shari}ng computers The XMODEM and KERMIT protocols are described in later chapters. This chapter describes the S}IMPLE protocols. These protocols have been designed to work with almost any other computer or time-sharing syst}em. Unfortunately, these protocols are not as easy to use, nor as error-resistant as the XMODEM or KERMIT protoc}ols. If the computer you want to talk to supports either the XMODEM or the KERMIT protocols, you should use them inste}ad. 1.2 Flow Control ================ Since the Atari computer can't receive character}s while it is accessing the disk drive, Chameleon must be able to tell the other computer to stop sending informa}tion, 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 CONTROL+S and CONTROL+Q (abbreviated ^S/^Q) flow } control. This is also known as XON/XOFF flow control, and is supported my most time sharing computers. If this is}n't the case with your computer, contact the system's staff and ask about getting "XON/XOFF flow control" install}ed (or write a program to Page 4 Chameleon } Technical Info 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 yo}u (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 buff}er varies, depending on the size of your computer, from about 300 to 32,000 bytes. When one Chameleo}n is sending a file to another Chameleon, the first one will stop sending characters when it gets a ^S and it wil}l restart when it receives a ^Q. Thus, two Atari computer owners who each own Chameleon can transfer uncopyrighted fil}es 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 ess}entially restricts you to sending disk files. D1:HILOGAME.BAS Disk file 1.2.2 Types o}f devices that can receive. --------------------------------------- You can receive to any device that you can wr}ite to, except for C: (cassette) S: (TV monitor) and E: (Screen Editor) devices, which would interfere with Chame}leon. Examples are: Printer.......... P: Disk File........ D1:DATAFILE.TXT }1.3 Sending to a Time Sharing Program. ====================================== To send a file to a time sha}ring 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 } Page 5 Chameleon Technical Info contain those characters. S}imilarly, make sure your file has no control characters that might abort the editor and return you to the top lev}el. 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 STAR}T key. Chameleon will put you into terminal mode. 5. Press the SHIFT+OPTION keys to start the sending. C}hameleon will open your file and send it to the other computer. 6. Chameleon continues to send until one o}f three events occurs: - It comes to the end of the file, whereupon it prints QUITTING TO TERMINAL MODE and retur}ns 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. Th}at'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. In many operating systems, your characters c}an 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 di}splay, 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. } Page 6 Chameleon Technical Info 1.4 Receiving From }a Time Sharing System. ======================================== The steps for receiving a file are as foll}ows: 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 chara}cter (which is typically pressing the RETURN key) of the command to send the file to your terminal. 5. Pre}ss SHIFT+OPTION. The prompt "TYPE CHAR; I'LL SEND IT, THEN START" will appear. Now type the last character in your co}mmand (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. 7. The receive file is closed when you type the Q. If you press SHIFT+O}PTION 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, y}ou'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 t}he system finally does stop sending data. Page 7 Chameleon} Technical Info 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 C}hameleon's menu mode. 2. Select FILE TRANSFER PROTOCOL SNAPSHOT, and set File Name to the file name you wa}nt 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 y}ou want each line to end in a CR/LF pair, set the File Type to Binary. 3. Press the START key to go to ter}minal mode. 4. When you're ready to send a copy of part of the virtual screen to your specified file, pres}s the SHIFT+OPTION keys. 5. Chameleon will display the message MARK TOP OF REGION. Use the SELECT and SHI}FT+SELECT keys to scroll the virtual screen up and down until the first line you want to copy is at the top of th}e TV screen. Then hit the SPACE BAR. 6. Chameleon will display the message MARK BOTTOM OF REGION. Use th}e SELECT and SHIFT+SELECT to scroll the virtual screen up and down until the last line you want to copy is at the botto}m 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 nonb}lank character of each line will be saved. 1.5.1 Notes ------------ If, in the middle of marki}ng the region to dump, you decide not to dump that text, you can type Q to quit out of the snapshot. Chameleon sa}ys 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 retu}rns you to terminal mode. Otherwise, it displays the message QUITTING TO TERMINAL MODE and returns you to termina}l mode. If no errors occur, you can continue to copy portions of the virtual screen (presumably new data h}as been written to it) by pressing the SHIFT+OPTION keys again. One copy will be written to your specified devic}e each time you press these keys. Page 8 Chameleon } Technical Info 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 l}ost. 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 o}ther the receiver. Each user turns on their modem and loads Chameleon into RAM. 2. The receiver sets up h}is system to: - File Transfer Protocol Receive - File Name - File Type Binary 3. Th}e sender sets up his system to: - File Transfer Protocol Send - File Name - 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 e }xercise good judgment in transferring only files whose copyright allows for such transfer. The flow contro }l File Transfer Protocol used by Chameleon is extremely general, but also extremely trusting. If you have poor q}uality communication lines, some characters will probably be lost or changed during transmission. For a text file, the}se occurrences are of little consequence. For a binary file, however, it's very important that all characters tr}ansmit 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 Page 9 Chameleon Technical In}fo XModem and Kermit protocols described in the next chapters.} Page 10 Chameleon Technical Info} Chapter 2 XModem File Transfer Protocol } ============================= XModem is a public domain protocol for transferring files between ma}ny kinds of computers. It was designed by Ward Christensen for use with CP/M microcomputers. Over the years it has be}come the standard file transfer protocol for personal computers because: - It defines a standard format fo}r text files. - It detects and corrects errors in transmission. - It can transfer all eight bits of a binary file}. Chameleon uses XModem protocol when the File Transfer Protocol item reads XModem Send or XModem Receive.} XModem Send transfers files from the Atari to the remote computer, and XModem Receive transfers files from the }remote computer to the Atari. 2.1 What Kinds of Files can be Transfered Using XModem ==============}======================================== The XModem protocol is designed around the CP/M file format, whic}h is much simpler than the Atari DOS 2.0 file format. On a CP/M system, text and binary files are stored in exactly th}e same way, and all files are a multiple of 128 characters long. Text files end at the first ^Z in the file, whi }le binary files start loading at 100 hex and end on a 128 byte boundary. The Atari DOS 2.0 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 2.0 file system is "smarter" than the CP/M file system. While this is a good thing for Atari use#}rs, it does mean that some Atari files have no CP/M counterpart. Chameleon tries its best to convert Atari$} files to and from CP/M files, but there are some restrictions. Chameleon's XModem can: - send text files %}- receive text files - send Atari DOS-2.0 binary files - receive Atari DOS-II binary files Chameleon&}'s version of the XModem 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. )} Page 11 Chameleon Technical Info*} 2.2 XModem Screen Messages. ========================== The XModem 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 XMODEM APPENDIX. Anyway, while an XModem file tr0}ansfer is in progress, Chameleon displays a status message telling you how the transfer is progressing. It's gen1}eral format is: ------------------------------------------------------------- For XModem Send: If2} block ### was sent without error: Got ACK for Block ### If block ### was sent incorrectly: Got NAK for Block* ###3} For XModem Receive: If block ### was received without error: Sent ACK 4 Block ### If block ##4}# was received incorrectly: Sent NAK 4 Block* ### -------------------------------------------------------------- 5} Figure 2-1: XModem FTP Status Msgs. -------------------------------------------------------------- 6} If there are more than ten errors in a row, Chameleon will give up and return to terminal mode, informing th7}e user Abort: too many NAKs. 2.3 XModem Send. ================ To send a file to8} another computer using the XModem protocol, follow these steps: 1. Establish a connection with the system9}, log in, and run that system's remote-XModem program. specify that the remote system is going to receive the fi:}le. 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 XMODEM SEND<}. 3. Press the START key to go to terminal mode. Page 12 =} Chameleon Technical Info 4. Press the SHIFT+OPTION keys to start the XMod>}em 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' cha@}racter on the keyboard, whereupon it prints QUITTING TO TERMINAL MODE and returns you to terminal mode. - AA} file I/O error occurs, whereupon it prints FILE I/O ERROR ###. ### is an error code which is explained in the error cB}ode appendix. - It fails to transmit a block more than ten times, whereupon it prints ABORTING: TOO MANY NAC}Ks and returns you to the terminal mode. 6. The other computer's XModem program knows when the file D}transmission is over, so it will automatically save the file and exit. 2.4 XModem Receiving. E}==================== The steps for receiving a file with the XModem protocol are as follows: F}1. Run the remote system's remote-XModem program, asking it to send the file you want. 2. Press the OPTIONG} key to go to Chameleon's menu mode. 3. Select File Name and enter the file name. Select the appropriate H}File Type option (probably Text), and set File Transfer Protocol to XModem Receive. 4. Press the START keyI} to go to terminal mode. 5. Press SHIFT+OPTION to begin transfering. 6. Receiving will begin. It wJ}ill continue until one of these events occurs: - You type a "Q" character, whereupon Chameleon types QUITTING TOK} TERMINAL MODE and returns you to terminal mode. - A file I/O error occurs. Chameleon will display a FILE IL}/O ERROR WAS ### message, where "###" is an error code. - Chameleon receives ten bad blocks in a row, in which caM}se it displays ABORTING: TOO MANY NAKs and returns you to terminal mode. - The file transfers successfully,N} in which case Chameleon prints QUTTING TO TERMINAL MODE and returns you to terminal mode. O} Page 13 Chameleon Technical Info 7. If you preP}ss SHIFT+OPTION again, before changing the File Name, the data in the file will be destroyed. 2.5 UQ}sing XModem to Transfer a File Between Two Ataris ====================================================== TR}he steps for transferring information from one Atari Home Computer to another using the XModem protocol are as follows:S} 1. Establish a telephone connection between the two computers. One agrees to be the sender, the other theT} receiver. Each user turns on their modem and loads Chameleon into RAM. 2. The receiver sets up his systeU}m to: - File Transfer Protocol XModem Receive - File Name - File Type Binary 3. TheV} sender sets up his system to: - File Transfer Protocol XModem Send - File Name - File Type BinaW}ry 4. The receiver types an asterisk (*) and presses the SHIFT+OPTION keys. 5. When the sendeX}r sees the asterisk, he presses the SHIFT+OPTION keys. 6. Transfer of the file should then begin. Y} 7. When it finishes, both parties hang up their phones. 2.6 Atari <--> CP/M File Conversion. =Z}=================================== This section is for advanced users interested in the internal format o[}f the Atari XModem file format--details of the actual XModem protocol may be found in the XMODEM APPENDIX. \} 2.6.1 File Type Text -------------------- On XMODEM SEND, Atari text files are converted into CP/M text fi]}les as follows: - All EOLs ($9b) are converted into CR($0d)/LF($0a) pairs - All Atari-TABs ($7f) are converted in^}to ASCII-TABs ($09) - The end of the file is padded out to a 128-byte boundary with control-Zs. If the file happ_}ens to end on a 128 byte boundary, an additional 128 byte block of control-Zs is sent. On XMODEM RECEIVE, `}CP/M text files are converted into Atari text Page 14 Chameleon a} Technical Info files as follows: - All CRs ($0d) are converted into EOLs ($9b) b} - All LFs ($0a) are removed from the file - All ASCII TABs ($09) are converted into ATASCII TABS ($127) - Thc}e trailing control-Zs are removed from the file 2.6.2 File Type Binary. ----------------------- On Xd}MODEM SEND, Atari DOS 2.0 files are converted into CP/M files as follows: The file is sent un-altered, except that thee} last block is padded out to a 128-byte boundary, and the number of valid bytes in that block is inserted into thf}e very last byte of that block. If the Atari DOS 2.0 file just happens to end on a 128-byte boundaryg}, a junk block is appended with a "valid byte count" of zero. On XMODEM RECEIVE, CP/M binary files are assq}b%DOS SYSb*)DUP SYSbSAUTORUN SYSb"UDISPLAY BASbvCHEMTEC DOCumed to be Atari binary files that were sent by another Chameleon user. Thus the last byte of the last block is r}used to determine how many of the bytes in the last block are actually valid. This means that an actual CP/M bins}ary file would have some of its last bytes deleted and is the source of Chameleon's inability to receive CP/M binary t} files. Big deal. If your application demands the use of CP/M files, you might want to write a simple CP/M utilityu} to post-pend 128 zero bytes to any particular file. v} Page 15 Chameleon Technical Info w} Chapter 3 Kermit File Transfer Protocol =========================x}==== The KERMIT file transfer protocol was designed by Columbia University for error free file transfer bey}tween a wide variety of personal and time- sharing computers. While not yet as available in the micro-computer cz}ommunity as the XModem protocols, Kermit has two advantages: 1. You can transfer more than one file at a t{}ime. 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 Kinds of Files That Can Be Transfe}red Using Kermit. ====================================================== Kermit was designed primarily for} transfer of text files between microcomputers and large time-sharing computers. Every Kermit implementation, in}cluding this one, supports text transfer. There are several methods of transfering binary data using the K}ermit 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 actu}ally 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 t}he terminal screen will display messages reflecting the state of the file transfer. Here are the important messa}ges: RECEIVING (Q-QUITS) This means that the file named is being received by your computer. The should cycle from 0 to 63, with about 80 chara}cters of the file being received each time the Page 16 Chameleon } Technical Info number changes. is a character that appears whenev}er a transmission error occurs. SENDING (Q-QUITS) This mea}ns that the file named is being sent by your computer. The should cycle from 0 to 63, with} about 80 characters of the file being sent each time the number changes. is a character that appea}rs whenever a transmission error occurs. ABORTING; UNEXPECTED '#' PACKET This means that eith}er Chameleon or the other computer is confused. Check that you've told one computer to send, and the other compu}ter 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 syst}em, 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 Kermit-32> receive } 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 t}he files on the diskette in drive 1, you would set the File Name to: File Name D1:*.*. 3. Cha}nge File Type to the type of file you want to send. Select a File Transfer Protocol of Kermit Send. 4. Pr}ess the START key to go to terminal mode. 5. Press the SHIFT+OPTION keys to start sending the file. } Chameleon continues to send until one of these events occurs: - It comes to the end of the file, whereupon it prints Q}UITTING 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 pri}nts FILE I/O ERROR Page 17 Chameleon } Technical Info ###. ### is an error code which is explained in the error code appendix. - It fails t}o 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 li}ke this: Kermit-32> exit $ If there was a file error, the other compu}ter's Kermit program may 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. Est}ablish a connection with the system, log in, and run that system's remote Kermit program. Type all but the last charac}ter of the command to send the files you wish to receive. For example, on a DEC Vax, running VMS, to have all th}e files in the default directory sent to your Atari, you would type: $ Kermit Kermit-32> se}nd *.* 2. Press the OPTION key to go to Chameleon's menu mode. 3. Select File Name and enter the de}vice name you want the received files to be stored on. For example, if you want the files to end up on the diske}tte in drive 1, you would select: File Name D1: 4. Select the appropriate File Type option (probabl}y Text), and set File Transfer Protocol to Kermit Receive. 5. Press the START key to go to terminal mode.} 6. Press SHIFT+OPTION. Chameleon will display the message "Type char; I'll send it then start". Type the} last character of the command you typed to the other computer. (It will probably be the RETURN key.) } Page 18 Chameleon Technical Info } Receiving will begin. It will continue until one of these events occurs: - You type a "Q" character, whereup}on Chameleon types QUITTING TO TERMINAL MODE and returns you to terminal mode. - A file I/O error occurs. Chamele}on will display a FILE I/O ERROR WAS ### message, where "###" is an error code. - Chameleon receives ten bad bloc}ks in a row, in which case it displays ABORTING: OTHER HOST NOT RESPONDING and returns you to terminal mode. } - The files transfers successfully, in which case Chameleon prints QUITTING TO TERMINAL MODE and returns you to termi}nal mode. When you've returned to terminal mode, repeatedly press the RETURN key until you see the o}ther computer's prompt. Then type "Exit" and RETURN. On a VMS system, for example, that would look like this: } Kermit-32> exit $ If there was a file error, the other computer's Kerm}it program mays still be trying to send the data. In that case, you will have to type ten to twenty carriage ret}urns before you get the other system's prompt back. 3.5 Using Kermit to Transfer Files Betwe}en Two Ataris ====================================================== The steps for transferring informatio}n from one Atari Home Computer to another using the Kermit protocol are as follows: 1. Establish a telepho}ne 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 Transf}er Protocol Send - File Name - File Type Binary 4. The receiver presses the SHIFT+OPTION }keys and types an asterisk (*). Page 19 Chameleon } Technical Info 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 ph}ones. 3.6 Kermit File Conversion. =========================== This section is for adva}nced users interested in the internal format of the Atari Kermit file format--details of the actual Kermit protoc}ol may be found in the Byte article. 3.6.1 File names. ----------------- Atari DOS II file names con}sist of a letter, followed by up to seven letters or digets, optionally followed by a period and zero to three mo}re letters or digets. Happily, this exactly matches Kermit's standard for file names. Most computer systems will } accept Atari DOS II sytle names, but you should check for any limitations. (Some systems, for example, allow only fi}ve 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 th}e 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 EO}Ls ($9b) are converted into CR($0d)/LF($0a) pairs - All Atari-TABs ($7f) are converted into ASCII-TABs ($09) - Th}e high bit is removed from each character. On XModem 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 me}dium and the other computer preserve the eighth bit, then the binary data will be transmitted without change. } Page 20 Chameleon Technical In}fo 3.7 Instructions For Using Kermit With An IBM Mainframe ============================================}=========== Large time sharing IBM computers can run a version of the Kermit protocol under the CMS enviro}nment. Chameleon's Kermit must be told that it is communicating with an IBM mainframe in order to properly trans}fer files. To transfer files to an IBM mainframe, you must set the main menu line Terminal Type to IBM 3031.} Page 21 Chameleon } Technical Info Chapter 4 Character }and Control Codes =========================== Following are the character and control }codes for each terminal type Chameleon emulates: Table 4-1: The Keyboard } ======================= Type To get ASCII Code } ---------- --------- ---------- CTRL-COMMA ^@ 0 CTRL-<}letter> ^ 1-26 TAB ^I (TAB) 9 RETURN ^M} (CR) 13 ESC ^C (ESC) 27 CTRL-UP ARROW ^\ 28} CTRL-DOWN ARROW ^] 29 CTRL-LEFT ARROW ^^ 30 CT}RL-RIGHT ARROW ^ 31 CTRL-PERIOD \- 96 CTRL-SEMICOLON } left brace 123 SHIFT-CLEAR right brace 125 CTRL-DELETE tilde }126 BACK SP RUB OUT 127 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-, which aren't legal in ATASCII (or ASCII) cause Chameleon to lock until you type a legal} character. 4.1 TEST terminal. ================== The TEST terminal type simple} prints all characters 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). Page 22 Chameleon } Technical Info 4.2 GLASS Terminal. =================== The GLASS TTY t}erminal type prints all characters except ASCII 0-31 and ASCII 127. Most control codes are ignored. The followi}ng, however, are recognized: Table 4-2: Glass TTY Control Codes ===}=============================== ASCII Name Dec Value Action ---------- --------- ------------}------------------------ ^G 7 visual bell (flash screen border) ^H 8 } back space (cursor left) ^I 9 tab to next 8-column tab stop ^J 10 line feed} (cursor down) ^L 12 form feed (clear screen, home cursor) ^M 13 carriage ret}urn 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 m}ainframe. It checks the main menu, and assumes that it is talking to an IBM mainframe if the Terminal Type is se}t to IBM 3031. 4.4 ADM-3A Terminal. ==================== The ADM-3A terminal prints th}e same characters as the Glass TTY, but it handles a different set of control characters. They are as follows: } Page 23 Chameleon Tec}hnical Info Table 4-3: ADM-3A Control Codes ==============================}= ASCII Name Dec Value Action ---------- --------- ------------------------------------ } ^G 7 visual bell (flash screen border) ^H 8 back space (cursor left) } ^J 10 line feed (cursor down) ^K 11 cursor up ^L 12 curso}r right ^M 13 carriage return ^Z 26 clear screen, home cursor } move cursor to (X, Y) ^^ 30 home cursor * 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 i}t is in the table, the action is as indicated. Table 4-4: VT-52 Escape Codes } ================================== ESC + Dec Value Action ------ --------}- ------------------------------------ A 65 Move cursor up one line. B }66 Move cursor down one line. C 67 Move cursor right one column. D 68 Mov}e cursor left one column. H 72 Move cursor to top left corner. I 73 Reverse lin}e feed. J 74 Clear from cursor to end of screen. K 75 Clear from cursor to end } of line. Y* 89* Move cursor to (X,Y). Z 90 Send ESC/Z to the other computer.  } * Page 24 Chameleon  } Technical Info 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.  } Table 4-5: VT-52 Escape Codes ================================== } ESC + Dec Value Action ------ --------- ------------------------------------ F 70} Enter reverse video mode. G 71 Exit reverse video mode. L 76 Insert a sp}ace at the cursor. M 77 Delete the character at the cursor. N 78 Insert a blank} line at the cursor. O 79 Delete the line at the cursor. If you are using a Unix t}ime-sharing system, for example, you could send the file UNIXTERM.CAP (provided on the Chameleon diskette) to you}r 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 --}---------------------------------- Page 25 Chameleon } Technical Info APPENDIX 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 c}an't FTP from/to the S device 128..255 Standard ATARI DOS errors. Appen}dix II XModem 2 Protocol Specification. ================================ } The XModem 2 protocol was designed to be used with CP/M based personal computers. It was invented prior to 1/19 }82 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 XModem 2 Protocol Spec. Note that this ve"}rsion of Chameleon is fully compatable with the AMODEM 4.x implementation of the XModem protocol. #} Page 26lementation of the XModem protocol. Dey to(@ to start now. A($ D:DISPLAY.BASD1:CHEMTEC.DOC !!(@press any k \