`8NNp NNO`  @`#@%`')+-/1 35`79;=?/C@E`GIKMOQ S@U`WY[]a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀  @` @`!Aa !Oa!!#A%')+-/13A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aa!Aaǁɡ!Aaׁ١!Aa!Aa " B b !"!B!b!!!!!"!""#B"%b"'")"+"-"/#1"#3B#5b#7#9#;#=#?$A"$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y%[%]%_&a"&cB&eb&g&i&k&m&o'q"'sB'ub'w''{'}'("(B(b((((()")B)b)))))*"*B*b*****+"+B+O`  @`#@%`')+-/1 35`79;=?/C@E`GIKMOQ S@U`WY[]a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀  @` @`!Aa !Oa!!#A%')+-/13A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aa!Aaǁɡ!Aaׁ١!Aa!Aa " B b !"!B!b!!!!!"!""#B"%b"'")"+"-"/#1"#3B#5b#7#9#;#=#?$A"$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y%[%]%_&a"&cB&eb&g&i&k&m&o'q"'sB'ub'w''{'}'("(B(b((((()")B)b)))))*"*B*b*****+"+B+KERMIT NEW/S KERMIT OLD}S CONTROL ACCS Y<DESKTOP INFS 0DISKTOP INFS EMULATORACCS 3IBMTTY ACCS  README DOCS COM 16 ʁS . 0 S.. 0 SASTKER DOC 1S  ASTOBJ DEF5S  ASTUUD PRG8S FKERMIT OPT=S !>KERMIT RSCAS "P.00FILES TXTES .yASTODE UUDHS 0]ASTTTY UUDKS 4.ASTUUD ANNPS @ASTUUD ASMRS A ASTUUD C VS JASTOBE UUDYS NBASTKER UUD`S _ASTOBJ UUDjS EKERMIT PRGpS ASTKER MAIxS "1. GEM ATARI/ST Kermit Author: Bernhard Nebel, Technische Universitaet Berlin Contributions by: Bill Catchings, Bob Cattani, Chris Maio (Columbia Univ.), who wrote the 'minimal' C-Kermit and Glean Seaton, Robert A. Larson, who modified from UNIX Kermit to OS9 Kermit Language: DRI C Documentation: Bernhard Nebel Version: 1.02 Date: June 1986 GEM Kermit capabilities at a glance: Local operation: Yes Remote operation: No Transfer text files: Yes Transfer binary files: Yes Wildcard send: Yes ^X/^Y interruption: Only simple abort Filename collision avoidance: Yes Can time out: Yes 8th-bit prefixing: Yes Repeat count prefixing: No Alternate block checks: No Terminal emulation: Provided by accessory Communication settings: Yes (RS232 par. by accessory) Transmit BREAK: If accessory can Handshaking (for IBM): Yes Transaction logging: Yes Session logging: Yes Raw transmit: Yes Act as server: No Talk to server: Yes Advanced server functions: No Advanced commands for server: No Local file management: Yes Handle attribute packets: No Command/init files: Yes (only for non-RS232 par.) Command macros: No GEM Kermit is a program that implements the KERMIT file transfer protocol for ATARI/ST micros running GEM. It is written in DRI C. The implementation is based on OS9 Kermit, Version 1.5, a modified 'minimal' implementation of Kermit in C. The main advantage of GEM Kermit compared with DRI's Kermit is that it is able to talk with IBMs and that it uses the GEM user interface. 2. Program operation GEM Kermit can be evoked as any other GEM application just by clicking on the icon twice. A resource file 'KERMIT.RSC' has to be present in the same directory as Kermit resides for proper opertation. Otherwise the program will abort with an error message. If a file 'KERMIT.INI' exists it is used to setup the communication parameters (except for RS232 parameters). After the program is started the familiar desktop and a menu bar should appear on the screen. Now you can start to transfer everything back and forth between your ATARI/ST and other machines. If it does not work, you probably forgot to connect both with the appropriate wires (use the RS232/modem plug!), or some communication parameters are wrong, or you are really stupid (or there is a bug in the program). In any case it might be helpful to study the next few chapters. 3. Commands Kermit commands are evoked by selecting a drop down menu item. These items will be discussed briefly in the following. 3.1 DESK menu That is the familiar DESK menu. The first item (KERMIT-Info) tells you something about the program itself and how I can be reached by e-mail. The other items should give you the capabilty to configure the RS232 interface and to open a virtual terminal connection to the other computer. You need both of these accessories because GEM-Kermit cannot set the RS232 parameters by its own and it does not supply a virtual terminal! By the way, for users of IBMs I included an IBM terminal accessory which works in line mode. The messages of this program are still in German, therefore you either have to change and recompile it, or you have to learn German. 3.2 FILE menu This menu gives you the ability to DELETE, RENAME and TYPE files. Files are selected by the standard file selection dialog box. Be aware that wilcards in a delete command do not have the expected effect, but they will select the first file matching the specification. Additionally, you can get information about free space on a disk. And of course, the QUIT command is also present in this menu. 3.3 TRANSFER menu All transfer commands (SEND, RECEIVE, GET, PUT, LOGOUT server, QUIT server) can be found in this menu. Files and directories for these commands are again selected by the standard file selection dialog box. SEND and PUT handle wildcards in the right way. RECEIVE and GET will use a file specification as a name for the first file to receive, all other files will be stored under names sent by the remote host. If you do not input a file name also the first file transferred will be stored under the name provided by the remote host. In any case the files are stored in the selected directory. 3.4 OPTION menu In this menu commands for changing switches (e.g. BINARY TRANSFER, IBM MODE), starting and stopping logs (DEBUG and SESSION LOG), saving and restoring parameters (SAVE and RESTORE STATE) as well as for evoking a parameter changing dialog are found. The details of these commands are not provided here, the interested user will find information about these in other Kermit publications or will learn how to use them by trial and error, hopefully. The only thing I will mention is that the RS232 communication parameters (e.g. baud rate, byte format) are not included. They must be changed using the appropriate accessory. 4. How to install GEM Kermit If you got the program and the resource file (for German or English) as a binary excutable file, perhaps as a uudecoded file, everything should work out fine. Otherwise all the files with the AST prefix have to be compiled and linked (using ASTKER.INP). The resource file must be renamed to KERMIT.RSC and you are ready. Currently, the following files are necessary: ASTKER.C main program ASTFIO.C file I/O on the ATARI ASTGEM.C GEM interface ASTGMO.C GEM interface for changing options ASTGMT.C GEM interface for transfer ASTGCM.C QUIT/LOGOUT server ASTGET.C GET from server ASTSEN.C SEND protocol ASTREC.C RECEIVE protocol ASTUTL.C utility functions for Kermit protocol ASTINC.H common include file for all Kermit modules ASTOBJ.H object definitions for GEM Kermit ASTKER.INP input file for link batch file ASTKER.BAT link batch file ASTODE.UUE (uuencoded) for RCS (if you want to change the resource) results in ASTOBJ.DEF ASTOBJ.UUE (uuencoded) the German resource file or results in ASTOBJ.RSC ASTOBE.UUE (uuencoded) the English resource file results in ASTOBE.RSC one of them must be renamed to KERMIT.RSC ASTKER.UUE (uuencoded) binary executable results in KERMIT.PRG The following files of the DRI C kit have to be modified: GEMSTART.S enlarge stack to 2k bytes and assemble DEFINE.H introduce the definition of NULL as 0L and change NIL to 0L The above mentioned IBM terminal accessory consists of the following files: ASTTTY.C source file ASTTTY.UUE (uuencoded) binary results in IBMTTY.ACC 5. Problems - When communicating with the TU Berlin IBM you better select 8-bit mode, because otherwise the '{' will be eaten. This is not an bug in Kermit or GEMDOS but the IBM sends '{' without setting the sign bit. - If you move the mouse during a transfer, it can happen that key clicks appear. I don't know why. 6. Wish list I spent a lot of time to adopt OS9 Kermit to GEM. As a matter of fact, I wrote more code than I used from the original program. Finally, I discovered that it would have been worth the effort to use the more recent C-Kermit. However, it's done now. If there is anybody out there, s/he is invited to adopt C-Kermit to GEM using my first hack. Besides that, there are a lot of other wishful improvements I probably will not work on: - GEM Kermit seems to be rather slow on fast connections, i.e. 100-150 bytes/secs on a 9600 baud connection. - It would be nice to get the logs on a scroll window. - The RS232 parameters should also be saved and restored by the STATE SAVE and RESTORE commands. However, I was not able to figure out how this could be done. KERMENUMDESKMFILEMTRANSMOPTIONTSENDTRECEIVETGETTFINISHTBYE"OBINTRAN#OTRANLOGKERPARAM ABOUTKER(OFILWARN*OHANDSHA)OPADDING+OPARCHAN&OPARSAVEKPSPCKLKPRPCKLKPSTIMO KPRTIMO KPSEOLKPREOLKPSPADCKPSPCKSTKPRPCKSTKPRTURNKPSQUOTEKPRQUOTEKPEXITOKKPABORTKERDISPLKDSENDKDRECEIVKDFILNAMKDCNVFIL KDFCNTKDBCNTKDPNUM KDBPSKDNAKCNTKDTIMCNTFDELETEFRENAMEFQUIT KPMAXTRYKRABORTKRABOKKRABMESS%ODEBUGSKPPADLSKRINIERRKRABOUTKRABOUOKKRFILEXKRFILNEX,OPARGETKRDABORTFTYPETPUTKERNYIKRMDOTYPKRMDODELKRMDORENKRMDORE2 KRMESSS MSMORE MSEOFKRDELDONKRRENDON KRODOSAV KRODOGETKRDELERRKRRENERR KRTDOSND KRTDORECKRTDOPUTKRTDOGETKRTRAERRKRODODEBKRODOTF KRDBCLSD KRTFCLSD KERRFOPN KRSAVDONKRGETDONKRDEBDONKRTFDONKDPCNT MSGSNDBG MSGFILNX MSGSNDRD MSGSNDFD MSGERRPK MSGTLNPS MSGDATPS MSGTLNPR MSGDATPR MSGCHKER MSGUSRAB MSGTIMOU MSGDSTAT MSGTRAER MSGSTATE MSGFOPN MSGERRFO MSGSFASF MSGTREOF MSGFNEXT MSGNEWFI KRCONFAB KDSENDSKDRECEISKRAVMMSKRAVDAT MSGWOPER MSGERSNA MSGPROER MSGRECRD MSGFATFE MSGFRASFKRPROERRKRWOPERRKRFATFER !MSGRECBG "MSGRECFDFDFREEKRDFREEKRDFIDKRDFBYKRDFOK MEGHNDFA"KRDRDYOK!KRDRFCTI MSGCHSND MSGCHFLU #MSGCHRD $MSGCHPAD %MSGCHWHC &MSGHNDOK-OTIMOUTKRTASKGKRTGFILNKRTASKOKKRTASKAB#KDFINISH$KDBYE 'MSGGETBG (MSGGETRD *MSGGETFD )MSGSRVFI /MSGFINRD -MSGFINFD .MSGSRVBY 0MSGBYERD 1MSGBYEFDKSVFERRKSVBERR`E &o#=AB(HSB$H  g  g  f RSBj` g =g %gJ`Rpr A9nA0m/ПЁRSBk`Jg n <#@`zRpr A9nA0m/ПЁRSBkT`JgN n <#?x`8C=x`C=XrRSBk$  g  g  gQp`JBkQB"+ҫ @$9?xf $` n$<&ւֹ@// Bg?<JNAJg0<`< .A@#=#=#=N/ KP,MNpN$??<LNA` /`NV, o$Hy= n /(a^P#@X S` #A4@ g Hy=HyAdN Pp/N (X/9@pP/Hn,N4O Jf Hy=HyAdN Pp/N (Xp/Hy=Hn,NHyAdN Pp/N (XN^NuNV/.pP/HnN4O JfHy>HyAdN P`F.HH ?-@Jo*A-HJo/./. /.aO XW`N^NuNV nHH ?(HH ?/A聀"/(HH ?/B䂂$/(HH ?-@-A-B m. n "(S!AJk "PRHH`/. /.NP m2 n (S!@Jk"PR .HH`/. /.NP m2 n (S!@Jk"PR .HH`/. /.NPN^NuNVB .lL n (S!@Jk "PRp` /.NX-@Rf .N^Nu n .R` .N^NuNV/. /.N P-@Jf/.Hy>aP` .N^NuN^NuNV/9=Hy>/HyAdN O /. /.HyAdN O p/N (XN^NuNVB@p#@ @l nHHR"@?gR` nJgZ 9@R@ @@  nHHJgR"@?fR` nrR@JfpNqHyA4Hy>4Hy=XN O 9=x-@ >g"HyALHy>6Hy=xN O -@` HyALHy>8Hy=yN O -@HyAdHy>;Hy>:N O -@Jf p/N4XJf/.Hy>=N FPp/N (X/9?NX//.N P n(@Jf/.Hy>TN FPp/N (XHy@/9@NPBN (XN^NuNVB 9A8S#A8Jkp yA4RA4`HyA4NX-@ g, f nRB` nR .`JfpN^Nu nB .N^NuNVB . S".lL n (S!@Jk "PRp` /.NX-@Rg nR . fNq . nBJfpN^Nu .N^NuNV nHHR-@Jg:"9ATS#ATJk yALRALHH`HyAL/.NP` 9ATS#ATJk yALRALp HH`HyALp /NPN^NuNVB nHHR-@Jg4 n "(S!AJk "PRHH`/. /.NP-@` .N^NuNVH A-H n JgHHR-@-H %f %f gJfV n@`\.gp`p nHH`8.gp`p` nHH` nBp#?|pN^Nup n@ nJf n|B .N^NuB . lFr NlR//.N= PJf .r Nl"nPR`.g /.N X.gp` . //.NP n!@J=g@ . JgB/.NP n!@J=gJp#?| nBpN^Nu .  f$ n/(N Xp#?| nBpN^Nu .N^NuNV . ". ///.azO N^NuNVJjp#?|pN^Nu/.aX-@JfpN^Nu n(HH dN``` ``/./. n/(N O -@J=g JfpN^Nu ng .N^Nup-@-@ .lZ n R@HH g f$ .Sr///.aO .N^Nu n R`JfJfB .N^NupN^NuNVJjp#?|pN^Nu/.aX-@JfpN^Nu n(HH drN``` ``P ngp/B/.aLO ng0/./. /(N!6O -@J=gpN^Nu .N^NuB.p-@-@-@ .l n R@ f . g | S nC .R.-@A m/HyC n/(N!6O -@갮gpN^NuJ=gpN^NuB`hJg:/.HyC n/(N!6O -@갮gpN^NuJ=gpN^Nu .N^Nu .N^Nup#?|pN^NuNV/.aX-@JfpN^Nu n(JgpN^Nu/./. n/(N!|O -@J=gp#?|pN^Nu f`JgZ nfN .S-@Jk4B/./.afO Jgp/Hn/.a\O JfS` .RN^Nu .N^NuNV/.aJX-@JfpN^NuB n/(N XJ=gp-@ nB .N^NuNV/.N XJ=gpN^NupN^NuNV/.aXN^NuNV/. /.NPN^NuNV .=opN^Nu y= .ѹ== N^NuNV/.aX-@JgN^Nu | N^NuNV 9==ѹ=#==#?#?#?#? N^NuNVaL /./9?`-@aP n-@Jfp-@ . dN```8`R``J f`A"n#H`4  fDA"n#H`  f(A,"n#H`A"n#H`  fA"n#H`A2"n#H`  f. .r/@B///r/r/N;O #=J=WDHHLN^NuNV .r/@///r/rA/N;O#=JWDHH N^NuNVJfB/./. /.aON^Nu"n iB/./. / NON^NuNVJfp//./. /.adON^Nu"n ip//./. / NON^NuNVH Jf pLN^NuAL$n"jg pLN^Nup". /. n/(/. /p/pB/N;OLN^NuNVJgp@`p?r$.". v/A////./ n/(v//-@N;O-@Jj #=pN^Nu .N^NuNVBp/N;P n pN^NuNVB .l& n HH/r/r/N;O R` .N^NuNVB .l& n HH/r/r/N;O R` .N^NuNVv . lS`p}@A r//r/r /N;Op /p/p/N;O .HHr-Ax-@| .|T".xl>6@w f| w .wf .xUDN^Nu .xU n wRx` .| }l n  .|RN^NuNVB .lP n @HH fp /p/p/N;O .HH/r/r/N;O R` .N^NuNVJg .`pN^NuNVB . n*r NHHR @-H?f %f n  %f: yDHHRD-@ n?f %g .N^Nu n  *g -nX`BR B/.HnHz/. N'O-@Jg-@ fJgRJo .N^NupN^NuJgSDJfD .N^Nu yDHH-@RD n?f .g .N^NuR` .N^NuNV yDHHRD-@JfpN^NuNVp nHHR A?-@-@gB .r N 9n8i 3F <)i/gRi`a:<) ҆Bц` .f Jif`Ri` eg efNa +g -f ia 0m. 9n(:)iFi im?)_ f $hB`4)?)_gDBi/gT3|?Jk Si`Jig ktia\adSi`aRi`t4)?)_gN:$h$$$h$p0)L~NYNXNu,(g !|NuH$hN<L?3FS fiNu?)_g|Nu-"gHAHIANu/JgLQA/gRA/fJjR`SAgAo Al&I?HA_HABA$Nu/<N;B`/<N; <JjO`9$fprt`"HBHBB/t Q$Nu//gdB Jf BB /g$RB/fJjRd R`SBgBo Bl(J?BBHB_HB&Nu/<N;p`/<N;0<HBBH@B@Or`NV#DN^NuNVH*OB=pn@N?.*?.&?."?.?.?.?.?. NA.ML?N^NuH<*g2jD(g(jDBv㒴eRQ"jDjD`BBL@ .  "   d    Pb::$  :":V:l&$@j$&:P(J.z   H $ , Xd`$  J $0 4" & 0  D &B 4 T<@HD(n,$ TD 6 (.>&2f( 0$ X&2`:D@.x.*5E 5E 0 F A A 0 0 1 0 1 1 1 0 D D 23 23 11 444$.E.P Desk File Transfer Options KERMIT-Info-------------------- Desk Accessory 1 Desk Accessory 2 Desk Accessory 3 Desk Accessory 4 Desk Accessory 5 Desk Accessory 6 Delete... Rename... Quit------------------ Type... Free Space... Send... Receive... Put(Server)...------------------- Get(Server)... Quit(Server) Logout(Server)------------------- Binary Transfer Session Log...---------------------- Debug Log... Save State...---------------------- File Name Warning Padding IBM Mode Change Parameters... Load State... TimeoutDelete ...Rename ...New Name ...KERMIT Communication ParametersSendReceivePacket Length____99____99Timeout(sec.)____99____99Retries(count)____99EOL(hexcode)____NN____NNPadding(hexcode)____NNPadding(length)____99Packet Start(hexcode)____NN____NNHandshake(hexcode)____NNQuote(character)__X__XOKABORTSendReceive____________________________________________XXXXXXXXXXXXXXXXXXXXXXFile:____________________________________________XXXXXXXXXXXXXXXXXXXXXXLog. name:______________XXXXXXXFiles transferred:__________XXXXXBytes/sec.:__________XXXXXErrors:__________XXXXXTimeouts:______________XXXXXXXBytes transferred:____XXPacket id:ABORT______________XXXXXXXPackets transferred:Get(Server)Put(Server)TIMEOUTREADYQuit(Server)Logout(Server)OKNEBEL@DB0TUI11.BITNETBernhard Nebel GEM-KERMITxxxxVersion__.__9999xxxxxx__-__-__999999This program is public domainsoftware and is distributed freely.The KERMIT protocol was developedat Columbia University, New York.The remote host stopped transferringand sent the following message:________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOKType ...--- MORE ------ EOF ---Start sending. Path='%s',File='%s'Sending successfully completed.***No such File.***Error message from remote host: %s.Sending aborted.SPACK: type=%c, len=%2d, num=%02xSPACK: data=|%s|***Checksum error: rec.=%02x exp.=%02x***User aborted.Timeout while receiving.SWITCH: state=%c num=%02x***Remote host does not respond.***Fatal state error.File '%s' opened for sending.***File cannot be opened.File '%s' will be sent as '%s'.File '%s' completely transferred.RPACK: type=%c, len=%2d, num=%02xRPACK: data=|%s|Looking for next file ...Next file will be '%s'.***Fatal protocol error.***File '%s' cannot be created.File '%s' exsists. New name: '%s'.Receiving successfully completed.***Fatal file I/O error.File '%s' will be received as '%s'. -> sent: <0x%02x> |%c|No handshake character received. -> flushed: <0x%02x> |%c|Start receiving. Path='%s', File='%s'.Receiving aborted. -> after %d sec. recv.: <0x%02x> |%c| -> padding: %d * <0x%02x> -> waiting for handshake <0x%02x> |%c| -> Handshake character received. File %s requested (Path=%s, File=%s).Getting successfully completed.Quitting(Server) requested.Getting aborted.STRINGQuitting(Server) aborted.Logout(Server) requested.Quitting(Server) successfully completed.Logout(Server) successfully completed.Logout(Server) aborted.Save state ...Load state ...Send ...Receive ...Put ...Get ...Open debug log ...Open session log ...AFree disk space on _:F________________ Bytes99999999OKGet from remote host________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXGet following file from remote host:OKABORT[3][Error on writing|to state file.][ABORT][3][This file already exists.][ABORT][3][This file does not exist.][ABORT][3][Not yet implemented.][SORRY][0][File renamed.][OK][0][File deleted.][OK][3][Error while deleting file.][ABORT][3][Error while renaming.][ABORT][3][Remote host does not respond.][ABORT][0][Debug log closed.][OK][0][Session log closed.][OK][3][Error while opening file.][ABORT][0][State saved.][OK][2][Really abort transfer?][CONTINUE|ABORT][0][State loaded.][OK][0][Debug log started.|Level of logging:][Packets|Characters][0][Session log started.][OK][3][Fatal error in protocol.][ABORT][3][File cannot be created.][ABORT][3][Fatal error while|doing file I/O.][ABORT][3][Quitting of Server aborted |because of transmission errors.][ABORT][3][Logout of Server aborted |because of transmission errors.][ABORT]|,Cj*Vm@   ()*-03@A BEHKNQTefgjmp   #:QWXYp   "(23 4<DLabcfilwx    %&'56p7<I NU^ e$""%:; <=>?h)) | ~     #))Lqr%PP $ + 2  = !P  G U j $! 4>K\p "- #$%&' ()%*9+C,N -e ! u         . 4Pl "   "   0" L  h"  " ", "Hd  "  "!% $&   ( D `  |           $@ \x    y     <! X" # $ t  !    !!   8     T  p     2 $   ('  +N  ""3&Z k!   &       * @ ^ x ! !  ) ) ) 8% X%" {)! ) )# )   ) ! ) " 0#&# W) $ j# '% )& "(' )"( #&) !%* A)+ ]&,1N- n. u/ 0 (1 &+     /  8   D L T g 4P' 1  l ($s %v @p!X$& &&+++, ,P,,,--p Directory DISK$FS101:[KERMIT.AST] ASTFIO.C;1 6 15-JUL-1986 09:23 ASTGCM.C;1 3 15-JUL-1986 09:24 ASTGEM.C;1 20 15-JUL-1986 09:24 ASTGET.C;2 1 15-JUL-1986 09:25 ASTGMO.C;1 17 15-JUL-1986 09:25 ASTGMT.C;1 19 15-JUL-1986 09:26 ASTINC.H;1 11 15-JUL-1986 09:26 ASTK.XEC;1 2 15-JUL-1986 09:27 ASTKER.BAT;1 1 15-JUL-1986 09:46 ASTKER.C;1 4 15-JUL-1986 09:46 ASTKER.DOC;1 17 15-JUL-1986 09:46 ASTKER.INP;1 1 15-JUL-1986 09:46 ASTKER.MSG;1 5 15-JUL-1986 09:46 ASTKER.UUE;2 111 25-JUL-1986 14:57 ASTOBE.UUE;2 33 25-JUL-1986 14:56 ASTOBJ.H;1 14 15-JUL-1986 09:52 ASTOBJ.UUE;2 35 25-JUL-1986 16:09 ASTODE.UUE;2 8 25-JUL-1986 14:58 ASTREC.C;1 28 15-JUL-1986 11:05 ASTSEN.C;1 25 15-JUL-1986 11:54 ASTTTY.C;1 26 15-JUL-1986 11:55 ASTTTY.UUE;2 24 25-JUL-1986 16:38 ASTUTL.C;1 31 1-AUG-1986 09:16 ASTUUD.ANN;1 2 19-AUG-1986 15:29 ASTUUD.ASM;1 16 19-AUG-1986 15:29 ASTUUD.C;1 8 15-JUL-1986 11:56 ASTUUE.C;1 6 15-JUL-1986 11:56 Total of 27 files, 474 blocks. begin 777 ASTOBJ.DEF M * )+15)-14Y5 P$ 341%4TL 0! $U&24Q% M % 0!-5%)!3E, !@$ 34]05$E/3@ !D! %13 M14Y$ : 0!44D5#14E610 '0$ 5$=%5 !X! M %1&24Y)4T@ ? 0!40EE% (@$ 3T))3E1204X M ",! $]44D%.3$]' $ -+15)005)!30 "0$ 04)/551+15( M "@! $]&24Q705). J 0!/2$%.1%-(00 *0$ 3U!!1$1) M3D< "L! $]005)#2$%. F 0!/4$%24T%610 $!0$ 2U!3 M4$-+3 ! 8! $M04E!#2TP 0( 0!+4%-424U/ $"0$ M2U!25$E-3P ! T! $M04T5/3 0. 0!+4%)%3TP $ M$ $ 2U!34$%$0P !!0! $M04U!#2U-4 05 0!+4%)00TM35 M $%P$ 2U!25%523@ !!D! $M04U%53U1% 0: 0!+4%)154]4 M10 $&P$ 2U!%6$E43TL !!P! $M004)/4E0 % -+15)$ M25-03 % 0$ 2T1314Y$ !0(! $M$4D5#14E6 4$ 0!+ M1$9)3$Y!30 %!P$ 2T1#3E9&24P !0H! $M$1D-.5 46 M 0!+1$)#3E0 %&0$ 2T103E5- !0T! $M$0E!3 M 40 0!+1$Y!2T-.5 %$P$ 2T1424U#3E0 !(! $9$14Q%5$4 M 3 0!&4D5.04U% % $ 1E%5250 ! L! $M034%8 M5%)9 ' -+4D%"3U)4 '!0$ 2U)!0D]+ !P0! $M2 M04)-15-3 E 0!/1$5"54< 4P $$@$ 2U!0041, %, M!$M224Y)15)2 & %+4D%"3U54 & @$ 2U)!0D]53TL M $ !$M21DE,15@ " 1+4D9)3$Y%6 + $ 3U!!4D=%5 M !1L! $M21$%"3U)4 6 0!&5%E010 &P$ 5%!55 M , !$M%4DY920 ( %+4DU$3U194 0 !2U)- M1$]$14P ( 4M2341/4D5. # %+4DU$3U)%,@ "0 # M2U)-15-34P "0$! $U334]210 D" 0!-4T5/1@ M!0 $2U)$14Q$3TX 0 !$M24D5.1$]. * %+4D]$3U-!5@ M "P !2U)/1$]'150 8 !$M21$5,15)2 ' 1+4E)%3D52 M4@ # !2U)41$]33D0 T 4M25$1/4D5# . %+4E1$ M3U!55 #P !2U)41$]'150 @ !$M25%)!15)2 0 %+ M4D]$3T1%0@ $0 !2U)/1$]41@ D !$M21$)#3%-$ * M 1+4E1&0TQ31 "P $2T524D9/4$X P !$M24T%61$]. M . 1+4D=%5$1/3@ #P $2U)$14)$3TX ! !$M25$9$3TX M 4= 0!+1%!#3E0 ) P$ 35-'4TY$0D< "04! $U31T9) M3$Y8 D$ 0!-4T=33D121 )!P$ 35-'4TY$1D0 "08! $U3 M1T524E!+ D( 0!-4T=43$Y04P )"0$ 35-'1$%44%, "10! M $U31U1,3E!2 D5 0!-4T=$05104@ )"@$ 35-'0TA+15( M"0L! $U31U534D%" D, 0!-4T=424U/50 )#0$ 35-'1%-4050 M "0X! $U31U120452 D/ 0!-4T=35$%410 )$ $ 35-'1D]0 M3@ "1$! $U31T524D9/ D2 0!-4T=31D%31@ )$P$ 35-' M5%)%3T8 "18! $U31T9.15A4 D7 0!-4T=.15=&20 #0 $ M2U)#3TY&04( !2 ! $M$4T5.1%, 4? 0!+1%)%0T5)4P & M!P$ 2U)!5DU- %, !@@! $M2059$050 D9 0!-4T=73U!%4@ M )&@$ 35-'15)33D$ "1@! $U31U!23T52 D; 0!-4T=214-2 M1 )' $ 35-'1D%41D4 "1T! $U31T9205-& 1 1+4E!2 M3T524@ $@ $2U)73U!%4E( !, !$M21D%41D52 DA 0!- M4T=214-"1P )(@$ 35-'4D5#1D0 !"B\\ G?"\\ GZB\\ HADZY M 30M_\ ##/ HB#U\ '__F 4,&[__M'(T?P ">>,+P 5)N__X, M;@ *__YMY#/\ ( ">R+KP "?L+SP "B(+SP ">>3KD \84(\NO M*&(O/ *(PO/ *, O/ *+X_/ $0F=.N0 %'#?_ !!.7DYU3E;_ M_$*7/SP! $ZY 3A%2/80 P$I 9@9"0& +(^N0 *&(_.0 *(P_.0 M*, _.0 *+Y"9TZY 3R%"/,\ "B*/KD "AB/SD "B,/SD "C /SD M "B^/SD !X*/SD "=\/SD "C /SD "B^3KD !*>W_P ./KD "AB M/SD "B,/SD "C /SD "B^/SD "B*3KD !0"4(\^N0 *(A.N0 #K0^ MN0 *(A.N0 #50^N0 *(A.N0 #H)P 4Y>3G5.5O_\+KP "?L0F<_.0 M*(A.N0 $"18CS Y G[%) ,\ !SJ,_D "C <[# Y 3G5.5O_\/KD "B(3KD M [F85@^N0 *(I.N0 %#P^N0 *(I.N0 %%8^N0 *&(_.0 *(P_.0 M*, _.0 *+X_.0 '@H_.0 )WP_.0 *, _.0 *+Y.N0 $O#?_ Y. M7DYU3E;__"Z\ E:"\\ 3G5.5O_\/JX "#\\ 9.N0 %/Q4CTY>3G5. M5O_\+JX "#\Y HB$ZY -ZE2//KP #6',/KP "F'&3EY.=4Y6__P^N0 M*(A.N0 #50^N0 *(A.N0 #H(NO %N1AMBZ\ 6^V&N+KP !<28:8N MO %REAGBZ\ 7*F&6+KP !=888XNO %XAAABZ\ 7JV$ _WXNO M%\UA /]T+KP !?W80#_:BZ\ 8*6$ _V NO &%YA /]6+KP !B+80#_ M3"Z\ 8M&$ _T).7DYU3E;__& */KP TZY 4_#Z\ !).N0 %/Q*@&;H M3EY.=4Y6__P^O #_/SP !DZY 4_%2/2H!F[$Y>3G5.5O_X(&X "$(0/KP M_S\\ 9.N0 %/Q4CRU __QG(" N__S O /\B;@ ,$H @+O_\/KD "B(3KD Y0 M/J[_^C\N__P_.0 *(A.N0 $/18CTY>3G5.5O_\/KD "B(3KD VX3EY. M=4Y6__@NCEF7+PY5ES\Y HB$ZY /F%R/,"[__+!N AM##ZY HB$ZY M -ADY>3G5.5O_Z/6X "O_^8!P@;@ ,,F[__M')(FX ##1N__[3RA%1 %3 M;O_^,"[__K!N ALVDY>3G5.5O_Z/6X "/_^8!P@;@ ,,F[__M')(FX ##1N M__[3RA"I %2;O_^,"[__K!N IOVDY>3G5.5O_Z0F[__F :(&X ##)N__[1 MR2)N @T;O_^T\H0D5)N__X,;@!0__YMWDY>3G5.5O_\(&X "%-0; H@;@ ( MEB/(&X "# 0(FX "%)14F[_ M_CZN__PP+O_^T5=A /W$8 RA N__A(@& *@^O -80#ZV' !8 #!$IN M__YF!F$ _21@0#ZN__PP+O_^T5=A /VB+JX #"!N A34# 0/P!3;O_^/R[_ M_F$ _?)8CRZN P@;@ (/Q!35S\N__YA /ST6(]@8B!N @P$+!N__YF!F$ M_-!@+BZN P@;@ (4U P$#\ /R[__F$ _;!8CRZN P@;@ (/Q!35S\N__YA M /RR6(]@(&$ _)I@&F 8L'P "&< _V*P? -9P#_3+!\ ']GH&#@8 "3! N M__9(@& BQ"0& D!*;O_^9@9A /Q@8!(^KO_^,"[__-%780#\WE-N__Y@ M (:(&X "# 0L&[__F8&80#\.& 2/J[__C N__S15V$ _*)2;O_^8 !\B\N M @O/ 'R1A /UP6(\P0-'((GP "B.,#"8 "!?,( ]0/_^+JX ## Y ? M),'\ %#0O 'R8O &$ _0Y8CSZN__P_+O_Z/SD "B(3KD !#T6(\NK@ , M(&X "#\04U="9V$ ^\98CSZN__PP+O_^T5<_+O_Z/SD "B(3KD !#T6(]@ M %F+RX ""\\ ?)&$ _018CS! T<@B? *(XP,)@ (%\P@#U __XNK@ , M,#D !\DP?P 4-"\ ?)B\ 80#\@EB//J[__#\N__H_.0 *(A.N0 $/18 MCRZN P@;@ (/Q!35T)G80#[.EB//J[__# N__[15S\N__H_.0 *(A.N0 M$/18CV -IA /CF+HY9ER\.79<_.0 *(A.N0 #]Y#Z\ '=A /=P80#WJF$ ^$1A /AB8 >BZ.!I?___^P+PX&E____ZYA /M, M6(]*0&=@+HX&E____[ _+O^N80#_;%2/2F[_KF<\,'D "=^T3G5.5O_H8$PNC@:7____[$ZY 20 QN "C_[&8V,"[_]+!Y 3G5.5O_\,_P 90 *&9">0 *&A">0 M*&PS[@ ( H3G5.5O_\,_P !0 *&9">0 *&A">0 *&PS M_ ( H<#/N @ "AR3KD !%,3EY.=4Y6__PS_ % H9D)Y H:$)Y M H;#/\ < "AP,^X " *').N0 $4Q.7DYU3E;__#/\ 4 "AF0GD M "AH0GD "AL,_P !@ *' S[@ ( H3G5.5O_X+7P !T* M__P@;@ *$!!(@")N__PR@%*N I4KO_\2D!FYC/\ 4 "AF0GD "AH("[_ M_)"\ ="H'\ )(P%- ,\ "AL,_P # *' S[@ ( H M3G5.5O_\,_P !0 *&9">0 *&A">0 *&PS_ * H<#/N @ "AR3KD M !%,3EY.=4Y6__PS_ % H9D)Y H:$)Y H;#/\ D "AP,^X " M*').N0 $4Q.7DYU3E;__#/\ 4 "AF0GD "AH0GD "AL,_P P *' S M[@ ( H3G5.5O_\,_P !0 *&9">0 *&A">0 *&PS_ " M H<#/N @ "AR3KD !%,3EY.=4Y6__PC[@ ( #DY>3G5.5O_\(_P !T* # '-@C_ )GP !S<3EY. M=4Y6__PS[@ * ="BZN !!.N0 $3@NK@ 43KD !%"(^X # '-0S_ !M M H9C/\ 0 "AH,_P 0 *&PS[@ ( H3G4C[P $ H=$YU(^\ ! *'A. M=2/\ H9@ ',PB/ ',QPT,H!2 MKO_Z4F[__@QN 3__FW:+KD "A>3KD 40D P.0 )]Q.7DYU3E;_^B/\ M GM 'PPC_ )X !\0(_P ">\ ?%"/\ GW 'Q@C_ *'X M !\<(_P "BZ ?("/\ ?# *%X^O *80#_1C/Y GW *&1P 4Y> M3G5.5O_\/KP $V$ _RIP 4Y>3G5.5O_\(^X " *'X^O 73KD !%B3EY. M=4Y6__PS[@ ( GO#/N H ">^/KP &$ZY 18DY>3G5.5O_\,^X " M)[PC[@ * H?CZ\ #1.N0 $6).7DYU3E;__#/N @ ">\,^X "@ )[XS M[@ , GP#/N X "?",^X $ )\0S[@ 2 GQC/N !0 "?(,^X %@ M)\H^O !)3KD !%B3EY.=4Y6__PS[@ ( GO#/N H ">^,^X # )\ S M[@ . GPC/N ! "?$,^X $@ )\8S[@ 4 GR#/N !8 "?*/KP 2DZY M 18DY>3G5.5O_\/KP 34ZY 18B!N @PN0 )]X@;@ ,,+D "?@(&X M$#"Y GXB!N !0PN0 )^1"0# Y GW$Y>3G5.5O_\,^X " )[PC[@ * M H?CZ\ $Y.N0 $6).7DYU3E;__#/N @ ">\(^X "@ *'X^O C3KD M !%B3EY.=4Y6__PS[@ ( GO#/N H ">^,^X # )\ S[@ . GPC/N M ! "?$/KP 9$ZY 18DY>3G5.5O_\,^X " )[PS[@ * GOC/N P M "? ,^X #@ )\(S[@ 0 GQ#Z\ &5.N0 $6).7DYU3E;__#/N @ ">\ M/KP 9DZY 18DY>3G5.5O_\,^X " )[P^O !G3KD !%B3EY.=4Y6__PS M[@ ( GO#/N H ">^/KP :$ZY 18B!N PPN0 )]X@;@ 0,+D "?@ M(&X %#"Y GXB!N !@PN0 )^1"0# Y GW$Y>3G5.5O_\,^X " )[P^ MO !K3KD !%B3EY.=2/? B!V;W)H86YD96Y=6T%B;W)T70 J*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ "H@24)-($)L;V-K(%1EG5R@6-K('IU;2!$ M97-K=&]P @($E"32!497)M:6YA; !?8W)YA?;6]V95]R::( &4E]M;W9E7VQEH@ 9F7W-H:69T7W*B M!II?I?=E]E96]L *( . M4%]V7V5E;W, H@ Z"7W9?96YT97*B #K1?=E]E>&ET7Z( .YE]V M7V]P;G9WH@ \87W9Q7V-H8V6B #YA?=G%?8W5R8:( /WE]V<5]E M>'1NH@ ! D7W9R;U]C<'FB $)A?=G-?8W5R8:( 0]%]I7W!T<@ MH@ !$X7VE?<'1R,@"B $4)?9W-X,0 *( 13%]G*( 2+E]E=FYT7VUEH@ !) 7V5V;G1? M=&FB $EI?9F]R;5]A;*( 2?%]G7V=R869?0 "A '/I?:6YT:6X *$ M ="E]G;%]H8F]XH0 !X*7VEN=&]U= "A '@Q?8P *$ ? M#%]L87-T7V5NH0 !\D7W)I;F=?8G6A 'R9?875X7W)E8Z$ E9E]S M8W)N7VUFH0 "5H7W!T'1?96ZA )WY?9VQO8F%L *$ G@%]W;W)K7VEN MH0 ">>7V-O;G1R;VRA )[1?:6YT7VEN *$ GO%]I;G1?;W5TH0 M "?<7V=L7VAC:&&A )^I?=V]R:U]O=:$ G[%]A9%]C H0 "A> M7VAD97-K "A *&)?9VQ?87!I9*$ H9%]C;VYT8@@*"A8*!! & M!@@8$@P@$!8&!@@&$ 8&" @&$ 8&" @&$ 8&" @&#B0&"@X(" 80!@8(" 80 M!@8(" 80!@8(" 80!@8(" 80"! (!@@*!@H&! 8$!@0&!! &!@@(!@H*$ 8& M" @&"@H.! 8$"! (" 8(" 8&! 8$$ H*" @(" @&!@00" @&" @(!@P*" 0& M$A0@& 8(#@0&! 8$!@0&! 8$!@0.!"0*$ @*$ @*$ @(" @(" @*$ @(" @( M" @*$@H*"@H($ @*$ @*$ @(" @*$ @(" @*$ H0"A ("@H*"@H($ H*" @( -" @!C 0$! 0$! 0$ @* end Date: Sun, 03 Aug 86 22:35:31 EST From: MOEWS%UCONNVM.BITNET@WISCVM.ARPA Subject: Re: Uuencoded Files and Trailing Blanks Keywords: Uuencoded Files If you use KERMIT under VM/CMS, it is hard to use uuencoded files such as the uuencoded version of ST Kermit, since VM/CMS Kermit removes all trailing blanks when downloading files. Here is a solution to this problem; it is a version of UUDECODE that supplies trailing blanks as necessary, written to run on the Atari ST. It is written in 68000 assembly language, and can be assembled using the public domain assembler, AS68. David Moews MOEWS@UCONNVM.BITNET * This is a UUDECODE program for the ATARI ST. * It can be assembled using the public domain assembler, AS68; * since this assembler does NOT assemble register shifts and rotates, * all such shifts and rotates have been pre-assembled by hand. * Disassemble a file.... * ... print an explanatory message ... pfile pea openm move.w #pline, -(a7) trap #1 addq.l #6, a7 * ... get the line ... lea buffer, a1 move.l #blen, d2 bsr getln * Open file! clr.w -(a7) Open for reading pea buffer move.w #fopen, -(a7) trap #1 addq.l #8, a7 * Check for error... tst.w d0 bmi error move.w d0, d1 Save handle number * Skip over first 10 characters ('begin xxx ') clr.w -(a7) move.w d1, -(a7) move.l #10, -(a7) move.w #lseek, -(a7) trap #1 add.l #10, a7 tst.l d0 bmi erroro * Initialize I/O pointers bsr init * Get filename (terminated with CR/LF) lea buf2, a1 gfloop bsr getch cmp.b #$0d, d7 beq gfdone move.b d7, (a1)+ bra gfloop gfdone clr.b (a1) bsr getch Discard $0a * * Open file! * clr.w -(a7) R/W file will be created pea buf2 move.w #fcreat, -(a7) trap #1 addq.l #8, a7 * Check for error... tst.w d0 bmi erroro move.w d0, d2 Save handle number * ... now the fun begins ... * GEM uses a0; input buffer pointers a2-a3; output ptrs a4-a5; stack ptr a7 * GEM uses d0; d3=byte count in this line; d4=byte count in this 4-character * group -or- char count while reading; * d5=group of 4 characters -or- 3 bytes. * Scratch in d7. * * LINE LOOP * * Get count. If 0, we are done. loop bsr getnn sub.b #$20, d7 Subtract space beq done * Otherwise, get that many characters. clr.w d3 High byte 0 for "dbf" move.b d7, d3 subq.w #1, d3 Correct for "dbf" bsr init3 Reset counters loop3 bsr getch3 bsr prtch dbf d3, loop3 bsr skipnl Skip over junk + $0d/$0a bra loop * * Initialize state of 3-characters. * init3 clr.w d4 rts * * Get another character from a group of 3. * getch3 tst.w d4 bne get32 * Read in another group of 4 into d3; reset count to 3. move.w #3, d4 clr.l d5 *et3l lsl.l #6, d5 get3l dc.w $ed8d bsr getnn sub.b #$20, d7 or.b d7, d5 dbf d4, get3l move.w #3, d4 Set byte count swap d5 Pattern from [0123] to [2301] * Get a character out of d3, decrement count in d2, & return! get32 move.b d5, d7 * rol.l #8, d5 dc.w $e19d subq.w #1, d4 rts * Read until we come to a newline; then skip over $0d/$0a. skipnl bsr getch cmp.b #$0d, d7 bne skipnl bra getch * * Buffered I/O subroutines. Input buffer pointer a2, end ptr in a3; * output buffer pointer a4, end prt a5. * * Sets up. init lea inpend, a2 lea inpend, a3 lea outbuf, a4 lea outend, a5 rts * Get a character in d7.b, EXCEPT that if we are at a newline, get a blank * instead. getnn cmp.l a3, a2 bcc getrn cmp.b #$0d, (a2) beq getsn move.b (a2)+, d7 rts getsn move.b #$20, d7 rts getrn bsr getrec bra getnn * Gets a character in d7.b. getch cmp.l a3, a2 bcc getr move.b (a2)+, d7 rts getr bsr getrec bra getch * * Get a new record into the buffer. getrec pea inpbuf move.l #inplen, -(a7) move.w d1, -(a7) move.w #fread, -(a7) trap #1 add.l #12, a7 tst.l d0 bmi error2 beq done No bytes read, file over, done. * Actual number of bytes read in d0! lea inpbuf, a2 lea 0(a2, d0.l), a3 rts * * Prints byte in d7.b. prtch cmp.l a5, a4 bcc putr move.b d7, (a4)+ rts putr bsr putrec bra prtch * * Dump buffer out. * Compute number of bytes to put out. putrec lea outbuf, a5 move.l a5, -(a7) sub.l a5, a4 move.l a4, -(a7) move.w d2, -(a7) move.w #fwrite, -(a7) trap #1 add.l #12, a7 tst.l d0 bmi error2 lea outbuf, a4 lea outend, a5 rts * * * We come here in case of error. error bsr pmsg bra xit * Here for error after opening 1 file. erroro bsr pmsg bsr close1 bra xit * Here for error after opening 2 files. error2 bsr pmsg bsr close1 bsr close2 bra xit * Here for normal end. Notice that we flush output buffer. done bsr putrec bsr close1 bsr close2 xit clr.w -(a7) trap #1 * pmsg pea msg move.w #pline,-(a7) trap #1 addq.l #6,a7 rts * close1 move.w d1, -(a7) move.w #fclose, -(a7) trap #1 addq.l #4, a7 rts * close2 move.w d2, -(a7) move.w #fclose, -(a7) trap #1 addq.l #4, a7 rts * * * * This subroutine reads a line of input into the buffer at a1. * Maximum buffer length should be passed in d2. Actual count is * returned in d1. The buffer should have one more byte than d2 * (to allow for a zero at the end.) getln movem.l d0/a0, -(a7) * Clear char count clr.l d1 glloop move.w #conine,-(a7) trap #1 addq.l #2, a7 * A BS? cmp.b #$08, d0 beq bs * A CR? cmp.b #$0d, d0 beq crret * Just a plain character ... are we at EOL? cmp.l d1, d2 * Yes, ignore it. beq glloop * Otherwise, store it... move.b d0, 0(a1, d1.l) addq.l #1, d1 * ... and echo. bsr echo bra glloop * A BS --- are we at start of line? bs tst.l d1 * If so, ignore keystroke. beq glloop * Otherwise, decrement counter... subq.l #1, d1 * ... print BS, space, BS to wipe out char move.b #$08, d0 bsr echo move.b #$20, d0 bsr echo move.b #$08, d0 bsr echo bra glloop * A CR --- echo & return. crret bsr echo move.b #$0a, d0 bsr echo clr.b 0(a1, d1.l) movem.l (a7)+, d0/a0 rts * * * Echo --- echoes a character in d0 to the screen. Destroys d0 & a0. echo move.w d0, -(a7) move.w #conout, -(a7) trap #1 addq.l #4, a7 rts * * * openm dc.b 'Enter filename to read: ' dc.b 0 msg dc.b 'TOS error occurred!', 13, 10 dc.b 0 buffer ds.b 51 buf2 ds.b 51 blen equ 50 * Buffer for reading from file inpbuf ds.b $400 inpend ds.b 0 inplen equ $400 * ... and for writing ... outbuf ds.b $400 outend ds.b 0 outlen equ $400 * Codes for GEMDOS conout equ $02 rawcon equ $06 conine equ $07 pline equ $09 fcreat equ $3c fopen equ $3d fclose equ $3e fread equ $3f fwrite equ $40 lseek equ $42 end /* * Uudecode -- decode a uuencoded file back to binary form. * * Slightly modified from a version posted to net.sources once; * suitable for compilation on an IBM PC. * * modified for Lattice C on the ST - 11.05.86 by MSD * */ #include #include char *Progname = "UUDECODE"; #define USAGE "Usage: UUDECODE [file]\n" /* single character decode */ #define DEC(c) (((c) - ' ') & 077) FILE *in, *out, *efopen(), *fopen(); main(argc, argv) int argc; char *argv[]; { int mode; char dest[128]; char buf[80]; /* optional input arg */ if (argc > 1) { in = efopen(argv[1], "r"); argv++; argc--; } else in = stdin; if (argc != 1) { fprintf(stderr, USAGE); exit(2); } /* search for header line */ for (;;) { if (fgets(buf, sizeof buf, in) == NULL) { fprintf(stderr, "No begin line\n"); exit(3); } if (strncmp(buf, "begin ", 6) == 0) break; } sscanf(buf, "begin %o %s", &mode, dest); out = efopen(dest, "wb"); /* create output file - binary output !!! */ decode(in, out); fclose(out); if (fgets(buf, sizeof buf, in) == NULL || strcmp(buf, "end\n")) { fprintf(stderr, "No end line\n"); exit(5); } } /* * copy from in to out, decoding as you go along. */ decode(in, out) FILE *in, *out; { char buf[80]; char *bp; int n; for (;;) { if (fgets(buf, sizeof buf, in) == NULL) { fprintf(stderr, "Short file\n"); break; } n = DEC(buf[0]); if (n <= 0) break; bp = &buf[1]; while (n > 0) { outdec(bp, out, n); bp += 4; n -= 3; } } } /* * output a group of 3 bytes (4 input characters). * the input chars are pointed to by p, they are to * be output to file f. n is used to tell us not to * output all of them at the end of the file. */ outdec(p, f, n) char *p; FILE *f; int n; { int c1, c2, c3; c1 = DEC(*p) << 2 | DEC(p[1]) >> 4; c2 = DEC(p[1]) << 4 | DEC(p[2]) >> 2; c3 = DEC(p[2]) << 6 | DEC(p[3]); if (n >= 1) putc(c1, f); if (n >= 2) putc(c2, f); if (n >= 3) putc(c3, f); } /* fr: like read but stdio */ int fr(fd, buf, cnt) FILE *fd; char *buf; int cnt; { int c, i; for (i = 0; i < cnt; i++) { c = getc(fd); if (c == EOF) return(i); buf[i] = c; } return (cnt); } /* If your library already has this function, use it and nuke the code below */ /* Open a file, aborting on failure */ /* Written by Bernie Roehl, June 1985 */ FILE * efopen(fn, mode) char *fn, *mode; { FILE *unit; if ((unit = fopen(fn, mode)) == NULL) error("Cannot open file %s", fn); else return unit; } extern char *Progname; error(s1, s2) char *s1, *s2; { fprintf(stderr, "%s: ", Progname); fprintf(stderr, s1, s2); exit(1); } begin 777 KERMIT.RSC M 9P!(T$C02-!'< "01VP +@ V 4 $4 !8 "Y0($1E7!E+BXN " @1G)E92!3<&%C92XN+@ @(%-E;F0N M+BX ("!296-E:79E+BXN " @4'5T*%-E2!4'@ 5F5R'AX>'AX M %]?+5]?+5]? #DY.3DY.0!4:&ES('!R;V=R86T@:7,@<'5B;&EC(&1O;6%I M;@ '-O9G1W87)E(&%N9"!I2P@3F5W(%EO7!E/25C+"!L96X])3)D+"!N=6T])3 R> !34$%#2SH@9&%T83U\)7-\ M "HJ*D-H96-K2!T#X@?"5C? !3=&%R="!R96-E:79I;F $ MJ0 !*H P & 1@ __\ "P ! $JP !+, 2[ , !@ !$8 /__ M @ " !,, 38 $V0 # 8 !& #__P 5 $ 3: $X !.8 M P & $1@ __\ !@ & $[ !/@ 3Y , !@ $8 /__ P 0 M!/H 4 %!@ # 8 1& #__P & 8 4, %% !14 P & 1 M@ __\ " ! %%@ !1P 4B , !@ !$8 /__ 8 !@ !2@ 4R M %,P # 8 !& #__P * $ 4T %/ !40 P & $1@ __\ M" ( %3 !6$ 5B , !@ $8 /__ !4 0 !6, 5F %:0 # M 8 !& #__P # , 5L %=P !7@ P & 1@ __\ "P ! % M?P !8< 6/ , !@ !$8 /__ @ " !9< 6L %K0 # 8 !& M #__P 5 $ 6N %N@ !;L P & (1@ __X # ! %O !<@ M 7) , !@ "$8 /_^ P 0 !=@ 7E %Y@ # 8 A& #__@ - M $ 7G %]@ !?< P & (1@ __X #P ! %^ !?D 7Z , M!@ $8 /__ $ 0 !?X 84 &%0 % 8 A& #__P 6 $ 86 M &)0 !B8 !0 & (1@ __\ #P ! &)P !C4 8V , !@ "$' M /__ X 0 !C< 8\ &20 # 8 A& #__P % T 9. &50 M!EX P & (1@ __\ !P ) &90 !H, :$ 4 !@ $8 /__ !X M 0 !H4 :I &J@ % 8 !& #__P D $ :K &S0 !LX !0 & M 1@ __\ (@ ! &SP !O$ ;R 4 !@ $8 /__ "( 0 !O, M <8 '&0 # 8 !& #__P E $ <: '.@ !SL P & 1@ M__\ ( ! '/ !ST <^ , !@ $8 /__ $ 0 !S\ =H ' MD0 # 8 1& #__P I "D U\ -?@ #90 P & 1@ __\ @ 6 M -E@ #9\ VN , !@ !$8 /__ D #P #;H W/ -T # 8 M A& #__@ 5 $ W1 -^@ #B, P & 1@ __\ *0 I .3 M#G$ YR , !@ "$8 /__ "4 ?__ $ !P 9 % M&0 ' ( @ 4 $0 % " 0 ! , !@ 9 @ M !\# 0 $_____P @ "0 8# 0 %_____P @ "L M!@ 8# 0 &_____P @ #( # H# 0 "_____P @ M #T %@ D# 0 @ (0 9 ,! % $P 1 D $ 4 M #_$0 @ !0 " *_____P < $< !0 0 +_____P < M " %4 ! !0 0 ,_____P < &H " !0 0 -____ M_P < '\ # !0 0 ._____P < )0 $ !0 0 / M_____P < *D % !0 0 0_____P < +X & !0 M 0 (_____P < -, ' !0 0 8 !( %P 4 #_$0 " M !( !@ 3_____P < .@ !( 0 4_____P < /0 M ! !( 0 5_____P < 0 % !( 0 6_____P < " M 0< $ !( 0 7_____P < 1H " !( 0 1_____P < M 20 # !( 0 A !D ( 4 #_$0 #@ !, " :_____P < M 30 !, 0 ;_____P < 3X ! !, 0 <____ M_P < 4L # !, 0 =_____P < " 5P " !, 0 > M_____P < 7 $ !, 0 ?_____P < 8$ & !, M 0 @_____P < 9 ' !, 0 8_____P < " :$ % M !, 0 ' "( +0 4 #_$0 & !8 # C_____P < ;4 M !8 0 D_____P < << & !8 0 E_____P < " M =@ ( !8 0 F_____P < >\ ' !8 0 G_____P < M ?X * !8 0 H_____P < " @X % !8 0 I_____P < M B4 ! !8 0 J_____P < CD # !8 0 K____ M_P < D, " !8 0 L_____P < DX ) !8 0 M M_____P < F4 + !8 0 A_____P < " G4 $ !8 M ?__ $ 0 4 $ "$0 !PH% 0 _____P < " G\$ , M H ?__ $ 0 4 $ "$0 @L' 0 _____P < " HH# M 4 H ?__ $ 0 4 $ "$0 ! T' 0 _____P < " M I4% 0 P ?__ $ ' 4 $ "$0 "X $0 "_____P 6 M( $C0 !P ! !\ 0 #_____P 6 $E & # < 0 $_____P 6 M $FP 'P # D 0 ' 4 !@ 6 $H@ !@ $ "( 0 &____ M_P > @ $J0 %P ( 0 $_____P > @ $L ( ( 0 * M @ "0 6 $MP !@ % "( 0 )_____P > @ $O@ %P ( M 0 '_____P > @ $Q0 ( ( 0 , L "P 6 $S !@ & M "( 0 *_____P > @ $TP ( ( 0 / T #@ 6 $V@ M!@ ' "( 0 ._____P > @ $X0 %P ( 0 ,_____P > @ M$Z ( ( 0 1 ! $ 6 $[P !@ ( "( 0 /_____P > @ M $]@ %P ( 0 3 !( $@ 6 $_0 !@ ) "( 0 1_____P > M @ %! %P ( 0 6 !0 %0 6 %"P !@ * "( 0 5____ M_P > @ %$@ %P ( 0 3_____P > @ %&0 ( ( 0 8 M !< %P 6 %( !@ + "( 0 6_____P > @ %)P ( ( M 0 ; !D &@ 6 %+@ !@ , "( 0 :_____P > @ %-0 & M $ 0 8_____P > @ %/ (0 $ 0 <_____P : < _( M!@ . @ 0 _____P : "4 _4 ( . @ ?__ $ ) 4 $ " M$0 "8 $@ "_____P 6 ( ( %0P !P ! !< 0 #_____P 6 ( M( %2@ !P ! !< 0 & 0 !0 4 #_$0 P # " 0 %_____P = M @ %40 "@ !8 0 #_____P 5 %6 4 0 ) < M" 4 #_$0 P $ " 0 (_____P = @ %7P "@ !8 0 & M_____P 5 %9@ H 0 , H "P 4 #_$0 P & " M 0 +_____P = @ %;0 &0 < 0 )_____P 5 %= M !0 0 / T #@ 4 #_$0 P * " 0 ._____P = @ %>P M&P 4 0 ,_____P 5 %@@ L 0 2 ! $0 4 #_ M$0 P + " 0 1_____P = @ %B0 &P 4 0 /_____P 5 M %D < 0 5 !, % 4 #_$0 P , " 0 4_____P = M @ %EP &P 4 0 2_____P 5 %G@ D 0 8 !8 M%P 4 #_$0 P ( " 0 7_____P = @ %I0 &0 < 0 5 M_____P 5 %K !0 0 ; !D &@ 4 #_$0 P - " M 0 :_____P = @ %LP '@ ( 0 8_____P 5 %N@ M H 0 <_____P : $ !7D &@ / D 0 ? !T '@ 4 #_$0 M P ' " 0 >_____P = @ %P0 &0 < 0 <_____P 5 M%R !0 0 @_____P 6 ( ( %SP !P ! !< 0 A_____P 6 ( M( %U@ !P ! !< 0 B_____P : $ ! @ &1@ !0 % "@ 0 _____P : "< ![H % ( M @ ?__ $ 0 4 $ "$0 @D' 0 _____P < " ![T% M 0 @ ?__ $ *P 4 "$0 $X %0 "_____P < M!\8 P 0 #_____P < !], ! L 0 $_____P < M !]\ " "( 0 %_____P < " ( $ !\ 0 &_____P < M ""( # ! 0 '_____P < "#, & "8 0 (____ M_P < "%H % ! 0 )_____P < "&L ' "$ 0 * M_____P < "(T ( ! 0 +_____P < ")X + "8 M 0 ,_____P < ",4 , ! 0 -_____P < "-8 - M !@ 0 ._____P < ".\ . !D 0 /_____P < "0D M / " 0 0_____P < "2H 0 !4 0 1_____P < M"4 1 !T 0 2_____P < "5X 2 !D 0 3_____P < M "7@ 3 !\ 0 4_____P < "9@ 4 "$ 0 5_____P < M ";H ) "$ 0 6_____P < "=P * ! 0 7____ M_P < ">T *0 $ !D 0 8_____P < "@< *0 # !< 0 9 M_____P < "A\ *0 " !@ 0 :_____P < "C@ )0 !\ M 0 ;_____P < "E@ )0 ! "( 0 <_____P < "GL *0 % M "$ 0 =_____P < "IT *0 & !@ 0 >_____P < "K8 M*0 ' ", 0 ?_____P < "MH *0 + !@ 0 @_____P < M"O, *0 * " 0 A_____P < "Q0 *0 , !L 0 B_____P < M "S (P ( "8 0 C_____P < "U< *0 ) !( 0 D_____P < M "VH (P - "< 0 E_____P < "Y( *0 . !L 0 F____ M_P < "ZX (@ / "@ 0 G_____P < "]< *0 0 "( 0 H M_____P < "_H (P 1 "8 0 I_____P < #"$ )0 2 !\ M 0 J_____P < #$$ *0 4 !L 0 K_____P < #%T )@ 3 M ! 0 "P ,0 4 #_$0 $X %0 M_____P < #&X M % 8 0 N_____P < #'4 ! !D 0 O_____P < M#(\ " !D 0 P_____P < #*D "@ 0 Q_____P < M #-( # "8 0 K_____P < " #/D $ !< ?__ $ 0 4 M $ "$0 !P\& 0 _____P < " #1$% , X ?__ $ M 0 4 $ "$0 !P\& 0 _____P < " #2 0, X ?__ M $ 0 4 $ "$0 H& 0 _____P < " #2\" 0, @ M ?__ $ 0 4 $ "$0 ! P& 0 _____P < " #3@& ( M L ?__ $ 0 4 $ "$0 ! D' 0 _____P < " #40" M 0, < ?__ $ 0 4 $ "$0 !0@' 0 _____P < " M#4P& , < ?__ $ 0 4 $ "$0 !Q,( 0 _____P < " M #50' , !( ?__ $ 0 4 $ "$0 !14' 0 _____P < M " #6<' 0 !0 ?__ $ P 4 $ "$0 !L "0 "____ M_P = @ &30 P ! !4 0 #_____P = &5 !@ # X 0 M_____P : "< #;< "0 & @ ?__ $ !0 4 $ "$0 #$ M# "_____P 6 ( &6P #0 ! !8 0 #_____P = @ &8@ ! & M "@ 0 $_____P 5 &:0 !@ $ "0 0 %_____P : < #G, M!P ) @ 0 _____P : "4 #G8 ( ) @ 0 &< !X0 >0 M'G !Z@ A6 )- "8@ FL )N "N0 KP *_ "P@ L 54 +( "RP LX +1 "UP end begin 777 KERMIT.PRG M8!H (G* )^ *ZP "I/*FT !"/- "3PB M S0 MK0 4T*T '-"\ @ "( THW"O/____XN02\ +PU"9S\\ $I.0=_\ #"!Y M "3PB)H !C3Z <(\D )/&1>@ @! : H #_/P O"IW.3KD %/\3OD M "Z(B\ !# \ ,A.0DYU(&\ !" (0>@! +_(9 1P_TYU(\ )/&0H!.=4Y6 M P+P ((B\ "DY"O_D )/&9!0P/ )0?D (LF(@A.0C \ !.0DY>3G4@ M;P $,B\ "# O I(P%. ;P80P5'(__Q"@$YU(&\ !# O A*$&8$0H!.=; 8 M9O0@"%. 3G5.5O_\3KD $>2D!G$DZY /!$ZY "5$ZY ".DY>3G5. M5O_X3KD $L\,\ )I0+KP )9B+SP )E(+SP )J<+SP )M 3KD $ZD MW_P ,,\ )M@+KP )L4+SP +]>+SP +]J+SP +]H/SP !$)G3KD M %&0W_P 00F[__F 4,&[__M'(T?P )M(,+P 5)N__X,;@ *__YMY#/\ M ( )M<+KP )MH+SP )M@+SP )M(3KD $E*4(\NO BV).N0 4)I* M0&8./KP DZY !-:$) 8%(NO FV1"9T)G3KD %"T6(]*0&86+KP (MM M/SP 4ZY !-1E2/0D!@)BZ\ ";9$)G0F=.N0 4+18CSZ\ $O.0 FV1. MN0 3PA8CW !3EY.=4Y6__P^N0 FV!.N0 2"9.N0 2YY.7DYU3E;_^$ZY M 45"Z\ "6A$ZY XPBZ\ "5$DZY XPD*70F=.N0 3N94CV 0 FI0@: #,+5#__"Z\ M "+ER\N__Q.N0 9]Y8CRZ\ ":E#\\ ,_//__/SS__S\\ 9A &04(\^ MO/__+SD )J43KD $S*6(\^O #/SS__S\\__\_/ &80 "]ER/0E<_/ " M+SD )J480 !&ER/8 N# Y "7+F!:+KP ):$3KD #D<2GD )JF9PPN MN0 ES9.N0 9*9*>0 FI!G#"ZY "$!DZY !DID)73KD %'B8 E&$ M!ZQ@+&$ _A@)F$ "$!@(&$ ">I@&F 8D'P $K!\ 5B#N5 ,$#1_ BTH@ M4$[08#H^N0 ERY.N0 %\1@+#ZY "7+DZY 0VF >8!RP? #9P#^FK!\ M 1G /]8L'P !6?,L'P !F?4/KP 3\Y "7+"\Y ";9$ZY !/5%R/0E=. MN0 4>)@ /XV3EY.=4Y6__@NCEF7/RX "C\\ 5.N0 4+18CRZN__P_+@ ( M3KD $U&5(\]0 (,"X "$Y>3G5.5O_\0E<_+@ ./SD )L4/SD +]>/SD M +]J/SD +]H0F<_+@ ,+RX "$ZY !00-_\ $DY>3G5.5O_T+JX $#\N M A"9TZY !0M%B/+HY1ER\.790 OVI@ M!# N P]0 ,2FX #&T&,"X #& $,"[_^#U __@P+O_Z5D B;O_\,T $# N M__A60")N__PS0 2#&[__P .9BP^KO_T/R[_]C\N__@_+O_Z0F="9T)G0F<_ M/ #3KD $SLW_P 08 DDIN YM "*/J[_]#\N__8_+O_X/R[_^C\Y M "68C Y "92.5 /P!"9R!Y ";9#(N [#_ 8/S 8$#\\ ).N0 3.S? M_ ! ^KO_T/R[_]C\N__@_+O_Z/SD )9B,#D )E(Y4 _ $)G('D )MD M,BX #L/\ !@_,!@0/SP TZY !,[-_\ $$Y>3G5.5O_R+KP )J4/SP M!$)G/SS__S\\ AA /SL4(\NO FY0 FSP(* $ -F "H$"[__$B /H _/ &3KD %(<5(\,+@ *__QF "& M/KP #3\\ 9.N0 4AQ4CU)N__XP+O_^L'P %F]F0F[__B!Y ":E"UH "3_ M]F :(&[_]A 02( ^@#\\ 9.N0 4AQ4CU*N__8@;O_V2A!FWCZ\ =.N0 M4AP=0/_Z#"X __Z9R ^O -/SP !DZY !2'%2//KD )M@3KD $B"8 #_ M+ PN /_^F=:/KP #3\\ 9.N0 4AQ4CSZ\ H_/ &3KD %(<5(\@>0 MFI0M: \__9@&B!N__80$$B /H _/ &3KD %(<5(]2KO_V(&[_]DH09MX^ MO '3KD %(<+KD )L\3KD &2F80 SDY>3G5.5O_\0I<_/ $ 3KD $[F M5(\^N0 FQ0_.0 OUX_.0 OVH_.0 OVA"9TZY !0Z%"/,\ )MB/KD M )L4/SD +]>/SD +]J/SD +]H/SD )9B,#D )E(Y4 _ $)G('D )MD M/R@ <$ZY !. -_\ #CZY ";%#\Y "_7C\Y "_:C\Y "_:#\Y "; M8DZY !1(E"//KD )M@3KD $CF/KD )M@3KD $A0/KD )M@3KD $BT M3EY.=4Y6__P^N0 FV!.N0 2% ^N0 FV!.N0 2+0^N0 FV!.N0 21@^ MO !+SD )MD3KD $\(6(\^N0 FV).N0 45P^N0 FV).N0 478^N0 MFQ0_.0 OUX_.0 OVH_.0 OV@_.0 EF(_.0 F4A"9R!Y ";9#\H '!. MN0 3E+?_ Y"ES\\ 0%.N0 3N94CTY>3G5.5O_X+HY9ES\\ 1"9S\\ M__\_/ !80#Y0%"/+KP )G,+SP )423KD #G"6(]*0&=4/KP !"\\ "9 MS$ZY !2+%B/2D!G$#Z\ (_/ !80#XE%2/8"XNO F;Q8CSZ\ 1"9S\\__\_/ "80#YHER/+HX& ME____UH_/ $0F<_//__/SP V$ ]_A0CSU\ /_6BZ\ "9S"\\ "5$DZY M YPEB/2D!G "P/KP B\\ "9S$ZY !2+%B/2D!F$CZ\ $_/ !80#W M1%2/8 B"Z\ "5$B\.!I?___]@3KD 'HN6(\NO F7(].7DYU3E;_X"Z.69<_ M/ 20F=.N0 4+18CR!N__P@: \+5#_^"!N__P@: D+5#_]"!N__A"$"\N M__0_/ 93KD %(<5(_0? !!(%\0@"Z.69<_/ $/SS__S\\__\_/ 280#V MIE"//KP 2\N__Q.N0 3,I8CT)7/SP R\N__QA /9*7(\@;O_T$!!(@#Z M!E?_P"\.!I?____D/SP -DZY !2'%R/2H!G%"Z\ "+H"\N__A.N0 >BY8 MCV R+R[_\"\N_^PO+O_D3KD $G@4(\O $ZY !)X%"/+H O/ BZDO+O_X M3KD &?>4(\NCEF7/SS__C\\__\_//__/SP $F$ ]@!0CSZ\__\O+O_\3KD M $S*6(]"5S\\ ,O+O_\80#UI%R//KP !#\\__\_//__/SP $F$ ]UA M3G5.5O_Z+KP (T*80 K$I 9D9";O_^8"PP+O_^P?P #B! (GP (NN('"8 M #(N__[#_ .TKP (NN(D$PJ0 &4F[__C N__[!_ .T+P (NN($!*D&; M0F[__F!","[__L'\ X@0")\ "+KDIPF 1F*# N__[!_ .($ B? BZX@ M<)@ ,B[__L/\ [2O BZXB03"I 92;O_^,"[__L'\ [0O BZX@0$J0 M9JI.7DYU3E;_]BZ\ "-%2\N A.N0 4[)8CRU __Q*KO_\9@1"0&!F0F[_ M^F! ,"[_^L'\ X@0")\ "+KDIPF 1G)C N__K!_ .($ B? BZXNL)@ M+SP (T7+R[__$ZY !55%"/4F[_^C N__K!_ .T+P (NN($!*D&:L+J[_ M_$ZY !DIG !3EY.=4Y6__8NO C1HO+@ (3KD %.R6(\M0/_\2J[__&8$ M0D!@:$)N__I@0C N__K!_ .($ B? BZY*<)@$9R@P+O_ZP?P #B! (GP M (NN('"8 #Z0+SP (T<+R[__$ZY !4ME"/4F[_^C N__K!_ .T+P (NN M($!*D&:J+J[__$ZY !DIG !3EY.=4Y6_Z8P+@ (8 "TBZ.!I?___^L/SP M!D)G/SS__S\\ I.N0 !,90CRZ.!I?___^P+SP (T@+SP ):$3KD #E0 M4(]*0&/SP !4)G/SS__S\\ Q.N0 !,90CRZ\ M "9S"\\ "5$DZY YPEB//4#__"Z\ "9S"\.!I?____N3KD 'HN6(\^ MO %0F<_//__/SP #$ZY &5%R/2F[__&< !1A"5V$ !E(NO FPP_/ % M/SS__S\\__\_/ %3KD 3&4(\NO FT5(]@-$*Y ";/$ZY M D5#U __YG$CZ\ 0_//__3KD $>T5(]@$#Z\ <_//__3KD $>T5(]@ M .2+KP )J>/SP $T)G3KD %"T6(]"5S\\ 4O.0 FIY.N0 !(I/SP !3\\__\_//__/SP $TZY $ MQE"//KP B\Y ":GDZY !,REB//4#__#Z\ 4_//__/SS__S\\ !-.N0 M!E10 FIX@: \+I O/ EM1.N0 >BY8CRZ\ "6 MU$ZY !Z4$I 9P #P"!Y ";# )H_W\ ."Z\ ":GC\\ 5"9S\\__\_/ / M3KD 3&4(\NO FTW_P ,0KD )L\3KD #=6/4#__F<2/KP *#\\__].N0 M1[14CV 0/KP *C\\__].N0 1[14CV >8@>0 FPP":/]_ #@NO FIX_ M/ %0F<_//__/SP #4ZY $QE"/+KP )G,+SP )423KD #G"6(\]0/_\ M+KP )G,+PX&E____^Y.N0 >BY8CSZ\ 5"9S\\__\_/ -3KD 947(]* M;O_\9P "7D)780 #F"Z\ ";##\\ 4_//__/SS__S\\ 5.N0 !,90CRZ\ M "9S"\\ "5$C\\ "$_//__3KD $>T4(]"N0 FSQ.N0 +10]0/_^9Q(^ MO ;/SS__TZY !'M%2/8! ^O B/SS__TZY !'M%2/8 ^B!Y ";# )H M_W\#4"Z\ ";##\\ 4_//__/SS__S\\ 5.N0 !,90CSZ\ "D_//__3KD M $>T5(\^O !&3KD #>6/4#__F<2/KP +S\\__].N0 1[14CV 0/KP +3\\ M !1.N0 1[14CV (H@>0 FPP":/]_ V@NO FPP_/ %/SS__S\\__\_ M/ %3KD 3&4(\^O N/SS__TZY !'M%2//KP 3$ZY WECU __YG$CZ\ M # _//__3KD $>T5(]@$#Z\ #$_/ 53KD $>T5(]@&F 8D'P &;!\ 9B M#N5 ,$#1_ C6(@4$[02F[__F<8/KP "#\\ !LO.0 FPQ.N0 !(I0 FPP : " M " @>0 FPP : " P@@>0 FPP : " #@@>0 FPP : " O @>0 FPP M: " U @>0 FPP : " VA"5V$*0E=A #J3EY.=4Y6_^(@>0 FPP@: !L M+5#__#Z\ !4O/ F>90CT(N__LNC@:7____YB\\ "-@R\N__Q.N0 9]Y0CSZY "6 M@"\\ "-AB!Y ";#"!H /PO$$ZY !GWE"/2FX "&0 FPP@: +$+Q!.N0 9]Y0CRZY ":'B\\ "-C"!Y ";#"!H M APO$$ZY !GWE"//KD )<\+SP (V0('D )L,(&@"9"\03KD &?>4(\^ MN0 FIHO/ C94@>0 FPP@: %$+Q!.N0 9]Y0CSZY ":4B\\ "-F"!Y M ";#"!H 8PO$$ZY !GWE"//KD )L2+SP (V;('D )L,(&@!U"\03KD M &?>4(]*;@ (9P C"Z\ "_;"\\ "91C\\ !UA !\7(\@.0 FAZPN0 MF#YG#$*70J<_/ 686!3G5.5O_T2JX "F<@2JX #F<:(&X "C 0(FX M#C(1L$%G:B!N XB;@ *,)$P+@ (P?P &-"Y ";#"U __@NCEF7+PY5ES\N M @O.0 FPQ.N0 4 +?_ H@;O_X/J@ %B!N__@_* 4/R[__#\N__X_ M/ (0F3G5.5O_V,#D )A" ML'D )9^0,!2>0 F$)$P&\6/KP #C\\ A.N0 1[14CW!!8 !)#/\ $ M )EL+KP )EN3KD $/*3KD $54+KP )EN/SP !S\Y "7/#\\ %-.N0 M.H)0 FE(0.0 E Q(@& *(P.0 ESRP;O_^ M9Q)2>0 FE(0.0 E Q(@& (12>0 F48NO FJQ.N0 1#Y">0 F$(P M.0 ESQ20$C @?P 0$A ,\ )<\<$9@4"Z\ ":K$ZY !(!'!%8$!2>0 MFE(0.0 E Q(@& P<$%@+#Z\ !@_/ 13KD $>T5(]P06 88!9(P"!\ "- MYG(%L)A7R?_\(&@ %$[03EY.=4Y6__ P.0 F$*P>0 EGY P%)Y "80D3 M;Q8^O ./SP "$ZY !'M%2/<$%@ 'J2KD )L\9@ @$(Y "6U#Z\ %. MN0 'R NO F0 FI)G'"Z\ ".W"\\ "9S$ZY M !3XEB/(\ )L\8!HNO CMXO/ FE ]0/_\+J[_^#\N__P_.0 ESP_ M/ !&3KD #J"7(\NO FJPO#E67+PY9ETZY \+%"/8 YE-N__YL!' _ M8 0P+O_^/4#__C Y "7/+!N__YG$E)Y ":4A Y "4#$B 8 S# Y "7 M/+!N__YG$E)Y ":4A Y "4#$B 8 KBZN__@O/ FT5(]P06 3XNO F6X_.0 FDX_.0 ESP_ M/ !$3KD #J"7(\NO FJPO#E67+PY9ETZY \+%"/8 \%-N__YL!' _ M8 0P+O_^/4#__C Y "7/+!N__YG$E)Y ":4A Y "4#$B 8 UC Y "7 M/+!N__YG$E)Y ":4A Y "4#$B 8 N%)Y "91D)Y "80C Y "7/%) M2,"!_ ! 2$ SP ESPNO F6Y.N0 04@SP FDZP?/__9@9P6F '@@ M>0 FSP(* $ -G%#Z\ !P_/ 33KD $>T5(]P06!4<$1@4"Z\ ":K$ZY M !(!'!%8$!2>0 FE(0.0 E Q(@& P<$%@+#Z\ !@_/ 13KD $>T5(]P M06 88!9(P"!\ ".1G(%L)A7R?_\(&@ %$[03EY.=4Y6__@P.0 F$*P>0 MEGY P%)Y "80D3 ;Q8^O ./SP "$ZY !'M%2/<$%@ %2+KP )EN0F<_ M.0 ESP_/ !:3KD #J"7(\NO FJPO#E67+PY9ETZY \+%"/8 !"%-N M__YL!' _8 0P+O_^/4#__C Y "7/+!N__YG$E)Y ":4A Y "4#$B 8 M[C Y "7/+!N__YG$E)Y ":4A Y "4#$B 8 T%)Y "91E)Y "6@$)Y M "80C Y "7/%) 2,"!_ ! 2$ SP ESPNO F0 FE(0 M.0 E Q(@& P<$%@+#Z\ !@_/ 13KD $>T5(]P06 88!9(P"!\ ".=G(% ML)A7R?_\(&@ %$[03EY.=4Y6__@P.0 F$*P>0 EGY P%)Y "80D3 ;Q8^ MO ./SP "$ZY !'M%2/<$%@ #Z+KP )EN0F<_.0 ESP_/ !"3KD #J" M7(\NO FJPO#E67+PY9ETZY \+%"/8 L%-N__YL!' _8 0P+O_^/4#_ M_C Y "7/+!N__YG$E)Y ":4A Y "4#$B 8 EC Y "7/+!N__YG$E)Y M ":4A Y "4#$B 8 >%)Y "91D)Y "80C Y "7/%) 2,"!_ ! 2$ S MP ESQP0V!0+KP )JL3KD $@$<$5@0%)Y ":4A Y "4#$B 8#!P06 L M/KP &#\\ !%.N0 1[14CW!!8!A@%DC ('P (ZF<@6PF%?)__P@: 43M!. M7DYU3E;__"Z\ ";.$ZY _CA/\ %( )0,0GD )<\0GD )A"/KD )<\ M$#D )0,2( _ #\\ U.N0 1O)8CRZY ";.$ZY _K$I 9R NN0 FSA. MN0 /ZQ(P"\ +SD )H>3KD $HT4(]@ D* ,\ )J:/KP 4ZY @!! Y M "4#$B 8%QA !Z$\ )0,8&AA 'R$\ )0,8%QA :2$\ )0,8%!P M 6!0+KP (_8/SP !3\Y "7/#\\ $5.N0 .H)T5(]P06 M 5 S_ ! "9;"Z\ "9;B\.79T5(]P06 88!9( MP"!\ "/*'(&L)A7R?_\(&@ &$[03EY.=4Y6_^XP.0 F$*P>0 EGY P%)Y M "80D3 ;Q8^O ./SP "$ZY !'M%2/<$%@ 1X+KP )EN+PY5ER\.69=. MN0 /"Q0CV !$A2>0 FE(P.0 OURP>0 EGY P%)Y "_7$3 ;Q8^O . M/SP "$ZY !'M%2/<$%@ 0J2GD )<\9@1P/V (,#D )<\4T"P;O_^9Q8^ MO 8/SP $4ZY !'M%2/<$%@ /Z+KP )EN3KD $/*+KP )EN/SP !S\N M__X_/ !93KD #J"7(]">0 F$(0.0 E Q(@& \)2>0 FE(P.0 OURP M>0 EGY P%)Y "_7$3 ;Q8^O ./SP "$ZY !'M%2/<$%@ ..2GD )<\ M9@1P/V (,#D )<\4T"P;O_^9Q8^O 8/SP $4ZY !'M%2/<$%@ ->0I=" M9S\N__X_/ !93KD #J"7(]">0 F$(0.0 E Q(@& S@P+O_^L'D )<\ M9Q8^O 8/SP $4ZY !'M%2/<$%@ ,6+KP )EN+SP );43KD 'HN6(]" M;O_X/7S____V2CD )G,9@ !=D)N__I@ "R('P );4,F[_^M')'5#_\@PN M &'_\FT.#"X >O_R;@8*+@ @__(,+@ @__)F!AU\ "[_\@PN "[_\FPF%?)__P@: < M3M!.7DYU3E;_^# Y "80K!Y "6?D# 4GD )A"1,!O%CZ\ X_/ (3KD M $>T5(]P06 M8NO F6XO#E67+PY9ETZY \+%"/8 "IC N__ZP>0 MESQG ",2GD )<\9@1P/V (,#D )<\4T"P;O_^9Q8^O 8/SP $4ZY !' MM%2/<$%@ )^,#D +]0 OUQ$P&\6/KP #C\\ A.N0 M1[14CW!!8 "4$*70F<_+O_^/SP 64ZY Z@ER/4GD )I20GD )A"$#D M )0,2(!@ (D0I="9S\Y "7/#\\ %E.N0 .H)0 F$(P.0 ESQ20$C @?P 0$A ,\ )<\4GD M )E&('D )L\""@ ! #9Q8^O 0 OUQ$P&\6/KP #C\\ A.N0 1[14CW!! M8 !2$*70F<_+O_^/SP 64ZY Z@ER/4GD )I20GD )A"$#D )0,2(!@ M $<,"[__K!Y "7/&<6/KP &#\\ !%.N0 1[14CW!!8 ^B!Y ";/ @H M 0 V<6/KP '#\\ !-.N0 1[14CW!!8 UD*70F<_.0 ESP_/ !93KD M #J"7(\NN0 FSQ.N0 9*8P.0 ESQ20$C @?P 0$A ,\ )<\+KP )G, M/SP $S\\__].N0 1[18CU)Y "91E)Y "6@#Z\ %.N0 'R!".0 F0 MFE(0.0 E Q(@& P<$%@+#Z\ !@_/ 13KD $>T5(]P06 88!9(P"!\ "/ MH'(&L)A7R?_\(&@ &$[03EY.=4Y6__I.N0 150NO EM0O/ EM1.N0 M>E!8CS\ 0F<_/ !23KD #J"7(].N0 +10]0/_^,"[__DY>3G5.5O_V0F[_ M^F )83[@ ) "9;BZ\ "9;C\\ %"9S\\ $=.N0 .H)0 FE)@&& 62, @? C^AR!;"85\G__"!H M !1.T#Z\ %.N0 ( 12;O_Z#&X "O_Z;0#_9$) 3EY.=4Y6__@^O !<+RX M"$ZY !5#%B/+4#__$JN__QG#" N A4@+"N__QF%"!N @1? !< (@;@ ( M0B@ V &(&[__$(03EY.=4Y6__P@;@ (2B@ V<2+KP ) 8+RX "$ZY !Y MO%B/+JX #"\N A.N0 >;Q8CTY>3G5.5O_\0E;Q8CTY>3G5.5O_\(&X "! 02( ^@ 97_[\_/ . M3KD %(<5(\NK@ (5)<_/ [3KD %(<5(].7DYU3E;_["ZN @O+@ 03KD M 'HN6(\NO D!PO+@ 080#_'EB/+JX #"\.!I?____P3KD 'HN6(\NCE67 M+PX&E_____ O+@ 03KD $W,4(\NK@ 080#^H"Z.!I?____P+RX $&$ _MA8 MCS N__Y.7DYU3E;_^BZ\ "0("\N AA /Z\6(\NCE67+RX #"\N A.N0 M30 OUIG!&$ "W8,+@!9 M EG# PN $X "6<$80 *K# N S ? !_/4 # QN %X #&\&/7P 6@ ,/JX M"C\N P0+@ )2( _ #\\ AA P87(]*K@ .9PP@;@ .,FX #-')0A!*K@ . M9PXNK@ ./SP "6$ "_)4CTON_YA*>0 FT)G*CU\ '__F 6/KD )L*/SP M!$ZY !2'%2/4F[__C N__ZP>0 EH)OWDIY ":IF<@#'D 0 FJ9O%CZY M ";"C\Y "6@C\\ "1A N46(\P.0 E1 :P# N S0? C&L P+@ ,T'P M(QU __PP+@ *T'P (!K ,"X "M!\ " 2+O_\T@ =0?_\&NX "1 N E(@-$N M__Q";O_^8"@@;@ .,F[__M')&M P;O_^(FX #A PF !(@!(N__S2 !U!__Q2 M;O_^,"[__K!N QMSA N__Q(@,!\ ,#L0!(N__Q(@=!!P'P /QU __P0+O_\ M2(#0? @&L P.0 F6@:P$(5+HX&E____YAA F,< %*GTS?( !.7DYU3E;_ MZ"Z\ ":5F$ U8NC@:7____]F$ !+)*0&<(,"[_]F N(NC@:7____]B\. M!I?____R80 #G%B/2D!G"# N__9@ + $"[_\DB P'P ?[!Y "5#F;,0F[_ M^& > NC@:7____]B\.!I?____R80 #8%B/2D!G"# N__9@ *$ BX ?__R M$"[_\DB L'D )4.9P !J!UN__+_[A N__)(@-!\_]TB;@ (,H NC@:7____ M]B\.!I?____R80 #$EB/2D!G"# N__9@ (V BX ?__R$"[_\DB L'D )4. M9P !6A N_^Y(@!(N__)(@=!!'4#_[A N__)(@-!\_^ B;@ ,,H NC@:7____ M]B\.!I?____R80 "N%B/2D!G"# N__9@ '< BX ?__R$"[_\DB L'D )4. M9P ! ! N_^Y(@!(N__)(@=!!'4#_[AUN__+_\$)N__1";O_^8 ="Z.!I?_ M___V+PX&E_____)A )<6(]*0&<(,"[_]F 8!*>0 FI)G"$IY "9;&<& M BX ?__R$"[_\DB L'D )4.9@@]? !__1@,! N_^Y(@!(N__)(@=!!'4#_ M[B!N ! R;O_^T3G5.5O_\/KP +$ZY !2'#Z 898O "!N @@GTY>3G5.5O_X/KP M+$ZY !2'#Z 80#_>"U __P@+O_\L*X "&P2("[__-"\ &$()"N A@'F < M("[__)"N BPO %O"B N__R0K@ (8 )P 4Y>3G5.5O_\8 A#Z\ #). MN0 (KP_ "!N PPGR!N P,4 !!9@X^O +80 &R' !8 P@PY %< )0, M9@HNO FE9A /]*(&X # Q0 %1G(DIY ":I&E)Y ";$B!N Q"4' !8&@^O 23KD %(< M2H!G /]P+RX "#\\ -.N0 4AQ4CR!?$(!*>0 FJ9G.@QY $ )M$;S @ M;@ ($!!(@#Z E< ?R!N @0$$B /P O.0 FE9A /[,6(\_ #\\ "-A 8& M7(]"0$Y>3G5.5O_\0E=.N0 (KP_ "!N @PGR!N @,4 !!9@P^O +80 % MV' !8"0@;@ (#% 5&88/KP #&$ !<)2>0 FQ(@;@ (0E!P 6 "0D!.7DYU M3E;_\D)N__Y@ %X+KD )L\3KD %ON/4#__%*Y ":'B!Y ";/ @H 4 M V8 58P+O_\'4#_^# N__S ? !_'4#_^C N__S ? " '4#_]DIY "9;&0 E IG&A N__I(@+!Y "9;&8 ))*>0 F6QG "( M#&X "O_\9BQ*>0 FI)F)# Y "4"C)N__[3[@ ($H!2;O_^,&[__M'N @0 MO !-4F[__C Y "4"C)N__[3[@ ($H!2;O_^$"[_^DB L'D )0*9S 0+O_Z M2("P>0 F6QF"$IY "9;&8:,"[__') LT ]0/_\$"[_^DB 0 FI)G'$IY "9;&84,"[__#)N__[3[@ ($H!2;O_^8! P;O_^T>X "!"N M__I2;O_^,#D )H<44"P;O_^;@8P+O_^8!)@ /Z(2F[__F8$0 MFI)G*! N__Q(@,!\ '^P>0 F6QF%CU\ '_^E)N__XP;O_^T>X "!U0__P0 M+O_\2("P>0 OV1F2E)N__XP;O_^T>X "!U0__P0+O_\2(# ? !_L'D +]D M9R@0+O_\2(# ? !_L'D )EL9@A*>0 F6QF#A N__Q(@') LT =0/_\2F[_ M^F<& "X @/_\+KD )L\$"[__$B /P!.N0 ;>Q4CU*Y ":'E)N__XP+O_^ ML&X #&T _RA.7DYU3E;__# Y "9:M!\ " B;@ ($H P.0 FJ+0? @(FX M"!- $@;@ ($7P ( "(&X "!%\ $ S Y "91-!\ " B;@ ($T !# Y M "4"B)N @30 %2GD )J29P1P66 "<$XB;@ ($T !DY>3G5.5O_\(&X M"$H09Q(@;@ ($!!(@-!\_^ SP FAP@;@ (2B@ 6<4(&X "! H %(@-!\ M_^ SP FJ0@;@ (2B@ F<<(&X "! H )(@-!\_^ SP EH(SP FT)@ M#D) ,\ ):",\ )M"(&X "! H -(@') LT SP FPH@;@ (2B@ !&<6 M(&X "! H 1(@-!\_^ SP F6A@"#/\ T )EH(&X "$HH 5G$B!N @0 M* %2( SP OV1@"#/\ ", +]D2GD )J29R(@;@ (2B@ !F<8(&X " PH M $X !F<,(&X " PH %D !F8(0GD )EL8! @;@ ($"@ !DB ,\ )EL3EY. M=4Y6__I@/CZ\ -.N0 4AP=0/_^2GD )JF9R@,>0 ! ";1&\>$"[__DB M/H "5P!_$"[__DB /P _/ @80 !7EB//KP $DZY !2'$J 9K1.7DYU3E;_ M_&!.2GD )JF9RP,>0 ! ";1&\B(&X "! 02( ^@ )7 '\@;@ ($!!(@#\ M/SP 'F$ 1)8CR!N @0$$B /H _/ $3KD %(<5(]2K@ ((&X "$H09JI. M7DYU3E;_\D)N__XNC@:7____]F$ ^7)@ #"+J[_]F$ ^82P? $; M@QN M K__FT0/KP $DZY !2'$J 9P GCZ\ !).N0 4AQ*@&=20F[__F ^/KP M TZY !2',"\ ?QU __Q*>0 FJ9G(@QY $ )M$;Q@0+O_\2( ^@! N M__Q(@#\ /SP )6%86(\^O 23KD %(<2H!FM$)7/SP 9$ZY !+RE2/$"[_ M_$B L'D )J89A@^O 23KD %(<2H!F"CZ\ "9A&$) 8!!2;O_^8 #_/CZ\ M !]A!D) 3EY.=4Y6__Q*>0 FJ9G1BZN !HO+@ 6+RX $B\N XO+@ */RX M"$ZY =Y%2/+P O.0 ES9.N0 5+;?_ !@NN0 ES8_/ *3KD &WL M5(].7DYU3E;__$IY ":D&=&+JX '"\N !@O+@ 4+RX $"\N P_+@ *3KD M !WD5(\O "\Y "$!DZY !4MM_\ &"ZY "$!C\\ I.N0 ;>Q4CTIN M AM$#ZN @_/ !3KD 165(].7DYU3E;__#ZN !0_+@ 2/RX $#\N X_ M+@ ,/RX "F$ _R#?_ H^K@ 4/RX $C\N ! _+@ ./RX ##\N H_+@ ( M80#_4-_\ #$Y>3G5.5O_\+JX "#\\ 8_//__89Y8CRZN A.N0 (>Q. M7DYU3E;__#/\ &4 )L80GD )L:0GD )L>,^X " FR1.N0 2,_P " FR(S[@ ( ";)$ZY !) MRDY>3G5.5O_\,_P !0 FQA">0 FQI">0 FQXS_ * ";(C/N @ )LD M3KD $G*3EY.=4Y6__PS_ % ";&$)Y ";&D)Y ";'C/\ D )LB,^X M" FR1.N0 2,_P P MFR(S[@ ( ";)$ZY !)RDY>3G5.5O_\,_P !0 FQA">0 FQI">0 FQXS M_ " ";(C/N @ )LD3KD $G*3EY.=4Y6__PC[@ ( "3T"/N ! )/8 M("X $-"\ 6B/ "3W#/\ &0 )L80GD )L:,_P "P FQX@;@ ,,] M )LD3KD $G*(&X ##"Y ";)"/\ "4#@ D] C_ E6( )/8(_P )A$ M "3W"/\ "7/@ D]1.7DYU(_P )L8 "3S"(\ "3S'!S3D).=4Y6__Q" M0DJN AL!D2N A20DJN QL!D2N Q20C N K [@ .+4#__# N C [@ . M,BX #,+N K00=!N__P]0/_\("[__ @" !G D2 3EY.=4Y6__Y(YS\ 0D-" MA2XN @L+@ ,9A@C_( )/@(#R @?P & &AL!$2&4D-*AVP$ M1(=20[R';CAF!GH!0H=@,+Z\ $ &P*CL8Z!TA'2,=@'G@!OH9E!N.&XX1@ M]DJ$9PZ^AF4$BH2>AN*,XHY@[K9\ %F#D2'(\< )/@( 5$@& ((\< )/@ M( 5*GTS? /A.7DYU3E;_]C/N @ )I:,"X "-!\__;!_ #2,#0O B3G5.5O_\,^X " MFF(S[@ * ":9#Z\ !A.N0 2M).7DYU3E;__#/N @ )IB,^X "@ FF0S M[@ , ":9C/N X )IH,^X $ FFHS[@ 2 ":;#/N !0 )IN,^X %@ MFG S[@ 8 ": ":>#/N " )IZ,^X M(@ FGPC[@ D ";,#/N "@ )I^,^X *@ FH ^O 93KD $K2(&X +#"Y M ":A"!N # PN0 FH8@;@ T,+D )J((&X .#"Y ":BB!N #PPN0 FHP@ M;@! ,+D )J.0D P.0 FH).7DYU3E;__"/N @ )LP,^X # FF(^O R M3KD $K23EY.=4Y6__PS[@ ( ":8C/N H )ID,^X # FF8S[@ . ": M:#/N ! )IJ,^X $@ FFPS[@ 4 ":;C/N !8 )IP,^X & FG(^O S M3KD $K23EY.=4Y6__PS[@ ( ":8B/N H )LP/KP -$ZY !*TDY>3G5. M5O_\,^X " FF(^O U3KD $K23EY.=4Y6__PC[@ ( ";,#Z\ #9.N0 M2M(@;@ ,,+D )J$(&X $#"Y ":AB!N !0PN0 FH@@;@ 8,+D )J*0D P M.0 FH).7DYU3E;__"/N @ )LP(^X # FS0^O !:3KD $K2(&X $#"Y M ":A$) ,#D )J"3EY.=4Y6__PS[@ ( ":8C/N H )ID,^X # FF8S M[@ . "::#/N ! )IJ,^X $@ FFPS[@ 4 ":;C/N !8 )IP/KP 24ZY M !*TDY>3G5.5O_\,^X " FF(S[@ * ":9#/N P )IF,^X #@ FF@S M[@ 0 "::C/N !( )IL,^X % FFXS[@ 6 ":<#Z\ $I.N0 2M).7DYU M3E;__#Z\ $U.N0 2M(@;@ (,+D )J$(&X ##"Y ":AB!N ! PN0 FH@@ M;@ 4,+D )J*0D P.0 FH).7DYU3E;__#/N @ )IB(^X "@ FS ^O !. M3KD $K23EY.=4Y6__PC[@ ( ";,#/N P )IB/KP 'DZY !*TDY>3G5. M5O_\(^X " FS S[@ , ":8C/N X )ID/KP 'TZY !*TDY>3G5.5O_\ M(^X " FS S[@ , ":8C/N X )ID/KP (4ZY !*TDY>3G5.5O_\(^X M" FS S[@ , ":8C/N X )ID,^X $ FF8S[@ 2 "::#/N !0 )IJ M,^X %@ FFP^O J3KD $K23EY.=4Y6__PC[@ ( ";,#/N P )IB,^X M#@ FF0S[@ 0 ":9C/N !( )IH/KP *TZY !*TDY>3G5.5O_\(^X " MFS S[@ , ":8CZ\ "Q.N0 2M(@;@ .,+D )J$(&X $C"Y ":AD) ,#D M )J"3EY.=4Y6__PC[@ ( ";,#/N P )IB,^X #@ FF0S[@ 0 ":9C/N M !( )IH,^X % FFHS[@ 6 ":;#/N !@ )IN,^X &@ FG ^O O3KD M $K23EY.=4Y6__PC[@ ( ";,#Z\ &Y.N0 2M).7DYU3E;__#/N @ )IB M,^X "@ FF0^O !P3KD $K2(&X #""Y "_8$) ,#D )J"3EY.=4Y6__PS M[@ ( ":8C/N H )ID,^X # FF8S[@ . "::#/N ! )IJ/KP 9$ZY M !*TDY>3G5.5O_\,^X " FF(S[@ * ":9#/N P )IF,^X #@ FF@S M[@ 0 "::CZ\ &5.N0 2M).7DYU3E;__#/N @ )IB/KP 9DZY !*TDY> M3G5.5O_\,^X " FF(^O !G3KD $K23EY.=4Y6__PS[@ ( ":8C/N H M )ID/KP :$ZY !*TB!N PPN0 FH0@;@ 0,+D )J&(&X %#"Y ":B"!N M !@PN0 FHI"0# Y ":@DY>3G5.5O_\,^X " FF(^O !K3KD $K23EY. M=2/? "3Y$Y.+SD )/D3G4CWP D^1.32\Y "3Y$YU(]\ )/D3D$O.0 MD^1.=4Y6 !(YP, 0E M3G5.5O_\0E3G5.5@ 2.<''"IN @H;@ ,0D=@"+Y\ !!L M&E)', ?!_ .)D#7_ D/XP*P "P'P V;@OGP $&T&0H!@ #4#!0 =V<& M#!0 5V88/JX $#\\ $O#4ZY !C7%R// !@ !P#!0 86<&#!0 068^/JX M$#\\ $O#4ZY !F*%R// !L%CZN ! _/ !+PU.N0 8UQ3G5.5O_\+HX&EP M PO+@ (+SP )$,3KD &@V4(].7DYU3E;__"Z.!I< 0+RX #"\N A. MN0 :#90CTY>3G5.5@ 2.<##"IN @>+@ -*$U@ E*,2A1F^F *N3G5.5@ 2.<#!"IN @>+@ -$ =(@#Z +PUA ML%B/2I],WR" 3EY.=4Y6__PNC@:7 #"\N @O/ D/Y.N0 5=Q0CTY> M3G5.5O_\+HX&EP ! O+@ ,+RX "$ZY !5W%"/3EY.=4Y6_?)(YP$$2^[_ M\CJ\__\[? "! (NK@ (3KD 'I04D [0 ,+JX ""\.!I?___WR3KD 'HN M6(]![OWR*T@ "" (*T !"Z.!I< 0+RX #"\-3KD %7<4(]*GTS?( !. M7DYU3E;]8$CG#P0J;@ (0F[_\& !:(0!TB 2,#0O DNP@0 @0 5G5"!N M P>$%*N P0!TB 2,#0O DNP@0 @0 5FXBZ-3KD %ON/ "\?/__9@9P M_V !7(P1M'\ "2[ @0 5FW"Z-/P9.N0 7S14CTH'9P %3KX\ "5G."Z- M3KD %ON/ "\?/__9@9P_V !380!TB O$!G%"Z-/P9.N0 7S14CS N__!@ M 4:8 $_F *(&X #!X04JX #$)N__Z^/ J9@Y2;O_^(&X #!X04JX ##H\ M?_]@)+I\?_]F D)%$ =(@#(%P_P "M!!.@#:?/_0(&X #!X04JX #+X\ #!M M!KX\ #EOT$)N__A";O_VOCP ;&804F[_^"!N P>$%*N Q@%+X\ &AF#E)N M__8@;@ ,'A!2K@ ,$ =(@& !%0]? *__)@#CU\ C_\F &/7P $/_R$ =( M@$C T+P )+L($ ($ #9P12;O_X+HU.N0 6^X\ +Q\__]F!G#_8 $/C!& MT?P )+L"! !6;<2F[__F<*0>[_Z"U(_>1@#"!N ! M4/WD6*X $$)N__R\ M? K9P:\? M9B*\? M9@12;O_\4T4NC4ZY !;[CP O'S__V8&,$;1_ DNP($ $9P@P!M!\_^!@ C &/ ]1O_T#&X M,/_T;0 @ QN $;_]&X '8,;@ Y__1O" QN $'_]&UD!&X ,/_T#&X "?_T M;PHP+O_T7T ]0/_T,"[_]+!N__)L0E)N__HO+O_L,&[_\B\(3KD $G@4(\R M+O_T2,'0@2U _^PNC4ZY !;[CP O'S__V8&0@KO_L8!Q*;O_V9PP@+O_L(F[]Y#* 8 H@+O_L(F[]Y#* 2F[__F8$ M4F[_\& K0NC4ZY !;[CP O'S__V8&0,!2K@ ,1,!F$#U\ '__"!N P>$%*N Q![OUD+4C]8& 4 M(&[]8!"'4J[]8"!N P>$%*N Q*!V<&OCP 76;B(&[]8$(00>[]9"U(_6!* M;O_^9PI![OWH+4C]Y& ,(&X $"U0_>18K@ 08"(P!B)N_>02@%*N_>0NC4ZY M !;[CP O'S__V8&1"$$IN__YF!%)N__!@ %:$ =(@$C MT+P )+L($ ($ #9P12;O_X+HU.N0 6^X\ +Q\__]F!G#_8 !1#!&T?P M )+L"! !6;<2F[__F<*0>[_Z"U(_>1@#"!N ! M4/WD6*X $$'N_60M2/U@ M8$PP!B)N_6 2@%*N_6"\? P;0:\? Y;QZ\? N9QB\? !E9Q*\? !%9PR\ M? M9P:\? K9AXNC4ZY !;[CP O'S__V8&O!8CR!?((!*;O_^9@12;O_P8$@NC4ZY M !;[CP O'S__V8$3G5.5@ 2.3G5.5@ 2.[S?_ X]0/_Z0F[_^& 4($R3 MR3)N__C1R0P0 !IG$%)N__A"0# N__BP;O_Z9>!*;O_Z9Q @3)/),F[_^-') M#! &F8*/6[_^/_Z %4 (#ZN__HO#&%06(\]0/_X0H P+O_ZT:T !D* ,"[_ M^-G 0H P+O_XGH!*AV\*""T !0 !9P#_8)^N__P@+0 &L*T #F\&*VT !@ . M("[__$J?3-\P@$Y>3G5.5O_X2.3G5.5O_^2.<##"IN M @H;@ ,+BX $#Z\ $@!S\ +PPO+0 &+PT&EP !).N0 >[S?_ X] M0/_^2F[__F8$ %4 ($* ,"[__M&M 8@+0 &L*T #F\&*VT !@ .0D P+O_^ M2I],WS" 3EY.=4Y6 !(YP,$/BX ""IN J^?/__9@1P_V N""T #9R1* MK0 $9QX@+0 (L*T !&,44ZT "# '(FT "!* 4FT ## '8 )P_TJ?3-\@@$Y> M3G5.5@ 2.<' $ZY !UECX ; 1P_V F/H=.N0 =AX^O 3+RX "#\'3KD M 'AX7(\\ #Z'3KD '7@, 9*GTS? ,!.7DYU3E;_WDCG!PQ"5TZY !TKB/ M "3^B/ "3_D)Y "3^"Z\ "+-6$ Q8J;@ (8 "3F "4HU*%6<4$!5( M@$C T+P )+L($ ($ %9N9*%6< C(,%0 B9P8,%0 G9D8<%1 &2( ^@"\- M4I=.N0 .!8CRA ( QF#BZ\ "0HB\-80 "5EB/( Q(P)"-/@ @33)'T'A$ 9(@#\ +R[__&$ 5I3KD 'I0/H!25TZY ![ BA M+HX&E____]XO#$ZY !Z+EB/+HQA #\/KP $B\-/SP TZY !X>%R/' "\ M/ #_9IQ@!BZ-80 VF 4L'P /&< _G:P? ^9P#^G& _Q+:QTH59@#]L$*7 M80 ME-Y "3^"ZY "3_DZY >K!\__]F$"Z\ "0^2\\ "0ZF$J6(]" MER\Y "3^C\Y "3^$ZY ^ER//H!.N0 9%Q*GTS?,,!.7DYU3E;_?"ZN M @O#@:7____@$ZY !Z+EB/+JX #"\.!I?___^ 3KD 'F\6(\NO D/HO M#@:7____@$ZY !YO%B/+HX&E____X _/ )3KD "65(\^O/__3KD &1< M3EY.=4Y6 !(YP$$*FX ""!Y "3_B"-6+D )/^4GD )/X2I],WR 3EY. M=4Y6 !(YP,<*FX "!XN TH;@ .1^T 5AC;9OQ*GTS?.(!.7DYU3E8 $CG M P1.N0 =98^ +Y\__]F!G#_8 DCZ'3KD '8>, ?!_ (X*D#;_ F]I* M;@ .9@0 50 0+KP (L_+RX "$ZY !Z?EB/2D!F"@!5 ,P!V!28!XNO MBT0O+@ (3KD 'I^6(]*0&8( %4 !3 '8#(^O 6+RX "#\'3KD 'AX7(]* M0&<6,_P (P DN@S^0 D\H )+J3G5.5O_\ M0E<_+@ ,+RX "&$ _SI3G5.5O_\0E<_+@ ,+RX "&$ _R)3G5. M5O_\/KP 3\N PO+@ (80#_"%R/3EY.=4Y6__Q.N0 9'0^K@ (3KD "Z M3EY.=4Y6 !(YP, 0D=@%C 'P?P #M"\ "0_BZ 3KD &2F4D>^? 0;>1* MGTS? (!.7DYU3E8 $CG 00J;@ (,"T L!\ -G*BZ-3KD &6.""T @ # M9PHNK0 $3KD '&*0D!(P"M @K0 $0FT # )M_X CZ53KD &3^2I], MWR 3EY.=4Y6 !(YP\$/BX "#Z'3KD ':,*D @#686,_P "0 DN@S^0 MD\H )+J3G5.5O_\3EY.=4Y6 !(YP<$*FX "# M + ? *L'P F8L("T M")"M 0\ &\@/H8O+0 $/Q5.N0 =1A3G5.5@ 2.<#!$ZY M !UECX OGS__V8&GY8CTI 9@@ 50 %, =@9#Z\ \O M+@ (/P=.N0 >'A7(].7DYU3E;__#Z\ $_+@ ,+RX "&$ _L13G5. M5@ 2.3G5.5O_R2.<#!$ON__([?'__ P@+@ ( M*T !"M @[? "" (ZO/__+HX&EP ! O+@ ,+PU.N0 :#90CSX +HU" M9TZY !M[%2/, =*GTS?((!.7DYU3E;]Y$CG#P0J;@ 00F[][$JN QG 1H M8 $8$)%+6X #/_R8 92KO_R4D4@;O_R2A!G"B!N__(,$ E9NA*16\<+JX M"#\%+RX #$ZY !M?%R/+6[_\@ ,VV[]["!N P,$ E0,!2K@ ,1,!F 0. M0F[]ZB!N P0$$B '@"P? M0,!2K@ ,1,!F#B!N P>$%*N Q2;OWJ'7P M(/_VOCP ,&8.'4?_]B!N P>$%*N P]?/___?"^/ J9AHM3?_X(&[_^#U0 M_?!4C2!N P>$%*N Q@.& J2F[]\&P$0F[]\! '2( R+OWPP_P "M!!T'S_ MT#U _? @;@ ,'A!2K@ ,OCP ,&T&OCP .6_*?/^^/ N9@Q"1B!N P>$%*N M R^/ J9A@M3?_X(&[_^#P05(T@;@ ,'A!2K@ ,8"I@'! '2( R!L/\ K0 M03P W'S_T"!N P>$%*N R^/ P;0:^/ Y;]A";OWHOCP ;&<&OCP 3&8. M4F[]Z"!N P>$%*N Q![OWR+4C_\A '2(!@ (,4F[]Z$IN_>AG"" \ !S MBF &(#P '1 (\ )0"+KD )0"/SP 3\\ HO#@:7___]\B\-3KD ',8 MW_P ,2F[]Z&<$< 1@ G "2,#;P& Y*;OWJ9E@,+@ P__9F*B!N__(,$ M M9B!312ZN @@;O_R$!!(@#\ 3KD &WL5(]2KO_R4F[][& 8+JX "! N__9( M@#\ 3KD &WL5(]2;OWL,"[][E-N_>Y*0&[<+JX "#\%+R[_\DZY !M?%R/ MVV[][& 8+JX "! N__9(@#\ 3KD &WL5(]2;OWL,"[][E-N_>Y*0&[<8 #[ MH# N_>Q*GTS?(.!.7DYU3E;_^$IN !!L!' &8 0P+@ 0/4 $"!N @@$"U M__P^K@ 0+RX #"\N__Q.N0 ?$10CTY>3G5.5O_X2FX $&P$< 9@!# N ! ] M0 0(&X "" 0+4#__#ZN ! O+@ ,+R[__$ZY !^0E"/3EY.=4Y6__@^K@ 0 M+RX #"\N AA /]^4(\M0/_\+JX #$ZY !Z4#(N !!>0;!!;Q0^K@ 0+RX M#"\N AAC%"/+4#__" N__Q.7DYU3E8 $CG PPJ;@ (/BX #"AN X(+ # M -G)$)L P^AR\-/Q1.N0 =1AQ4C[!\__]F!'#_8 HP!U-'2D!FWD) 2I],WS" 3EY.=4Y6 M !(YP,$'BX "2IN I3;0 ,;180!TB (FT "!* P'P _U*M A@$F 0+HT0 M!TB /P!.N0 ;C)4CTJ?3-\@@$Y>3G5.5O_^2.@$^A2\M 0_%4ZY !U&%R// !";0 ,8&X(+0 & -G/KX\ M IG$" M 30O @"PK0 (8B(@+0 (D*T !#H /H4O+0 $/Q5.N0 =1A< MCSP *VT ! (0FT #& H("T ")"M 0Z #Z%+RT !#\53KD '487(\\ #M\ M ?\ #"MM 0 "+I&9PH ;0 0 )P_V ($ =(@,!\ /]*GTS?(.!.7DYU3E8 M $CG 00^K@ (3KD ':,*D @#68$0D!@#@@M $ 68$0D!@ G !2I],WR M3EY.=4Y6 !(YP$$/JX "$ZY !VC"I ( UF!$) 8 8P%3G5.5@ 2.3G5.5@ 2.0 DKZ[S&4$N]1E$+G4 M90B[U&,(N\QD!"A48.B[S&4R( U"03(M 3G24A!0D%(0="!(@Q"0C0L 3G M2DA"0D)(0M*"L(%B"B/, "2OD) 8&X@#4)!,BT !.=)2$%"04A!T(&PE&8< M(%0P* $T6T !$) ,"T !$9 .T !B!4*I!@ BJ4( Q"03(L 3G24A!0D%( M0="!N\!F&D) ,"T !-%L 1"0# L 1&0#E 8HE6 "*(TCS DKY"0$J? M3-\P $Y>3G5.5O_\2.<##"IN @NC6$ _O(^+@ ,7D?F3U)'/H=A /V(+4#_ M_&8$0H!@2B!N__PH4%",N\QG,KG-9!!@!AC=4VX #$IN QF]& >0H P+@ , MV3G5.5O_P2.<##"\.!I?____P/RX $C\N ! O#@:7 M #"\N @@;@ 43I#?_ ! J0" .T+S____PN\!F D(=*&X #& 2'B5( MA]Y\ #"^? Y;P)>1QC'( [0O/____"[P&;B0A0@#$J?3-\P@$Y>3G5.5O_\ M2.@A@#" 'P'P M#QK Z(=314J'9P1*16;L8&@,;@ ( !!F)'H+8 P@!\!\ <:P.:'4T5*AV<$ M2D5F[$I%9@8"+0 #__]@/$IN !)G&DJ';!8@;@ ,(% 0O M(FX #%*1( =$ M@"X 8!8NAB\'3KD 'LP6(\N "!N__P:Z #2H=FYB -2I],WR#@3EY.=4Y6 M__Q(YP<$(&X "# 02, M0/_\("[__,"\ #__SX *FX %#PN !!*;@ 29QQ* M1VP80D P!T1 /@ @;@ ,(% 0O M(FX #%*18!)"@# '@,9(0!K 0H P!X#& M/@!*1V;J( U*GTS?(,!.7DYU3E8 $CG PP^+@ (2,?.O __\(!P 9P)2 MARIY "3QBA'V?D )/&+HQ.N0 'JP?/__9A8S_ , "2Z#/Y "3R@ MDNIP_V 2/JX "$)G+PU.N0 ,13G5.5@ 2./6[_ M^O_\8#A2;O_Z/KP 3\\ $O/ DL8O+0 &+PT&EP !).N0 >_C?_ M X]0/_^0H P+O_^T:T !KYN__QB /\T("T !K"M YO!BMM 8 #D) ,"[_ M_$J?3-\P@$Y>3G5.5O_^2._C?_ X]0/_^2F[__F86,_P !0 DN@S^0 D\H )+JFX((&X " 00 " @;@ ($!!(@%*N A* M &;43EY.=4Y6 !(YP$,*FX #"AN A@ E*,2A1F^AC=9OP@+@ (2I],WS M3EY.=4Y6 !(YP$,*FX #"AN A@!%*,4HTP+@ 04VX $$I ;P08E6;L4FX M$& "0APP+@ 04VX $$I 9O(@+@ (2I],WS 3EY.=4Y6 !(YP$,*FX #"AN M @8W6;\("X "$J?3-\P $Y>3G5.5@ 2. ! <2( ^@&$F' "^!F\$< %@$KX&; 1P_V *2A5FV$H49M1"0$J?3-\P MP$Y>3G5.5@ 2.<# #XN B^? !A;0J^? !Z;@3>?/_@, =*GTS? (!.7DYU M3E;__"ZN A.N0 @%9.7DYU(%]"@# ?6H (@ (GD )/&0^D! $/Q" "_ MR6(&3OD "LG\!#[P $( E.T$Y6 !(YQ\ +BX ""PN Q*AF86(_R M "3;" \@ (#\ !@2+R'8PHCQP DVQ"@& ZOH9F!GH!0H=@*'@!OH9E M#B &XX"\@&(&XX;CA&#N0H5*A&<.OH9E!(J$GH;BC.*.8.XCQP DVP@!4J? M3-\ \$Y>3G5*A6<*+KS_____B_P $YU3E;_^B!N @]:/_R__XNK@ 0,&X M%B\(,&X %"\(3KD $G@4(\O #\N__X_/ _3KD 'PT4(].7DYU3E;_^B!N M @]:/_R__XNK@ 0,&X %B\(,&X %"\(3KD $G@4(\O #\N__X_/ ! 3KD M 'PT4(].7DYU(]\ )0&3D$O.0 E 9.=4Y6__A(YQ\ +6X #/_\2FX $&X$ M< %@$@QN !8 $&\$0O/( $(O+O_X3KD (/F4(\O "\N A.N0 @ZA0CRU @O/* M $0O+@ (3KD (/(4(]M"BU\@ 00 (4D=*1VPT(&X #!"\ #!2K@ ,(&X M#!"\ "Y2K@ ,2D1L IY$?/]@#B!N P0O P4JX #%-&O$=N[D)&8&HO+@ ( M3KD (2R6(\Z # %T'P ,")N P2@%*N R\1V8,(&X #!"\ "Y2K@ ,, 5( MP"\ 3KD (0B6(\M0/_X+P O+@ (3KD (5V4(\M0 (+SR@ !$+RX "$ZY M "%.E"/+4 "%)&O$1MDB!N Q"$%*N P@+O_\2I],WP#P3EY.=4Y6__A( MYQ\ +6X #/_\2FX $&X$< %@$@QN !8 $&\$3G5.5O_22.(&X " P0 "UG"B!N @,$ K9@12K@ (8"0@;@ (#! M+F8&4F[_XF 0(&X "!K02F[_XF<$4F[_VE*N @@;@ (2A!G%"!N @,$ !E M9PH@;@ (#! 16; 0A4@;@ (#! 96<*(&X " P0 $5F1%*N @@;@ (#! M+6<$0D!@ G !/4#_X"!N @,$ M9PH@;@ (#! *V8$4JX "& *(&X "!C0 M4JX ""!N A*$&;N0A0NC@:7____[&$ .(M0/_6+HX&E____^A.N0 B5P] M0/_<2F[_X&<,,"[_W$1 D&[_VF (,"[_W)!N_]H]0/_:+R[_UC\N_]IA.E2/ M+P!.N0 A3I0CRU _](NKO_23KD (*L+4#_Y$IN_]YG" "N @/_D("[_ MY$J?3-\P $Y>3G5.5O_X2FX "&PL+7R !!__Q@&B\\H 1"\N__Q.N0 M@^90CRU __Q2;@ (2FX "&W@8"HM?( $'__& :+SR@ !$+R[__$ZY "% M.E"/+4#__%-N A*;@ (;N @+O_\3EY.=4Y6__@M? #__&!$+SR@ !$ M+R[__$ZY "%.E"/+4#__"\N__P@;@ ($!!(@-!\_]!(P"\ 3KD (0B6(\O M $ZY "#J%"/+4#__%*N @@;@ (#! ,&T*(&X " P0 #EOJ" N__Q.7DYU M3E;__$CG#P!"IR\N A.N0 @\A0CV8&0H!@ #60J3G5.5O_\2.3G5. M5O_\2.3G5.5@ 2.<' $JN AL#GP!("X "$2 +4 "& "0D9* MK@ (9@1"@&!>?AA@#" N CB@"U A2AR N C O'\ !FZ& ,("X ".. M+4 "%.'""X !P )9^P@+@ (X8 M0 (WKP ! ( ? O '^!K@ (2D9G M" "N @ (("X "$J?3-\ P$Y>3G5.5@ 2.3G5.5O_\2.3G7./ !_3G5*!V<$"@< @$YU& 9G M4@H$ (!K:AH':VQF#F ^& 9K7F<^&@=K7F!$YUXI=2!&D"9/1^_U,$'@0 / "3G4N!AX$3G5*!TYUNCS_ MZ&_P1 4F!D('ZJ\6/ " WH-ES!X$3G4:!VNF9]9V@+<%F@1G4&L\NCP &&3, M& <> R8&0@/JJYZ#:Z :!$('4P2^O ?_]B!DA'F#P $-Z'6\S__+D%:P8> M!&<"3G5^ $YUNCS_Z&^*1 4F!RX&'CP @&"^&@?+1!X&GH9GX&JZ1(<8!6"V MO@9F KZ&3G5*!TYUCOP $J&9AR.O/___W]*!P \ ).=4A&2$>]!V#J:_I^ M $YU&@9GV"@'9^AV@-I%V$2W!;<$F 5IY$('2$=(1KY&:P94!&G.XI](1QH# MNT3B3"8'AL8Z \;&GH-(1TA&-@9" \;%GH-D""8&0@/>@U-%)@9(0T)'CL-( M16L(.@?:A5,$/@4Z!]J\ @"X%'@1GC$YU2@=G#FH4SCP ?V$. #P DYU M?O].^0 ASA(YWZ 'P<>/ !!+#R !!) =.N0 A;C/0DZY "%IBP"3KD M (:Z9TZ>/ !#1 >^/ ?8P)^ .ZO? J/" !!^0 B+AR%G0!8 ;DI)J$ MW) H!R8%Y*.>@VKP+@18B%("XHM1R?_R?@!.N0 B()G!%(&+@8D!WP '!^< M/ !!9RP2!FH"1 ;@GGI'W(9;S?_\' 7"/ " C $N/+%R&$!.N0 A_PL DZY M "%N$S? 7Y.=1H'9U(8!F=HVD781': MP2W!=H$:5X8 [E%XEU(13H&0@=" M!3@%R,=(1"8'2$/&Q=B#2$8F!L;'V(-"1-D$2$1(1\[&2$9(1=Z$:@S>O M ( >!6<:3G53!6D491)X0-Z$WH=D!.*74@4>!6<"3G5^ $YU:OJ]!XZ\____ M?TH' #P DYU>$)*AF@@L5WT$!6)' @"K$0$ %5@ @ *J $ M50 @ H $ ! @ $ @ $ @ $ @ $ @ M $ @ $ @ $ @;6,V.#,T,R!F;&]A=&EN9R!P;VEN M="!F:7)M=V%R92 H8RD@8V]P>7)I9VAT(#$Y.#$@8GD@;6]T;W)O;&$@:6YC M+@!.5@ 2.<'!"IN A"1T)&8 )2C1 52(!(P-"\ "2["! "! !6;J#!4 M*V8$4HU@"@P5 "UF!%*-4D9@#L_\ H0'4B WD#>?/_0#!4 ,&T&#!4 .6_F M2D9G!C '1$ ^ # '2I],WR# 3EY.=0 ! (! 0(! 0 ! 0(! 0$! 0 M ! ! ,% 4% ! 0(! ! ' 0(! $! 0(! 0(! M 0(! 0$! @$! 0 (! 0$! 08! 00! 0$# 0(! 00" 0@! M 0 $! 0D! 0$! 0$! % 0 M 0# @# 8! @! @! 0! 0,! 0 % M $! 0 % ! 0 ! 0 " @ M 4! 4! $! $! (% 8! (! $! M 8% ! 0 ! (! (! 0$! 0 ! @,! @$! M 0$! 0 ! 0 ! E-T86-K($]V97)F;&]W)$,@ 0 !0!D "6@@ ! M ! 2 &0 )JB $ #P $ D 9 FJ0 0 * 0 " !D "6?@ ! H M! + &0 +]: $ 0 "H > FT( 0 *0 ":5 ! $ M M )JF "4 FI (P ":D@ ! B M ) F40 0 - 0 #@!X "9: ! T ! - '@ +]D $ M(P $ !H 8P E H 0 C 0 &0!C ":F ! !$ ! 7 '@ M $MX !/. 2 $.8 !/. 3S@ $\X !/. 1^ $6Y+ M15)-250N3U!4 '( )7@ =P E> H 2T5234E4+D]05 !+15)-250N3U!4 $M% M4DU)5"Y$14( =P!+15)-250N3$]' '< )6, )3)D "4P,G@ )60 )7@ 8 M5@ &Q !?H <] &60 !O\ <; )7, )7, )60 )60 )6QD "4P M,G@ )60 )60 )60 00 $( !# 1 $4 !& 4P %H M E)@ )18 "4B D_@ )48 "3P DX@ )0H "5* M $$ !% 3@ %D FC )IP "9\ F&@ )BP ":@ M $$ !% 3@ %D HJ@ *+H "B: G\ *" "B^ M $$ !% 3@ %D J' *BP "H, I6 *8@ M "HP $$ !% 3@ %D KH@ *[( "N2 JQ@ M*O8 "NV $$ !% 3@ %D LT +. "S L M3 +'P "SD06)OP "WL M[ +>P "WL M[ +>P "WL M[ +>P "WL M MH !! 10 $X !3 60 "\* O; +O@ "\* M N< +V( "]P $$ !" 10 $8 !3 6@ M #/R T& ,Z #/B Q$@ +^P #"( T' !! 1 M $4 !& 6@ #;\ W(@ -)@ #;L UK@ -C@ # !7* 6C@ %HX !7 M, 6-X % !KP@ :\( &O" M !KP@ :\( &O" !KP@ :H( &O" !KP@ :\( &LF !KP@ :BX M &O" !KP@ :M8 )*V #__P DK8 #0 'DR !Y? >/@ 'D8 M !Y4 >7P 'E\ !XU@ ! 0$! 0$! 0$A(0$A(0$! 0$! 0$! 0$! M 0$! 0$! 2(" @(" @(" @(" @(" @($! 0$! 0$! 0$ @(" @(" @@(" @( M" @(" @(" @(" @(" @(" @(" @( @(" @("$! 0$! 0$! 0$! 0$! 0$! 0 M$! 0$! 0$! " @(" 0 !#4"]-+38X2RAT;2DL(%9E'B8,9B@&#!0$A@<%A(8% HF%@H*%! 0 M"B86# H4$"X0!@8B$A8B$ 8&)!(6% @&#B(0!@8,#@@&"@X2" H4# @&#B(0 M!@8,#@@&"@X2#!0:&!@:'!@>%A@6#A0B&!XB&! *#@H."BHB&B :%A(@$" > M+"0*$@HR&AX0#!0,% @&!@P.%@H,% @&!@P.%A86" 8." 82"@84$@P,#@8. M!@@6# 8<$@P&" 8,#!0(!@8,#A8.%@@&!@X,!A02# P4" 8&# X6%A8(!@X( M!A02# P6$ P4$@P,%A ,%!(:& 82!AX&' 8># 88" @&#@8:(@8&!@8&!@8( M!@8&!@@&!@8&!@X&#@80!@@,# P,#!X2#A0*"!(.% H(!@8,0 8&# @&!@P( M!@8," 8&# @&!@P(!@8,$ 80!A0$!@8.!@X&#@9$%@8J!AX@&"@0$A@<7BH& M&@8>&@8P!AH&' X&)!(&" 8&!@8." 8*!@H&# H&$ X.# P,"@H4#B &"!(0 M!@8&!@H*#AH.# 8,# 8,!@8&!A *!@H&%A # 8,# 80#@P&!@80!@8&"@8*!A80' 8($@X&!@H(#AX, M!@P,!@P&!A &!@82%A &"@86$!P&"!(." H(#AX,!@P,!@P&!@80!@X(!@8* M!@X*# 8*!A80' 8($@X("@@.'@P&# P&# 8&$ H&"@86$!P&" 8&!@8." 8* M!@H&# H&#@P,# H*%!H6!@@2$ 8.%!H&!@8&"@H(! 8&$ 8,!@P&# H*!@8* M"@@*%A 6"@(% @("A 4% P*("0V(@8*!C .""H."A(()!H.""((+$@($B0B$@@B M#@@>$"82#C(>'@8*!A0>"AH*!BH2% H**A0*.$P0%! *)! .#"P@"@8,"A @ M"@8,"A9T$ 8&" 80!@8(" 80!@8(" 80!@8(" 80!@8(" 80!@8(" 80"! ( M!@@*!@H&! 8$!@0&! H$!GIF#!@4(!@&" X$!@0&! 8$!@0&! 8$#@0D"A ( M"A (" @(" @(" @(" @(" @("@H*"@H*"@@0" H0" @(" @(" @*$ @*$ H0 M"@H*"@H($ @*"@@0" @(" @(" H0" @(" @(" H2"@H*"@@0" H0" H0" @* M$ @("A (" @(" @*$ @(" @*$ @*"@H($ @(" @(" @("A *$ @*"@@0" @( M" H0" @(" H0"A *$ @*"@H*"@@0"@H(" @("!8.# 8$7#(D%A0>K @&# 8, M!B L(@8@> 8@)A@D+!X0%A 6(,04%D8B%$I0 M4"8*"@@&'EPF!@0@&D0!')X0$ P'@X&!!P0 M"!(&!$A.)A8.&@H>"AX." 8$'!1J#@8$&FH.8 %>" 8&&"H(!@86*@@&!A8J M" 8&%F F)!P@#D0>(AI6."I2)%I&(%Q *$(T+DHB&AJ&+C@V#$IP 1Z,K @( M#@8$$B D!@0<%B((%@8$(D R&"8&!!00!@2((@8$'A)F& 8$2%(B'!P>' &( M%A(H%CQ $BH2# @\&A(6&!88%!@<#A94,!(67AH2%A@6&!(8' X6'# 2%@&0 M-A!$+#8@"CH6#B(6&!84$% @'AP!.AP@ ;P8" @@*C8( 8@!U 0$! 0$4 X. M#@X.#@X.#@X.#@X.#@X.#@X.' 0$! 0$! 0$!%P$! 0$! 1(! 0$! 0$! 0< M! 0$! 0BXN+@ @(%-E;F1E+BXN " @16UP9F%N9V4N+BX ("!396YD92]3 M97)V97(N+BX +2TM+2TM+2TM+2TM+2TM+2TM+0 @($5M<&9A;F=E+U-E&-O9&4I 7U\ 7U\ 3DX 4&%D9&EN9RA,A&YG M92D !?7P!?7P Y.0!086-K971S=&%R="A(97AC;V1E*0 %]? %]? $Y. M %]? %]? $Y. $AA;F1S:&%K92A(97AC;V1E*0 %]? %]? $Y. %%U;W1E M*%IE:6-H96XI 7P!? %@ 7P!? %@ 3TL 04)"4E5#2 !396YD96X !% M;7!F86YG96X !?7U]?7U]?7U]?7U]?7U]?7U]?7U\ 7U]?7U]?7U]?7U]? M7U]?7U]?7U]? %A86%A86%A86%A86%A86%A86%A86 !$871E:3H !?7U]? M7U]?7U]?7U]?7U]?7U]?7U\ 7U]?7U]?7U]?7U]?7U]?7U]?7U]? %A86%A8 M6%A86%A86%A86%A86%A86 "!8BX@3F%M93H !?7U]?7U]? %]?7U]?7U\ M6%A86%A86 !$871E:65N((%B97)T'AX> !697)S:6]N7U\N7U\ .3DY.0!X>'AX>'@ M7U\M7U\M7U\ .3DY.3DY $1I97-EF5U9W0@ M=V5R9&5N+@!$871E:2 G)7,G(&5X:7-T:65R="X@3F5U97(@3F%M93H@)R5S M)RX 16UP9F%N9V5N(&5R9F]L9W)E:6-H(&)E96YD970N "HJ*D9A=&%L97(@ M1&%T96EF96AL97(N $1A=&5I(""4P,G@^('PE8WP 2V5I;B!(86YD#X@?"5C? !"96=I;FX@9&5S($5M<&9A;F"4P,G@^('PE8WP (" M/B!P861D:6YG.B E9" J(#PP>"4P,G@^ " @ M+3X@:&%N9'-H86ME('=A#X@?"5C? @("T^($AA;F1S M:&%K92!:96EC:&5N(&5M<&9A;F=E;BX ($1A=&5I("5S(&%N9V5F;W)D97)T M("A09F%D/25S+$1A=&5I/25S*0!%;7!F86YG96XH4V5R=F5R*2!EF5I8VAE;G=E M:7-E70!;,%U;5')A;G-A:W1I;VYS(%!R;RU\=&]K;VQL(&)E9V]N;F5N75M/ M2UT 6S-=6T9A=&%L97(@1F5H;&5R?&EM(%!R;W1O:V]L;%U;04)"4E5#2%T M6S-=6T1I92!$871E:2!K86YN(&YI8VAT?&5R>F5U9W0@=V5R9&5N75M!0D)2 M54-(70!;,UU;1F%T86QE 7U %]@ # 8 !& #__P 5 $ 7_ M &!P !@\ P & $1@ __\ " ( &%P !BL 8L , !@ $8 M /__ !0 0 !BT 8^ &/P # 8 A& #__@ 1 $ 9 &3@ M!D\ P & (1@ __X #@ ! &8 !FP 9M , !@ "$8 /_^ P M 0 !FX 9\ &?0 # 8 A& #__@ . $ 9^ &?P !H P & M 1@ __\ 0 ! &A !IH :; 4 !@ "$8 /__ !8 0 !IP M :K &K % 8 A& #__P / $ :M &NP !KP P & (0< M__\ #@ ! &O0 !L( ;/ , !@ "$8 /__ 4 #0 !M0 ;; & MY # 8 A& #__P ' D ;K '#0 !PX !0 & 1@ __\ (@ ! M '#P !S4 '7P % 8 M !& #__P G $ =@ '@P !X0 !0 & 1@ __\ (P ! 'A0 M!ZT >N , !@ $8 /__ "@ 0 !Z\ ?. 'SP # 8 !& #_ M_P ? $ ?0 'T0 !]( P & 1@ __\ 0 ! 'TP !_P @E M , !@ !$8 /__ "D *0 #P, \% /*0 # 8 !& #__P " "0 M \K /- #T, P & $1@ __\ "0 / /3P #V ]A , !@ M$8 /_^ !$ 0 #V( ^+ /M # 8 !& #__P I "D _= 0 M!0 $ 8 P & (1@ __\ * !__\ 0 ' !D 4 9 M < @ " !0 1 4 (! $ P & !D " M)@,! 3_____ " ) "P,! 7_____ " , + M !P,! ;_____ " . 2 "@,! +_____ " M0P < "@,! " A !D P$ 4 3 !$ "0 0 !0 M /\1 " % ( K_____ !P 3@ % ! O_____ !P M ( 7 $ % ! S_____ !P <0 ( % ! W_____ M !P A@ , % ! [_____ !P FP 0 % ! __ M____ !P L 4 % ! !#_____ !P Q0 8 % ! M C_____ !P V@ < % ! !@ $@ 7 !0 /\1 - M$@ & !/_____ !P [P $@ ! !3_____ !P _ M $ $@ ! !7_____ !P !# 4 $@ ! !;_____ !P ( ! M$P 0 $@ ! !?_____ !P !)@ ( $@ ! !'_____ !P M !- , $@ ! "$ &0 @ !0 /\1 4 $P ( !K_____ !P M !1@ $P ! !O_____ !P !40 $ $P ! !S_____ M !P !7P , $P ! !W_____ !P ( !<0 ( $P ! ![_ M____ !P !A0 0 $P ! !______ !P !F0 8 $P ! M "#_____ !P !IP < $P ! !C_____ !P ( !MP 4 M$P ! < (@ M !0 /\1 > &@ , "/_____ !P !RP M &@ ! "3_____ !P !WP 8 &@ ! "7_____ !P ( ! M]@ @ &@ ! ";_____ !P "$0 < &@ ! "?_____ !P M ")@ H &@ ! "C_____ !P ( ".@ 4 &@ ! "G_____ !P M "50 $ &@ ! "K_____ !P ";@ , &@ ! "O_____ M !P "> ( &@ ! "S_____ !P "A D &@ ! "W_ M____ !P "F@ L &@ ! "'_____ !P ( "K0 0 &@ ! M__\ 0 ! !0 0 (1 &%@8! #_____ !P ( "OP$! P M%0 !__\ 0 ! !0 0 (1 & D! #_____ !P ( "U0 ! M! %@ !__\ 0 ! !0 0 (1 '#P@ 7 @ ! !, $@ 2 !8 6E@ & D (@ ! !'_____ !X M" 6L@ 7 @ ! !8 % 5 !8 6S@ & H (@ ! !7_____ M !X " 6Z@ 7 @ ! !/_____ !X " 7!@ @ @ ! !@ M%P 7 !8 7(@ & L (@ ! !;_____ !X " 7/@ @ @ ! M !L &0 : !8 76@ & P (@ ! !K_____ !X " 7=@ 8 M 0 ! !C_____ !X " 7D@ A 0 ! !S_____ !H !P $4 & M X " ! #_____ !H )0 $4P @ X " !__\ 0 D !0 0 (1 M )@ 2 +_____ !8 @ @ 7K@ ' $ %P ! /_____ !8 @ @ M 7R@ ' $ %P ! 8 ! % !0 /\1 # , ( ! 7_____ !T M" 7Y@ + %0 ! /_____ !4 8 @ !@ ! D !P ( M !0 /\1 # 0 ( ! C_____ !T " 8'@ + %0 ! ;_ M____ !4 8.@ "0 ! P "@ + !0 /\1 # 8 ( ! M O_____ !T " 85@ 9 !P ! G_____ !4 8<@ M$P ! \ #0 . !0 /\1 # H ( ! [_____ !T " 8C@ ; M !0 ! S_____ !4 8J@ "P ! !( $ 1 !0 /\1 M # L ( ! !'_____ !T " 8Q@ ; !0 ! ______ !4 M 8X@ $P ! !4 $P 4 !0 /\1 # P ( ! !3_____ !T M" 8_@ ; !0 ! !+_____ !4 9&@ %0 ! !@ %@ 7 M !0 /\1 # @ ( ! !?_____ !T " 9-@ 9 !P ! !7_ M____ !4 94@ $P ! !L &0 : !0 /\1 # T ( ! M !K_____ !T " 9;@ > @ ! !C_____ !4 9B@ M% ! !S_____ !H 0 %]P : \ "0 ! !\ '0 > !0 /\1 # M < ( ! ![_____ !T " 9I@ 9 !P ! !S_____ !4 9 MP@ $P ! "#_____ !8 @ @ 9W@ ' $ %P ! "'_____ !8 @ @ M 9^@ ' $ %P ! "+_____ !H 0 &4 / \ "0 ! "/_____ !H M!P ( &60 # \ "0 ! "3_____ !8 @ @ :%@ ' $ %P ! #_____ M !8 H @ :,@ ' $ %P !__\ 0 - !0 0 (1 $(0L. +_ M____ !T " :3@ * , "P ! /_____ !H !P &@00,"PP " ! M 3_____ !4 ::@ @ (0 ! 7_____ !4 :A@ < M(0 ! < !@ & !0 0 ,1\0 ' $ $P " 7_____ !4 :H@ # M" #0 ! C_____ !T :O@( !@0$( (! G_____ !T : MV@, "04#( (! K_____ !D 0 (1 0$# ,!& 8% O_____ !4 M :]@$$"@D&& 8 S_____ !4 ;$@$$! H&&P8 W_____ !4 M ;+@$$#0H$' 8 #_____ !4 ( ;2@$$!@L$&08 __\ 0 % M !0 0 (1 ,@ * +_____ !4 ;9@ % $ )P ! /_ M____ !4 ;@@ * ( '@ ! 3_____ !T " ;G@ * , "P ! M 7_____ !X " ;N@ % 4 * ! #_____ !H )P (3@ 4 @ M" !__\ 0 ! !0 0 (1 & 0(! M P '0 !__\ 0 ! !0 0 (1 $(08! #_____ !P ( . MEP8 P ( !__\ 0 ! !0 0 (1 &(@NMhB@`R.dBgBgNPXJ@f.m?<NMFTB@`&.dBgBgNPX>/9dNOXpN^NuNV>`NH&NKN^NuNVNT.N8.N8BBgNNT`.&NK>NQ y &f09,`b y .f.?<BgNPX y h-P>?</</.Ng y h-P./.NgX.?<?/9NLX>?.N`,>.N``|g|gX|g̰|g>?9,/9dNOT\BWNQ`6N^NuNV.Y?. ?<NPX.?.NMFT=@0.N^NuNVBW?.?9?9^?9j?9hBg?. /.NP@N^NuNV.?.BgNPX.Q/]/Y/U n/NMJn m0. `0.=@Jn f09bHyj`0. =@ Jn m0. `0.=@0.V@"n"Q3@0.V@"n"Q3@ nf*>?.?.?.BgBgBgBgBgNL`Jnm>?.?.?.?9b09H@?Bg yd2.?0BgNL>?.?.?.?9b09H@?Bg yd2.?0?<NL>?.?.?.?<Bg n/NO~N^NuNV.Y?.BgNPX.//Q/]/.NMJn m0. `0.=@Jn f09bHyj`0. =@ Jn m0. `0.=@0.V@"n3@0.V@"n3@ nf,>?.?.?.BgBgBgBg?<NL`Jnm>?.?.?.?9b09H@?Bg yd2.?0?<NL>?.?.?.?9b09H@?Bg yd2.?0?<NLN^NuNV.?<Bg?Bg??<aT>Bg?Bg??</9dNOT\a.?< BgNPX` >NR> NRJ@fBn`.?<NRT . f> ?<NRTRn0.|ofBn y-h$` nH>?<NRTR nJf>NR@ .g > ?<NRT>`NH`, .gZ> ?<NRT> ?<NRT y-h<` nH>?<NRTR nJf>NR.?9^?9j?9hBgNPP3b>?9^?9j?9h?9b09H@?Bg yd?(pNN>?9^?9j?9h?9bNQ"P>`NH>`NHP>`NHN^NuNV>`NHP>`NH>`NI>/9dNOX>bNQ\>bNQv>?9^?9j?9h?9b?9HBg yd?(pNNRB?<NNTN^NuNV.Y?<Bg?/<NR,XJ@g>?<aT`..N_J@g>?<atT`>?<adT>Bg?/<NR,XJ@g>?<aT`,./Nz.X./NyX>Bg?/<NR,XJ@f>?<aDT`./`Nz.X./`NyX>Bg??<aT`>?<aTJnZm>Bg?/.NLXBW?</.aJ\ nH>W/?<6NR\Jg./.Nz.X`2/././.NIP/NIP./</.NgP.Y?/.NLXBW?</.a\>?/</.NTPRn0.м @Jf.NdpN^NuNV0.`.?<Bg? ?<NVT>Bg??<NVT`>?<NVT>Bg? ?<NVT`.?<Bg? ?<NVT`>?<NVT3D`3>Bg? ?<NVT`.?<Bg? ?<NVT`>?<NVT`3>Bg?0. @"|?0 /.NO*\Rn0.м @JfN^NuNV.?<BgNPXBn`0.м @ hf n2.Ҽ"A2)  p -P0. @"| p=P0. @"|00 `J>/<P/.NgP`D>/<S/.NgP`,>/<W/.NgP``|cg|dg°|xgRn0.м @Jf =|}Bn`T0.м @ hf80. @"|00 no0.`0. @"|00 =@Rn0.м @JfBW?</.N\BW?</.N\.?<?/.NLX|fBn`0.м @ hf n2.Ҽ"A2)  p -P nJg0. @"|00 `N nH=@=|`L.Q/<\/.NUtP=@`0.Q/<_/.NUtP=@``|cg|dg|xgJno0. @"| p0Rn0.м @Jf >?Bg?Bg??<NGT`4B??/9NLX=@>?Bg?(?*?Bg??"?)?FN7=@g>/?-?<NGT` y hh. ?<?.?LN7=@g>0?1?<NGT``||b@0@b PNJng>?</9 N\`> ?</9 N\BB?<a,\>?<!/9 N\BB?<!a\BW?<"/9 N\BB?<"a\>?<NRT>/9 NLX>?#B<.~/<Nz.XBW?</9 N\BW?<!/9 N\>?<"/9 N\ y h y h y h8 y h y hP y hhBWa BWaN^NuNV y hl-P>/</NyPB../</.NgP y h-P>/</NyPB../</.NgP>/< y h/NgPJng*BB?<a~\BB?<ap\BB?< ab\N^NuNV>F/< y h/NgP./< y h/NgP>/< y hD/NgP>R/< y h/NgP>/< y h/NgPJng.l/<F?<a|\ 9>g BB?<a`\#>./< n?(?.?.?<Bg/9 NO~N^NuNV.Q?<BgNPX n hl-P n hl.NzPS@=@>/./.NyP n2nB.Y?/.NLXBW?</.N\>??.?<?</9 NO |fl>?</9 N\BB?<a\> ?<NVT|gpA`BW?</9 N\BB?<a\B@``>?.?<?<!/9 NO |!fZ>?<!/9 N\BB?<!aZ\BW?<NKTBW?<!/9 N\BB?<!a*\pT``>?<NRTB@N^NuNV.8N?S By<9 H??< NFX.8N?J@g .8N?H//9NJ4P`B3>N 9 H`za `a `ta `faT `Za `Np`N.?<?9NFB@``H |rW h N`N^NuNV09By~@RyBDo>?<NGTpA`$3l.nNCNET.n?<?9ByB09?<NGTpA``H |rW hNN^NuNV09By~@RyBDo>?<NGTpA`JN .?<NFTJyg./<NSX#<`./<NSX#?< NGTpA`b./<Nz.X <-@-@.NzP=@.?.?9N RyFByB09?<NGTpA``H |rW hNN^NuNV09By~@RyBDo>?<NGTpA`>.n?9N?9?<NGTpA`TpD`P.NHpE`@RyR9 H`0pA`,>?<NGTpA``H |FrW hNN^NuNV09By~@RyBDo>?<NGTpA`R.nBg?9NFN:RJ@fpB`f.?<NFTpF`P.NHpE`@RyR9 H`0pA`,>?<NGTpA``H |vrW hNN^NuNV09By~@RyBDo>?<NGTpA`.nBg?9?<NGTpA``H |rW hNN^NuNV.8N?R By<9 H??< NFX.8N?J@g .8N?H//9NJ4P`B3>N 9 H`\az `ha `\a `Pp`P.?<?9NFB@``|A|b@0@ PN`"N^NuNV09By~@RyBDo>?<NGTpA`P3l.n/]/YN<,P`=n` |n2nBRn n m.nND>.nNC.n?<?9?<NGTpA``H |(rW hNN^NuNV09By~@RyBDo>?<NGTpA`x.n/U/YN<,P`HRyR09\y~@Ry\Do>?<NGTpA`*Jy?<NGTpA`.nNC.n?<?.?<YN:\ByB9 H`RyR09\y~@Ry\Do>?<NGTpA`Jy?<NGTpA`^BBg?.?<YN:\ByB9 H`80.y?<NGTpA`.n/<Nz.XBn=|J9fvBn` |2nP .am .zn . . f|. ..g& .Am .Zo .0m .9o| ..fJnm|`=n nmJnm 0.n|l0nRnRn |2nJf@ |2nBJy:gBn`l./<?<NF\Jnl&=n0n.Rn |2nB>/< <2.HЁ/RNgPRn>/<NR,XJ@f n2mvJyg./<NSX#<`./<NSX#N BBg?9?<NGTpA`BBg?9?<NGTpA``H |`rW hNN^NuNV09By~@RyBDo>?<NGTpA`.n/U/YN<,P`0.y?<NGTpA`~09\y~@Ry\Do>?<NGTpA`PBBg?.?<YN:\RyRByB9 H`$BBg?9/<nNBX3B\ByB09?<NGTpA`pD`Jy?<NGTpA`v09\y~@Ry\Do>?<NGTpA`HBBg?.?<YN:\RyRByB9 H`0.y?<NGTpA` y<(g>?<NGTpA`BBg?9N B9pF`f.nNHpE`VBBg?9?<NGTpA``H |rW hNN^NuNVNET./<NzPX?Bg?<RN:\N-=@0.N^NuNVBn` n.n?<Bg?<GN:\.n/Y/UN<,P `2Jnfp`X`N Rn n mdB@N^NuNV>\/.NU X-@Jg .Tf n|\ nB(` nBN^NuNV nJ(g./.NyX. /.NyXN^NuNVBW/.T?<GNR\/.?<NRT|A _ n|: nJ(f./.NyXN^NuNV nH>W?<NRT.T?<;NRTN^NuNV./.Nz.X./.aX. /Nz.X.U//.NMP.a./.aX0.N^NuNV. /.aX.U/. /.NMP.aV.a$Jng."?<NRT0.N^NuNVBW/.?<NNR\JgB@`.@/<Nz.XpN^NuNV>ONRJgB@`.@/<Nz.XpN^NuNVHJyZga v .Y g .N ga 0. |=@ n^ o=|Z > ?. . H??<a \Jg n2n BJg.?< a TKJyBg*=|`> ?<NRTRn0.yoJyg yo> ?9?<$a X090. |#0. |#@0. | 0. | .A . H.Bn`( n2n0n"n0H.ARn0.n m.H|@.HA|?@.H| 09hB.a pJL N^NuNV.VaV.aJ@g0.`./aXJ@g0.`.H|yfBn`./a`XJ@g0.`..Hygn.H|"n2./aXJ@g0.`6..HygZ.H.HA@.H|"n 2./aXJ@g0.`..Hyg.H.HA@nBnBn`t./a\XJ@g0.`JygJylg..Hyf=|`0.H.HA@ n2nRn n0nnJnfV n0PB./aXJ@g0.`..H|@.Hyg=|JngJg n0PB n > n?.H??<aR\Jg.?<a>T.H|@.HA|?@.H.g.H>.H??< aXB@`4Bn` >NRJfBW?<NKTRn ndm.HN^NuNV0.r `|<-@/<<0.@|?HЮ/NIP-@0.|@HЮ-@ .N^NuNV>,NR>a/ n N^NuNV>,NR>ax-@ .l .м `` .o .`pN^NuNV`>2N"? n 0 n PAf> ap` 9W f .VaJ n PTg"Jyg2JyTg*.VaDym> azRy n BPp`h>NRJgp/.?<NRT _Jyg: yDo0 nH>W nH?/9VaX??<#a\B@N^NuNVBWN"? n0 n PAf > ap`$ n PTf> aRy nBPp`B@N^NuNVBn`x.>NR@Jyg( yDo.H>W.H??< a^X>NRJfN^NuNV`NJyg, yDo" nH>W nH??<aX nH>?<NRTR nJfN^NuNVBn.ar`.a|l n m>NRJg>NRJgRBn`>>NR@Jyg" yDo.H>.H??<%aXX>NRJfBW?<dNKT.Hyf>NRJf >&aB@`Rn`>>aB@N^NuNVJygF././././. ?.NT//96NT.6?< NmTN^NuNVJygF././././. ?. NT//9NT.?< NmTJnm>?<NVTN^NuNV>?.?.?.?. ?. a >?.?.?.?. ?. ?.aP N^NuNV.?<?N^Nu#"<psNBNuNVBBJlDRBJ lD RB0. -@0.2. An=@ .gDN^NuNVH?BCB..,. f# <`hlDRCJlDRCn8fzB`0l :HGH`xe`Jge`|fD# D`# JLN^NuNV3Z0.|Hм-@=|` nH2nZ2RRn nm.NnB@09N^NuNV#Zf#Jj#bn#r#0v#`z#f> aF3pN^NuNV>a*pN^NuNV#0>NJN^NuNV3b3 d>NJN^NuNV3b3 d3 f3h3j3l3n3p3r3t3v3x3 z3"|#$03(~3*>NJ n,0 n00 n40 n80 n<0 n@0B@09N^NuNV#03 b>2NJN^NuNV3b3 d3 f3h3j3l3n3p3r>3NJN^NuNV3b# 0>4NJN^NuNV3b>5NJN^NuNV#0>6NJ n 0 n0 n0 n0B@09N^NuNV#0# 4>ZNJ n0B@09N^NuNV3b3 d3 f3h3j3l3n3p>INJN^NuNV3b3 d3 f3h3j3l3n3p>JNJN^NuNV>MNJ n0 n 0 n0 n0B@09N^NuNV3b# 0>NNJN^NuNV#03 b>NJN^NuNV#03 b3d>NJN^NuNV#03 b3d>!NJN^NuNV#03 b3d3f3h3j3l>*NJN^NuNV#03 b3d3f3h>+NJN^NuNV#03 b>,NJ n0 n0B@09N^NuNV#03 b3d3f3h3j3l3n3p>/NJN^NuNV#0>nNJN^NuNV3b3 d>pNJ n `B@09N^NuNV3b3 d3 f3h3j>dNJN^NuNV3b3 d3 f3h3j>eNJN^NuNV3b>fNJN^NuNV3b>gNJN^NuNV3b3 d>hNJ n 0 n0 n0 n0B@09N^NuNV3b>kNJN^Nu#NN/9Nu#NM/9Nu#NA/9NuNVHBW/.Ng"X>m >NdB@`33pJLN^NuNV> /.aXN^NuNVBW/.aXN^NuNVH*n(n BG`|lRG0&@0+|f|mB` wg Wf>?</ Nc\\<`p ag Af>>?</ Nf(\<l>?</ Nc\\<`>B?Ngl\`$ rg Rf>Bg/ Nf(\<`B`@JFlB`8Bk 6B'@'@ rg Rf7|`7|Jnfk JL8N^NuNVBW/. /.aPN^NuNVBW/. /.aPN^NuNV>/. /.aPN^NuNVHNuBW/<?Ng"X>/<?Ng"X>/<?Ng"X n2n B*n`&HHм @g H| `HRJf> /.N_XJL N^NuNV. /./< Nh6PN^NuNV./. /.Nh6PN^NuNVH *n. (M`RJf` fB`Sf JL0N^NuNVH*n. H>/ aXJL N^NuNV. /./<NUPN^NuNV./. /.NUPN^NuNVHK:;|.NzPR@;@ ./Nz.XA+H +@./. / NUPJL N^NuNV`H*nBn`HHм @gT n R HHм @f.N[<|fp`r0Ff.?N_4TJgN<%g8.N[<|fp`6H@g.?N_4T0.``` n R Bn<*fRn n R :<`$|fBEH2 A:| n R <0m<9oBnBn<lfRn n R `<hfRn n R H`T=| `=|`=|HHм @gRn.N[<|fp`>0FfJng A-H` n-PXBn|+g|-f"|-fRnSE.N[<|fp`BBn`0Fg0|`0<=F n0m nFnv n9o nAmdn0 n o 0._@=@0.nlBRn/.0n/NIP2.HЁ-@.N[<|fp`:0SEJ@n\.?N_4TJnf0.`Jng .D-@Jng n `Jng ."n2` ."n2JnfRn`.N[<|fp`<sf<-|``.N[<|fp`BW/.`?a\J@f=|`<cf-|`|fz=|`bBn n H|^@R Df=| n R Ad-H`` n`R` n R Jg<]f n`BAd-H`Jng A-H` n-PX`"0"nR.N[<|fp`0SEJ@o>/.`?a\J@f.?N_4T<cg nBJnfRn`ZHHм @gRn.N[<|fp`D0FfJng A-H` n-PXAd-H``L0"n`R`|0m|9o|.g|eg|Eg |-g|+f.N[<|fp`0SEJ@n.?N_4TS` n`BJng/./dNzX _ `/./dNzX _ JnfRn`H.N[<|fp`LH@g.?N_4T0.`2``H |$rW h8N n HR J@fN0.JL N^NuNVH. H>/. NX>Jng JGgB@`p`0JLN^NuNVH*nSm m mH|R` `.N\&JL N^NuNVH*n-fp`-g m p`Jf&-f>No+@fm`m-g0Hм+@f9g . Ne-g>`>/-?N]\;@ Jm n m fm0`m p`Sm +m mH|RJL N^NuNVH>Nv*@ fp`b-gB@`V-g3 3p`8-gB0../. / N]P``B0../. / N^PJL N^NuNVH *n(n ..-G`> ?/ /-/ N{=@Bn` L2n gRnB@0.neJng L2n f =nU >/ aPX=@B0.ѭB0.B0.Jo -g` -o+m .JL0N^NuNVH *n-M B2. Ё-@(M`  gRe JL0N^NuNVH *n(n ..> ?/ /-/ N{=@JnfU B0.ѭ -o+mB@0.JL0N^NuNVH>.*n |fp`.-g$Jg -cS0"mRm 0`pJL N^NuNVHNu>lp`&>Nv>/.?Nxx\<>Nu0JLN^NuNVH BWNt##By.5a*n`N`RJgHHм @fJg2 "g 'fFH>/ RNX(@ f./ aVX H> M2GBRG.Ra`BG`RG M2GJg5pHHм @gJ5pg M2GBRGH`BWNdBW/ RNg:XJ@g.R/<aX`l>Nd ->f@>/ TNg:X|f>B?<Ngl\|f.R/<a|X`$BW/ RNd*X|g.R/<aVX`>?/ NXJf>*/ NXJg-|.8?<NT>/ ?<Nxx\<f./ aX`^.H?/.aZ\.NzP>RWN{(@./ Nz.X.a>/ ?<Nxx\<f`.a`|g`JfBaSy.Nz|f./<a*XB/9?9N\>Nd\JL0N^NuNV|./Nz.X. /NyX./NyX.?< NT>Nd\N^NuNVH*n y XRyJL N^NuNVH*n. (nGVfJL8N^NuNVHNu>|fp`>Nv08*@JnfU.?/.Nz~XJ@f U0`R`.D/.Nz~XJ@fU0`2>/.?Nxx\J@g3#3p`U0JL N^NuNVBW?. /.a:\N^NuNVBW?. /.a"\N^NuNV>?. /.a\N^NuNVNdt>NN^NuNVHBG`0м.NdRG|mJLN^NuNVH*n0-|g*.Ne-g .NqB@H+@+@Bm m>NdJL N^NuNVH>.>Nv*@ f3 3p`NBF0|f>?<>N|4T<l|>Nv>NuJFf0``33pJL N^NuNVN^NuNVH*n0-| |f, -<o >/-?Nu\>Gg mp`J-gJg-g;| `;| `>0- D@H/?Ngl\Bm +mB@JL N^NuNVHNu>|fp`>Nv08*@Jn fUJnfU.?/.Nz~XJ@fU;n 0``.D/.Nz~XJ@fU0`d>/.?Nxx\J@g>Nu33p`0U>B-H?Ngl\BWB-H?Ngl\0JL N^NuNVBW?. /.a\N^NuNVBW?. /.a\N^NuNV>?. /.a\N^NuNVH>Nv*@ f3 3p`$>?-/. ?<BN|4P+@U -JL N^NuNV>B?.a\N^NuNVHK;| .+@+@;|:./. / Nh6P>.BgNmT0JL N^NuNVH*nBnJ gh``BE-n `RRE nJg n %fJEo.?/. Nm|\-n n n %@R DfBn n H|-@R Df n R Rn| <0fG n R =|<*f-M n=PT n R `8`*JnlBnH2. A|=@ n R <0m<9o|<.f BF n R <*f-M n<T n R `*`H2 A<| n R <0m<9oBn<lg<LfRn n R A-HH` RnJng <s` <t@#.?<?< // Ns Jngp`pH`RnJng <s` <t@#.Bg?< // Ns Jngp`pH`zRnJng <s` <t@#.Bg?<// Ns Jngp`pH`&RnJng <s` <t@#.Bg?<// Ns Jngp`pH`-M n-PX`-M n0|@B.T`H>?// Nl X|`~H>?// Nl X|`XH>?// Nm2 X|`4.H?NmTRn``|C|5b@0@ PN.NzP:ElJFm:0.E=@JnfX .0f* n -f SE. nH?NmTRRn`..H?NmTRn0.SnJ@n.?/.Nm|\n`..H?NmTRn0.SnJ@n`0.JL N^NuNVJnlp`0.=@ n -@>/. /.N|DPN^NuNVJnlp`0.=@ n -@>/. /.N~BPN^NuNV>/. /.a~P-@. NzP2.^AAo>/. /.aP-@ .N^NuNVH *n>. (n,g$Bl >/ ?Nu\Gg lp`*B@`&`.H?NmT|fp` 0SGJ@fB@JL0N^NuNVH. *n Sm mH"m|R``.H?Nn2TJL N^NuNVH. *n BF:-fp`$JfV-fN>No+@+@fm`2m>NoJ@gm@`;| H"mR`-gA+H +@ mR-gz>/-?Nu\<Bm `n-g>< g -мb" -:>/-?Nu\<+mBm `( -:>/-?Nu\<;| +mFg mp`H|JL N^NuNVH>Nv*@ fB@`-fB@`pJL N^NuNVH>Nv*@ fB@`0|JL N^NuNV>aJ@g <?`BN^NuNVH>.^GORG>a*@ fB` >/ aXJL N^NuNVH (y*T`ZB@0-BA2-@F@J@g>NsB`:B@0-ne `*f>a*@ f>NsB`(M*U`JL0N^NuNVH n*PB@0. X@me n `F(MB@0. HH@B@H@B@0-n 9@B@0,F@9@( n ;n B@0-F@;@# PJL0N^NuNVH >.|?GG0@>Nt*@fB`* R*@(M9GB@0,F@9@.Pa 9JL0N^NuNVH *nQB@0-BA2-@F@J@g>Nsp`(yeeecd(T`e2 BA2-IHABAHAЁ" BB4,JHBBBHB҂b #B@`n BA2-IHABAHAЁf T0(mB@0-F@;@ T*`* BA2,IHABAHAЁfB@0-lB@0,F@9@(`(#B@JL0N^NuNVH *n.a>. ^GORG>a-@fB`J n(PPg2d`Sn Jn f`B0. B0. `%Sn Jn f>/.aXJL0N^NuNVN^NuNVN^NuNVH /?.?./ /. nN*@ мfB(n `%H|0|9o^G мfB JL0N^NuNVH-|l*n<.H n. nfz` |SEJgJEf`h nf$z ` |SEJgJEfJEf-`*n<.JngJGlB@0D@> n P-"n R`B0H@B0>JGf JL N^NuNVH >.HμgR*y(G.Nz|f3 3p`>Bg/ N\ JL0N^NuNVH>Nv*@ fp`XJnfB@`N-g3 3p`0-g>/. / NvP``>/. / NwPJL N^NuNVH|BG` f 0`RG|m33pJLN^NuNVp2.`F@HB@N^NuNVHBG`>aRG|mJLN^NuNVH 0.8*@0.@BUB-+| BB> Bg/ N\> ?< / N\JL0N^NuNVH>.|e3 3B`0B@08*@-f3 3B` JL N^NuNVH *n(n >.B@=@=@``Rnnc L2n  fB@0.ncf>?.B@0.W B2.Ё//-/ N{=@B0.ѭJnf33p`^=n`8Rn>?</</-/ N{=@B0.ѭnb4 -o+mB@0.JL0N^NuNVH*n>?./. /-/ N{=@Jnf33p` B0.ѭ -o+mB@0.JL N^NuNVH*n 0.8м-@~.a&M`RJg :fJgc .Am .On*K`K0.`BW/ ?<o n1GBG`BW/ ?<NN|4\JgB@`0<>`d>ON|4JgB@`0<>`J.?<=N|4T>o n1GBG`,.?<AN|4T>``||b@0@ PN0JL8N^NuNV n am n zn n nHRJfN^NuNVH *n (n`RJff .JL0N^NuNVH *n (n`RR0.SnJ@ofRn`B0.SnJ@f .JL0N^NuNVH *n (nf .JL0N^NuNVH *n(M`RJf HJL0N^NuNVN^NuNVH *n(n `$H>a0H>a&op`lp` JfJfB@JL0N^NuNVH>.|am |zn|0JLN^NuNV.NVN^Nu _B0Z"yCCbNC NNVH..,. Jf#l <`Hc #lB`:fzB`(xe 〼b`BJge`#l JLN^NuJg .NuNV n=h.0n/0n/NIP/?.?<?N|4PN^NuNV n=h.0n/0n/NIP/?.?<@N|4PN^Nu#NA/9NuNVH-n Jnnp` nop`0.R@8BGB/.NPl n -R /.NZX-@B/.NPo.`/<D/.N:P-@SG/<A/.NPm`/<D/.NP-@RG/<D/.NPlG|0H/N"X-@`/<D/.NP-@RFDm/<B/.NP//.NP-@/<D/.NPm -|ARGJGl4 n 0R n .R JDlD|` n 0R SFGnBF`j/.NX:0|0"n R Gf n .R 0H/N"X-@//.NvP-@/<D/.N:P-@RFDm n BR .JLN^NuNVH-n Jnnp` nop`0.R@8BGB/.NPl n -R /.NZX-@B/.NPo.`/<D/.N:P-@SG/<A/.NPm`/<D/.NP-@RG/<D/.NPl|0H/N"X-@`/<D/.NP-@RFDm/<B/.NP//.NP-@/<D/.NPm -|ARGBF`j/.NX:0|0"n R JFf n .R 0H/N"X-@//.NvP-@/<D/.N:P-@RFDm n ER JGl0D@> n -R 0H |0"n R 0H H@|0"n R n BR .JLN^NuNVH KIBnBn`R n  g n  g n -gB@`p=@ n -g n +fR`$ n .fRn` nJngRnR nJg n eg n EfB n eg n EfDR n -gB@`p=@ n -g n +fR` nR nJfB.a-@.N\=@Jng 0.D@n`0.ܐn=@/.?.a:T/N:P-@.N-@Jng .JL0N^NuNVJnl,-|A`/<D/.NP-@RnJnm`*-|A`/<D/.N:P-@SnJnn .N^NuNV-|`D/<D/.N:P-@/. nH|H/N"X/NP-@R n 0m n 9o .N^NuNVHB/.NPfB`B/.NPl/.NZX-@z`BEBG`RG/<B/.NP-@/<A/.NPl`SG/<B/.N:P-@/<@/.NPm/<Y/.N:P-@/.NX-@ .-@|@0|HJEg .JLN^NuNVH..,. N LN^NuNVH..,. NLN^NuNVH..,. N LN^NuNVH..N, LN^NuNVHJl| .D-@`BFJfB`^~` .-@R .f` .-@S. g .-@޼@ JFg .JLN^NuNVH .м<JgJFlB`V .:|oJEg <` <`0..μ|`RFJFm`SFJFnJEg D. JLN^NuNVH..,. N LN^NuNVH..N LN^NuNVH..,. N LN^Nu<NuJg NugR kjklf`>k^g>k^g2k8<d,&B<ރeNuRid~S<Nu.NuJNu:ڼ.gNuJgj<a<Nu~N8H~<A,<A$NBN,NgN<CD<c~|*< Art`䤚ܐ(&䣞j.XRQ~NgR.$|<Ag,jDzG܆[<.0JL N^Nu Stack Overflow$C runtimeCON:LST:KERMIT.RSC[3][Resource File Format?][ABORT]%2d%02d190686r????????%ldj^d^dd d d~  dZ*xB)T-%#":(xx xD xh  xd#c #cxnKERMIT.OPTr%xw%x KERMIT.OPTKERMIT.OPTKERMIT.DEBwKERMIT.LOGw%c%2d%02x%d%xVdl%s%s%d%d%ld%02x%d%d%dABCDEFSZ%&%%"$%F$$% %JAENY&&&|&&,&AENY((('( (AENY**,* )X)*0AENY+++**+AENY,,,,L,|,Abortrr------------------AENSY/ /l./ .p/b/pABEFSZ34331/04ADEFZ67"465687&AbortK%02dwwAENY777778\\*.**.*%DEFOX[cdefosx[HW(Z8Z8W0W8XXW(Z8Z8W0XW8[H : unmatched quoteCannot open Cannot append Cannot create : No matchStack Overflow $   k8ikTkzkkkkkkkkj~kkkk&kj*kkjkkkkkkkkkkk8ikTkzkkkkkkkkjkkkk&kj.kkj y2y|xyyPy|y|x!!!!"CP/M-68K(tm), Version 1.2, Copyright (c) 1983, Digital Research XXXX-0000-6543216$ N          $2 * & f(  ($& d(  $J      (f>8V.22  *6 &  & .""$"    "   ""   *"   ,$  2                   "    @      D* (^*0$                                                                  &J $ ". ~  &N>NZPN0X(  $6" 0* $",H$""&2   * * 8L $ ,    t   zf  $                             \2$   ," x &$, F"p"b 64(j $JPP& \& D  ,D( 0 <    >  h 0HN&  jj`^***`&$ D"V8*R$ZF \@(B4.J".86 Jp $""@2&"fHR"(<@* <T0^06D,6 :"P :  *6P\H $ ,LH  LANCASTER UNIVERSITY UK Kermit Newsletter KERMIT DISTRIBUTION SERVICE Number 88 04 September 1986 ================================================================================ In this edition: Kermit on Atari 520ST Uuencoded Files and Trailing Blanks Atari Public Domain Assembler? Problems with Atari ST Kermit Kermit on native media Re: Problems Installing Atari ST Kermit Uuencoded Files and Trailing Blanks -------------------------------------------------------------------------------- From: Mitchell@UK.AC.BRUNEL Subject: Kermit on Atari 520ST. Alan, I have a what appears to be some version of the old VMS/UNIX C-Kermit on the Atari. It comes supplied on the Utility disk that is part of the Independant Software Vendors kit (Developement System), which also includes DR C, 68K assembler, etc. I don't know precisely what version it is, but it doesn't have a command loop and is used in much the same way as the skeleton version in the Protocol manual. I don't think there's anything proprietary about it, so I guess I could pass it on without too much hassle. There is a better version, though. It's built into PC/Intercomm along with other protocols. I guess it's available through dealers. I've had a play with it and it's a lot easier to use as it includes menus for protocol function, file functions, etc. It's not mouse/icon driven, but it's easy to use. It even includes a decent VT100/ANSI terminal emulator... Ralph ---------------- Date: Sun, 03 Aug 86 22:35:31 EST From: MOEWS%UCONNVM.BITNET@WISCVM.ARPA Subject:: Uuencoded Files and Trailing Blanks If you use KERMIT under VM/CMS, it is hard to use uuencoded files such as the uuencoded version of ST Kermit, since VM/CMS Kermit removes all trailing blanks when downloading files. Here is a solution to this problem; it is a version of UUDECODE that supplies trailing blanks as necessary, written to run on the Atari ST. It is written in 68000 assembly language, and can be assembled using the public domain assembler, AS68. David Moews MOEWS@UCONNVM.BITNET [Ed. The file is online at Lancaster as [.AST]ASTUUD.ASM] ---------------- Date: Friday, 22 August 1986 9:52:58 From: MJE2@CAM.PHX (Cambridge Phoenix - CAM.PHX@CAM.ENG-ICF) Subject: Atari Public Domain Assembler? Can you please tell me where I can obtain the public domain software assembler for 68000 as described for assembling a UUE decoder for astuue files? (see the above announcement) Many thanks, Martin Evans. MJE2@camphx [Ed. Does anyone know of a source of supply?] ---------------- Date: 22-August-1986 From: CROSE@UK.AC.Plym.B Subject: Problems with Atari ST Kermit I have an ATARI 1040 ST with an ATARI C development kit. The kit has a version of Kermit based on the old VMS/UNIX Kermit. This works but is not really suitable for the uninitiated ATARI user (ie 1st Year Students). I therefore set out to implement Bernhard Nebels GEM KERMIT 1.02 which you have on you file store. 1) Use VMS kermit to download the UUENCODED HEX files from LANC, get DECODE program in C to decode above file. Compile DECODE program and feed it the UUENCODED HEX files, results in KERMIT.PRG and KERMIT.RSC files now on disk. Execute KERMIT.PRG it doesn't work !!! ATARI turns up its toes and displays usual two bombs, then returns to desktop. 2) OK back to LANC file store, new message in 00BULL.TXT there is a new version of the DECODE program in assembler, to correct missing spaces problem. Right download it, and another copy of UUENCODED HEX file for good mesure. Assemble DECODE program OK, now run it and feed it UUENCODED HEX files, results in KERMIT.PRG etc etc.... execute Kermit ATARI experiences fatal error, usual two bombs displayed, program returns to desktop. 3) OK now I'm really mad, back to LANC filestore. Transfer whole of ATARI C source code (didn't really wan't to do it this way, but!). Write BATCH file to compile all C source modules, link modules, KERMIT.PRG now appears on the disk. Execute KERMIT.PRG ATARI treats us to a wonderfull display of random graphics and dither patterns, stand admireing random graphics for a while before remembering that we are supposed to be running KERMIT. Try to regain control of ATARI, to no avail, even reset leaves the machine with a duff hard disk driver, finally resort to powering down and re-booting. Repeat above three procedures on and off for about a week. finally give up in disgust!!!!! CAN ANYBODY HELP!! A COPY OF ATARI GEM KERMIT ON A 3.5 INCH DISK WOULD HELP A LOT If anyone can help please give me a call on (0752) 221312 ext 5437 or contact me at the above address. Chris Rose Micro-Support Plymouth Polytechnic. ---------------- Date: Monday, 1 September 1986 17:15:36 From: MJE2@CAM.PHX (Cambridge Phoenix - CAM.PHX@CAM.ENG-ICF) Subject: Kermit on native media You may like to know that I have now successfully implemented these various versions of kermit and would be able to supply others with copies of the discs if you get any requests from people near here. BBC BBC Torch CPN Atari ST ( both C kermit under TOS and the generic cp/m under the cpm emulator -- this latter is a bootstrap method which I would reccomend to anyone wanting to get things onto the ST. Torch Unicorn C Kermit under unix. Many thanks for your service. Martin Evans Department of Genetics, Downing St. CAMBRIDGE CB2 3EH. [Ed. Thanks, Martin. I'll update the 00WHO.TXT file] ------------------------------------------------------------------------ Date: 19 Sep 86 09:26:06 EDT (Fri) From: Michael Fischer Subject: Re: Problems Installing Atari ST Kermit Keywords: Atari ST Kermit I had problems installing GEM Kermit, too, but I finally got it to work. Here in a nutshell are what the problems were: 1. The UUDECODE program distributed with Kermit (astuud.c) is written for the Lattice C compiler. To use it with the Alcyon C compiler distributed with the Atari Developer's Kit, it is necessary to open the binary output file with "fopenb" instead of "fopen"; otherwise, the file is opened in text mode (ignoring the "b" mode flag") and every ^J in the output has a gratis ^M inserted after it. 2. Recompiling the sources as Chris Rose did is not sufficient, for the resource files are *only* distributed in binary form. A correct program given a bad resource will crash, just as an incorrect program will. Thus, one has no choice but to get UUDECODE to work. 3. Once I fixed UUDECODE, I successfully decoded both the Kermit program and resource files and they worked without problem. I also rebuilt the program from the sources and it also worked with the decoded resource file. 4. There has been a great deal of activity lately on the INFO-ATARI16 bboard discussing the various problems people have been having with UU-encoded files. There seem to have been two or three independent sets of problems: (a) Bugs in the UUDECODE program to run on the ST as described above. (b) Problems with the encoded file being modified during transmission such as tab expansion, truncation of trailing blanks, or padding of all lines to a given length. (c) For people who tried decoding on a mainframe and then transmitting the binary files to the ST (often using the old Developer's kit Kermit), forgetting to set binary mode on both the transmitting and receiving Kermit. After numerous reports of failures and then people bringing these problems out in the open, success stories such as mine above began pouring in. So UU-encoded files *are* usable, but it can be rather tricky to do it right. I will contact the "New Haven ST's" user group to see if they would be willing to copy GEM Kermit onto disks for people. Mike Fischer [Ed. - See next message for another hint.] ------------------------------ Date: Sat, 13 Sep 1986 12:40 MDT From: WANCHO@SIMTEL20.ARPA Subject: Uuencoded Files and Trailing Blanks Keywords: Uuencoded Files I made a small experimental change to our version of uuencode to solve the truncated trailing blank problem and it turns out to be transparent to uudecode. That change is simply to insert a "M" to each uuencoded line just prior to the insertion of the CRLF. BITNET users accessing our system through our mail file server have voiced no complaints since I made that minor change. --Frank . } S.. } SKERMITV PRGS tKERMITV DOCS `QN%z BNPv`FCLEAR68K V02.00, Copyright(c) 1984, Digital Research XXXX-0000-654321 o#c\"h#c`E?/ N0N o AdpNu#c`BNuNV0/"/ NBc`d0< AQ"NB0<NBN^Nu o2/0/ HSoQBNu o0/JfBNuf SNuNVN+N nlaX n -PX UnByd dz#cBydB9e &eBydByc~ByeBye3 e@ByeFB9BydBydr3d|ByeBydvByd~3eJ` nPR |b.HHg. |b.HHg .H| `.HH@.H`~0.SnJ@g. N*X `a`rJ9f C`a`XRyd`N0.SnJ@g n PdX `a^Jydg9dH>/<U^N1X`J9f F`a$`J9f G`a `3e`3d~`0.SnJ@g. N*zX `a`ByeJ`0.SnJ@g" n #eLX .eLNO3eF`a`X0.SnJ@g n PH3dvX |b2ydvg, |b2ydvg 09dv| `09dv3dv09dv`Bydv` `a`|e|b@0@Q2 PN`aJydg>dv/<UsN1X`3c`J9f R`a`zJ9f S`a``Byd|`XJ9f V`av`@J9f X`a^`(3dr`aN`|b|b@0@Qn PN nJf J9fa 9VgB@`p3e.^/<UN1XJydrgJ.U/<UN0X#cfJydg .UN1BydrJydg .UN1Jydg>d/<UN1X9H`Jydg .UN1N+`Jydg .UN1a "J@f .V a` .Va`Jydg .V!N10.SnJ@g n #dX `aBeB# c3catJ@f .V0a&` .V=a`8Jydg .VCN1.VT?<aTJ@f .VVa` .Vea`Jydg .VkN10.SnJ@g n #dX `aD# c3caJ@f .Vya~` .Var`Jydg .VN1a J@f .VaH` .Va<`ZJydg .VN1.V?<a6TJ@f .Va` .Va``|C|b@0@Q PNJydrg .cN:\N+@N^NuNVScBycBydJyeg > N*`Jydg9cH>/<VN1X9cH`TapHc`\abHc`NaHc`@aHc`2aHc`$p`$B@` B@``H |R*rW hN`jN^NuNVJydg>d/<VN1X y d@RydDopA`.dal.d?< ?9c?<Sa\.d/U/Ya P`r9cH`|09cng 9cH`d.d?.aTByd09cR@H@H@3cpF`4.dapA`&9cH`pA``H |RjrW hNN^NuNVH y d@RydDopA`JeBf|Jydg.d/<W N1XJyd~f.W&/9dN0X#eB`.W(/9dN0X#eBJeBf.d/<W*aXpA`.d/NNXA-H -@`<\g<:f-n nHRJ@fJyeJgP-n`@HHмb @g(HHмb @g H|`H"nR nf .=@.d/<W>aX.?.?9c?<Far\.d/U/YaP`Snlp?`0.=@09cng 9cH`|09cng 9cH`dByd09cR@H@H@3c.da3dxpD`4.dapA`&9cH`pA``H |RrW hNJLN^NuNV y d@RydDopA`.d?9dx?9c?<Dar\.d/U/YaP`Snlp?`0.=@09cng 9cH`09cng 9cH`pByd09cR@H@H@3c.da3dx|fpZ`8pD`4.dapA`&9cH`pA``H |RrW hNN^NuNV y d@RydDopA`.BBg?9c?<Zat\.d/U/YaP`Snlp?`0.=@09cng 9cH`09cng 9cH`Byd09cR@H@H@3cJydg.d/<WIN1X.eBN:\BeBJydg .WdN1a (J@fpB`TJydg.d/<W~N1XpF`4.dajpA`&9cH`pA``H |RrW hNN^NuNV y d@RydDopA`BBg?9c?<Ba&\.d/U/YaP`~Snlp?`0.=@09cng 9cH`j09cng 9cH`TByd09cR@H@H@3cpC`4.dapA`&9cH`pA``H |S*rW hNN^NuNVJyeg Fc`RcBycByd`xJydg9cH>/<WN1X9cH`6aPHc`@a(Hc`2a0Hc`$p`"B@`B@``H |SZrW hN`N^NuNV y d@RydDopA`.d/Y/Ua(P`.d?.a T.da >.d?< ?9c?<Yad\3dByd09cR@H@H@3cpF`L.dapA`>BBg?9c?<Na\9cH` pA``J@gذ|Egİ|Sg`|Tg`N^NuNV y d@RydDopA`.d/U/YaDP` y @RyDopA`Jycfp?`09cS@nf6.da 6.d?< ?.?<Ya^\Byd9cH`v`pA`n y @RyDopA`TJycfp?`09cS@nf&BBg?.?<Ya \Byd9cH``pA`0.ycgpA`JyeFo:.eL/NNX.d 29eFHЁ/NNX`.d/NNXJyeJgrA#d`\ ydHHмb @g< ydHHмb @g ydH| ` ydH"ydRd ydJfJyd~f.W/N0X#eB`.W/N0X#eBJeBf./<Wa XpA``.d/<Wa XBBg?9c?<Ya t\3dByd09cR@H@H@3cpD`r0.ycgpA``BBg?9c?<Ya $\pC`H.da pA`:BBg?9c?<Na \9cH`pA``H |SrW hNN^NuNV y d@RydDopA`.d/U/Ya.P`0.ycgf y @RyDopA`Jycfp?`09cS@nf,.d?<?.?<Ya F\Byd9cH`N`pA`F>/<daXBBg?9c?<Ya \3dByd09cR@H@H@3cpD` y @RyDopA`Jycfp?`09cS@nf&BBg?.?<Ya \Byd9cH``pA`0.ycgpA`BBg?9c?<Ya V\.eBN:\09cR@H@H@3cpF`H.da pA`:BBg?9c?<Na \9cH`pA``H |SrW hNN^NuNVIcBycByd`Jydg9cH>/<WN1X9cH`>GaHc`aHc`aHc`aHc`vJydg .WN1aJ@fp`XJydg.d/<WN1XBycBydGc`"B@`"B@``|A|b@0@T PN`N^NuNVIcBycByd`|Jydg9cH>/<XN1X9cH`6>GaHc`>. ?.a:THc`(p`&B@`"B@``|Ag|Cg|Ggʰ|Ig``N^NuNVJydg>d/<XN1X y d@RydDopA`. ?.?9c?<Ga\.d/U/Ya fP`B9cH`N09cng 9cH`8pC`4.dapA`&9cH`pA``H |T&rW hNN^NuNVJydg>d/<X3N1X y d@RydDopA`.da.d?< ?9c?<Ia\.d/U/Ya P`p9cH`z09cng 9cH`b.d?.a2TByd09cR@H@H@3c. H`.. H`&9cH`pA``H |TVrW hNN^NuNV y d@RydDopA`.dNO=@.d?.?9c?<Ra6\Byc.d/Y/UaP`~.d?.afT.da.d?< ?9c?<Ya\3dByd09cR@H@H@3cpF`4.dapA`&9cH`pA``H |TrW hNN^NuNVJydvf . H`. 09dv`. H|`. H|`. . H|. HA|@=@0.|2.A|@=@0.|2.A|@=@. H|2.AA` . H``H |TrW h NN^NuNVa H@.H9c.HN^NuNV09cSycJ@nB@`4`2Jydg yc./<XIN1X yc#dXcpN^NuNV n~Jyef 9Rf n|/` n|* n|  n|@ n|- n|#Jycg n|Y` n|N n|1 n|~ n| N^NuNV n H|3dt n (H|3e@ y<e@n ye@l3 e@ n (H|3d n (Hr@@He n (H|HdzJ9dzf dz n cJ9cf#cByd nm`JycgX n e 9!em 9>eo 9`em 9~en 3d`Yeg&e3dBye n m n  9~f3eN^NuNV.XdN1.XlN1.XN1.XN1.YAN1.YN1.YN1.Z N1.ZQN1.ZSN1.Z^N1.ZN1.ZN1.ZN1.ZN1.[HN1.[N1.[N1.[N1.[N1.[N1.[N1.\9N1.\N1.\N1.\N1.\N1N+@>N:N^NuNV.]!N1>?.?.?.?. /.N1 .]*N1.`N;DN^NuNVJyegZ>?.?.?.?. /./N=.NO=@.?.?9c?<EaD\`">?.?.?.?. /.a0 N^NuNV./<],N1XN^NuNV\ ydodJg n2n B. H>/<]bN1X> /<]uN1X> /<]N1XJg./<]N1XAd-H`=|`9e H>N-Rn0.ydo/.`?<aT _>N-R`/.`?. W#aT _>N-R`0. |#H@/.`?. W aT _>N-R`0. | .A/.`. H?aPT _>N-R`. H.Bn`F/.`0n"n0H?aT _>N-R`0n"n0H.ARn0.n m.H|@.HA|?H@/.`.H?W aT _>N-R`/.`9dzH?aT _>N-R`Jydrgr.]/9cN2X .`"Ҽd=@Bn`< N2n(dH> N2n(dH?/<]/9cN2 Rn0.nmN^NuNV.dNOJ@gpT`Jyd|g >e@N+Jydrg.]/9cN2Xa|fBn`B9ca^@|g.H|"n2a>@|g.H|"n 2a@|gdnBn` n2n/a _|Rn n0nn n0PBa@|g.H|H@=|JngBJyd|gN+, ydohJg n0PB.H>/<]N1X n >/<]N1X n>/<]N1XJg./<]N1X9cH|@9cHA|?Hc9cH.gB@`.HN^NuNVN+vH@Jyd~f.JyeHgByeH>/<dNOXJydrg(.H>.H?/<]/9cN2 Jydvg.H|H@.HN^NuNVBn`Jyeg n g=|`6.eBa=@0.ng0yde"0Ryd` Rn n_mSn nl(`0yde"0RydSn nn`&0n~Rn0.| 2nRn n fjJyd~fb0ncRn0nMRn0ncRn0nJRn09dt|nl 0.``` noJydg0n&Rnn0.|H@ . m .f,0n#Rn0.r@@=@0.r@@H@`8 .#g .&fJydf .~fJyeg0n#RnJydvf0.2nRn`0nRn09dt|nl0.`".eBa=@|fJnfp`0.N^NuNVJydoSyd0yd"|e"00` ` .N2/<]N1X.H`.c?.aTT.da.d?< ?9c?<Ya\3dBydByc`.c?.aT.da^.d?< ?9c?<Ya\3dByd09cR@H@H@3caByc`B#cdBycaބByc`$.c?.a8T`<>N*BBg?.?<Ya\p`B9d.^/<ca@X`|Fg|Lg``dB9d.^G/<da X``.caRn0.HH@=@JnfBBg?9c?<Nar\Byc`ZBBg?9c?<NaV\Byc`>dB9d.^k/<daXByc`H |Tr W h,NJeBg.eBN:\BeB`N^NuNV nf n H`` no n H``B@N^NuNV.^N1a>N:N^NuNV.^N1a>N:N^NuNVJyd gSydJydf3eHByd N^NuNV>a JyeHgN^NuNVByd ByeH09d3d3d N^NuNVByd ByeHN^NuNVN.N^NuNVdByd ByeHN.v3dN^NuNVN-J@fJyeHgJyeHgB@``N-N^NuNVBn 9 dl*9dH|@H^.^/<_"N1X`d^.^/<_JN1XN-J@gNN-|H@Jyd~g( . l . g . g.@>^N-.H>N-N-J@gLN-H@Jng .cg2 .Cg(.H9df9dH>N-` .hg .HfJyegB@`p3e`j .ig .IfJyd~gB@`p3d~`D .?f<._jN1._~N1._N1._N1._N1Bn`j.H9df=|`T.H>N-Jyeg>Jyd~g( . l . g . g.@>^N-.H>N-`PN^Nu3cf`23cf`(3cf`J3cf`l3cf`b3cf`,UB?< NA/@> ?9cf?<NMX?@NA\0NuUB?< NA/@> ?9cf?<NMX?@NA\0NuB?< NA/@> / @??9cf?<NM\NA\NuB?< NA/@> @|Hy.?<?<NM#chPFNA\?<NMT40<"HAAAmR@Nu/9ch?<?<NMPNuN*/9chNuNVBBJlDRBJ lD RB0. -@0.2. An=@ .gDN^NuNVN^NuNV._N1N^NuNV._N1N^NuNV._N1N^NuNV._N1N^NuNVH*n(n BG`|lRG0&@`0+|f|mB` wg Wf>?</ N9\<`p ag Af>>?</ N;\<l>?</ N9\<`>B?N="\`$ rg Rf>Bg/ N;\<`B`@JFlB`8Bk 6B'@'@ rg Rf7|`7|Jnfk JL8N^NuNVBW/. /.aPN^NuNVBW/. /.aPN^NuNV>/. /.aPN^NuNVHNJBW/<Q'N/<Q'N/<Q'N /.N5XJL N^NuNV4.`/8NNX./8NNX.`"/8NNX.8?< NT>NN^NuNV. /./<`N=PN^NuNV./. /.N=PN^NuNVH*nSm m mH|R` `.N2tJL N^NuNVH*n-fp`-g m p`Jf&-f>ND+@fm`m-g0Hмcl+@`f9`g .`N;D-g>`>/-?N3j\;@ Jm n m fm0`m p`Sm +m mH|RJL N^NuNVH>NK*@ fp`b-gB@`V-g3 b3cdbp`8-gB0../. / N3P``B0../. / N5PJL N^NuNVH *n(n ..-G`> ?/ /-/ NP=@Bn` L2n gRnB@0.neJng L2n f =nU >/ aPX=@B0.ѭB0.B0.Jo -g` -o+m .JL0N^NuNVH *n-M B2. Ё-@(M`  gRe JL0N^NuNVH *n(n ..> ?/ /-/ NP=@JnfU B0.ѭ -o+mB@0.JL0N^NuNVH BWNI#c~#cByc|.Qa*n`N`RJgHHмb @fJg2 "g 'fFH>/ RNX(@ f.` M2GBRG.Ra`BG`RG M2GJg5pHHмb @gJ5pg M2GBRGH`BWN:BW/ RNN: ->f@>/ TNB?<N="\|f.R/<`[a|X`$BW/ RN9X|g.R/<`jaVX`>?/ NXJf>*/ NXJg-|k.8?<NT>/ ?<NMt\<f.`y/ aX`^.H?/.aZ\.NO>RWNO(@./ NNX.a>/ ?<NMt\<f`.a`|g`JfBaSyc|.cN|f.`/<`a*XB/9c~?9c|N\>N:JL0N^NuNV|./NNX. /NNX.`/NNX.?< NT>N:N^NuNVH*n yc XcRyc|JL N^NuNVH*n. (nGVfJL8N^NuNVHNJ>|fp`>NK08*@ePJnfU.Q'/.NO2XJ@f U0`R`.Q,/.NO2XJ@fU0`2>/.?NMt\J@g3#b3cdbp`U0JL N^NuNVBW?. /.a:\N^NuNVBW?. /.a"\N^NuNV>?. /.a\N^NuNVN:*>NN^NuNVHBG`0м`.N:\RG|mJLN^NuNVH*n0-|g*.N;D-g .NFB@H+@+@Bm m>N:JL N^NuNVH>.>NK*@ f3 b3cdbp`NBF0|f>?<>NPT<l|>NK>NJJFf0``3b3cdbpJL N^NuNVN^NuNVH*n0-| |f, -<o >/-?NJ\>Gg mp`J-gJg-g;| `;| `>0- D@H/?N="\Bm +mB@JL N^NuNVHNJ>|fp`>NK08*@ePJn fUJnfU.Q'/.NO2XJ@fU;n 0``.Q,/.NO2XJ@fU0`d>/.?NMt\J@g>NJ3b3cdbp`0U>B-H?N="\BWB-H?N="\0JL N^NuNVBW?. /.a\N^NuNVBW?. /.a\N^NuNV>?. /.a\N^NuNVH>NK*@ f3 b3cdbp`$>?-/. ?<BNPP+@U -JL N^NuNV>B?.a\N^NuNVHK;| .+@+@;|:./. / N=P>.BgNBT0JL N^NuNVH*nBnJ gh``BE-n `RRE nJg n %fJEo.?/. NBx\-n n n %@R DfBn n H|-@R Df n R Rn| <0fG n R =|<*f-M n=PT n R `8`*JnlBnH2. A|=@ n R <0m<9o|<.f BF n R <*f-M n<T n R `*`H2 A<| n R <0m<9oBn<lg<LfRn n R A-HH` RnJng <H` <I<#c.c?<?< // NH Jngp`pH`RnJng <H` <I<#c.cBg?< // NH Jngp`pH`zRnJng <H` <I<#c.cBg?<// NH Jngp`pH`&RnJng <H` <I<#c.cBg?<// NH Jngp`pH`-M n-PX`-M n0|@B.T`H>?// N/F X|`~H>?// N/Z X|`XH>?// N/n X|`4.H?NBTRn``|C|5b@0@ax PN.NO:ElJFm:0.E=@JnfX .0f* n -f SE. nH?NBTRRn`..H?NBTRn0.SnJ@n.?/.NBx\n`..H?NBTRn0.SnJ@n`0.JL N^NuNVH *n>. (n,g$Bl >/ ?NJ\Gg lp`*B@`&`.H?NBT|fp` 0SGJ@fB@JL0N^NuNVH. *n Sm mH"m|R``.H?NC.TJL N^NuNVH. *n BF:-fp`$JfV-fN>ND+@+@fm`2m>ND|J@gm@`;| H"mR`-gA+H +@ mR-gz>/-?NJ\<Bm `n-g>< g -мb" -:>/-?NJ\<+mBm `( -:>/-?NJ\<;| +mFg mp`H|JL N^NuNVH>NK*@ fB@`-fB@`pJL N^NuNVH>NK*@ fB@`0|JL N^NuNV>aJ@g <Q'`BN^NuNVH>.^GORG>a*@ fB` >/ aXJL N^NuNVH (ybX*T`ZB@0-BA2-@F@J@g>NH B`:B@0-ne `*bXf>a*@ f>NH B`(M*U`JL0N^NuNVH n*PB@0. X@me n `F(MB@0. HH@B@H@B@0-n 9@B@0,F@9@( n ;n B@0-F@;@#bX PJL0N^NuNVH >.|?GG0@>NI*@fB`* R*@(M9GB@0,F@9@.Pa 9bXJL0N^NuNVH *nQB@0-BA2-@F@J@g>NH p`(ybXeeecd(T`e2 BA2-IHABAHAЁ" BB4,JHBBBHB҂b #bXB@`n BA2-IHABAHAЁf T0(mB@0-F@;@ T*`* BA2,IHABAHAЁfB@0-lB@0,F@9@(`(#bXB@JL0N^NuNVH *n.a>. ^GORG>a-@fB`J n(PPg2d`Sn Jn f`B0. B0. `%Sn Jn f>/.aXJL0N^NuNVN^NuNVN^NuNVH /?.?./ /. nN*@ мfB(n `%H|0|9o^G мfB JL0N^NuNVH-|c*n<.H n. nfz` |SEJgJEf`h nf$z ` |SEJgJEfJEf-`*n<.JngJGlB@0D@> n P-"n R`B0H@B0>JGf JL N^NuNVH >.HμgR*yc`(Gc`.N|f3 b3cdbp`>Bg/ N\ JL0N^NuNVH>NK*@ fp`XJnfB@`N-g3 b3cdbp`0-g>/. / NKP``>/. / NLPJL N^NuNVH|BG` b\f b\0`RG|m3b3cdbpJLN^NuNVp2.`F@Hb\B@N^NuNVHBG`>aRG|mJLN^NuNVH 0.8*@eP0.@BUB-+| BB> Bg/ N\> ?< / N\JL0N^NuNVH>.|e3 b3cdbB`0B@08*@eP-f3 b3cdbB` JL N^NuNVH *n(n >.B@=@=@``Rnnc L2n  fB@0.ncf>?.B@0.W B2.Ё//-/ NP=@B0.ѭJnf3b3cdbp`^=n`8Rn>?</<b`/-/ NP=@B0.ѭnb4 -o+mB@0.JL0N^NuNVH*n>?./. /-/ NP=@Jnf3b3cdbp` B0.ѭ -o+mB@0.JL N^NuNVH*n 0.8мeP-@~.a&M`RJg :fJgc .Am .On*K`K0.`BW/ ?<o n1GBG`BW/ ?<NNP\JgB@`0<>`d>ONPJgB@`0<>`J.?<=NPT>o n1GBG`,.?<ANPT>``||b@0@bb PN0JL8N^NuNV n am n zn n nHRJfN^NuNVH *n (n`RJff .JL0N^NuNVH *n (nf .JL0N^NuNVH *n(M`RJf HJL0N^NuNVN^NuNVH *n(n `$H>a0H>a&op`lp` JfJfB@JL0N^NuNVH>.|am |zn|0JLN^Nu _B0Z"yc`CCbNC N o HXb"X6NVnh^^(j^^^^^^^^^^^^^ABCDFSZ "ENTY    &ENTY Z L Z  dENTY f X f  pENTY  ENTY(PACDFRB>0"FBEFSTZ$R$BDEFTZZ20444ENTY^hENTY0<ENST|EMOSemos\CEGIKNRSTX))d))(0)d)((~))d)Escape char is "%c" Parity is %c %s PACKET.LOGwCannot create PACKET.LOG Logging all packets to PACKET.LOG Debugging level = %d Connect command Receive command Receive failed.Done.Send command Send failed.Done.Finish command FFinish failed.Done.Get command Get failed.Done.Entering server mode. Server Mode Aborted.Done.Exit command LExit failed.Done.sendsw state: %c In sinit retries: %d Opening %s for sending. rrCannot open file %sSending %s Closing input file %s, looking for next file... New file is %s recsw state: %c wwCannot create %sReceiving %s getsw state: %c looking for next file... New file is %s exitsw state: %c In exit_server retries: %d In xinit retries: %d gnxtfl: filelist = "%s" Usage: kermit c [lbiphe line baud par escape-char] to connect kermit s [ddzinlbpt line baud par] file ... to send files kermit r [ddzinlbpto line baud par string] to receive files kermit g [ddzinlbpto line baud par string] file ...to get files kermit v [ddzinlbpto line baud par string] to enter server mode kermit f [ddz] to shut down remote server kermit x [ddz] to shut down remote server and logout remote Commands: c=connect, g=get, f=finish, r=receive, s=send, v=server, x=exit Modifiers: b=baud rate, d=debug, e=escape char, h=half duplex, i=image mode, l=tty line, n=no filename conversion, o=prepend string to output files, p=parity, t=suppress timeouts, z=log packet transactions. When sending, kermit will expand wildcards and handle drives. The line kermit s 0d:*.c sends all files with an extension of c in user 0 of disk d. Since this is a feature of the runtime, when using the get command, filenames containing wildcards must be in double quotes. Both the remote and local kermit must know an image file is being transferred in order for the file to be useable. Kermit: Kermit aborting with this error from remote host: %s spack type: %c num: %d len: %d data: "%s" Spack:%c:%03o| Rpack: rpack type: %c num: %d len: %d data: "%s" %c:%03o| Server - enterning command %c.: command not implemented by CPM Kermit server: not a valid Kermit server command: not a valid Kermit server command^cAtari ST Kermit version 3.0(4) 3/14/85Port selection not implemented in this KERMIT Baud rate selection not implemented in this KERMIT Type Control-%s to exit connect mode. Type %s to exit connect mode. c = exit to micro h = toggle local echo i = toggle image mode ? = this message typing the escape char again generates it _floating pointC RTL - program not linked for Program terminating $: unmatched quoteCannot open Cannot append Cannot create : No matchStack Overflow $   @?A A0ATAxAxAxAxAxAxAx@4AxAxAx@Ax?AxAx@AxAxAxAxAxAxAxAxAxAx@?A A0ATAxAxAxAxAxAxAx@8AxAxAx@Ax?AxAx@bPbP N.NxMNNLNxNxM!!!!"CP/M-68K(tm), Version 1.2, Copyright (c) 1983, Digital Research XXXX-0000-654321__exit__breakc`__start___cpmrvcd__basec\__sovf_brk___BDOS_blkfill_index_strchr___pnameQ___tnameQ'___lnameQ,___xeofQ1_main_usage_recsw_printms<_sendsw|_genswZ_getswR_server'_sinitF_sfile F_sdata _seof _sbreak _spar_spack2_rpack!_rpar_prerrpk_error_bufill$*_gnxtfl_rinith_rfileL_rdatab_bufemp&_xinit_gfile_generic_dopar_cinchr_inchr#_next_ch&l_getcmd*H_sccsid^_set_lin*z_dinit+@_set_bau*_timer_i*_sleep*_set_tim+_clear_t+,_init+N_sgetc+v_connect+_tim_ini.v_tim_din._sputc-_rx1-_auxstat-_cputc-_cgetc-_constat-lmul._nofloat/>___noflo___petoa/F__pftoa/Z__pgtoa/n__atof/__fopen/_fopen0_fopena0_fopenb0__main0__optoff1_printf1_fprintf2_fgetc2<__filbuf2t_read3j__rdasc3__cr_col4__rdbin5___main5__creat9_creat9_creata9_creatb9_exit:__cleanu:*_fclose:\_close:__iob`___fdecl;<_fflush;D__open;_open<_opena<_openb=_lseek="_tell=~_sprintf=__doprt=_fputnBx_fputcB__flsbufC._isattyD|_isdevD_ttynameD__afreebbP__aflistbX_mallocD_freeF_reallocG_malloc_H__errmalH ___prtinH___prtldH___prtshI<_sbrkI_writeJ__chvecb\__alloccJ__freecJ__chinitJ___chiniK__chkcK__wrtascK__wrtbinL___openMt_ucaseN_errnob__errcpmb_strcatN_strcpyN_strlenO___atabb____atabO*__strcmpO2__sallocO_setjmpO_longjmpO_uldivrc_uldivO_sw_Pv__pc_reaP__pc_wriP_trapP_statec_filecouc_filelisc_srvpktc_dpfpc_bin_quoc_nc_cchksumc_quotec_numtryd_num_ticd_ticks_sd_ch_sptrd_padd_tim_setd _rpsizd _escchrd_filnamd_packetd_pktdebdr_spsizdt_parflgdv_sizedx_eoldz_dotimoud|_imaged~_debugd_dobquod_recpktd_envd_lechoe_remotee_dorepte_bquotee_speede_padchare _ch_stace"_timinte@_fpeB_outleneF_tim_alaeH_filnamceJ_outstrieL__fdseP_oldtry_reptc_commandR N&H      (                      " <:*  $*  *  *        4                   :        , FP       (>"   "04:j @""   . " B"&x,*$:*P.      "(   D     * . * ,4*,h.2$   ,  4P& \& DN ,D( 0 <    >  h 0HN&  jj`^***`&$ D"P$ZF \@(B4.J".86 Jp $""@2&"fHR"DP<@* *$$ (4H`  Atari 520ST Kermit ================== Kermit is invoked on the Atari by running KERMITV.PRG with a double click of the mouse as usual. It should be installed as a TOS takes parameters type of execution. You then enter a Kermit subsystem. You will then be prompted for the Kermit commands. The command structure is as detailed below: connect: c [lbiphe line baud par esc] send: s [ddzinlbpt line baud par] file receive: r [ddzinlbpto line baud par string] file get: g [ddzinlbpto line baud par string] file server mode: v [ddzinlbpto line baud par string] finish: f [ddz] exit: x [ddz] where the parameters are: b=baud n=no filename converstion d=debug o=prepend string to output files e=escape character p=parity h=half duplex t=suppress timeouts i=image mode (binary) z=log session l=tty line NB Some of these parameters are not supported and will not work. These include baud (b) and tty line (l). The command character is followed immediately by the parameter code (no space!) then a space followed by the parameter values (separated by spaces), another space and then the filename if necessary. So to send a file to a host as binary, with even parity and logging the session you would need: kermit szip even filename and to connect to a host with odd parity, half-duplex and using 'A' as an escape character you would need to type: kermit cphe odd A This applies when running in the bottom level TOS. When running under GEM, the double click on the icon KERMITV.PRG is equivalent to the word kermit above. ------------------------------------------------------------------ Tony Klapcia Computer Unit University of Bath Claverton Down Bath BA2 7AY or electronically at: cc_ak @ bath.ux63 (00006011000550) Klapcia @ aucc (00006011000098) or via BT Gold at 74:IBL058 ----------------------------------------------------------------- `(^ .|CT?9C?9C?9C?< N%P3C|BWBg/<8C~?9??9??9??9C|N%P>C~?9??9??9??<$?<$09C~H?09?W09?H?09?WN# N^NuNV.Q/]/Y/U?< ?9C|N&@=n =n =n=n`=n=n=n=n./N'`XJ@g*>?.?.?.?<?./<-N$v.Q/]/Y/U?< ?9C|N&@JngJnfp3B~C:3BC<09B~yAS@3C>09By?S@3C@.C:?<?9?NXN^NuNVN .>n/<A/<B/<CzN$ 3?3pA yBoB=|`,0.м3 @0.м3 @Rn nmA3A3.8L?9CVN$TT3<.8\?9CVN$TT3A.CT/<C/<C/<C?<BgN&@3C|#.VA#.?#.?3BByCaJy?faaaa aaD>?NaaN^NuNV`\.CR/<?p/<CR/<CR/<?/<?Bg?N&.CR/<CR/<CR/<B?< ?9C|N&@.gaa409C|yBff>??9A?9B?9B~?<?</<-N$v>??9A?9B?9B~?<?</<-N$v`n yC|gd>0?90?9009BW?9009B~W?<aP>0?90?9009BW?9009B~W?<aP.gn09?`L09?yC|f >??9??9??9?BgaP`209?yC|fBWBgBgBg?< ?9C|N& `09?y?N3C|`09?yC|fa>C|N& >??9A?9B?9B~?9>n?9A09?H?09BW09AH?09B~WN#\>C|N&&>?N3C|`.09?yC|fp>??9??9??9??<?9C|N& .?/<A/<B/<B~?<?9C|N&@3B~-3B-`09?y?.?.?.?<$?<$BgBgBgN"f>?.?.?.?<$?<$BgBg?<N"f>?.?.?.?<Bg/<3N$vBW/<3N"DX|fLBn`60.P@м3 @( gB@`p"|A4nRn nmaa >?.?.?.?<$?<$BgBg?<N"f>?.?.?.?<$?<$BgBg?<N"f``||b@0@6* PN.g09C|yBfJyBg>??9??<Bg/<-N$ =@`..\/9A?<?<aPa *`../9??<?<aPa `r../9??< ?<aPa`P>b/<.\/9A?<Bg yAH?WN'X?a aByB`>b/<.\/9A?<?< yAH?WN(X?a| aZByB`>b/<./9??<Bg y?H?WN'X?a4 aByB`v>b/<./9??<?< y?H?WN(X?a aByB`,>b/<./9??<Bg y?H?WN'X?a aByB`>b/<./9??<?< y?H?WN(X?aX a6ByB`>>j/<1/<1?<+?<*?<(aH?RWaT`^.2/<2J?</?<.?<,aX H2>RW?9>hajT`"=|6`R0.м- @( g6>Bg?9??9A?9B?9B~Bg?./<-N$Rn n:o>?<?9??9A?9B?9B~Bg?./<-N$0.|3>b>?.WN""TByB`\BW?<?./<-N#PJ@g>/<-N"DX>Bg?9??9A?9B?9B~Bg?</<-N$>Bg?9??9A?9B?9B~Bg?</<-N$a*a a>??9A?9B?9B~?<?</<-N$v>??9A?9B?9B~?<?</<-N$v`L y>fa~>??9A?9B?9B~?<?<1/<-N$vByB` y>da6>??9A?9B?9B~?<?<3/<-N$vByB`BW?<?./<-N#PJ@g*a By2>??9A?9B?9B~BgaP`r0.|3C.B?<?9C?9?N2\>b/<.\/9A?<09BH?a >b/<./9??<09BH?a >b/<./9??<09BH?ar =|`h0.м- @( fL <2.Ҽ-"A >??9A?9B?9B~?<?./<-N$vRn no09/y/2f </>??9A?9B?9B~?<?< /<-N$vVy/Vy/]y/]y/ />??9A?9B?9B~?<?< /<-N$vJyCg <2.Ҽ-"A `(3/2/3/L/3/6/3/8/ >??9A?9B?9B~?<?./<-N$vByB` ByB``S@|9b@0@6 PN`3B.g409?p|| f$a>??9A?9B?9B~BgaPBWN&`N^NuNV./. ?.?<?<?. ?./<-N# ?0<_H}?N(X?aPN^NuNV0.|0"n >?<Vpn?N 6X? n0>??9A?9B?9B~?<?. /<-N$vN^NuNVBW?. ?. /<-N#P=@/.?<?<m?.N 6\ _0"n2>??9A?9B?9B~?<?./<-N$v0.N^NuNV yAH|}|>3B y?H|}|>3B y?H|}|>3B.B?9C?9?NXBn`,09Cn0@=2nB1QjRn nmN^NuNV> ?.?<#N(.X3>h3 >jN^NuNV.)a=@ nPl 0.|`0.|=@0.Hr-@.)a=@ 9P)f n ln 9A)f n fBn.)aHr㠁.)aHr㠁0.Hr 㠁.)alH뀁.?<N(.T.)aL@>/<)a@XW0.r `W?<+N(NT.)a@>0.r `W?<-N(NTN^NuNV n  fB@` nH| =@R nHn|N^NuNV>N(.-@ .?3Cp .r 3B .r3B .r3? .r|PHdH@3AN^NuNV>,N(N=@0.@|?3Cp0.r `|3B>*N(N=@0.|3B0.@|3?0.r `||PHdH@3AN^NuNVBW?9A/<)a\>?9?/<)a\>?9B/<)av\BW?9Cp/<)ab\JyBg,> y Bo ?9BW`?9B/<)a0\`>?< /<)a\ y BlpA`pP)N^NuNVJng0. H fp `0. H |0"nR0. H H@|0"nN^NuNV>/<AN%TX-|A n #@RDf n b@RDfBn` nH|2nARRn nm n #@RDf n c@RDfBn`* nH|}|>2n=2RRn n0m=|0`" nH|2n=2RRn n3m.a3=T.a3>N^NuNV>/<AN%TX-|ABn`j.B?<?.?9?N2\Bn`<0n"|B00H}|>2.n2A=3@jRn nmRn0.y?mBn` 0n=2n=0jRn n5m n #@RDf n c@RDfBn`,0n"|=00j|H}|0"nRnR n0m=|0`"0n"|=00j|0"nRnR n3mBW?9>h/.a,\TBW?9>j/.a\>/<AN%vXN^NuNV>/<AN%TX-|A n #@RDf n b@RDfBn`"0n"|A0H|0"nRnR nm>/<AN%vXN^NuNVBn` 0n=2n=1QjRn n5mBn`*0.@Hм=.?.?9?NXRn nm09C0@"|=00|H}=@0.|0"yA>?<Vpn?N 6X3.\09CR@0@"|=00|H}=@0.|0"y?>?<Vpn?N 6X3.09CT@0@"|=00|H}=@0.|0"y?>?<Vpn?N 6X3.a=|6`0.м- @Bh Rn n:o09=|6м- @1| >?<m09=S@?N 6X3131>?<m09>S@2?N 6X3232J>>?9=a TN^NuNV>>d?9>fNPTJy>fg <-` <-#2Jy>dg <-` <-#2N^NuNV9AH@>9AH@W9AH@W9AH@W9AH@W9AHW?<!N(.TN^NuB?< NA\#p<#@<#?r n1y>t n1y>vN^NuNV# <3 <3CZ3C\3C`3CfN P#? aF3BCVpN^NuNV>a*pN^NuNV3B3 B3 B3B3B3B3B3B3B3B3B3B3 B3"B#$Cr3(B3*B>N f n,0B n00B n40B n80B n<0B n@0BB@09BN^NuNV3B3 B>N fN^NuNV#Cr3 B>2N fN^NuNV3B3 B3 B3B3B3B3B3B3B>3N fN^NuNV#Cr>6N f n 0B n0B n0B n0BB@09BN^NuNV3B3 B3 B3B3B3B3B3B>IN fN^NuNV3B3 B3 B3B3B3B3B3B>JN fN^NuNV#Cr3 B3B3B>KN fN^NuNV#Cr3 B3B3B>LN fN^NuNV>MN f n0B n 0B n0B n0BB@09BN^NuNV3B# Cr>#N fN^NuNV#Cr3 B3B3B3B3B3B>*N fN^NuNV#Cr3 B3B3B3B>+N fN^NuNV#Cr3 B3B3B3B3B3B3B3B>/N fN^NuNV#Cr3 B>zN fN^NuNV#Cr3 B>{N fN^NuNV3B3 B3 B3B3B>dN fN^NuNV3B3 B3 B3B3B>eN fN^NuNV3B>fN fN^NuNV3B>gN fN^NuNV3B3 B>hN f n 0B n0B n0B n0BB@09BN^NuNV3B3 B3 B3B3B3B>iN fN^NuNV3B>kN fN^NuNV3B3 B3 B3B3B3B>lN f n0B n0B n0B n 0BB@09BN^NuNVH *n(n >0-W?0,WN(T:>0-W?,0,WN(T8>?N'T>>?,N'T<89F0G9@0F9@GoFnB@`pJL0N^NuNV0.n o0.`0. N^NuNV0.n l0.`0. N^Nu#87>97>:7>;7><-pL> -~>(p7h7 ,`7Dh7PX7< 07,8@  p 7@7h@ p  7@ 7h@p,7@ 7h@p87@8h@pD8@8h@pP8@8h@8"Xx82P`8'85`80 ` ` ` ` `40 ` ` ` ` ` ` ` ` ` `` ^ D D D  :  DDDDDDDDDD D D D DDDb D D D D D__:__ _M9999F__/__/__999999Cancel01234Printer Type:Pixels/Line:Printer Port:Paper Type:Color:Quality:DotDaisyB/WColor1280960DraftFinalPrinterModemFeedSingleINSTALL PRINTEROKCancel CONTROL PANEL Control Panel Install Printer*     (P$                      ": $,""B,       0&               (     .8 * :" R     ^B\2 ( F<&6* (        $ $                        *prRH0000`x00000000 #a000010 #b100001 #c7770007000600070055200505552220770557075055507703111103 #d #E 7B 03 #W 00 00 00 04 50 10 08 A:\*.*@ #W 00 00 00 0B 4F 0F 00 @ #W 00 00 0E 09 2A 0B 00 @ #W 00 00 0F 0A 2A 0B 00 @ #M 00 00 00 FF A FLOPPY DISK@ @ #M 01 00 00 FF B FLOPPY DISK@ @ #T 07 00 02 FF TRASH@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @ #G 03 04 KERMIT.PRG@ @ #P 03 04 KERMITV.PRG@ @ #P 03 04 ASTUUD.PRG@ @ COM.07`f..|Nt.NA"/0<NBNuNVJy$ fB?<NT3$ N^NuNVJy$ gB?<NTBy$ N^NuNV>$N N^NuNV>$N N^NuNVBn`0n%40Rn n m3%H.%/<$/<%4N $PN^NuNV>%?9&?9&?9&BgNRP3&"Jy&"m\>%?9&?9&?9&?9&"NP>%?9&?9&?9&?<$?<$BgBgN p``B@N^NuNVN $.#b/<%/<%/<&N> 3$ y%f:Bn`,0.м @0.м @Rn n&m.?9%NT3&.?9%NT3& aNL y(#fN 09$y& fa09$y&fa.%/<&/<&/<&?<BgNa,J@g\afNZa>&"N>&"N>%?9&?9&?9&?9#b?9%BgBgN `.X?<N .T>$N BWNL`N^NuNVaByDBy,.$/<%2/<%L/<%J/<N P>$?9%2?9%L?9%J?<$?<$09$H?09%LW09%2H?09%JWBgN >$?9%2?9%L?9%J?<$?<$09$H?09%LW09%2H?09%JW?<N >$?9%2?9%L?9%J?<Bg/<NBW/<N X|%fa`a>$?9%2?9%L?9%J?<$?<$09$H?09%LW09%2H?09%JW?<N >$?9%2?9%L?9%J?<$?<$09$H?09%LW09%2H?09%JW?<N N^NuNV=| `*0.м @ h f0.|SRn no=|`*0.м @ h f0.|TRn no yfB9R`R ylfB9W`W=|`*0.м @ h f0.|URn noB9V yf9V yf9Va~N N^NuNV=| `0.м @Bh Rn n&m9SH| м @1| 9TH|м @1| 9RH|м @1| 9UH|м @1| 9WH|м @1| 9Vg 3`39Vg 3`3N^NuNV>/<&$NX-|&$ n #@RDf n a@RDfBn` nH|2nRRRn noN^NuNV>/<&$NX-|&$ n #@RDf n a@RDfBn`"0n"|R0H|0"nRnR no>/<&$N0XN^Nua?<NNT#aa6aa6<van6<HafGaD?<?<NMX|f*?<?<NMX6 9WfC??<?<NM\?<?<NMX|f?<?<NMX6H@<bf8aa~aBa:aaZaa\a|6<HaGa`f<ag* 9Rg??<?<NM\??<?<NM\`66<waaaaNNuB?< NA\#Nu/9?< NA\Nu y0<?BQNu yC0<"QNu yC0< QNuB@g??<?<NM\`Nu?<?<?<NM\??<?<NM\Nu? aF3%v%pN^NuNV>a*pN^NuNV#&>N N^NuNV#&3 %V>2N N^NuNV3%V3 %X3 %Z3%\3%^3%`3%b3%d3%f>3N N^NuNV3%V# &>4N N^NuNV#&>6N n 0%x n0%z n0%| n0%~B@09%vN^NuNV3%V3 %X3 %Z3%\3%^3%`3%b3%d>IN N^NuNV3%V3 %X3 %Z3%\3%^3%`3%b3%d>JN N^NuNV>MN n0%x n 0%z n0%| n0%~B@09%vN^NuNV3%V# &>NN N^NuNV3%V# &>#N N^NuNV#&3 %V3%X3%Z3%\3%^3%`>*N N^NuNV#&3 %V>zN N^NuNV#&3 %V>{N N^NuNV3%V3 %X3 %Z3%\3%^>dN N^NuNV3%V3 %X3 %Z3%\3%^>eN N^NuNV3%V>fN N^NuNV3%V>gN N^NuNV3%V3 %X>hN n 0%x n0%z n0%| n0%~B@09%vN^NuNV3%V>kN N^Nu %,8P( 8(,88P DP`R` #`H - n@ j 6( ;,(@X( E(j I(N,(RX(j,W(\,(j8a(c,(eX(g(jDi(l,(! j` p(s,($"#jn#w(!z,(%~8'8[2][The GEM Desktop has no more|windows. Before you open the|emulator, close a window that|you're not using.][OK]RS232 PORT CONFIGURATIONBaud Rate:Parity:Duplex:Bits/Char:Strip Bit:Flow ControlXon/Xoff:Rts/Cts:960048001200300NoneOddEvenFullHalf8765OnOffOnOffOnOffOKCancel VT52 Emulator Set RS232 Config.********************************* | Atari VT52 Terminal Emulator | | (c) Atari Corp. | ********************************* Press: 1) UNDO to return to desktop. 2) HELP to configure terminal.                  $"      B$6*&,lDZ F    $                   0000000`  .|N .NA"/0<NBNuNV. /<'|/<'/<(NB 3(=|`0n'0Rn n m3'.'/<(/<'NP.(b/<(/<(/<(?<BgNpN^NuNVB?<NTaJ@fB@`>(b?9(?9(?9(BgNP3(>(b?9(?9(?9(?9 ?9'|?9(?9(N>(b?9(?9(?9(?9(NP>(N>(N T>(NpN^NuNV.'Bg?9(N$X09'R@33(09@3By.'?<?9(N$X3'09@#( <(##hB%hJhf.?<N|TB@`nB@33B@3309S@3309(S@33./<%h/<?<?9(N pN^NuNV>(N *N^NuNV>(NaX>(N<>(NV>(b?9(?9(?9(?9 ?9'|?9(?9(NN^NuNV.%h/</<?<?9(N B?<NTN^NuNV>?<NTN^NuNV.?9(N T> a> aN^NuNV>(N T>(N.a.a.a.)a.*a.Xa.a.a~.at.aj.)a`.^aV.aL.aBN^NuNV` >N>NJfN^NuNV>?<NTJfN^NuNV nB>?<NT-@g ."n  .r"n`L>NJg>>N-@ ."n  n ~n n H>ad3%f nJgpN^NuNV>?.H?W?.H??aN^NuNV.]/Y?9(N\=n`0n"n 0H>a`Rn0.n o>(NP>?.?9(NXN^NuNV>(N N^NuNV.Y/U?9(N\0.nm >(N N^NuNV=n ` n 2n"n 4nQSn0.nlN^NuNV=n` n 2n"n 4nRn0.n oN^NuNVBn` n 2n"n4nRn nPmN^NuNV nSPl np0` n0N^NuNV nRP0|m np0` n0N^NuNVBy%fBn nBP.Y/]?9(N\`.Q/aXJy%fgL.Y/]?9(N\. n?SWBgaX>0.W?.?9(NXBy%fJ.gJ . mt .~nj n PPma`V. n?SW?.aNX n 2n. n??.azX n0"nRQRn>0.Wa`.H`> ap`Jnfa$`@>0.Wa. nSP0?Sn?.aX. n?SW?.aX`b n0nfa`.. nSP0??.aX. n?SW?.aX` a``|gb| gL|g``L.H`,B@`@Jnfa``>0.WaSn` n0nfa8`>0.WaRn`/./<$apX0@"|(00 _0=@. 09$Pм&/aX>?.?9(NX. n?SWBgaX>0.W?.?9(NX`f/./<$aX0@"|(00 _0=@. 09$Pм&/aX>?.?9(NX. n?SWBga:X>0.W?.?9(NX`a.Y/]?9(N\. n?SWBgaX>0.W?.?9(NX`>?.?9(NX>(NP np0=@a3%f`N>?.?9(NX>(NP np0=@`aJ``H |lrW h N`N^NuNVBn` 0n"n 0H>?<NTRn0.nm> ?<NTN^NuNV>ax>wapaaDab`z./aLXJ@g`.?.alTJng<0y'~(009'~Pм&./aX.'~a3'~$`N^NuNV.?9(dNT3N^NuNV`L.N@ n(f60.yf*>Na.aJ@gaaaBWN`N^NuNVNazaN^NuNV3e(fBy(hBy(l3(rNLN^NuNV3(fBy(hBy(l3(p3(rNLN^NuNV3(fBy(hBy(l3(p3(rNLN^NuNV3(fBy(hBy(l3(p3(rNLN^NuNV-| n H"n2R TJ@f3(fBy(h . HS@3(l3 (p3(rNLN^NuNV3(fBy(hBy(l3 (p3(rNLN^NuNV3(fBy(hBy(l3 (p3(rNLN^NuNV3(fBy(hBy(l3(p3(rNLN^NuNV3(fBy(hBy(l3(p3(rNLN^NuNV## .мZ#3d(fBy(h3 (l n 3(rNL n 0(r# # #&|#%|N^NuNV3(fBy(hBy(l3(p3(rNL n 0 n0N^NuNV3(fBy(hBy(l3(p3(rNL n 0 n0N^NuNV# #%|#  . мZ#3  3f(fBy(h3(l3(rNL# #&|N^NuNV3  .N8.NB# 3m(f3(h3(l3(rNL#%|N^NuNV3  3  3(fBy(h3(l3 (p3(rNLN^Nu#(tNu#(xNu#(f"<psNBNuNV3'0.|Hм -@=|` nH2n'2RRn nm.(^NB@09'N^NuNV#' #'#'#'#(~#( # (^> aF3'(dpN^NuNV>a*pN^NuNV#(~>NbN^NuNV3'3 '>NbN^NuNV3'# (~>4NbN^NuNV3'3 '3 '3'3'3'3'3'>INbN^NuNV3'3 '3 '3'3'3'3'3'>JNbN^NuNV>MNb n0' n 0' n0' n0'B@09'N^NuNV3'# (~>NNbN^NuNV3'# (~>#NbN^NuNV3'3 '3 '3'3'>dNbN^NuNV3'3 '3 '3'3'>eNbN^NuNV3'>fNbN^NuNV3'>gNbN^NuNV3'3 '>hNb n 0' n0' n0' n0'B@09'N^NuNV3'>kNbN^Nu#NN/9Nu#NM/9Nu#NA/9Nu GHKMPRab p F \ j [1][Nicht genug Speicherplatz vorhanden][Abort]*********************** IBM Block Terminal ***********************BACKSPACE - letztes Zeichen lschenDELETE - aktuelles Zeichen lschenINSERT - lsche ZeileRETURN und ENTER - sende ZeileCLR HOME - sende BREAK SequenzPfeile links/rechts - Cursor in der Zeile bewegenPfeile oben/unten - letzte/nchste Zeile editierenHELP - Ausgabe dieser MeldungUNDO - zurck zum Desktop IBM Terminal_crystal_ctrl_cn _buff_loh_open_vd _init_te_save_me_close_v_exit_te_restore>_vdi_ch|_vdi_lin_help_flush_rX_flush_tz_wait_fo_send_br0_ring_be_redispl_move_riR_move_lef_shift_r_shift_l_copy_bu_dec_ent6_inc_entV_get_lin|_send_li _termina _init_ac _handle_ _main _v_clsvw *_v_curho T_v_curle _v_curri _v_curte _v_eeolP_v_eeos_v_enter_v_exit__v_opnvw_vq_chce_vq_cura_vq_extn$_vro_cpy_vs_cura_i_ptr8_i_ptr2B_gsx1L_gsx2L_iioff_iooff_pioff_pooff_vdiL_crys_ifb_appl_in_appl_ex._evnt_me@_evnt_tiZ_form_al|_graf_gr_graf_sh_graf_haB_graf_mo_menu_re_wind_cr_wind_op_wind_cl<_wind_deV_wind_gep_wind_up_gemdos_bios_xbios_menu_id_save_mf_pxy_intin _gl_hbox _intout _c _last_en$_ring_bu&_aux_rec%f_scrn_mf%h_ptsin%|_ptsout&|_gl_wbox'|_next_en'~_global'_work_in'_control'_int_in'_int_out'_gl_hcha'_work_ou'_ad_c(^_hdesk(b_gl_apid(d_contrl(f_addr_in(~_gl_wcha(_vdi_han(_wi_hand(_wdesk(_ring_fi(_buff_si(_addr_ou(_xdesk(_ydesk(_menbbuf(         "244>(,2* * **:b   $        $               Atari ST Kermit =============== This Atari ST Kermit distribution disk contains two versions of Kermit and is distributed by the Lancaster University Kermit distribution service. There are two versions of Kermit on this disk. Also, these Kermits may be used to extract new versions of Kermit from the Lancaster filestore as they become available. KERMIT.OLD This version was received from Tony Klapcia of the University of Bath. This old version of Kermit is contained in the directory KERMIT.OLD and is referred to in the mail file ASTKER.MAI in the directory KERMIT.NEW. It should be executed using TOS-Takes Parameters. It is a rather crude but very fast Kermit. It contains a VT100 terminal emulator and a Kermit server mode. The binary image mode may not work as I have not yet found the correct terminal settings for this mode. KERMIT.NEW This new version of Kermit is the current one from the Lancaster University KERMIT directory. It runs in normal GEM mode and is very pretty. However, the status box used during file transfer appears to slow the file transfer down to about 10% of the speed expected from the baud rate setting. Binary file transfer appears to work satisfactorily with this Kermit. The problems of UUD file conversions is covered by two files in this directory. There is a program ASTUUD.PRG which will convert correct format UUD files. Also the new ASTUUD.ASM assembler version of UUDECODE is in the directory. Included with this Kermit system was an IBM teletype emulator and this is included in the top directory as a desktop tool. The RS232 settings must be made using another desktop before Kermit is started. It appears that these settings have no effect unless one of the desktop terminal emulators is activated and exited before Kermit is used. Brian Robinson University of Lancaster 06.10.86 .  S..  SREADME_V20BԁS README_V20C؁S &,README_V20D܁S 2UNITERM PRGS :UNITERM RSCS jxUNITERM2ASC S UNITERM MAN!^yNReadMe for UniTerm V2.0b 017 <-| ---------------------------- | 27.3.88 |This number is displayed on the 'About UniTerm...' dialog box and indicates the "Edit Number" Changes 2.0a to 2.0b -------------------- General: This version of UniTerm has a different setup file format, for once I've supplied a program that will update existing 2.0a setup files to 2.0b (20ATO20B.TOS). Please read the ReadMe for 2.0a too, since a LOT of things changed at the end of the life of 2.0a (Edit numbers go to 027). Bugs fixed: Kermit: UniTerm now understands UniTerm (didn't work anymore after I introduced long packets). Terminal Emulation: VT52 cursor keys and PF1 to PF4 work again. Other changes: ----- Remote Macro commands can now be disabled (default!), an error message is displayed if this feature is used while turned off. ----- Insert/Delete line is faster. ----- Two additional fields added to the ParmBlock record: PBClipSize : Long_Integer; {Current max size of clipboard} PBClipRecAdr : Long_Integer; {Pointer to clipboard record} PBClipRecAdr is really: ^ClipType with ClipBuffer = Packed Array[1..$400000] Of Char; {If anybody needs more...} ClipBufferPtr = ^ClipBuffer; {ClipPtr = ^ClipType;} ClipType = Packed Record Len : Long_Integer; Buffer : ClipBufferPtr; {Next : ClipPtr; Not implemented (yet?)} End; One day this might be a linked list (but due to this organisation it will be compatible with older version). ----- The size of the clipboard can now be set the same way as the other buffers. ----- Shifted Keypad keys can now be used with KeyEdit. ----- The delay time value (ASCII Filetransfer Parameters) is now used as a delay value for the InsertClip function and in the mouse cursor control. ----- Hope I haven't forgotten anything. Incremental change list ----------------------- V2.0b 002 --------- The scrolling routine accidently initialized the scrolled up line to ASCII NUL instead of space. V2.0b 003 --------- Fixed typo in default popup functions: a entry was 'F3' instead of 'F2'. V2.0b 004 --------- Fixed bug in Kermit: the repeat character count went up to 95 instead of 94, resulting in a hiccup on some Kermit's which don't like getting a ASCII DEL (127=95+32). V2.0b 005 --------- Workaround a GEM bug, if a popup menu was displayed on the left hand side of the screen it would result in GEM goging crazy. V2.0b 006 --------- The %INLINE macro command is now transparent for all characters except: , , and . V2.0b 007 --------- Fixed yet another bug in the new scrolling code. Reverse scroll is now done in assembler too, ~more than 3 times faster as before. V2.0b 008 --------- Reset the command state properly after a ESC Pu...ESC\ command. V2.0b 009 --------- Fixed a VERY nasty bug in the routine that I use to erase parts of the screen (if called with zero width or height, instead of doing nothing it would blow up). V2.0b 010 --------- Reworked most of the X/YModem code (which was slightly historical). Hopefully most bugs are gone now, in particular in YModem it doesn't wait for an extra EOT anymore. V2.0b 011 --------- Fixed a bug in the GIN cursor code, draw the cursor first and then set the vector (caused problems with people with nervos fingers). Squezzed a few more cycles out of the cursor drawing code. Stop the cursor in Tek mode from blinking after the mouse has been used. V2.0b 012 --------- In tek vector mode the new cursor position was calculated after every byte, instead of every new vector. Enclosed the Pexec for TOS and TTP programs with a close_virtual_workstation, open_virtual_workstation pair, this should make it much more robust (it even works from the CCD/OSS Pascal Shell now). It does have the nasty side effect of all VDI parameters getting stomped on. Got rid of ALL OSS VDI bindings and did them myself. V2.0b 014 --------- Added a option in the graphics dialog that allows you to change the scaling so, that you see the topline of the text display. Changed the replay function: the keyboard state is now only sampled every 20 bytes (one BIOS call takes ~0.1 ms (for the trivial ones), which was rather a lot of overhead). One the same note I've changed a lot of stuff in the main loop of UniTerm, for character output without attributes and no scrolling the time used for one loop is: 0.3 ms + 0.18 ms + 0.4 ms * n ^ 0.1 RS232 read ^ 0.3 char output * ^ Cursor on and off if n <> 0 (0.1 ms for underline cursor) ~0.2 ms keyboard (estimated, 2 BIOS calls) 0.1 ms RS232 state (returns n max. 20) * the raw character output rate is in fact ~7000 char/sec, but there is naturally a lot of additional logic which takes time. (it used to be: (0.2+0.1+0.1)ms + 0.25ms + (0.1+0.1+0.3)ms * n) V2.0b 015 --------- Messing around with the Tek mode intoduced a bug in the GIN cursor code. Tek 401X Incremental mode is now supported. V2.0b 016 --------- Squezzed another 0.08 ms out of the main loop (in fact it would be trivial to reduce it by another 0.08, if the kbshift variable would have been at a documented location before the Blitter-TOS (if somebody knows a failsafe way of finding the location.....)). VT2XX for cursor control implemented: ESC [?25l Disable cursor ESC [?25h Enable cursor if your application is sending large blocks of text to the terminal, it's probably a good idea to disable the cursor first (see the timing info for 014). V2.0b 017 --------- Fixed a typo in the dialer, if you tried to use the 'Access code' the name of telephone number got sent instead of the number itsself. The turning on/off of the history mechanism has changed: History recording off, avaialbe options: Start Reset the buffer and enable history recording Resume Enable history recording Cancel Do nothing History recording on: Reset Reset the buffer Suspend Disable history recording Cancel Do nothing An additional 'LED' displays 'H', if history recording is on. The statusline displays 'Printing' during the print textscreen command. ************************************************************************** ReadMe for UniTerm V2.0c 016 <-| ---------------------------- | 5.5.88 |This number is displayed on the 'About UniTerm...' dialog box and indicates the "Edit Number" Changes 2.0b to 2.0c -------------------- General: A lot of the oldest code in UniTerm has been redone. Some things should be even faster now. The 20ATO20C.TOS program will convert 2.0a/2.0b setup files to 2.0c format, remote commands will be disabled, clipboard size set to 2kB and NRC to ASCII (turned off). The delay time parameter now additionaly affects: start/end of transfer strings in ASCII file upload the dialer macro processor send command single-line editor. Keys moved: View History buffer (NEW!): History Control: Mouse cursor control now uses a double click with the left button. UniTerm will no longer let you exit from the `Help' menu if you still have desk accessory windows open. The deeper reason for this is a AES deficiency. Terminal Emulation: NRC character sets implemented, they will naturally be slower than the straight ASCII mode (the Dutch and Portugese sets are not completly implemented). I'm too lazy to list the corresponding escape sequences, will be in the manual. NRC mode can also be set in the 'Terminal 2' dialog, selecting [ASCII] just turns NRC mode off, selecting one off the NRC sets, map the set into G0 and G0 into GL. ********************************* *Macro processor: COMPLETLY NEW!* ********************************* The two modi (function key - macro file) are now more different, the % command introducer is now only needed (and allowed!) on the function keys. No more absolute line numbers (labels instead), additional integer and string variables. No more boolean constants, use 0 and 1 intstead (for FALSE / TRUE) Commands are no longer case sensitive. Common features: ---------------- Built-in functions: ------------------- add(int1,int2) returns sum of int1 and int2. and(int1,int2) returns logical 'and' of int1 and int2. assert() asserts DTR. break(len,drop-dtr) send a break for len mS, drop DTR if if drop-dtr is true (<>0). concat(str1,str2) concatenate str1 and str2 and return the result in $TEMP. copy(nr,str) copy str into string variable nr (1 to 10). compare(str1,str2) compare str1 to str2, return true if equal. drop() drop DTR. dial(nr) dial number nr (1 to 10), returns true if sucessful echo(str) echo str to the screen. fileselector(path,filename,prompt) show a fileselector with path, filename and a prompt, returns true if [OK] is selected, $PATH and $FILENAME hold the values the user entered. get(instr,time) wait for string instr, timeout after time seconds, returns true if sucessful. hangup() hangup the modem. history(mode) turn history saving on/off (1/0 for mode) inline(mode) reads a line from the keyboard (until is pressed or a maximum of 80 characters are read (^C aborts)), if mode is true the characters are echoed, the line is returned in $TEMP. input(prompt) prompt for a line of input, result is in $TEMP, returns true if [OK] is selected. kermit(mode,8-bit-mode,filespec) start Kermit filetransfer with: mode (string): 'SEND', 'REC' or 'GET' 8-bit-mode: 1=true,0=false filespec: string with wildcards. loadsetup(name) load a setup file. loadtel(name) load a dialer setup file message(str) display str on the statusline, '' restores the normal statusline. macro(name) execute macro file, returns value of exit function or: -3 : syntax error (line in $TEMP) -2 : not enough stack (macro files nested more than one level) -1 : macro buffer full (max. 4096 bytes). or(int1,int2) return logical 'or' of int1 and int2. path(str) set GEMDOS path to str. popup(entry,command,name) redefine a popup menu entry run(name,commandline) run a program, returns the return code (negativ numbers display an alert box) reassign(alt-key,command) reassign the function of a 'Alt' key. suspend() displays 'Press any key...' and waits for a keypress. send(str) sends str. set(nr,int) sets integer variable nr (1 to 10) to int. wait(int) wait for int mS * 100 unicommand(nr) execute a UniTerm internal command. xmodem(mode,file) start xmodem with: mode: 'SEND' or 'REC' ymodem(mode,filespec) start ymodem with: mode: 'SEND' or 'REC' Prefix operators (work only before arguments): ---------------- - negate integer value ! logical not " return integer as string . return string as integer (. and " don't know about negative integers!) String constants ---------------- Enclosed in single quotes, escape character '\', every character after '\' equals itsself except: r : \r is carrige return (ASCII 13) n : \n is newline (ASCII 10) 0xx : \0xx is the octal ASCII value 0xx Predefined string variables: ---------------------------- $T ($TEMP) : used for return values of some built-in functions $F ($FILENAME) : see fileselector command $P ($PATH) : " $C ($CURRENT) : current GEMDOS path $V ($VAR) : contains the address of UniTerm's parameter block String variables: ----------------- $1 to $10 max. 80 characters Integer variables: ------------------ @1 to @10 signed 16 bit value Additional features in macro file mode: --------------------------------------- Labels: ------- :1 to :20 (must be first and only word on a line!) Comments: --------- A line starting with # is ignored on input. Additional statements --------------------- if(int) execute the rest of the line if int is <> 0 jump(nr) goto label number nr exit(int) stop processing and return with value int call(nr) execute subroutine at label nr (subroutines can't be nested!) return() return from subroutine ***************************************** * History buffer viewing * ***************************************** Needs at least 25kB of reserved system memory. Start with . Display top of buffer Display bottom of buffer , Scroll line up/down , Page up/down The mouse clipboard functions work the same as in normal mode. //////////////////////// Incremental change list: //////////////////////// V2.0c 002 --------- The default history buffer view mode now displays CR and LF as spaces, this makes cliping stuff from the buffer much more useful, the old mode can still be used with the command ViewHistEOL = 63 V2.0c 003 --------- Fixed a small bug in the mouse code that caused spurious 'Alt' keycodes to be generated. Put the 'GDOS not loaded' message back in, this uses the (possibly invalid) rule that 'graf_handle' will not return 1 as the workstation handle. (As we all know the ST crashes if you try to open a workstation without having GDOS loaded....). To avoid unnecessary contortions in initializing the data structures in the view buffer mode, it now just rings the bell and returns immediatly if you try to view an empty buffer, the same happens if you try to use while in tek mode. V2.0c 004 --------- Fixed a bug in the new Kermit checksum code, the two character checksum wasn't masked properly. V2.0c 005 --------- Saved a few bytes (11 to be exact). V2.0c 006 --------- Fixed a really old bug in the routine that gets filenames out of dialogs, it sometimes inserted the '.' in the wrong place. V2.0c 007 --------- Improved the actual time processing of a ESC character takes (it now takes 0.17 mS). V2.0c 008 --------- Fixed underline cursor. Fixed a bug in the line breaking code for viewing the history buffer. Moved the 'Help' dialog up a bit, so that it hopefully doesn't get truncated anymore on a color screen. V2.0c 009 --------- Fixed a VERY nasty bug in the delete_in_line code. V2.0c 010 --------- -Left and right mouse buttons work normally now for desk accessories and programs that are run from UniTerm. -UniTerm now remebers the last text terminal type selected (it always did this, it just didn't set it when switching by hand). -Fixed XModem checksum bug (just a typo: addi instead of andi), it seems as if nobody ever uses this (and I missed it testing)........ -Fixed autoprint messing up the screen. V2.0c 011 --------- Just cleaned a few things up. V2.0c 012 --------- Fixed minature bug, the device identifcation response in VT200 mode should be: ESC [?62;1;2;6;8;9c (instead of ESC [?62;1;2;6;8;0c) V2.0c 014 --------- Due to the pleas of Marion Hakanson, I put the %if() control statement in to the routine that processes function keys, my luck that I don't have to show the code to anybody........ V2.0c 015 --------- Fixed some problems that were due to UniTerm not cleaning up properly after fatal errors early in the initialization. V2.0c 016 --------- Tiny cleanup..... ************************************************************************** ReadMe for UniTerm V2.0d 005 <-| ---------------------------- | 28.5.88 |This number is displayed on the 'About UniTerm...' dialog box and indicates the "Edit Number" Changes 2.0c to 2.0d -------------------- General: Setup file format changed! (I'll see if I can kludge up an utility to do the transformation, wont be as easy as the last time). 30 user-programmable function keys: - - - The maximal length of the function keys is now 65 characters instead of the old 68 characters (I hope this doesn't cause to much trouble). Nearly all the keys of the arrow key block can be reassigned with the 'reassign' macro command, the special codes for the keys are: = -1; = -2; = -3; = -4; = -5; = -6; = -7; = -8; = -9; = -10; = -11; = -12; = -13; (BTW, I never documented this, but sends ESC[H now everybody who wants to can assign to Scrolllock (ugh)) Additional commands are: ClearTextScreen = 64; Exit = 65; ExitImmdiatly = 66; StartSLE = 67; has ClearTextScreen as default binding. Statusline: in the [Terminal 1] dialog, the statusline can be configured to be totally off, normal or hostwritable (VT3XX compatible). Dialer: timeout now user setable, the strings Fail 1 and Fail 2 are not used by the current implementation of the dialer (but will be used in the upcoming Shadow (tm) support). The first time you load an old dialer setup file, the new fields will be filled with garbage. A '/' + one digit in the name field will set the the speed of RS232 port BEFORE dialing the number Baud /0 19200 /1 9600 /2 4800 (/3 3600) /4 2400 (/5 2000) (/6 1800) /7 1200 (/8 600) /9 300 (the entrys in parantheses are not really supported in UniTerm). Avoid using characters after the first digit, as this feature will probably be expanded to allow you to set ALL RS232 parameters (the string would look something like /bdsf b = baud, d = data-bits, s = stop-bits, f = flowcontrol if you would like this feature, drop me message) File replay: aborts (was ) ASCII send: aborts (was ), any other key calls the 'Help' screen. Macro processor & dialer: pressing any key now causes the 'get' macro to terminate (the same procedure is used by the dialer), the character is not read! Main advantage: should cause the execution of a macro file to stop straightaway. Text terminal emulation: ESC[0$- No statusline ESC[1$- Indicator statusline ESC[2$- Hostwritable statusline ESC[0$} Enter main display ESC[1$} Enter statusline If the statusline is not set to 'hostwritable' entering the statusline will cause no text to be displayed. Nearly all commands of the text terminal emulation work in the status- line, IMPORTANT changing attributes, modes and character sets effect the main display aswell (like they do on a real VT3XX). Commands that do not work: Save and restore cursor (ESC8 ESC7) Test pattern (ESC#8) All DEC private mode set and reset commands (start with ESC[?) Set scrolling region (A number of commands are modified do that they do not move the cursor out of the statusline, this is transparent for the user (in fact you can run vttest in the statusline without all too wierd effects)) Changing the terminal type will leave the statusline, as will soft and hard reset. Functionkeys: the host programmable function keys are now mapped to - - this is more how a real VT2XX works, so no flames please.... Graphics terminal: left and right mouse button will now work in GIN mode, the character they send is definable in the [Graphics] dialog. Macro Processor & Terminal: New macro command: LOADFONT(index,filename) index (integer) : which font to overload, currently defined values: Index Font Size (B) 0 Special 8*16 2048 1 Special 8*8 1024 2 Normal 5*16 1280 3 Normal 5*8 640 4 Special 5*16 1280 5 Special 5*8 640 6 International 8*16 2048 7 International 8*8 1024 8 International 5*16 1280 9 International 5*8 640 10 Tek 6*11 1056 filename (string) : complete path to the UFT file A UFT file is simply just the data part of a normal GEM (tm) font file, CAUTION: no error checking is done! Do not try to load a font of the wrong size !!! I would to use fonts 6 to 9 for self-designed fonts. ---------------------------------------------------------------------------- Incremental change list: ======================== V2.0d 004 --------- All 30 F-Keys can be programmed from the host, the key numbers are: = 47 = 17 = 29 = 48 = 18 = 31 = 49 = 19 = 32 = 50 = 20 = 33 = 51 = 21 = 34 = 53 = 23 = 59 = 54 = 24 = 61 = 55 = 25 = 62 = 56 = 26 = 63 = 58 = 28 = 64 Example: ESC P1;1|17/21 54 65 73 74 ESC\ loads with !Test V2.0d 005 --------- Fixed a minor Kermit bug. **************************************************************************** `F o"h#l#p#t,IHc.N//Bg?<JNA ByxN5NV?.?. ?. ?.?.?.?<NNN^ _ NNV/.?. ?<NNN^ _\NNV/.?. ?<NNN^ _\NNV/.?<HNAN^ _XNNV/.?<INAN^ _XNNV?<NNN^NuNV?<NNN^NuNV?<NNN^NuNV?./. /.?<NNN^ _ NNV?.?. ?<NMN^ _XNNV?.?<NNN^ _TNNV/./. /.?<NNN^ _ NNV?<NNN^NuNV?<NNN^NuNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?<%NNN^NuNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?< NMN^ _TNNV/.?<NAN^ _XNNV?./. ?<GNAN^ _\NNV/./. ?.?<@NAN^ _ NNV/./. ?.?<?NAN^ _ NNV?./. ?<NAN^ _TNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV?.?<NAN^ _TNNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?< NMN^Nu/,HNVA4-H09JrAW69 CBd t=B` 49=B0.N^,_Nu/,HNVA$-HA C%Pp"Q/9%PN,N^,_ _N/,HNVAZ-H n-H"n-I ")L!A")H!A2)P1A 2.1A4.1B6.1C8.1D:. 1EN^,_ _N/,HNVA$-H n//. BgBgBg?<?< VNdN^,_ _PN/,HNVA$-H n//. BgBgBg?<?< VN,N^,_ _PN/,HNVA$-H n//. BgBgBg?<?< VNN^,_ _PN/,HNVA*-H n//. ?<?z3l|3br3T`64<3H8<3Pz@3>|3lr 3bp3T09JR@3Fr34.vCf$Hy#/.BgBgBg?<?< NN`$Hy# y#/BgBgBg?<?< NNA$"Op"QNN^,_ _TN/,HNVA-H/9%PN,NhNAN^,_Nu/,HNVA-H/9$N,?< NN^,_Nu/,HNVA-HNrAfN?<:?9FN09(@d"AO"OpQN`AtO"OpQN09#@d"AHO"ON`A$O"ONNN^,_Nu Caps Meta /,HNVA-H n p02.tB@g r0=A2.vC@g 0r=A2.xD@gr0"n".2$n".z<<F42vCW29(A8p;@]8|DF^ÊCEBd|4vxC\4:<E_ADd 2A42.Ad&y#2r2`&y#2r224<B22.Adr080<@2`r0N^,_ _N/,HNVAZ-Hp3br3`t23nHyL?<?9FNRp36BgN?<Np3V29J3Tt3R69V3j89T3lz3N|3L09P3J3Ht3#BgN3FAC6r30t3(Npp3 r3t3?90N_p3r3tBgBgBg?9D?9BNސ yN-H09DR@1@09BR@1@09DR@rH1@p1@ "y#41B 3t3v3>x3N^,_Nu/,HNVAV-HN?<?9FN?<N?<N?9N09J29j??9D?9BN N^,_Nu/,HNVA:-HNrAm*NNvA R"O2p"QNN2N^,_ _RNNV?.?<NMN^ _TN/,HNVA.-HA,O"O$p#QNr?<NNN^,_NuHolding, Press any key to continue../,HNVA-HNN`V09FAHp?9F?9FNR`BN09.`JATCpQ`DA6CpQ`,ACpQ` @g @g @gNHz?< NHz?<NHn? V0(rNAft,O"ON`4(O"ON` V0(`pw1@`px1@`py1@`pm1@`pt1@`pu1@`pv1@`pl1@`pq1@`pr1@`ps1@`pM1@`pp1@`xpn1@`npP1@`dpQ1@`ZpR1@`PpS1@`F @Jgd @Ng@c @b,@0;N(2tD1B`4tC1B`*BH BbB4; N 49JxDgR:9Ed zO1E`z[1EN??09(F@3(69#CeBgNڨ3F`?<Nږ3F`09#F@3#NNNN^,_Nu/,HNVA-Hp3N8-@2.=A4.=B6<C=BxDzEV|29#|Ag NN 0.2<AmAtBg?.?<N/ NN`|09 |vCgDN-@rHg,t? .6<H(.:<Hȅ/ NNV`,NˆrAf?9 N`?9 N09|2.4<BvCV|DfHy NN09|2.4<BvCW|DfHy NNn0.rAV69.xDVEBdNp=@2.=A`?<N^29@A3d49>Bd HydN09J`b?9dN`x?9dN`h?9dN`X?9dN2`H?9dN\`8?9dN&`( @ b @0;NRn0.no6N09@d09@d ?9N؎N^,_Nu/,HNVA-H?< N/9/.N 9X/?.N 9\/BgN 9P/BgN 9r Ё/?.N 9r Ё/?. N?< N֨N^,_ _ NNV/./. /.?<NNN^ _ N/,HNVA-HA%xQ"O""A%pQ"O""A%hQ"O""No/9|?9?9?9N/9$N,NJ/9#/9#/9#N^N:NP yzNN^,_Nu/,HNVAl-HNHzv?<NHn ?| (?p (r (+t()v(x(z(!| ('p(r(*t(v(x(z((|(0pB(\r=A`0.@xS@2.ASAA'0.@ 2.ASAC(0.H/HnNk0.@ N?<#?(AC(|Q|&(ArC(p'(AVC(r((A:C(t(AC(vQN^,_NuResetF3F2F1SaveClipInsertReplayHelpDiskTransferAh#zA~C!It0B BABt0B  A0B BN3jrAmHxHy#NHxHy#NHxHy#Np///N$## @"##"@$)##$@&*##x/HyNNp/HyJNp/HyFNHy%xHy%pHy%hNoHyzNAzC2p"QNHyz?NAN^ _TNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV?.?<NAN^ _TNNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?< NMN^Nu/,HNVAF-H0.rAf n49P0"n 49l2` n49>0"n 49b2N^,_ _ N/,HNVAf-H09`A20p@f&09P29bAR@??<N<=@`"09>29bAR@??<N<=@0.N^,_Nu/,HNVA$-Hp3br3`?<?<NN^,_Nu/,HNVA@-HNLBg?9%?9%?9%NX?<?9%?9%?9%NXN^,_Nu/,HNVA@-HN?<?9%?9%?9%NXBg?9%?9%?9%NXN^,_Nu/,HNVA,-HHn 09T29`AR@?N 09H29`49VB6. C89jĐA=@?<?9N29`SCC??9J??9N29`SA??9J?N 09T2. A=@49`=B=@`:0.2.4. BCAEC2pb"QRn0.no2.RAAHp2.RA??9TNRp3b??9`NN^,_ _TN/,HNVA-H"V ip02. 3N^,_ _TN/,HNVA^-H0. ` np0`F np0`: np0`. np0`" np0`?< NNv`?< NNh`?< NNZ`?< NNL`?< NN>`?< NN0`?< NN"`?< NN`?< NN`?< NN`?< NN`|`x @'g@0 @bD@0;N".Tb~:F b @!g@ @"g* @)gL @*g``N^,_ _\N/,HNVAX-H09`A20p@f?9b?9`N`"09bHS@?ND??9`NN^,_Nu/,HNVAn-H09`29TAf@49NvCf?9V?HyLN`?9V?HyLN`49JBlR@3`N"N^,_Nu/,HNVA$-Hp3bNh?9b?9`NN^,_Nu/,HNVA|-H0. 2.=@4.SB=B6.@=CB=C89`SD:9j=D?<@?????.???N ?.?.?.?9jNN^,_ _PN/,HNVA-H09`CA-H?. N?N.=@ Hn N n?HnHnNv?9b?.N.=@??.?.?. N0.=@2.4. B=A`d0.2. A=@ n4."nv)C nB"n@0)1@ n0.r A n@p1@Rn0.noN^,_ _TN/,HNVA`-H0.2.A4. =@SA=AB=A69`SC89j=CzEo?<?.???????N N^,_ _\N/,HNVA-H09`CA-H?HnHnN?9b?.N.=@??.?.N609P=@2.RA=A`D n0."nS@p)@ n0.@"n0.S@@0)1@Sn0.nlN^,_Nu/,HNVAb-H?. N?N.=@ Hn N09`CA-H?HnHnN6?9b?.N.=@2. 4.=AS@=@A=@6.–@=C89`SD:9j=D?<?.???????N ?.?.?.?9jN09P=@2. 4.B=A`D n0."nS@p)@ n0.@"n0.S@@0)1@Sn0.nl29`AHp?.2. 4.BSA?NN^,_ _TN/,HNVAP-H09b=@29`=AHn N0. rAo"49`CA -H?HnHnN?9b?.N.3b2.@RA=A4. Ao A=B ` =Br=A 2.4.=AS@=@69`SC89j=C????N09`AHp?9b09b2.AS@?N0. rA^69`89JD]EBdt3bRC3``=A 0.3b4.3``N^,_ _TN/,HNVAv-HHn Np=@2. =A`H09bR@3b@Aj2009b49PB^ÂCAd?9bND3bRn0.noNN^,_ _TN/,HNVVA-H0922<Aft1AX`(4<Bfv4AX`v5AX49vCf x1=DV`x2=DV:94`AC`A|C`zAbC`dAJC`PA4C`?<?9N:9`SE??9J??9N:.SE??9J?N 09T=@2.=A`:0.2.4. BCAEC2pb"QSn0.nl29`AHp?9`2.SA?NRp3b??9`NN^,_ _TN/,HNVA|-H09`CA-H0. `@?HnHnN?9b?.N.S@2.?09`S@49j?N2.??9jN09`AHp?9b?.N.??.N`?HnHnN.Bg09`S@29j??9b?.N.2.??9jN09`AHp?<?9b?.N.?N`X0=@29`CHq?9`?9`NR n0.0`` @g @g: @g`N^,_ _TN/,HNVA-H0. `09`29JAg$R@AHp09`R@??NRBgN 09brAf49`vA1 `b09`rAgHyL?S@?NR?<N`6HyL?<?9JNR`` @gN @g @g`N^,_ _TN/,HNVAv-H0.S@=@2.=A4.CA -H?HnHnN8?.?. N.=@ 0.2. Al n@0(4<BvCg0.8.SDDg28.?0.S@:9j?0.S@<.F??N n0.@0(2<AtBV0.8. D_ECd R@=@`0.S@=@`( n0.x D n@1C0.R@=@`* n0. @0(2<AtBf40.6.?0.S@89j?0. :.E??NN^,_ _\N/,HNVAp-H0. `P?9`?9b?9PNJ`J?9`?<?9bN2`2?9`?<?9bN`` @g @g @g`N^,_ _TN/,HNVA-H0. `?9`?9b?9PN09`R@=@29T=A`?.?<?9PNRn0.no`09V=@29`SA=A`?.?<?9PN\Rn0.no?9`?<?9bN:`Vp=@29J=A`?.?<?9PNRn0.no`` @g @gd @g`N^,_ _TN/,HNVA -H0. rA\69JC_D=B0.N^,_ _TN/,HNVA-HHnN0. rAf 49J=B ?. NN2. 4.B^C/?. NNv& C@d0.3V2. 3Tt3N69jS@3L09P89l3J:9VERA<9j3Ht3b69tCd 3`` v3`??9`NN^,_ _XN/,HNVA-H?<?<Np=@29J=A`@?<?.Np=@29P=A`?<EN6Rn0.noRn0.nor=A09J=@`h0.CA-Hp=@29P=A`( n0.rEA n@091@Rn0.no nr0Rn0.nor36NN^,_Nu/,HNVA-H09`H/HnNk09bH/HnXNkNp??1;17;0c[?1;2c[?6;2c[?62;1;2;6;8;9c2;0;3;/,HNVAF-H0. `AC2"""`$AC2"""`AC2"""`AnC2"""`AJC2"""`A&C2"""`AC2"""`AC2"""`AC2"""`tAC2"""`^ArC2"""`HANC2"""`2`.S@ @ b@0;N "8NdzN^,_ _TN y`igjnhtdv|{ IDVE\ idve| #'!Q? 0qg CGU cgu FXE fxe #'0gi y`rhl 'DV\ dv|_ `bgjn tiyh{ #`0g' iyh DVE\ idve| #.}= > # /,HNVAB-HA$C%Pp"QA$`C%8p"QA$HC% p"QN^,_Nu/,HNVA -Hp382. ` NN` NNp38?9Nl`A$C%Pr"QA$0C%8r"QA$C% r"Q`jA$xC%Pr"QA$C%8r"QA#C% r"Q`*`& AbA2;NDjN/9%PN092?<N6?<N?<N?<Np3Hy ?<BNrHy?<BNdN^,_NuNV?.?. ?. ?.?.?.?<NNN^ _ NNV/.?. ?<NNN^ _\NNV/.?. ?<NNN^ _\NNV/.?<HNAN^ _XNNV/.?<INAN^ _XNNV?<NNN^NuNV?<NNN^NuNV?<NNN^NuNV?./. /.?<NNN^ _ NNV?.?. ?<NMN^ _XNNV?.?<NNN^ _TNNV/./. /.?<NNN^ _ NNV?<NNN^NuNV?<NNN^NuNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?<%NNN^NuNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?< NMN^ _TNNV/.?<NAN^ _XNNV?./. ?<GNAN^ _\NNV/./. ?.?<@NAN^ _ NNV/./. ?.?<?NAN^ _ NNV?./. ?<NAN^ _TNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV?.?<NAN^ _TNNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?< NMN^Nu/,HNVA-H n -H0( rFAA1@ N^,_ _XN/,HNVA-H/.?.N۬-@2.=A=A0.rAgj n-H4(6.Cg6=@=A/ N"h hN n0(=@rAf4=B` =@4=B/.?.N۬-@`N^,_ _N/,HNVA-H/. BgYHyf N2N^,_ _XN/,HNVAh-H"V i-H0(rAtBgJ0( Af 1B `1A /)?)?<0)R@?0)R@?0)U@?0)U@?NY^N^,_Nu/,HNVA-H V/(Bg?<?(?(N[ V1@rAfFt1B V/(BgN۬ V!@"@-I2)1A4)1B6)1C8)1D`V V/(?(N۬ V!@"@-I2)4(B1A6)8(D1C:)1E<)1FNp V1@N^,_Nu/,HNVA:-H?< V0(S@?0(S@?0(T@?0(T@?/./. N\N^,_ _PN/,HNVAj-H0.rAf4. J=B`t=B6.BxDn =A`06.:. BE:.Eo6. C=E` 6.B=C0.N^,_ _PN/,HNVA-H/.NHnHnN/.BgN۬-@ @-H/?.?9D?.?( NN* _1@0(=@/?. ?9B?.?( NN _1@0(=@2(=A4(=BNj0N//9v NN~Njt/.Bg?<N NNprA??<?<?<B?.?.?.?.?.BgBgBgBgBgHyHnHnHnHnHnHnNk=@rAtBg0.@d NN NN0.rAtBgtNj0/9vN/ NN/.Bg?<?.?.N[=@0.N^,_ _PN/,HNVA>-H/.BgN۬-@ @-H?. BgBgBgBg?(?(?(?(NO N^,_ _\N/,HNVA*-H/.?<NNjt/.?. NO=@0.N^,_ _\N/,HNVA-H/. ?<NR/. NPN^,_ _XN/,HNVA-Hp0Ar=A .rHoF4.RB=Bv //N&-C//< N&@0A .-@`0.=@`$ n 0.2.AR@pC1Sn nl n 0.N^,_ _PN/,HNVAN-H np=@2. SA=A`&?<0?< n/?&<:9DRE?Nr/NJNN:M3 V|3 b09 LS@3 `r3 tt3 rv3 p8< /3 nz3 NN^,_Nu/,HNVAH-HN09J29FAg(tBfNNhp3 |`NۚN`:N^,_Nu/,HNVAT-HNp=@`:?.0.@A?00.@C?10.@E ?2NXRn noN^,_ _N/,HNVAP-Hp=@`:?. n0.@/ n0.@/ n 0.@/NRn noN^,_ _ N/,HNVAr-HA%Q"O""A%Q"O""A%Q"O""N?94090?29249B69C??3D4(@36(B38(:3N:(<3 >C2|"Q nXC2|"Q nX<(3H0(3J2(3LH/HyNN nXDC2p"Q nX0(3 \Cr"Q nX2(3Ct"Q nX4(36(3@Cp8<"Q y#"nXx Q y#"nXx Q y#"nXx Q/9#/9#/9#N|-@\ nX2(34(36(38(3:(3<(30(3#2(3#4(3#6(3#8(3#:(3#<(3#0(3#2(3#4(3#6(3#8(3#:(3"B<(3"<0(3 J2(34(3 `&(#((#:(3 <(30(3(C%"" nXC%"" nXC%"" nXClrA"Q nXCp2r"Q nX2( 3 H$(#6(38(3:(3 <(3 `?<N? NN`?<N? NN?<NHn`NN^,_ _RNV2.0d/,HNV\AP-HA`BXB BBgNHn`Hn ?091@@491BB69N1C:89 1D0z Q n\C0z Q n\:9H1E<9J1F29L1A09 \1@Ct Q n\491BCv Q n\691CCD0x Q n\89@1D"y#z Q n\"y#z Q n\"y#z Q n\Cp:< Q n\:91E<91F291A091@491B691C89#1D:9#1E<9#1F29#1A09#1@49#1B69#1C89#1D:9#1E<9#1F29#1A09#1@49"B1B69"<1C89 J1D:91E<9 `1F"9!A 9!@49 1B691C89(1D/ n\/ n\/N n\ClpA Q n\Cp0p Q n\09 H1@ "9!A491B691C89 1D:9 1EHn`NHNrAg ?<N??<N` ?<N?Hn`NN^,_ _RN/,HNVAH-H/.?.HnNS n NHn?0.>rAVvCVDBd| NN/9T?< N@d p=@<`&/9T?< N@d p=@<`p=@< NN`p NN60.>rAfA@Cp4<"Q/9TNNj0N^,_Nu/,HNVAd-H/9?. VHhNS VHhp/HzFBN{2Ad&"n / VHhN"_2<HH@2`"n 2N^,_ _\N/,HNVA-H?< V0(@CHqNbN^,_Nu/,HNVA-H?< V0(@CHqN4N^,_Nu/,HNVA-H0.H/ VHhN VHh?<Nr/9?."VA$Op?$Q?<BgNR<0. rAg"H/ VHhNp VHh?<N `Ap$VC/9?.ATO"OAp=@`|p =@`rpd=@`hp=@`^p=@`Tp=@`J @g @ g @ g@ @b@0;N @ g @ g @ g?.Hz@?<N~0@dXp=@2.4.BJAjDA6<HHA=A NN/9?<?<N/9?< ?<N`T0.2.AJ@jD@4<HH@=@v=C NN/9?<?<N/9?<?<N/9?.NO=@`v NN* NNR0.r1Af@ACt"QACt"Q/9?<&HyNt/9?<(HyN`/9?<*HnNNACN2p"QHnN3L/9?<Nz@dp3J` p3J/9?<$NRF@3/9?< N-H/.?.HnNSp.rAf n t.0` n t0N^,_ _ N/,HNVAF-H/.?.p_O OrXO O4. O O?<BgNMN^,_ _PN/,HNVAZ-H/9|?.AVO"OAO"O p QA "Op?"Q?<BgNMN^,_ _XNFFFFFFFFFFF________.___/,HNVA-H/.?. n /N n prAo?<.??<?< NN0?<?< NN"?<?< NN?<?< NN?<?< NN?<?< NN?<?< NN?<?< NN?<?< NN?< ?< NN?<!?< NN?<"?< NNN\p30?N_N/9lNJNj0N^,_NuXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________/,HNVA-H n 0=@2(01@N^,_ _XN/,HNVA$-H/9?.N@d 0. 3JN^,_ _XN/,HNVA-H/9?<NR329F|//9?<)N2"|@g:09FF@3FHy% NN8Hy% NN,Hy% NN N>3/9?<N*3/9?<3N@dp3`*/9?<4N@dp3` p3?<?< NN(?<?< NN?<?< NN ?<?< NN?<?< NN?< ?< NN/9?<Nz@dp3N` p3NN^,_Nu/,HNVA0-H0.@d/9?.Nl`/9?. NZN^,_ _\N/,HNVA-H/9NΚ09rAf t3=B`tBf v4=C`v5=C/9?.N09@rAW??<?< NNJ?9F?<)?<( NN6?9B?<,?<- NN"?9D?</?<0 NN?9?<!?< NN?9?<$?<% NN?9?<?< NN09J`>p=@`Vp=@`Lp=@`Bp=@`8p=@`.p =@`$S@ @b@0;N/9?.N09NrAW??<?< NN@?9?<?< NN,09rAW??< ?< NN/9BgN6r6Af NNN/9N\Nj0N^,_Nu/,HNVA-H094`>p=@`Vp=@`Lp=@`Bp =@`8p=@`.p=@`$ @b@0;N/9?.N090rAf t =B`tBf v=C`v =C/9?.N0922<Af t=B`4<Bf v=C`v=C/9?.Nh09rAf t=B`t=B/9?N>09rAf t=B`t=B/9?N09.rAf t =B`tBf v=C`v=C/9?.NN^,_Nu/,HNVA$-H/9?.Nx@d 0. 34N^,_ _XN/,HNVA-H?<Bg NN?<?< NN?<?< NN?< ?< NN?<?< NNv?<?< NNh/9?< N@dp3.`*/9?<N@dp3.` p3./9?<N@d0<32`./9?<N@d0<32` 0<32/9?<NX@dp3` p 3/9?<N0@dp3` p3/9?< N@dp30`*/9?<N@dp30` p30N^,_Nu/,HNVAZ-H/9NL NNv/9BgNvr!Af" NN2N|09@@d ?<2NI/9N͆Nj0N^,_Nu/,HNVA&-H/.?. HnNSHnN=@0.N^,_ _\N/,HNVA`-H0. H/HnNL/.?.ALO"OA8O"OA"Op?"Q?<BgNMN^,_ _PN99__/,HNVA0-H0.@d/9?.Nߺ`/9?. NߨN^,_ _\N/,HNVA<-H/9N/9?<?9N/9?<?9N?9?< ?< NNh092<AW??< ?< NNJ09rAW??<?< NN./9?<NˠrAf/9?<NT3/9?<N@3/9?< Nވ3/9?< Nt@d0<3` 0<3/9?<NH@dp3` p3/9N@Nj0N^,_Nu/,HNVA-H/9NƜ09"B@d p=@`p=@/9?N09"<@d p=@`p=@/9?N09#rAf t=B`tBf v =C`v!=C/9?.Nݪ/9?<?9#N>09#H/HnNʖ/9?< ABO"OA(O"OA"Op?"Q?<BgNM/9?<?9#N/9?<?9#N/9?< ?9#N/9?<?9#Nn/9?<?9#NZ/9?<?9#NF/9?<09#?N0/9?<N4r"Af>/9?<N3#/9?< N3#Hy#?<N /9?<N3#/9?<N3#/9?< Hy#NR/9?<Hy#N>/9?<Hy#N*/9?<Hy#N/9?<HnN0.3#/9?<Nx3"B/9?<Nd3"O"OpQA "Op?"Q?<BgNMN^,_ _TNXXXXXXXXXXXXXXX_______________/,HNVAZ-H/9d?.^AnO"OpQA>O"OpQA "Op?"Q?<BgNMN^,_ _TNXXXXXXXXXXXXXXXXXXXXXXXXX_________________________/,HNVA-H/9dN A%-H/9d?<6?(.N2/9d?<< n?(0N?<?<?<?< NN2?<?< ?< ?< NN?<?<?<?< NN?<?<?<?< NN?<?<?<?< NN?<?<?<?< NN?<?<?<?< NN?<?<"?<#?<$ NN?< ?<&?<'?<( NN?< ?<*?<+?<, NNl/9d?<.AO"OpQAvO"OpQ n̞"Op?"Q?<BgNM?<0 nR"O2p"Q NN?<4 nR"O2p"Q NN/9d?<2AO"OpQAO"OpQ n"Op?"Q?<BgNM?<8 nR"O2p"Q NN?<> n2R"O2p"Q NNb?<@ nBR"O2p"Q NN>/9d?<Nr9Af n//9d?<6Np _1@.//9d?<HnN nNHn?@0;Nt22t222222222222222/9xBgNO=@` 0.r!AfP/9NrrAf> .JjD3$.v #(.#*.#N/P0.Hnr/HzBN{^4B@d,AO"O p QHnN\@e`:0.2.A@dN NNLN`Njt NN6Nj0N0. @d$/9tBg?<N/9NJz`0?9:?98?96?94?92N_?<N~0.rAl D@?NL0.=@0.N^,_ _NCommandline:.TOS.TTP/,HNVA~-H/9?<!09rAW?NH/9?<"09rAW?NH/9?<$09rAW?NH/9?<#09rAW?NHN^,_Nu/,HNVA-HA,$VCTHjNN VHh?(N 6\FFNjt0.rAtBV0.R@Cd$N_TrAW=BRBe?<p?N:0.R@dNj0N09JrAf?<N`"/9~/9~?H8>L8>H8>QN _"_6:pSCX|f @QN$|x2IAAAH82@QNHz ?<&NN\Nu##Nu#NuHz`p0/HNuNu _#N#  <(Nu3/9Nu09ByNu _#N#  <bNuJ@gJyg3p/9Nu _3N09ByNu <NuNV?.?. ?. ?.?.?.?<NNN^ _ NNV/.?. ?<NNN^ _\NNV/.?. ?<NNN^ _\NNV/.?<HNAN^ _XNNV/.?<INAN^ _XNNV?<NNN^NuNV?<NNN^NuNV?<NNN^NuNV?./. /.?<NNN^ _ NNV?.?. ?<NMN^ _XNNV?.?<NNN^ _TNNV/./. /.?<NNN^ _ NNV?<NNN^NuNV?<NNN^NuNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?<%NNN^NuNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?< NMN^ _TNNV/.?<NAN^ _XNNV?./. ?<GNAN^ _\NNV/./. ?.?<@NAN^ _ NNV/./. ?.?<?NAN^ _ NNV?./. ?<NAN^ _TNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV?.?<NAN^ _TNNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?< NMN^Nu/,HNVA(-H0929A49NtN^,_NuNV?<NAN^Nu/,HNVA-HHnBgN=@r=A0.rA0tBg"n r0R@=@` n 0.S@N/N _@A??PHnPBgNB=@rAoh?t/HnNp=@`&?.?PHnBgNn3rAot3` ?<N?`:tBf2v3?9N 9#?9NJp3N093N^,_NuStart file collect[1][Start/Stop file capture][Start|Stop|Cancel]/,HNVA4-H09JrAW69 |xDWEBdNp3 |N^,_Nu/,HNVA6-HA8O"OpQ?<NkrAW=BN80.N^,_Nu[1][Abort ?][Yes|No]/,HNVA-H 9##N^,_Nu/,HNVA<-H .". ] V6(FCCBdt=B .". ]6.xD_EBd49J`HnNd?N`HnNd?N`zHnNd?N`dHnNd?N2`NHnNd?N\`8HnNd?N&`"YB BbtB4; N ~h0.R@=@`(?<N@d*N?<N*rAfNJ V1@`N>`N^,_ _PN/,HNVA-HNACHyHnAO"O p QBgN@dAR"O2p"QHnN>PHnBgN>=@r=AtBoVN?./9/9N-@"9Ҁ#/9/ NN ."9谁]6.CBd` ?<N?NNN^,_NuReplay file/,HNVAf-HA R"O2p"QHn N>PHn BgNz=@rAo$?.Hx?. N/N#` ?<N?N^,_ _N/,HNVAX-Hp=@r. =A`609LH/Nn0.rA 0O"ONRn0.noN^,_ _RN/,HNVA-H0. r Aft3`t Bf69Cd69H`O ON`O ON`O ON09LH/Nnp O ON`Xv O ON09LH/Nnp O ON` CbC6;0N0xbL`O ONp3N^,_ _TN/,HNVA-H VHh("Wp)1@ /N|X09@e V0( @C211A V0( rAg^t BWx DWņECd ?Nb`@69CdO"ONp3 V0( O"ONN^,_Nu/,HNVAd-H09JrAfL V4( 6(CWzE_ƈF/HxN("9\ˆBDd VNp /N'` VNN^,_Nu/,HNVA-HA(BXB BACHyHnAO"O pQBgN@dzBgNHn(Hn?@d~?<N\29@A=@tBVxDVECdV69>Cd HnN0.O ONV0.rA04.Bf R@=@`r=A?<N2.4.BW(9zHŸVHHxN"LI$9\DFC@d,0.2.AW=C0.N^,_ _TN/,HNV An-HA*BXB RBBgNHn*Hn ?`"v=Cx=D?<N=@r AVvCVDBdtBVzEVFDd08.RD=DHn?<PN 0.2.A`Bg0.S@?N<=@r=A4. vCfO ONV`t=B0.@dT0.`Z NNA R"O2p"QHyN\=@ NN`& NNNR0.rAW?NAC"2p"QA"C#2p"QHn p/Hzr/N{^4BdN>@dNxJ` Hn /Hzt/N{^6?Nk NNH`A R"O2v"QNtNpR`^A R"O2v"QNz`B?. A"Ov?"QN`$Hn v/Hz8BN{8Dd A R"O2x"QN`NN`N:2< Ho$A R"O2p"QN=@`p=@`6. xDVŴDVƊF=E`A R"O2v"QNB`fHn ?<N 0. 2.A( NHn?`A R"O2v"QN`l6. CA10`X6. dH/Nn`B NNAC"2p"QHn p/Hz@r/N{^4Bd2N>@d"A"R"O2p"Q?<N0`Hy"?<BgN9 NN` NNXAC"2p"QHn p/Hzr/N{^4Bd NAD`NB NN2`l?. N`^`ZSC C!bC6;0N0ft *6Fd$ "lL0.@dp=@0.N^,_ _NGETSEND/,HNVAp-Hp=@2.`=At. =Bv=C0.2.A_6.FCCBd 4.^vA 0CW=DR@=@`0.@d 0.S@=@0.N^,_ _VN/,HNVA -Hp=@r.=At=B6.bRC=Cbx=D0.b2.A_6.FCCBdtA0=Bv'CW=DDex\Df~AgxR@=@bz0=EtnBf| =F:.|rFfv =C6.z0Ef0.=@?. NN<`<0.=@`00.=@`$?. NN` @g @g @g```p=@NHnN?<NHnN0.N^,_ _RNExecuting: /,HNVA-Hp=@0.rA^v. C_DBdtA 0=Bx%Dfj0.R@?Hn HnHnNN=@rAgB4.vCf8.Af=A`$?.A"O2p<"QN3F`O"ON0.rAgR@=@`@N^,_ _RN/,HNVA:-H09 @d/. /. ?pO ON`/9~p/?N09JrAf?<'NV` ?<'NXNv/p/?Nʔ`ZAR"O2p"QN`:HxBgN\`,?<N(` Hx ?<N@` NNHnXHnAbO"OpQBgN@dTAR"O2p"QHnN>PHnBgN˦=@RrAo? NNJ` ?<N??.RN˰` NN`~09 F@3 `lN8`dNҶ`\N`TN:`LBgN>`@A'R"O2p"QN(`"0. @R@?N=@P` N`V/9~p/?N|N>?<NNN>/p/?N\`"A>O"OpQ?<NkrAW3p3h`p3`N"9~f N` ?<N?`` @m @"o @&m @/o6 @0m @9oZS@ @b<@0;N&JTlv:HTd (4 @"g4 @#g| @$g@9 @ bl@0;N&>H,8NN8HnNN^,_ _TN[1][Really exit?][ Yes | No ]Save clipboardDelete fileEnter path:Save history bufferPrinting _2I"| 1N D$,v06& _(_&_$_"_"#$,&0v(5(_&_$_(L&t$(_&_$_"_"8$& (DN 132 Font 16 Scanlines by SPoole UUUU P #(-27<AFKPUZ_dinsx} "',16;@EJOTY^chmrw| !&+05:?DINSX]bglqv{kZֵkZֵkZֵkZֵR)JR)JR)JR)Jb`kZֵkZֵkZֵkZֵEH3@ayc s8{Γ(FL8JQܼ9`0R)JR)JR)JR)JEHa@={{ޓhF^JQܼ kZֵkZֵkZֵkZֵ a@$fCG;ߥ+BHoRJQT @ bR)JR)JR)JR)J FBN9Œ)BoRJQt @81b)JQkZֵkZֵkZֵkZֵ8 zg Ƽ sҔJQt{JQR)JR)JR)JR)J@8{D sWҔJU' KVRJUkZֵkZֵkZֵkZֵ"@ 8j ĐH8L BVbJU# IVRJUdR)JR)JR)JR)J"@0j LL8ȿ BF"J_s0 yVRJUdkZֵkZֵkZֵkZֵF@ /JLȄ)BHFR"J_s  AFR"J_dR)JR)JR)JR)JF@a!/JH+B%hFR"KS  AFR"J_kZֵkZֵkZֵkZֵa{z/F^%y<ygF^{ۓR)JR)JR)JR)J3c1ctz/FL1<89gFL90kZֵkZֵkZֵkZֵb`R)JR)JR)JR)J 132 Font Special 16 by SPoole  UUUU Py/99Iw;e@ !BR(B)jBR%e@Ԉ !BR(B)Z#BRED3@axc s8{Γ(FL8JQڼ9"AԈ s.A)I#[EDa@=y{ޓhF^JQڼ rAD BR(@B)HP!J a@$&CC;+BHoRJQR @ueķ!BR(@B)HPJRfBF9)BoRJQr @ueJЎ#9z\;9Kw:N8zg Ƽ sҔJQrJ9ß& 1@8 j{D sWҔJU#J!ß$1JR=(;A %NJHs"@ * ̐H8L BVbJU!Eo ß& JR%(AD%$C%IkȄ!"@0/ LL8ȿ BHF"J_q0uDC B>#JR%HAD%$A%)IZ@!F@!/JH)B%HFR"J_q rC B>%0Kb%1G9$AE1NJHF@a!"JH+B%hFR"KQ rB B>&0JR%H D)$A'JH!a{z/F^%y< B8B#|JR)( D%$A$J@!3c1btz/FL1<8 B!l:R=/qD${a$J@w9B B  80 Font________________________ UUUU  B D (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx||xD|||||||8ĀDĀ|Dff>fl`f<<~ ~~<<<<|f~f`f<|<|>~ffff~<`<38@>xxDxxxff~fl 0f~~~ ~<~~~ `~~<~~|~~~f~f`f~~~~~~ffff~0` 883(`0(@f`l88<f8f `0ff~0f~ffn```fl`fffff`ffff 0` 888x 0>0(@f` 8< f8f ``ff0~ffff```fl`vffff`ffp~~f <~| ~> f|`f||n~x`~fff|8ff<0 3~~`0BBBB||~>~|<@<>DD|BD>>>>>0<f l~f`~ ~f`f``ffl`~f~flff00 0 ~|BBBBBH@@@@BB@BHDBbl@@@@@0<0f lff0~~f`f``ffl`nf|flff<00 | X~0BB$$BP@@@@BB@D P(BRT@@@@@f|ff0f0f~f0f0ffff``ffff`nf`fff<<`0 |3 <l6`0B~B`@<|||B@ H`(|JD@<<<<f|f8f`f0f~ff0f `fffn``ffff`ff`jffBBB:D~|@@B<~~<D|BD>||||00  80 Font________________________ UUUU  Bpp`ppppp8plp<<~ ~<~<<`<<|f<f`cf<|<|>~ffcff~<< 0ЀЀDll>f68ff8f ``ff 0ff0 jf|`fxxn~p`k~f|f|<ffk<00 c|3~~xv0by}xxl0o<00f~f0fn~f`f``ffx`cnf`vlff<00 8? 06~|     |ff8f0`f0f ff0f  ~0`fffl``fffl`cff`lfff|f<cf~<<~ $`~     03~  132 Font_______________________ UUUU P6ayc6ayc{8{Γ(FL8JQR8@  B@KLc@8 j cH$1A>8 j cH$ sWJU# @I BVRJQt@jAD / H hjAD / H h BF҆"J_q0y VRJU$"J@cD1JHF8J@cD1JHF8+BhFR$"KQ A BVRbKs 6c1cC6c1cC|z/FL9Q<8g1'VL9PB@  132 Font_______________________ UUUU PqġN11Ig36ayc{8{Γ(FL8QT8%e@!!BRHB)Jj#BKLc@$FBҏ+BHnRJQT rADԈ#cǡLA)JY#sYA@$zL8b BHRJQt ue@& I {-j\Q91A>8J cH$ sWJU' @{9ß#!sv个7滜_o2jAD / H h BHF҆"J_s0uENß!Ia#!%ZHABJ@cD!"JHF8+BHFR$"KS rc B?& ILa" EJ@@!6c1cC|z/FL9S<8 B B#|9R0"8aFJH3B8B! 106 Font_______________________ UUUU `  $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| p3>qy((/ ` !UUUUUUUUUUUUUUUUUUUUUUUUq% 2" "( l("(!  >%@ER"!"( l("(R!@y$#G r(' UUUUUUUUUUUUUUUUUUUUUUUUB@BR" ( ("(QB@('"$"I""(! pF@O q@ ./"(!B (""("I "(R! UUUUUUUUUUUUUUUUUUUUUUUU(@BȈ("A(")"%*P 蠋"8"H"%*"" @">(@EȈ"(" (")"%6P("("$H"%>R" >UUUUUUUUUUUUUUUUUUUUUUUUq  "(  ("(H""6("$"$H"""$ !& qϜqz/"(!" >y$r$ UUUUUUUUUUUUUUUUUUUUUUUU@@   @!7I8016__________________________  UUUU  B$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<xxxx<0200 20 20 >~  <~f f`` fLf?< ff 0ffL 0fLf< 0fff<~f>"$ t8f |~l~< 0fLf 0ff0ffL 0fLf 0fff<0f2c~6 tf##<<<<<>>>>>|~~~~8888~~~~~~gfffffB`0<f$Q~6~<f~ffffffo`````~fffffo~ffff<|`ffffffffffnfffffB<<~~~<<<|>|~~<<~~~<<<|>|~~<`f$Q>l>|~~f<>>>>>`ffff~|@BxxJ H||<>~|@BxxJ<@B@@~~]B2 @~ffffffo~~~~~<<<@b@B BBB@B@@b@B BBB@B@@bB8@B@@~B?@>>>@l>>>>>>>>>>><<<>>>@<~||< <|~@<~||< <|~@<<>|~@<~ <~@ <~~|2I808___________________________  UUUU  B,v````````````````````````````````` ``~<````<8x><0 2f?<0 f0 f20 2f0 ff02f0 f0f20 2f0 ff f6fl t8fl̟fLxfffLfL<f60fL<f0fLfLf:fl<~8ftf6ؘ`~~~<l|xf<6nk <<<>f~~~~ffffffvfffff$0<>>>>>~<<<<<<<>>>   p~NAN^ _TNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV?.?<NAN^ _TNNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?< NMN^Nu/,HNVA4-H?<BgBg09DR@?09BR@?N://9vN\N^,_Nu/,HNVA4-H?<BgBg09DR@?09BR@?/9vN/N\N^,_Nu/,HNVA"-H09#RrAg?Np3#RN^,_Nu/,HNVA-Hp. =@2.tA 0=B0.r:AVv\CVD8.zE^FBdSD=DtA 0@=B`0.@ A#`-Hr=A n0.r(tBVrA_DCd nv(A"\R@=@`0.S@"\NHn ?-Hp=@2. =A`?< n0.r?NRn0.noN^,_ _\NNV?.?<NMN^ _TN/,HNVA-Hp V1@r=A?<N@dV?<N=@29tBf69"ZCV=D` vCf89FD=D`x=D V1@`l?<N:@d0?<NV=@rAW3vCW3̄D=B`0 9rHg HxN"9\3=B0.N^,_Nu/,HNVA-H NN@d0.N^,_Nu/,HNVA0-H/9?.^A "Op?"Q?<?<NRBg?<NzN^,_ _RN/,HNVAj-HN+@d/9?< 9r /N&09rAf49H-B`49H-B/9?</N&N^,_Nu/,HNVA-Hp3#r3t3v389#3#:9#3 <9#3"(09#329#3"249#3"Z69#3"Xx3"::9#3""|3",p3".r3t3v3"&x3"$z3N^,_Nu/,HNVAf-Hp. ??9#N.=@r=A=@`0.rA 0CRn0.no?.`?.^?.HnNMN^,_ _VN/,HNVA-Hp=@2949ʂBAdb29AdHr369H/N'N&09R@3A0O"OrQNp3r=A0.N^,_NuTime Out/,HNVAD-H09@d,A6O"OpQ?<Nk3F` ?<NN^,_Nu[1][User break!][OK]/,HNVA-H np=@0.2.AlR@=@t=B nv89"RDW69">CEd R@=@ nzE=ER@=@ nt:9"TEf:R@=@ ntEg$ n/"n0.r?N _p=@2.=A`" n0.r? N"h hNRn0.no`N^,_ _N/,HNVA<-H"V i 0. R@0)Hr?A@  i 0. T@0)A@ N^,_ _TN/,HNVAz-H?.?.?. n /N`=@2.tBf?. NNp`@6.RC=CxDf n @ ` n z h|?F@ ? NN.N^,_ _ N/,HNVA-Hp=@29"2=A`?<?9"ZN Rn0.no2.tSBf v3":69#C8.D DA:.|^Fo?<?Hn n /N(p @2.49":Bv_HA A8.BHĉHDD D?<?<?<Hn NN?9":?<0.^@?Hn NN|p=@`J?<?Hn n /N(0.@"29":A@??<4.XB?Hn NN0p=@29":A4.B69"XA09"B8.zNEVF@d,09H/N'N=@rAW69̄CBdN&Hn0.2.A49":B?N 0.rYAVvNCVDBd49RB3NPN^,_ _ N/,HNVAT-H09H/N'N"=@NF@2.49#BWÀC@d VNPNT09"N@=A0.N^,_Nu/,HNVAR-H V0(rSAW69":xDVEBd3":49"&RB3"&C R$O4v$QNxN^,_ _RN/,HNVAF-H0. 29#Ao2A8O"OtQ VN^p V1@NPNTN^,_ _TN Bad LEN/,HNVA>-H0.=@2.=A` n 0./ VN _Rn0.noN^,_ _PN/,HNVA>-H"V i $i0R@p@r?AH i 4TBtBAB3@N^,_Nu/,HNVA-Hp3rT=A09H/N'NBrA49#BW/N&@09Ȇ@Cdr=A0.29ȀA@en n / NN _@"np(@20rAf?<?</ NN n p(@=@r(A=At(B=B/?<?<?< n /N`$@g(A*O"OpQ NNp=@` n0._2.A0? NN n0\@0?<?"n / NN ?9":?< n029":A?"n / N`=@ n r`X? NNj n0R@0?<?"n / NN?9":?< n029":A?"n / N`=@ n r"nr(A2r(=A$n469":C449":vCf8RDxD=D`@xDf NNt`. NNj0.H n "n2VArAt?BA=@p=@2.tYBVxNDVECd69RC3N0.2.Af4.=B`AbO"OtQ NN`09@d*09@d pQ=@`09"&R@3"&Nd0.N^,_ _ N Bad ChkBad XHdr/,HNVAF-HHn p/HzBBN{2Ad&A R"O2r"QHn N*Hn N(N^,_ _RN/,HNVA-Hp V(R@=@rTA]6. x D\EBd\=Ct[BW|]FW@p|@WAEdr/=A2.:.CxDW|:FW@BdRA=Ap|AN^,_ _TN/,HNVA-HAC?. n / N/HyUx 3"X?< NNN=@rAg3"4t^SB? NN?< NN&=@29"0Ao3"0?< NN=@rAg3"2 n0.X@p?N3"Z?< NN=@rAg3"X n4.\Bt=Bp @g3"T6.^C=C n 4Cm|"nt3"VxNDf":9"DEd?<Np3"D`DzYEg3"R?< NN3" rAtBgx0<3"4v =C09" rAtBg0.R@=@`0.T@? NN6=@rAg0_/2.VA? NN$ B3"42<SA? NNN^,_ _PN/,HNVA-H n /?9#?<^N. _@ @09#@ @09#@ @/09#?N _@09#@ @09#@09"D@d09#@`pY@09""@0@09#@ 09#r^Ao4t*B 09#v_H@ @ 09#HH@@ @ `t(B p @ N^,_ _XN/,HNVAH-H0. 29".SAAW29".vCWz?EWFDBd t=B`=C?<N*0.N^,_ _TN/,HNVA6-H0.rNAW6. 89".RDz@HĉHDDWFxYDWƄF=B0.N^,_ _XN/,HNVA-H09".R@r@HH@3".N^,_Nu/,HNVA2-H n 0R@0p=@249"(Bor=A?<Nf0.N^,_ _XN/,HNVA.-H09"$R@3"$AO"OrQNN^,_Nu Got NAK/,HNVA-H09""3":N^,_Nu/,HNVA-H?<N?. BgHnN N^,_ _TN/,HNVA-H?<Y?. BgHnNN^,_ _TN/,HNVAn-Hp=@AnO"OA`O"ONHy",N@e40. @e?9".NP`&?<R?9".A#R"O2p"QNHnHnHnN(=@`0.rNAW6.89".RDz@HĉHDDWFxSDWƄFBdRHnHnNZHnN6?<Y?9".?< HnN09",3"*r3",Np=@Np`N"09"P=@`L?.HnNp=@`609"P=@`(N<` @Eg @Ng4 @Sg, @Tg`0.N^,_ _TN/,HNVAl-Hp=@r.=A`>0.rA0?HzL?<N~2Ad/?Cd< n v89"RDf&v=CR@=@ n zE=ER@=@t=B69"DCd$ n v89"VDfv=CR@=@ n t69"TCfrR@=@ n txD=BCW<9"D29"VAW@09">89"RDWC@FEe( n 0./"n 0.r?N _0.@d n 0."n r4<Bp=@2.=A`^ 9"9ذm N,=@0.R@=@"9$9҂/ n 2.v?N 9R#Rn0.no`F 92.HЁ#0.N^,_ _\N/,HNVA-H n pR@=@0.2.Al n t=BR@=@ n 0.rA?2.@?N.=@r=A=@`$0. n 2.$AtARn0.no2.A4.v!Cf"/9?<HnNr /N&0.2.A=@`:N^,_ _\N/,HNVA*-H0. 29".AW69" xDzEVF=B0.N^,_ _TN/,HNVA0-H09",3"*r3", V?(Nrp V1@N\N^,_Nu/,HNVA(-Hp=@Hy",Nb@eHnHnHnN`?.N>@d NNt?.HnN6` ?<Nּ`0.29".AfN?.HnN@d NN0`.?<E?9".AO"OpQNJ?<N``jHy"*N@eZ?.N@d:?.NtANO"OpQNݦp3",29"P=A`09"&R@3"&N,`0.29".Afr?NN@e ?<NN60.rAWv.xDDWEBdA#R"O2t"QNAC#Np=@` ?<Nh`v?.HnNp=@``N09"P=@`N?9".ND09"P=@`6N`. @Ag. @DgV @Eg @Ng @Tg @Zg`0.N^,_NuRep. PacDisk write failed (disk full?)/,HNVAl-H09"PrAfZ49Bd*?<E?9".A^O"OtQNT`&?<E?9".AO"OtQN,N^,_NuError receiving packetsUser aborted transfer!/,HNVA(-Hp3AO"OrQNܠN^,_NuSending:/,HNVA-Hp=@r349"H69"DCBe AO"O t QNF`F49"HBd AtO"OtQN`ABO"OtQNp3"PNBN&0.@e09"P`?. N~3"P`?. N^3"P`N3"P`p=@r=AAC#`p=@r=A49"Bd/"9$9҂V/NZ$ Bfr=A0./"9$9҂6.H҃/NZ" AW2.v^C]DBd RA=A` 92.HЁ$9#T]p@^DCdN6.RC=C n 89"RRC=C n A 2.4.BSA=ASB(9HԄ# 9R#2.tB=A69"DCdT6.8<DzEg6.RC=C n <9"V=A09"V@f6.RC=C n <9"Tp@_òBWĆDCd46.RC=C n 89"T?.N=@rA=@`869"TCW:9"REW09">@FDd8.RD=D n 0.R@=@29"HAd n 2.` n 2.` 92.HЁ#4.=B`p=@?<N`v=C0.N^,_ _XN/,HNVA-Hp=@Hy",N.@eN6A#R"O2p"QHnNfHnBgN3#RrAozA#R"O2t"QA"\R"O2t"QNԒ/9?</9#\N&?<F?9".A"\R"O2p"QNHnHnHnN6=@rYAWvNCWĄDBd?.?.N@d0.29".AW6.xNDWńEBdZt3",Np##Xr##Tt#&9#\xHĶoHyN3"8r=A`z=E` 49"P=B`N 09"P=@`:tEBf?.HnNp=@`xTDf:9"P=E`N` ?<N0.N^,_Nu/,HNVA-HN09"P V1@N^,_Nu/,HNVA-Hp=@Hy",N@e09"8rAo?<D?9".?HyNHnHnHnNܦ=@rYAWvNCWĄDBd?.?.NF@dd0.29".AW6.xNDWńEBd:t3",NbHyN3"8rAf t=B`t=B` NN` NN`:tEBf?.HnN p=@`xTDf:9"P=E`Nհ0.N^,_Nu/,HNVA-HNB09"P V1@N^,_Nu/,HNVA-Hp=@Hy",N@e?<Z?9".BgHnNמHnHnHnN^=@rYAWvNCWĄDBdv?.?.N@dZ0.29".AW6.xNDWńEBd0t3",NNTNȆ@d p=@`p=@` NN` NN `:tEBf?.HnNp=@`xTDf:9"P=E`Nr0.N^,_Nu/,HNVA-HN09"P V1@N^,_Nu/,HNVA-Hp=@Hy",N@e?<B?9".BgHnN`HnHnHnN =@rYAWvNCWĄDBd^?.?.N@dB0.29".AW6.xNDWńEBdt3",Np=@` NN,` NN"`:tEBf?.HnNݼp=@`xTDf:9"P=E`NL0.N^,_Nu/,HNVA0-Hp329"H49"DBAe N`F29"HAd AO"OrQNϪ`AO"OrQNόp=@r3"PNN&0.@e09"P`pN3"P`N3"P`xN3"P`jN3"P`\N"3"P`Np=@r=A`>p=@r=ANðN|`&S@ @b@0;N~`X0.N^,_NuSending (quote 8):Sending (8 bits):/,HNVA-HNv09"P V1@N^,_Nu/,HNVA>-H09",3"*r3",Np V1@r3"@?<@NNN^,_Nu/,HNVA -Hp=@Hy",N@e?.^?9".A R"O2p"QNHnHnHnN6=@`v?.?.N@dN0.29".AW6.xNDWńEBd$?.HnNp3",Np=@` NN` NN`PHy"*N@e*?.N@d?.Np3",29"P=A`HnHnNHnN?<Y?9".?< HnNҐ NNN$`0.29".Af ?.HnYHyNn NNN` ?<N`0.29".AfN?.Np=@` ?<N`p?.HnNp=@`Z09"P=@`LNϖ`D @Bg @Eg @FgV @Ngr@S @b@0;N6Z0.N^,_ _TN/,HNVA$-H V?(Njp3",29"P V1AN^,_Nu/,HNVA$-Hp3", V?(N.N p V1@N^,_Nu/,HNVA-Hp=@Hy",N@eHnHnHnN=@`J?.N@d NN|` ?<N€`f0.29".AfNR?.NߞN>p=@` ?<NH`.0.29".Af ?.HnYHyN΂ NN `&Hy"*Nl@e?.N݄@d NN`0.29".Af?NNp=@` ?<N`Hy"*N@e?.N,@d NNV`?.HnNp=@`jN&09"P=@`X09"P=@`JNV`B@A @b@0;N @ g @g @g @g.`0.N^,_Nu/,HNVA-Hp=@r3"PNNN&0.@e09"P`Z?.^A R"O2p"QNH3"P`XN3"P`Jp=@r=A`:p=@r=AN`& @b@0;N`np3"@0.N^,_ _TN/,HNVA6-HNjt?<HnNH2/.NP/.?<A"Op?"Q?<BgNRAO"OpQ VHhN@dAO"OpQ VHhXN@dN2 VHhNH VHhXN>N?. ?`?<D VN` ?<U VN`?<E VN`?<T VN`?<H VN|`?<C VNV`?<P VNH`?<K VN:`?<R VN,`NtAO"O p Q VHhN6@d"AO"OpQ VHhXN@dARO"Op Q VHhN@dNB VHhNX VHhXNN VHhNDN?<I? V1@Nn`JNX`B`>W@ @b@0;NV V:Vd,rHVN^,_ _TNEnter account:Enter password:Enter user:Enter host command:Enter filename to get:Receive fileSend file/,HNVA"-HN./9?< N/HyNPN^,_Nu _0yNk09NNР*_3v3t&_(_&(#~3:3:9TSER3EN:9RSE43ELaraNu _6"y~3_*3_(3_&fN/Bi$3|3|Bi2g #||.Nu#|z.Nu _20"y~6C4B/S@k2SAk.3@*3B&3A,3C(BiBiBi6Bi2Bi$#|z.Nu <dNu _23p03nN/<?<&NN\Nua$09n6|8<lHa>29paNu yN:9:SE<9|8<lJ6H@f|><oGaR`0aL09j6|8<lHa63jn49pBg3l2a29l3paLNu$Hh@64< ytgFRùRùRùRùRùRùRùRùRùRùRùRùRùRùRùRQ`$RùRùRùRùRùRùRùRQNu҈$A4jJEg`,~`JSB>/"y>$y~r0)42*IHABAHA3N"<}0*HABAHA0)R3P3x09R29Tap3R3Ta~#BNu _#>N _2/$y> jL"yB0*P6y<<9:SF29Lgj8*RSD:(H*Igg<UggFQg<g<UgFTIQ`2Nu8*RLSD:(H*IQTIQ09RyNg6R@3RfRB3VNuv69:CSC׹BByVNu OXp`rH瀀aLQ _RN _0|3LN/<?<&NN\Nua\@|09TH yVBJg XA@fpFNu!p`av/<^?<&NN\Nu@|09TH yVBA g XA@fp`Bp`JyZg(a( _20/a`3T3Rap#BaNu _20/a<3T3RaL#BNu09RyNgR@29T3Ra&#BNuyNo09NyPo29PNuS@SA$y>44|3JH689:SDkg RC3V`ByVx"yFNuJyZga> _20/aaNu _20/yto09t]@J@jB@yvo29vSAJAjBA<4|3JH689:SDkg RC3V`ByV"yF#BNuJyZg$a _204/3`3d3^aTNu _2043`3d3^N/<p?<&NN\Nu 9N#F#BNu3\NuBy\NuJyZfJy\g"yBa3X3ZNuJyZgByZJyXgByX"yB`TNuJy^gSybgNu3dbJyZgJy\gJyXgByX"yB`Nu3X"yBxp*y>m4f`>,09J,&Ia.Kkg"JyVg"K69:CSCa `"KR`NuJy`g y`g`t4y<<9:SFf.:-RMSEʹʹʹʹʹʹʹQNu:-RMSE(IʹʹʹʹʹʹʹQTIQNu<9:SF(ITIQNu4y<>-RUG4 <9:SF(IʹTIQNu _20"_/@S@4x$yF4RBxJSBvxz| F&F(F*FH9x H9x H9x H9x Q6<89NLSD4&I"K:aQNu _20"_TI@S@$It v4QN _*_42/"yF69xSASB0<ÔAJSB$IH~ LsHsLsHsLsHsLsHsQKSCp""""""""QL` _*_42/"yF69xSASB0<C8AC36CDSD38$I&I(JzH?<%NNTL""""""""Q696CSCBQ"K$L898QFS@"M$I6<2<:9NMSE2(J&I8&Q(J&I8&&QQp"< 2$I"$$QNu _*_42/"yF69xSASB0<8ALSD$IH~ LgH昔LgH昔LgH昔LgHQKSCp########QL2FS@"M$I6<2<:9NMSE(J&I68&Q(J&I8&&QQ` _"_0N _0"_2N _"_pN _"_$QpRN _0"_$QRN _0"_N _"_ N _ "_"N(_2&_pHz`gpNu(_&_pHz ?<&NN\NNu(_&_Hz`0Nu(_&_Hz` Nu(_<&_Hz`Nu(_<&_Hz`6Nu(_,&_Hz`&NuNV?.?. ?. ?.?.?.?<NNN^ _ NNV/.?. ?<NNN^ _\NNV/.?. ?<NNN^ _\NNV/.?<HNAN^ _XNNV/.?<INAN^ _XNNV?<NNN^NuNV?<NNN^NuNV?<NNN^NuNV?./. /.?<NNN^ _ NNV?.?. ?<NMN^ _XNNV?.?<NNN^ _TNNV/./. /.?<NNN^ _ NNV?<NNN^NuNV?<NNN^NuNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?<%NNN^NuNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?< NMN^ _TNNV/.?<NAN^ _XNNV?./. ?<GNAN^ _\NNV/./. ?.?<@NAN^ _ NNV/./. ?.?<?NAN^ _ NNV?./. ?<NAN^ _TNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV?.?<NAN^ _TNNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?< NMN^NuNV/./. ?.?<NNN^ _ N/,HNVA.-Hp@rAtBvC?<Hn/. NN^,_ _XN/,HNVA-H/9 NN@N^,_Nu/,HNVA"-HN# N/9 NnN^,_Nu/,HNVA-Hp3 r3 N^,_Nu/,HNVA-Hp=@2.t`B=Av@CmV89 De$8.z?E3 |3 p3 `$89 3 :.|?F3 p3 ``x DfF n :9 | m09 H@p4.B@0p@zEf4DB0t=BN`z=EN n p00.N^,_ _\N/,HNVA-Hp3 r3 49d`Bt3 |`Vt3 |`Jt3 |`>t3 |`2t3 |`&`"B BbB4; N N^,_Nu/,HNVA:-Hp36r3 t3 69 z3 |xDf z3 |N^,_Nu/,HNVA,-H?. Hz*?<N~0@d N`NN^,_ _TN/,HNVA6-Hp3 ?<N?<N?<Nߞ?<NdN^,_Nu/,HNVA`-H 9"9찁o* 9S/NZrAtBf p3 N`"/9NZrAtBf p3 NN^,_Nu/,HNVA-H09 |rAfNN^,_Nu/,HNVA@-H/9~N0. 3JNNۚ?9b?9`Np3 |N^,_ _TN/,HNVA-H0. `T?9FN`j09 |3 zr3 |t3 `JN??9 r??9 vN`$ @g @gj @gt @ g @@g`3 N09 x3 t29 v3 rN^,_Nu/,HNVA>-H0. `?. N`&Nt09 |rAWvCWĄDBd t3 |`p3 N`N`0. H`0. rA3 fN?9 x?9 vNz`|09 @d09 d3 l` p3 0. rA3 d`F09 @d0. rA3 j`0. rA3 h` @g @gf @g`8 @gB @ g@ @b6@0;N**N^,_ _TN/,HNVA,-H V0( 2.AW6.CWĄD8. DWńE=B0.N^,_ _\N/,HNVA,-H0. r Al0t BWxDWņECdNp3 |`?N<`Af t3 NtPBf v3 N?<D?<E?<F NND@d09 XR@3 X?<E?<A?<I NN@d09 ZR@3 Z?<I?<H?<J NN@d09 XS@3 X?<J?<B?<F NN@d09 ZS@3 ZN09 NrAf?9 x?9 vN`?9 x?9 vNzN^,_ _TN/,HNVA-Hp=@?.Hz?<N~2Ad r=A`29tBf6?.HyN@dp3 n 290p3`H6989жDn2?. n 09@/NV@d09R@3`=B0.N^,_ _\N/,HNVA -HNN^,_ _TN/,HNVA2-H?. HnN@d?. N0.rAWFB3 \N^,_ _TN/,HNVA-H?. HnN@d?. NR0.`?<Nߐ`?<Nߐ`?<Nߐ?<Nߤ`?<Nߐ`?<Nߐ`?<Nߐ`t?<Nߐ`f?<Nߐ`X?<Nߐ`J?<Nߐ`2)1AR1Bf1BD1BB29 v0)@=A09 xEo`:Bl`0Fo`&Bl`??6. ???9 /N09 Z29 RA3 Z4<Bm069 X89 PD3 Xz3 Zp@l << /3 X NN`T`?<p?N`@p3 Z NN~`.09 X49 PB3 XxDl :< /3 X NNN`09 X49 PB3 X8< 0Dm z3 X NN`09 Z49 RB3 ZxDl3 Z NN`09 Z49 RB3 ZHy Z?<N NN`t?. Nl`hNp3 |r3 N`P`L_@ @b@0;Nj :@ @b@0;NrN^,_ _TN/,HNVA.-Hp3 fr3 dt3 jv3 hx3 lN^,_Nu/,HNVA-HNp3 r A t3 Z6< /3 XN09 x3 t29 v3 rtY3 Pv73 Rx3 z3 N 9##N09DH?09BH?NN^,_Nu/,HNVA-H0.Hr At?BO ON0.r At?BO ON0. Hr At?BO ON0. r At?BO ONN^,_ _XN/,HNVAf-HAR"O2p"QNHHy Hy NP09 29 V? V0(H!@?(Nۼ` ?<N?N^,_ _TN/,HNVAP-H V0(rAnHt BWðAWĆDCdv3 |`&vCfx3 N`xDf z3 N`H`p3 4(A3 f?9 l?9 f?9 jN V1@2(SA/09 lH??9 d?9 hN"@ V1A0("@dnC]$O4$?NfNN01@4(6(C]$O4$?NfNC]$O4$NN8D1B`d0(C]$O4$?NfNN41BC]$O4$?NfNC]$O4$NN61C09 NtBf?(?(?(?(N&`3 N V0(1@2(1A`v09 @d09 d3 l` p3 0(A3 d`B09 @d0(A3 j`0(A3 h` @g @g @gN^,_Nu/,HNVA`-H . V!@ V (". lB VHhNd V1@29 |tBf NT`vCf3 |r3 N`N^,_ _PN/,HNV"A-HN09@e?<N?`AO"O8p7Q?<Nk=@rAgVtBf v=C`v=C? NN.0.rAg????.?.Nސ0<=@r=A"4.vCfHn$NNHn$??9Nr?9NۼN^,_Nu/,HNVA@-H"VA$Op?$Q?<Nk3FNpNP yzNN^,_NuNV?<NNN^Nu/,HNVA-HNop=@rAmN3RrAV3Nr3?Nۼ09rAohNrAfAC&p%Q NN$AO"O p QNGZ@eAjCpQ NN`A*C"t!Q NN0.=@0.N^,_Nu[3][No more VDI handles!][Bye-Bye][3][No Resource File!][Bye-Bye]UNITERM.RSC[1][Only med and hi resolution][Sorry]/,HNVAZ-HBg?<BgBgBg?<N\?9:N`^?9:NbRNjtNHNp/9~/9~?NAN^ _TNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV?.?<NAN^ _TNNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?< NMN^NuNV/.?<HNAN^ _XNNV/.?<HNAN^ _XNNV/.?<INAN^ _XN/,HNVA-H0. rA^vC]DBd?N`fCo/9$N`4t BVz EVF V<( FDd/9$N`x =D 0. rA?N/9$N0. =@0.N^,_ _TN/,HNVA-H?<?.N0.CA-H0.@d`Hn HnN V1@r=AS@=@`. n0./0.rC1? VN _@Rn0.no`fpQ/Hn HnN" A V1@S@=@`6 n"V0)2.A/0.rC1? VNf _@Sn nl . -@ .N^,_ _PN/,HNVA~-H V0(rPAnlS@H?0. S@49j?pQ6(CH??N0. CA-H"V0)=@` n0.r ARn nPoN^,_ _TN/,HNVA-H . "9f?<t?N`j V4(BC# 49J=B`D0.@/?.Bg2.RAA"VA/0 IN" "VA!?. INSn nlN^,_ _XN/,HNVA-H . "9f?<t?N@`j V!@"t=B69J=C`F0.R@@/?.?<2.A"VA/0 INF" "VA!?. INDRn0.noN^,_ _XN/,HNVA-H 9"9W69JxDWńEBd?<t?N`p/N"<M4<H҂o <M/N-@rgN09b=@29`=A nCL4<n QAzO"OtQN/9$N,BgN09JR@=@/9 NNp=@ ?<NjNjtprA????BBgBgBgBgBgBgBgBgBgBgHyHnHyFHyFHnHnHyFNk=@2.I=AtBfNj00.`~0.@A"0 9f?<r?N.`?<?9JHyLNp=@29J=A` 0.@2.RAAA$0!Rn0.no2.A/?9J?<0.@A/0 NN"A!` .""9f?<t?N``?<?9JHyLNv09J=@` 0.R@@2.AA$0!Sn nl?<Bg/." NNv-@"`z/9 NN `j/9 NN`Z/." NN`L0.@A/0 NNv`4`0@G @ b@0;Nn0.raAW=B 0.rAf?.?.N?<Nj0. @d nCL0<n"QN ExitNV?.?. ?. ?.?.?.?<NNN^ _ NNV/.?. ?<NNN^ _\NNV/.?. ?<NNN^ _\NNV/.?<HNAN^ _XNNV/.?<INAN^ _XNNV?<NNN^NuNV?<NNN^NuNV?<NNN^NuNV?./. /.?<NNN^ _ NNV?.?. ?<NMN^ _XNNV?.?<NNN^ _TNNV/./. /.?<NNN^ _ NNV?<NNN^NuNV?<NNN^NuNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?<%NNN^NuNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?< NMN^ _TNNV/.?<NAN^ _XNNV?./. ?<GNAN^ _\NNV/./. ?.?<@NAN^ _ NNV/./. ?.?<?NAN^ _ NNV?./. ?<NAN^ _TNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV?.?<NAN^ _TNNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?< NMN^Nu/,HNVAJ-H y#-HC%P-Ip1@62)1Af2)1AR2)1AD2)1AB?. NN^,_ _TN/,HNVA-H09bH?NDS@=@??9`N09@dND09`CA-H"y#-Ip3@J2tBg`2vCf29jI3AJE%PG%r&QE%8G%Pr&Q?. NA%C%Pp"Q`lE% -J3@62*3Af2*3AR2*3AD2*3AB2.SA69l?29`SA89j??. ?9?/NN09rAtBgJ n0vCg<0.S@89l?09`:9jS@?0.R@S@??9N8N n09b2. A n@091@N^,_ _TN/,HNVA4-H0. rAA\vFC_DBd t7=B`t0=BB=@0.N^,_ _TN/,HNVA-H0. r;Aft3>v3nx3n`t/Bf69n3>x3@=Az"EoC3>|3@x@=DrAo x3@`v;3>`v<3>`v=3>`v>3>`v?3>`v@3>`vA3>`vB3>`vC3>`vD3>`6.3>`6.RC3>`x6.TC3>`h6.VC3>`X6.XC3>`Hv3>`<C CbC6;0N0$0xDg$<9@BFA\EwC0`069>xDf:9n @E3n`:9n|Ff:?. N=@ ?Hz?<N~2Ad3nr3n`29@BArAw00vACg09>29@BAN29>49@BBCwHq?3|3nr3nEfAC` t36`dt|Bf?.N`PvuCfHx9zPEl8NHy?g D?gr36N^,_ _TN/,HNVA-H?. N@d|0. `09bS@69l?09`89jS@?09bS@??9N8` ?. NN^,_ _TN/,HNVA<-H09 J@e$09J3Fr3 |t3 NNRp36N^,_Nu/,HNVAZ-H0. r!Aft3 `>49 Bd*t0BfNvp3 |`v3x3Jp36N^,_ _TN/,HNVA-H0. r!AW69 CBdAft3 `t0BfAO"ON?9JHz?<N~0@d A|O"ON`AZO"ONA R"O2p"QNp3 r36` t36N^,_ _TN 3 1%!/,HNVA-H092<AH?N^N^,_Nu/,HNVA-H0.CA-H?.?.N09=@2.=A4. =B`0.3b29 n@0(@g" n0.@0(3NHNh n0rAg09bt(?NT`09bt(?NhRn0.nov2.3NNhN^,_ _\N/,HNVA"-HHynNp3nr36N^,_Nu/,HNVA-HBg V0( ?Np36N^,_Nu/,HNVA-H096`0. r4Aft3n`f49nvCf>xiDf?Nat`&Bgz?NBg?<[NBg?<4N NN^`Bgx?NpBg?<[Nf NN@`0. r[Aft36`8tXBW89DzEWFCd?Nat`Bgv?N NN`40. rAf N` NN` @g @g @gN^,_ _TN/,HNVAX-H09@d*09@d?9`?9`NNB` ?9b?9`N09P3bN^,_Nu/,HNVAF-H09@d09P3b`&09PS@??9`N09>S@3bN^,_Nu/,HNVAt-H09b29PAoN09`CA-H0rAW09JvCWĄDBd&/9$N,pa?N/9%PN,`4xDg\C%8Et$QC$0E%8t$Q/9%8Npa?N/.NAC%8p"Q`BC% Et$QC$E% t$Qta?NAC% p"Q09b29>AmNt n09braA n@09429b49PBoN"09`CA-H0rAfv09:@dYHy6 NNL`@098@dYHy6 NN`"?.Nn n09b@091@ n09b2.A`\09:@dYHy NN`(098@dYHy NN4` ?.N09b29>AmN09bR@3b29Ad29,30?N_p3` 0`^p36`p36`p36`|p 36`pp 36`dp 36`Xp36r3 `Dp36r3 `0p 36r3<`0.`2p3(`p3(`p3(`N`:`N``NB$`09b@rAj1`lNZF`bNB`Xp32903,?. NN`6?<NZ`(N*`?. NN`p3`p3`p362969 HCd(AR"O2v"QN N` ?<N?p3<`` @7g @8g @=gp @>gt @Dg @Eg @Hg @Mg @Ng @Og @Zg @\g@ @cg @ng @og @|gj @}gV @~gB`jp36`D@ @ b$@0;N @0g @;gh`` `09nR@3n`09n@29nAAl40 2. AB1`vp36`jp 36`^p36`Rp36`F?9nNEp36`.HynN09`29nA3`49VBl3`NAp36`HynN09`29nA3`Hy`?9TN NAp36`HynN09b29nA3b49`A60 tBf*Hyb?9PN ?9b?9`N`4Hyb?9>N 09bH?NDS@??9`Np36`HynNHyb?9PN 09b29nA3btBl3bNAp36`?9nNMBp36`?9nNHp36`?9nNNp36`j09n29JA_69p89HD_EBd3`3b49`zEf |3`49bEf |3b49tBd.49`<9VFSB3`Hy`?9TN `Hy`?N ?9bND3bNAp36`HynN09`29VA\69TC_DBd?9nNKp36`\HynN09`29VA\69TC_DBd?9nN>p36`09`29VA\69TC_DBd?9nNCfp36`?9nNG p36`p3r36`p3r36`09n@2. Al109nR@3n`t09nrAf ?<NZ09nr>Af ?<NZ09nr*Af ?<NZ`(?9nNb`p=@29n=A`0.@Al?0NVVRn0.nor36`p=@29n=A`0.@Al?0NURn0.nor36`?9nNatp36`z?9n?9pNSp36`\N0`T09nrAf NU`8tBf0vO ONAO"ONp36`09nR@3nr=AS@=@`0.@Al20`bp3`r09rA3`^09rA3`J09rA3`609rA3`"` AbA2;NRn0.nobNtp36`*09nrAft3@?<2NI`tBf3@?<3NIp36`p36`p36` @0m @9o @!gX @"gD @$gT @*g@; @b8@0;N@X*p @gx@% @b2@0;Nxfff"fffffB @g @g&`.`?N`Hy NN`Hy NN`Hy NN`Hy NN`?N`xr!AW69 CBd ?Nn`49b=Bx8Df NT`z3E\r6A_CFd69`CA0-Hv5Cf6|0?9`?<?9PN80.3b??9`N`D@0?9`?<?9>N?.?9>N.3bHS@??9`Np36`r36`|?NH`r??Np`frpAfNbBp36`L? NN`@r36`4 AbA2;N`pVN^,_ _TN[0n/,HNVAp-H0. r}AfX49nvCfJ89b3:9|Ff$093b293`??N09B3Jp36N^,_ _TN/,HNVA&-H?<NMB09FrA1N^,_Nu/,HNVA,-H0. @dp3b??9FN VNN^,_ _TN/,HNVAR-H V0( rAf N`849vCf*x D\| F_AEd?9Np`?NN^,_Nu/,HNVA-H0. r A]vCWĄDBd NNr`Co(4<BnN0. @=@ ` x3:=@296`<29tBfL69b89PDo2:9Ed NN`??9`N09P3b?. N` r[Aft36`j49vCf\`8p36`L0.xEDW? NNTp36`.?. N`" @7g @8g @Dg @Eg @Mg``29tBf`p36`?9nNMBp36`09p69HCn3bHybN?9bND3bNAp36`l NN^p36`Z?. N`N @Agp @Bgh@H @b@0;Nt\\ @g> @gZ @*g.``0v0C\z9E_F|$FWADd ?Nh` r36`l? NN8``r36`Tr8Aft36`?N&`6?N`, AbA2;N Ag`N^,_ _TNNV?.?. ?. ?.?.?.?<NNN^ _ NNV/.?. ?<NNN^ _\NNV/.?. ?<NNN^ _\NNV/.?<HNAN^ _XNNV/.?<INAN^ _XNNV?<NNN^NuNV?<NNN^NuNV?<NNN^NuNV?./. /.?<NNN^ _ NNV?.?. ?<NMN^ _XNNV?.?<NNN^ _TNNV/./. /.?<NNN^ _ NNV?<NNN^NuNV?<NNN^NuNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?.?<NNN^ _TNNV?<%NNN^NuNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?<NMN^ _TNNV?.?< NMN^ _TNNV/.?<NAN^ _XNNV?./. ?<GNAN^ _\NNV/./. ?.?<@NAN^ _ NNV/./. ?.?<?NAN^ _ NNV?./. ?<NAN^ _TNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV?.?<NAN^ _TNNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?< NMN^Nu/,HNVA-H09b29PAoNB09`CA-H0. rA^vC]DBd"?N6 n09b@p1@`lCo(/9$xN n09b@0<1@`$/9$N n09b@0<1@0. rA?N6/9$N n09b2. tBAR@3b2. v C\z E_FDdNBN^,_ _TN/,HNVA8-H V0( `N` 09b29PAlR@3b??9`N09b@Aj20|p|@W09b29PA\ÄCBd`09b29RAoS@3b??9`N`09@d?9`?9`N09@d NB`NB$`Tp3b??9`N`:?( N`,Q@ @b@0;NZ @g`N^,_Nu/,HNVA$-H0. r A]vC\ĄDBd NN`=@496`49`CA -H49b89PDoN?.N6 n09b2.A n@091@49bRB3b`~`p36`p36`p36`0.`pO ONA@O"ON`:p3`.p3t3J`p3`09`S@3`49VBl3`?9b?9`N`09`R@3`Hy`?9TN ?9b?9`N`09bR@3bHyb?9PN ?9b?9`N`lHyb?9PN 09bS@3bHybN?9b?9`N`*093 t3BgN_` 09 3BgN_`BgNMB`NZF`BgNN`p3bt3`??N`p3`p3`?<Nat`BgNat`?9`?9`N`j`f @-g@< @b,@0;N0NAN^ _TNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV?.?<NAN^ _TNNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?< NMN^Nu/,HNVAX-H09"@@dH/. HnNk/.?.A"Op?"Q?<?<NRF@ V2(tBW8(:9E\ƆFCHhv/Hz0BN{^<F@dEm ?< N?p V1@N^,_Nu/,HNVA-HAO"OpQNjN4p=@29=A49=B69x HÇ=CBgN?< AR"O2p"QNp.=@AR"O2r"QHnN>P0.rAft=B NN`HnBgNF=@0.rAot=Bv3x=Dz-EBg?<N/9?< /9#\Nl09H/Nj NNp=@2.tBV89FDDCdN09H/N2 929H//N"49H//N$-B?././9N-@0.29AV69FCC&.xHĶ^EBd-HN09H/Nx09rAf?t?N` ??<CNN^,_Nu/,HNVA-Hp=@29tBf66. 8<D/NF$&@W/ VHh?(NZ"@=A`h6. K8<D/NF$&@W/ VHh?(N$"@Ad40. 2<A/NF$$ BW/ VHh?(N"@=A0.N^,_ _TN/,HNVAZ-H09R@3A R"O2r"QN( V0(R@1@/9?<H/N N?<p?NN^,_ _RN/,HNVAN-H VHhX"h/ ?@dA#R"O2p"QBgN@d>N?82.FAA@d&A#R"O2p"QBgNF@=@``p=@0.@e A0O"OBgN=@r=A0.30.N^,_Nu/,HNVA~-H09=@r3t=BAhCvQ0.F@Hnr/HzFBN{4B@dHnBgBgNpF@=@`0.F@=@2.30.N^,_NuBlaBla/,HNVAd-H0. `@Hy(Hy"A^O"O pQBgN@dfN@d&A"R"O2p"Q?<NZ?N` N?N/9NPN<`09rAffHy( VHhCO$O p QBgN@d2N?N/9NPN<`$N?N/9NPN<`(N`` @g @gL @g`N^,_ _TNReceive fileSend file/,HNVA-H090rAf"? _ N^,_ _\N/,HNVtA&-HN2?<oHnHnHnxHntNq`N^,_Nu/,HNVtAB-HN20.=@2. tB=A&.-Cx?<HnHnHnxHntNq`N^,_ _PN/,HNVtA<-HN20. =@r=A$.-Bx?< HnHnHnxHntNq`N^,_ _\N/,HNVtA<-HN20. =@r=A$.-Bx?< HnHnHnxHntNq`N^,_ _\N/,HNVA0-HN2/.?. A "Op?"QBgBgNR n0(rAW0(vCWĄDBd"n0.3@ 4. 3BN^,_ _ N/,HNVAN-HN2 n0.-H0(rAW0(vCWĄDBd"h /"n / ND`N^,_ _ N/,HNVA-HN20. H//<N м/HnNp=@2. SA=A` n0.p1@Rn0.no n2. r1A$.-B .N^,_ _TN/,HNVAH-HN2p=@ n 0.rtBg R@=@`0.rAl=A0.=@0.N^,_ _XN/,HNVA4-HN2/.Ns@d0. Hм//.NtN^,_ _\N/,HNVA-HN2p=@0.rdA] n 0(vCVDBd0.R@=@`0.rdAlzt=BS@=@`6 n 0.-H0(`/( n/( NN? NN`"h -I/ n/ NN? NN n/(?< NN n/(?< NN np//( Nt`"h -I/ n/( NNH? NN n/( n/( NN*? NN n/( n/( NN ? NNd np//( Nt`0@ @ b$@0;N xxRn0.no2.H//<N"Ҽ//. NtN^,_ _XN/,HNVA-HN2 n 0.-H0.1@2.1A4.1B6.1C8.1Dz01E1E|FWrAW€B@d0.tB=@0.t B1@p1@ vCW|FWAEd2.1A :. 1E`!@ 2.zEg/. ??.NXN^,_ _N/,HNVA-HN2p=@ n2(tBg` n0.0(r AtBf0.R@=@` n0."n0.0)r FAA1@0.R@=@/.??.?.?.?.?.?.?.?.?. Nh0.=@0.N^,_ _N/,HNVtA>-HN20.=@2. =A$.-Bx?<(HnHnHnxHntNq`N^,_ _PN/,HNVtA6-HN20. =@".-Ax?<rHnHnHnxHntNq`N^,_ _\N/,HNVtA^-HN2 .-@x2.=A4.=B6.=C8.=D:.=E<. =F?<*HnHnHnxHntNq`N^,_ _N/,HNVAH-HN2/.?. HnHnHnHnN\2/.Bg?<?.?.?.?.N-HN20.=@2. =A?<jHnHnzHnrHnnNq`0.z=@0.N^,_ _XN/,HNVtA~-HN20.&=@2.$=A4."=B6. =C8.=D:.=E?<lHnHnHnxHntNq` n0.0"n2.2$n4.4&n 6.6N^,_ _N/,HNVA8-HN2 .R-@ n"<//N"0"n r2N^,_ _ N/,HNV8A<-HN20. =@?.Bg?<BgHnHnHnhHnPHn8BgNqN^,_ _XN/,HNVA-HN2?< ?. NN^,_ _TN/,HNV8AT-HN20.=@2.=A4.=B6. =C?<Bg?<BgHnHnHnhHnPHn8BgNqN^,_ _PN/,HNVA"-HN2?. Ns2?<?. NN^,_ _TN/,HNVA-HN2?<?. NN^,_ _TN/,HNV8AB-HN20. =@Pr=AR?<BgBg?<HnHnHnhHnPHn8BgNqN^,_ _TN/,HNV8AR-HN2?.?. Ns<0.=@2. =A?<lBg?<BgHnHnHnhHnPHn8BgNqN^,_ _XN/,HNVA"-HN2?. NsL?<?. NN^,_ _TN/,HNVA.-HN20. rA?Ns`?<h0. rA?NN^,_ _TN/,HNVAl-HN2?. NsV0. =@rAo$t=BS@=@ vCox=D@=@ ?<?.N*0.rAo?<?. NN^,_ _TN/,HNV6AD-HN20. =@2.=A?<'Bg?<BgHnHnHnhHnPHn8BgNqN^,_ _XN/,HNVA-HN2?<j?. NN^,_ _TN/,HNV8AB-HN2p=@P2. =AR?< BgBg?<HnHnHnhHnPHn8BgNqN^,_ _TN/,HNVA-HN2?<?. N N^,_ _TN/,HNV2A-HN2Hn2Hn4Hn6NsjBgBgNn0.=@P2.=AR4.BS@=@T=AV6.BSC=CX8. DSA=AZ:.=E\<.DSF=F^=E`0.=@b?<BgBg?<HnHnHnhHnPHn8?<Nq?.4?.6NN^,_ _PN/,HNV8A`-HN20.=@P2.=AR4.BS@=@T6. CSA=AV?< ?< Bg?<HnHnHnhHnPHn8?<NqN^,_ _PN/,HNVAr-HN2HnHnHnNsBgN?<NHnHnHnNsj?.Nx?.?.?.?. N*?.N?.N?.NLN^,_ _PN/,HNVtA6-HN20.=@". -Ax?<NHnHnHnxHntNq`N^,_ _\N/,HNVA-HN2?</. NN^,_ _XN/,HNVA-HN20. ?BNjN^,_ _TN/,HNVA4-HN2Ns rAf ?</N2Ns R@?Ns(N^,_Nu/,HNVAB-HN2Ns rAo*Ns S@?Ns(Ns rAf ?</NN^,_Nu/,HNVA<-HN2p?/Np=@Ns =@` NxRn0.noN^,_Nu/,HNVtA,-HN2p=@?<kHnHnHnxHntNq`N^,_Nu/,HNVtA,-HN2p=@?<kHnHnHnxHntNq`N^,_Nu/,HNVA8-HN2p.R@rAHnNs/?. Nq=@0.N^,_ _N/,HNVA-HN20.F=@2.@=A4.D=B6.B=C8.:zE=D<.8=F0.6=@2.4=A4.2=B6.0E=C8..=D <.,=F 0.*=@2.(=A4.>=B:.<=E&.$-C?<HnHnHnHnNq`0.=@ n2.0"n4.2$n6.4&n 8.6(n :.8*n<.:0.N^,_ _?<N~0@Bd0.R@=@`0.n^=B0.N^,_ _XN@NUL:AXO:AXI:PRN:LST:CON:H/ar fSfr?/L/NuH/ar fSfr?/L/NuH/ar fSf`U?/L/NuH/ahr fSf`S?/L/NuH/aBr fSf`R?/L/NuH/ar fSf`T?/L/Nu#/ _  g "_Jjp` 0C/p" g $_Jjr` 2E/rg\H/G.e$4SBkQ$SpQ C.` $SkQ$SrQE.L/JfpC$I/9/NuH0 _024SBgQ@4BAAc/L0NuHy}FNpRange error during set-operationH0 _0246@SCBgQAn68DCCc 0AgRB`/L0NuH0 _0@CEHS@rIVW.J?/L0NuH0 _0@CEHS@rIVV.J?/L0NuH0 _0@CEHS@2FA_VW.J?/L0NuH0 _0@CEHS@2FAYVW.J?/L0NuH0 _0@274BAAc7V`tO>/L0NuH0 _0@"_24BAAc1V`t>/L0NuH0 _02S@AC2YQ/L0NuH0 _02S@AC2YQ/L0NuH0 _02S@AC2FAYQ/L0NuB90`P0Byj _0g$_jp"_// H0NL0BtJ@fL)J90f f8| i f(Bi ` f|Ji f 3| `4<gG BQB) @e *:f&Jrt `e QGRtWJBkGj3 J90f fpBi `\ f3| p`J g( f*3| H@?3| NAXNu/")x itg$H@//?) ?<@NA LJof _Nu(_"_/ A) g  f$)Jtf&H //?) ?<@NA LJovfNu$ix&i|fa`pRgf#Jx`H")x it#Hxg$H`//?) ?<@NA LJofLNu )f NuHyC` Hy0< LNpREWRITE required prior to WRITE or PUTDisk or directory full _$_"Wp i e)H/ N|L4NH/ N|Lp)` _"WJ90(f*J)f i e)H/ N|L i d)J)fJg i dB90(J)fBiQ0*Nz`z _$_"WptvH/ Hy0&a<290&XL- -fJf^p`4  fJg*`N0eH  bBԂip(؄ij؄ifԄibԁRCJ)f  g i e) 0e 9c~Jg:JgD i d J)gP0(Jf 6Höf4N$NHy\0<`Hzh0<Np _$_0"Wt&JRJ)f:H/ Hy0&aX290&XL i d J)P0(f RBBe`Be`N Bad digit in number encounteredOverflow during READ of number(_ _/ C (g ( fJ(fv$($IJtflH / /?( ?<?NA LJo*fJg  f"J` g  Wf NuJg Jh g J(fPNu!|NuH$hx&h|gpR@@gf!JxL`H &ht!KxJh f0abLEJ@g *f` J90*g R@Bh` / /<?( ?<?NA LJlp!K|JfnL`rH@Hsp/Bg?<?NA LRA3J90*g^ fSA` fL AgUH@Hz+p 3 dp` SAH@Hz$p/?<?<@NA LJ90*g`z fSA` fSAH@Hzp` f>H@Hzp `H@Hzp 3 dp/?<?<@NA LQ` d4 gbC9@CHHzxp/?<?<@NA LJ90*g& AfH@HzFp/?<?<@NA L NuHzR0<`Hz$0< LNp  p Exit q C^AReset required prior to Read or GetAttempt to read past end-of-fileH0,p`:H0,p`.H0,p`"H0,p`H0,p` H0,p _/fJ/ gLJ/kJ`L/ fJkB`</jJk2`,gbJk&` Jk`"eb// ebr`r`rAV ?/L0,NuH0,v` H0,v _ `H0,v` H0,v _0HJ[fBBg`,j Dj4<` 4<ЀkSB`Jf].B/BJg 2/.?o /@?A /L0,NuH0,v` H0,v _ [2Jkp`&4<cH@j JgR@kJ@kJgD@?/L0,NuH0,v` H0,v _ [2Jkp`$4<cd JgRkJk~JgD//L0,NuJ/ goNuNuH0, _?///` H0, _0/2// Jv/ 8://N~/DD?DBoJgJgC|k?>BGHGv8ބdRC8ބdRC>HGvކdRC8ބdRCHGv48ބBޅB:>HG8ކkE߇SDkBg|d RdRDUJg( DbRD ME \/L0,NuBBo `H0, _0/2// v/ 8://~/?DD?DBo 8JgJgG|HD8H@0zr)`рe efef<څ߇QgRCgڼd RGdSCJCkD|blo/EC \/L0,NuoH0, _p2/g/ f/W?o `ֲ@e:f$/&e&f // d*B6//J/ k`(&// S@Q`&// `R"/?/[4JfFӃddRdRR/eJd RdRd`/AG o Jk`z0H*kS/JkFft grkRBjIHA~`( dtHAI.kRBҁjBG` BBRBӁj/e2/AG o Jk\/L0,NuH0, _0 @&b(CC/)?/L0,NuHy`HyL0,Np Hz@CPt$> nk(:C@hԥ*5 c_1ɿ1.Ź^ k:v #-xŬX&x2n)h? SYQa@%oNˏ'?9x!7I|o|@Eŭ+E75vV 9@{pvPFloating point overflowFloating point division by zero lNuHJ _ gpeld/LJNuHyb`HynNpt`t _"_ gR e6GF$S" geb"*f&"`&A%S"`&J`а|gb<|fP"96gH$A#6`:"9:g6$A#:`("9Bg$$A#B` @ g"9>g $A#>"`"El&R"$b HyNNpJgr"Qd2`"SjN _"_ " gpeldgR m @ e@EF"fB#@B$`p&A"+ef "'I`Z"#@B$`L$K`ư| f"B#B`4|f">#>` |f":#:` "6#6NHeap overruns stackPointer NILPointer not in heapH0^ _0"_e /L0^NuHyNp/B90/|0NuH0^ _0 @f0"|0\0\p` "_J@jpE0r4@ BbBS@kQ/L0^NuH0^ _4SBkt82$_rAbd0 @f0"|0\0\p` "_J@jp6ADb6CG0IS@k$eQ/L0^NuH0^ _4k2SAk0"_p6B@bE0)CS@kQ/L0^NuH0^ _2$_r0 @f0"|0\0\p` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/L0^NuH0^ _4kF2SAk>0 @f0"|0\0\p` "_J@jpJBg@b6B@oCE0SBkQ/L0^NuString overflow _pJ.g 0( hNVg4 ( hg( hH`0( hNVg ( hg hHfXgr"ODd2Sk "Sj` _"yle HyNpN#1#1 .f -||`-|| nNн1f y1NStack overruns heapH?1 _z gBjDRE"g8jDRE$6HBJBg8HAJAf,HBJBf$ւi EdD.` $HB8`B/L?1Nu0NvDNH1|` H1| _z f0NjDRE"g`jDREdJgR(`DfxJg<`DxSDbb JgHA8`"tcRЀ`xeWJg(MdD.`B/L1Nu09hNu09jByjNu _3hByjNByjNu! B0c@P`p)Jkѭ12s"RRBrb֓9{ZӽÜ$b4C dtDTjK( ŬՍ6S&r0vfVF[z8םǼHXhx@a(8#Hi +ZJzjq P:3*랛yX;l|L\,"< `Aͭ* hI~n^N>.2Qp:Yxʡ -No0 P@%pF`g=^"2B5RbwrV˕nO, 4$tfdGT$D۷_~<&6fWvvFV4Lm/ȉ鹊XDHexh'8(}\?ثJuZTj7z *:.lM|&l\dLE<, >]|ٟn~6NU^t.>CALLRETURNJUMPIFEXITADDANDASSERTBREAKCONCATCOPYCOMPARDROPDIALECHOFILESEGETHANGUPHISTORINLINEINPUTKERMITLOADSELOADTELOADFOMESSAGMACROORPATHPOPUPRUNREASSISUSPENSENDSETWAITXMODEMYMODEMUNICOMP )n*n+n,n-n[3][][ Abort ]Copyright 1986, CCD and OSS, Inc. &N (0 *$$$,$$$.   "2 0" " NX      $*H $  .  "   0H &(Hp:"$>&   0(  (^@ d*   D 8  $ F   08^.  d ,:2 $,.6lT 6  2FB $ $       @ (   J  ,6*L       f  $0  *      $          L          (.       $ &" $   ( ,.     " H$  *    2"h    F  ( 2F *8P*&   , "  $      R    X$P(  H   \2>    (  (&0 *&  L  L        ~4LZ& :(B $ F4~00"@ (2 @<$.,,8P.L"$ $        Xf.\       .@( ."         :0       2   . 6@*t< P0* $ $@LNh " 6   ,84 *      P N2( $      (>* |P"*^r$$ *( 6         Z &( 0h h04  0$r        ( |.(      0 N      ,:J(TXNBNV TNTr p$T  X  & $ $  ". F2"&(*    B    .&*&.&*&"&"." 2~8  .  \ ,   8    V (6     Pv vB$<& : ,  ^ 64\h$"$* @( 6 >   44:*B" $ 4* " & F ( *"(. B X J2,* .>804(,  2 &@  2\($    $R"  &D D,     B"" n.<2 Ɣ`2dTfR*\ 82     ,VL     Z$,, 6 0 "6"  T0H"   4    v  Nb^h\d\^(@ X $ z@  2B,@  H$"    ~"  $L( ".&l 6:Ȅ&6@6*  && 2>0 l:2 D H *P  "& &" RD    B ^@.8>@<$~$N".  >:d& $V($ & (0B n R6"( 2BpX 6 48X,,BF> (fF,F $Hb*R2      ((, . *  ,,N(  X  4<(H \0(Nf0(NN.L " "L*((&$$D$8P ,,Bx&X& &N*  8\Lr  $ & 26Lh  &  "$6  j6 < "  0        6<&   $          n( JP| 6$V "6  h F(F   ( (L         04 $     2 F v   Jv0 " &. (.Z(,&4     @$ " \ 4  :& "t"   6      &$*    0      88( RF*  B          (    Rl@(B  ("$    T "$L$"&,&,  >$ & $0 L   "r 4   $ 4  &  ~  D   0B@D( 6  <    &0  <&  8   *  *$" :$"( ( , ^j       b($$  "   "  0,  R                 T "                                    :          (f $ ,<"r   :     (    *   p               t, , (  $" 6 T "(8 40  D    J ,D((* * B$X6H DD $   ,  0  & 2 2B62D*NX,  64FB*""  "~n v ,   ..$J     *,   <  "Z 42.  2 $   V:D\4*@446 0 0 $"$,( ( 0 0 06 ,Lb8z,F b":,>4@" f,tPdv`  rV "2 * R">:d"F:6B.H*6J"*JFFFF ( B4r"" >$8$8rJ" *,JJ00 ,H ,,6 8 ,2 v8 ,6 ,,T  T* ,,  .6   *jV0b,4 "T & & (,&  H          Z6:6J"Z"Z&N6r      "$" ,*< * * , , 0 , " BBb4 ^ (  VlX$Fd z  f H F  2  "D    * "FV ( *@ B @ ( V  9(9(($((xxjMethod:Method:Paced by EchoNormalTranslation on input:ASCII___To______999Translation on output:ASCII___To______999Send:RawTranslatedReceive:RawTranslatedStart of file transfer:____________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEnd of file transfer:____________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXDelay Time [ms]:________9999Translate EOL to:CRLFCRLF_CROKCancelRS232 setupBaud:192009600480030012002400Flow:XOn/XOffNoneRTS/CTSParity:NoneOddEvenDatabits:78Stopbits:21Mode:LocalEchoFullOKCancel________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOKCancelUniTerm 1986 Simon Poole123456789This program and its documentation may becopied and distributed free of charge, allrights for commercial purposes reserved.Simon Poole, Bahnhofstr. 51 bCH-5430 Wettingen, SwitzerlandDeveloped with ST-Pascal Plus from CCDOKTerminal setup 14010Terminal:VT102VT100VT52VT200DCMKeypad:NumericAppl.Cursormode:ANSI ResetANSI SetUse:8 Bits7 BitsDelete:DeleteBackspaceScroll:SmoothJumpNewline Mode:CR->CRCR->CRLFWrap:AutoNoneBackground:LightDarkCursor:BlinkBlink OffUnderlineBlockStatus:NoneIndicatorHostOKCancelGraphics setupTektronix mode:DisabledEnabledGIN Termination String:________XXXXStatus Termination String:________XXXXGIN Mouse Buttons:Left:__XRight:__XAspect:Fill ScreenTrueTopline:HideShowDeletes:AcceptIgnoreOKCancel Desk File Transfer Settings Other About UniTerm... ---------------------- Desk Accessory 1 Desk Accessory 2 Desk Accessory 3 Desk Accessory 4 Desk Accessory 5 Desk Accessory 6 Load Setup... Save Setup... ------------------- Load Numbers... Save Numbers...------------------- Show Space... Set Path... Delete File... ------------------- Run Program... ------------------- Quit Menu ASCII XModem Kermit YModem RS232... Terminal 1... Terminal 2... Tabs... Graphics... File Transfer... Buffers... Dialer... Edit Function Keys...Receiving:Filesize:kBytes transferred:Number of packets:Timeouts:Retrys:Total number of errors:Last error:Press to abort!___________________________________________________________________________________XModem setupTimeout after:____99SecMaximum number of errors:____99Accept ASCII NUL:YESNoPacket size:1024128Error check type:CRCChkSumOKCancelKermitServer CommandsSendPutFinishReceiveGetLogoutDirRemoteTypeBinary ModeCWDUsageProgramEraseCopyRenameUtilitiesLoginHelpStatusReturn to terminal emulationReceiving: asPress to abortNumber of packets:Timeouts:Errors:Last error:kBytes transferred:Filesize:_________________________________________________________________________________________________________________________________________Kermit setupTimeout after:____99SecMaximum number of retries:____99Number of padding characters:__99Packet size:________9999Quote character:__X8 bit quote character:__XRepeat prefix character:__XPadding character:__XStart of packet:__XIBM mode:OnOffIncomplete files:KeepDiscardError check type:Chk 1Chk 2CRCOKCancel________________________________________________________________________________________________________________________________________________________________ContinueAlternate +F1 Reset Tektronix ModeA Send Answerback StringF2 Toggle 49/24 Line ModeB Short BreakF3 Write Buffer To VDI DeviceC Start File CaptureF4 Print TextscreenL Long BreakF5 Switch To Graphics ScreenP Dump Screen To DiskF6 Switch To Text ModeR Playback A FileF7 Reset TerminalS Start History RecordingF8 Toggle AutoprintT Start FiletransferF9 Enter Zoom ModeV View History BufferF10 Toggle 80/132 Column ModeX Save History BufferCapsLock Toggle Meta ModeZ Hold ScreenHelp Print ScreenUndo ExitMenuA ASCII Par.B BuffersC DialerD Delete FileE Edit F-KeysF DiskspaceG Graph Par.I InfoK Kermit Par.L Load SetupP Set PathR Run Prog.S Save SetupT Set TabsQ QuitV RS232 Par.X XModem Par.Y YModem Par.1 Terminal 12 Terminal 2View BufferUndo ExitInsert BottomHome Top  Line Up/Down  Page Up/DownSLEInsert ExitReturn Send  Up/DownZoom ModeBackspace Previous    Move ScreenReturn RestartUndo ExitUndoExitCopyright 1986/1987/1988 by Simon PooleInsertStart SLEBuffersTransfer:00009999kB00009999kBClipboard:00009999kB00009999kBRS232:0000099999B0000099999BSystem:00009999kB00009999kBHistory:00009999kBOKCancel______________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTerminal setup 2Answerback String:____________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXPrinter:ConnectedNo PrinterPrint Termination:NothingFFSLE:DisabledEnabledRemote Commands:DisabledEnabledNRC:ASCIIGBNLSFFF-CDNDIN/DKPESCHAuto executed macro:___________________.___FFFFFFFFFFFOKCancelTabs1 to 60:12345678901234567890123456789012345678901234567890123456789061 to 120:123456789012345678901234567890123456789012345678901234567890121 to 132:123456789012OKCancelDialer setupName:Macro:Number:1:________________XXXXXXXX___________________.___FFFFFFFFFFF________________________________________XXXXXXXXXXXXXXXXXXXX2:________________XXXXXXXX___________________.___FFFFFFFFFFF________________________________________XXXXXXXXXXXXXXXXXXXX3:________________XXXXXXXX___________________.___FFFFFFFFFFF________________________________________XXXXXXXXXXXXXXXXXXXX4:________________XXXXXXXX___________________.___FFFFFFFFFFF________________________________________XXXXXXXXXXXXXXXXXXXX5:________________XXXXXXXX___________________.___FFFFFFFFFFF________________________________________XXXXXXXXXXXXXXXXXXXX6:________________XXXXXXXX___________________.___FFFFFFFFFFF________________________________________XXXXXXXXXXXXXXXXXXXX7:________________XXXXXXXX___________________.___FFFFFFFFFFF________________________________________XXXXXXXXXXXXXXXXXXXX8:________________XXXXXXXX___________________.___FFFFFFFFFFF________________________________________XXXXXXXXXXXXXXXXXXXX9:________________XXXXXXXX___________________.___FFFFFFFFFFF________________________________________XXXXXXXXXXXXXXXXXXXX10:________________XXXXXXXX___________________.___FFFFFFFFFFF________________________________________XXXXXXXXXXXXXXXXXXXXAccess code:________________________________________XXXXXXXXXXXXXXXXXXXXPrefix:__________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXSuffix:____________XXXXXXHangup:__________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXRetries:____99Connect msg:______________________________XXXXXXXXXXXXXXXOKCancelTimeout:____99Fail 1:______________________________XXXXXXXXXXXXXXXFail 2:______________________________XXXXXXXXXXXXXXX________________________________________________________________________________________________________________________________________________________________UtilitiesDisk SpaceDelete FileSet PathQuitXModem/YModemSendReceiveUtilitiesTerminal______________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCutAddSendF1:F2:F3:F4:F5:F6:F7:F8:F9:F10:NormalShiftControl__________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX__________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX__________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX__________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX__________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX__________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX__________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX__________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX__________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX__________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCancelOK_abcefgijquvz~!Ho''''27<lxy 5^)) )   67(8<=>gh)i'+,fkp   H q r) s                 W ^ _ ) )           !  " . /  0 = >  N Q T v y |    (*,?ACNZ[ kpqbno rr CHIrJtu*}r   %27<Jq''BB/0Dk''p| Wde ~    '4 @Uj    +8 DYn   #/< H]r    '3@ Lav  # ,8E Qf{:AHWq  (8P`p               #$ %./ 09: ;DE FOP QZ[ \fg  '' W BB!!_!BB!"%"gBB""#-BB#o##BB$5$w$BB$%=%BB%&&EBB&&' BB'M''BB2L$, 4B *I P(  P(:  P(V  k (r w(P( P( P( P( P) P)6  )R  )n P) P) P) !    "%#$ $ "& ') &( )) &*!+*,A1-0".S/V 0Y,^2b%e,"'*2 z                   !    "%. (*N( % % *j*!**  * *  +  +. '7L+J  G5 !+  ?      # )# /5 @ I N U \#1d k u  }  # " !2 !  # &$% % # '# *()2 ) ' +.,- - + 1/0"0 . 2635 $4 5 2  7 %+ ++f -= F N+ u +     +  +%            %PP'   &  1  <  -P  D X o   %7I]o    %!$ " # $    -&,' ( *) ?* T+ c, v% ./"/ - 7+              +   ( ,( *  ,* - ,F3,b,~,+ , - ,,, - " % -&&  $       $    '  , $ 0 B F M % P6-B ` p  u  y&       &        *        *    *     *' " C  ! $  @ S  ]  e   q    ( -^( -z(5 - - - -.  ." #5.> ?.Z, W. [.v,  .,    .*   .-  .-   /-  /- . /:- E  ORVh m u"!  !#  % 0(((('E PHL9 /V9\u            + AY k~       ; I ` 21= /r r   !" # $ % &' ( ) * + ,  -. /, 0: 1H U 9384/5p 6| 7 82>:=;/< = 9D?C&@/ABC>/GEFF>D/H/IJ&JvH 0 "*06  @+0R@-0n  %   @+ 0 @-0 %@+0@-0 & @+ 0  @- 1 &% )  12 !=% "@ %C( 1N& 1jP&?111&    )     %      %  % -#")28; >ACI$KM  R!T"VX$$[%1 &  %&  L1"@< @<4 @@  M %P, @41fls{22.  2J  2f 2  222 233* 3F3b3~ 3 3 3 3  4   4& !4B "  #4^ $4z %4 & '4 (4 )4 *  +5 ,5" -5> . /5Z015v 22$35,4O55 6$7508 95: ;<$=60>?6 @H(6:# 6V6r66666 7 76 7R 7n 777778828N !8j 8 hs'  8    ' ( 8&  ! J   ! % ) - 1  5  9   =     B I   OA 8A8A9A9.A9JA9fA9A9A9A9 A(4 '(@ 9>BBzCHKP*RjTbVX[\rczffg jkqstBtuub UniTerm Users Guide Simon Poole February 3, 1988 Users Guide for UniTerm 2.0c (002) Version 1.07 ASCII Copyright 1987/1988 by Simon Poole All rights reserved. No part of this publication may be reproduced without the permission of the publisher. I make no warranty with respect to this publication, or the program it describes, and disclaim any implied or explicit suggestions of usefulness for any particular purpose. Use this program only if you are willing to assume all risks, and damages, if any, arising as a result, even if caused by negligence or other fault. GEM is a trademark of Digital Research Co. DEC,VT are trademarks of Digital Equipment Co. Tektronix is a trademark of Tektronix Co. Atari is a trademark of Atari Co. The Kermit file transfer protocol was developed by Frank da Cruz and Bill Catchings at Columbia University. Many thanks! This document was semi-automatically produced from the original DVI file, it does not do justice to the quality of the original. In particular footnotes are missing and some tables are not complete. Contents 1 Introduction 1 2 Starting Using UniTerm 2 2.1 Requirements ................................................. 2 2.2 Getting Started ............................................... 2 2.2.1 Desk Menu .......................................... 2 2.2.2 File Menu ........................................... 3 2.2.3 Transfer Menu ...................................... 3 2.2.4 Settings Menu ..................................... 4 2.2.5 Other Menu .......................................... 4 2.3 Exiting UniTerm .............................................. 5 2.4 Vector Graphics Mode ......................................... 5 2.5 Zoom Mode .................................................... 5 2.6 GIN Mode ...................................................... 6 2.7 Tektronix 4014 Alpha Mode ..................................... 6 2.8 Using the Special Keys ........................................ 6 2.9 The Clipboard ................................................ 8 2.10 Mouse Cursor Control ......................................... 8 2.11 Popup Menu .................................................. 9 2.12 Viewing the History Buffer .................................. 9 2.13 Dialer ...................................................... 9 2.14 Meta Mode ................................................... 9 3 More About UniTerm 11 3.1 RS232 Port Parameters ....................................... 11 3.2 Terminal Parameters ........................................... 12 3.2.1 Terminal 1 ........................................ 12 3.2.2 Terminal 2 ........................................ 13 3.3 Graphics Terminal Parameters ................................. 13 3.4 Tabs ......................................................... 14 3.5 Changing Buffer Sizes ....................................... 14 3.6 Setup Files ................................................. 14 3.7 File Capture/Playback ......................................... 15 3.8 Editing Function Keys ........................................ 15 3.9 The Statusline ............................................... 15 3.10 The Single-line Editor ....................................... 15 3.11 Single Character Commands...................................... 16 4 File Transfer 17 4.1 General ...................................................... 17 4.2 ASCII File Transfer .......................................... 17 4.2.1 Using ASCII File Transfer ........................... 17 4.2.2 Setting the ASCII File Transfer Parameters ......... 17 4.3 XModem/YModem ................................................. 18 4.3.1 Using XModem ........................................ 18 4.3.2 Using YModem Batch .................................. 19 4.3.3 Setting the XModem Parameters ....................... 19 4.4 Kermit ........................................................ 19 4.4.1 UniTerm Kermit Capabilities ......................... 19 4.4.2 Simple File Transfer ............................... 20 4.4.3 Binary File Transfer ............................... 20 4.4.4 Server Commands ................................... 21 4.4.5 Setting the Kermit Parameters ...................... 21 5 Customizing UniTerm 23 5.1 Popup Menu .................................................. 23 5.2 Key Bindings ................................................. 23 6 Implementation Notes 24 6.1 General ...................................................... 24 6.2 VT102/VT100 Mode .............................................. 25 6.2.1 Smooth Scrolling .................................... 25 6.2.2 132 Column Mode .................................... 25 6.2.3 Double Height/Width Characters ................... 25 6.2.4 Extended character set in 8 bit mode ............. 25 6.3 VT200 Mode ................................................... 25 6.3.1 VT200 function keys ................................ 25 6.3.2 C0/C1 Modes ......................................... 26 6.3.3 International character set ......................... 26 6.3.4 Downloadable character set ......................... 26 6.3.5 Downloadable function keys ......................... 26 6.3.6 Regis ............................................. 26 6.4 Tektronix Mode................................................ 26 6.5 General ...................................................... 26 6.5.1 Alpha Mode .......................................... 27 6.5.2 Vector Mode ....................................... 27 6.5.3 Zoom Mode ........................................... 27 6.6 Problems .................................................... 27 A Control Codes and Escape Sequences 28 A.1 ANSI/VT2XX/VT102/VT100 Mode .................................. 28 A.1.1 Set Mode ........................................... 28 A.1.2 Reset Mode ......................................... 29 A.1.3 Select Character Sets................................ 29 A.1.4 Shift into Character Sets ......................... 30 A.1.5 Character Attributes .............................. 30 A.1.6 Scrolling Region .................................. 30 A.1.7 Cursor Movement Commands .......................... 30 A.1.8 Tab Stops ........................................ 30 A.1.9 Line Attributes .................................. 31 A.1.10 Erasing ............................................ 31 A.1.11 Requests/Reports .................................. 31 A.1.12 Reset ............................................. 32 A.1.13 Tests ............................................... 32 A.1.14 Keyboard LED's ..................................... 32 A.1.15 VT52 Mode ........................................... 32 A.1.16 Editing Functions ................................. 33 A.1.17 Print Commands ...................................... 33 A.1.18 Other Control Characters ........................... 33 A.1.19 Nonstandard Functions .............................. 34 A.2 VT2XX Functions .............................................. 34 A.2.1 Character Sets ..................................... 34 A.2.2 Terminal Modes .................................... 35 A.2.3 Selective Erasing and Attributes .................... 35 A.2.4 Reports ............................................ 36 A.2.5 Misc ............... .............................. 36 A.2.6 Downloadable Function Keys ........................ 36 A.2.7 Downloadable Character Sets ........................ 36 A.2.8 Control Codes ..................................... 36 A.3 VT3XX Functions .............................................. 37 A.3.1 Set Mode ........................................... 37 A.3.2 Reset Mode ......................................... 37 A.3.3 National Replacement Character Sets ................ 37 A.4 4014 Mode .................................................... 38 A.4.1 Alpha Mode .......................................... 38 A.4.2 Other Functions and ................................ 39 A.4.3 Vector Mode ........................................ 39 A.4.4 Point Plot/Special ................................ 40 A.4.5 Incremental Point Plot............................... 40 A.5 4105 Commands ............................................... 40 B ASCII Control Codes 44 B.1 7-bit Control Codes ......................................... 45 B.2 8-bit Control Codes ......................................... 46 C Simple Macro Processor 47 C.1 Arguments ................................................... 47 C.2 Functions .................................................... 48 C.3 Prefix Operators ............................................. 51 C.4 String Constants ............................................. 52 C.5 Predefined String Variables .................................. 52 C.6 Additional Features in Macro File Mode ....................... 52 C.6.1 Labels ................................................ 52 C.6.2 Comments .............................................. 52 C.6.3 Additional Statements ................................. 53 C.7 Example ...................................................... 53 C.8 UniTerm Internal Function Numbers.............................. 55 D The KeyEdit Program 58 D.1 Editing a UniTerm Setup File .................................. 58 D.2 Updating your Setup File ..................................... 58 E Key assignments and generated codes 60 Chapter 1 Introduction UniTerm is a program that emulates most of the functions of DEC's (Digital Equipment Corporation) VT102 and VT220 text terminals and of Tektronix's 4014 graphics terminal. Additionally UniTerm provides the XModem, YModem and Kermit file transfer protocols. The program UniTerm is copyrighted, it can be copied, distributed and used free of cost, but may not be sold for more than the actual distribution costs. Please contact me, if you find bugs or have suggestions for revised versions of UniTerm, but read appendix A and the implementation notes first. Some compromises have been made in the implementation of the VT100 132 column mode and double width characters will not work on a color monitor. Enhancements which are planned for future releases: * Tektronix 4105 commands (already started!) * make UniTerm work with the blitter-chip * enhanced color version (colors for highlighted etc.) Chapter 2 Starting Using UniTerm 2.1 Requirements To use UniTerm you need: * an ATARI ST computer * a monochrome or color monitor * an RS232 standard cable * a computer/modem to connect to * a floppy disk containing UNITERM.PRG and UNITERM.RSC 2.2 Getting Started After connecting your ST to your host computer, double click the UniTerm icon. If you are using UniTerm for the first time an alert box will appear, press and ignore the error message (UniTerm didn't find the file UNITERM.SET, which we will create later on), the screen will clear to white(on a monochrome monitor) with a statusline on line 25. Press and the UniTerm help screen and a menu bar with following contents will appear: ______________________________________________________________________________ |__Desk________File________Transfer_________Settings_______Other_____________| 2.2.1 Desk Menu ______________________________________________________________________________ |Desk__________File_________Transfer_______Settings________Other_____________| |About_Uniterm..._____| 2.2. GETTING STARTED 3 [Desk] is the well known menu where you can start desk accessories and with the [About UniTerm... ] entry you can find out which version of UniTerm you are using. 2.2.2 File Menu ______________________________________________________________________________ |Desk_______File________Transfer_______Settings___________Other______________| |Load Setup | |Save_Setup____| |Load Numbers | |Save_Numbers__| |Show Space | |Set Path | |Delete_File | |Run_Program | |Quit__________| [File] allows you to select from: [Load Setup] load a previously saved setup from disk. [Save Setup] save the current settings of UniTerm to disk. [Load Numbers] load a setup file for the dialer [Save Numbers] save a setup file for the dialer [Delete File] delete a file. [Set Path] change the current GEMDOS drive and path. [Show Space] show total available and free space on the current drive. [Run Program] execute a program without leaving UniTerm. [Quit Menu] leave this screen and return to terminal mode. 2.2.3 Transfer Menu ______________________________________________________________________________ |Desk__________File________Transfer_____Settings____________Other____________| |ASCII | |XModem | |YModem | |Kermit___| [Transfer] selects the file transfer protocol you want to use: A change here is reflected in a different dialog box appearing when you select the [File Transfer] item and in the protocol used when you type . 4 CHAPTER 2. STARTING USING UNITERM 2.2.4 Settings Menu ______________________________________________________________________________ |Desk___________File_______Transfer_____Settings___________Other_____________| |RS232 | |Terminal 1 | |Terminal 2 | |File Transfer | |Graphics | |Tabs | |Buffers_______| [Settings] allows you to select from: [RS232] sets the parameters of the serial port. [Terminal 1] sets the value of some terminal (text mode) parameters. [Terminal 2] sets the rest of the terminal specific parameters [Graphics] sets the values for the graphics terminal module of UniTerm. [File Transfer] allows you to set the parameters for the current file transfer mode. [Buffers] set the sizes of the buffers UniTerm uses. [Tabs] set the tab positions (do not change without need, a lot of software depends on the "factory" settings) 2.2.5 Other Menu ______________________________________________________________________________ |Desk________File_______Transfer_______Settings_______Other__________________| |Dialer | |Edit_Function_Keys_| [Other] has two items: [Edit Function Keys] allows you to assign a string and/or macro commands to a function key. [Dialer] setup the dialling sequences and telephone numbers for your modem. Select the [RS232] item in the [Settings] menu and a new dialog will appear. Selecting the different values for the parameters is quite straight-forward, just click on the buttons with the right values (we hope you know them, otherwise you will just have to experiment) and when you are finished select [OK]. To save the setup, select [Save setup] from the [File] menu, a normal GEM file selector dialog will appear, if you want to use this setup as default, save it with the name UNITERM.SET and UniTerm will load it automatically on startup. To leave the help screen select [Quit Menu], press or the left mouse button once. 2.3. EXITING UNITERM 5 If you have adjusted the parameters correctly, you should now be able to communicate with your host computer. Some operating systems (VMS) try to identify the terminal automatically, depending on your setup UniTerm will identify itself as a DEC VT200, VT102, VT100 or as a VT100 emulating a VT52. A VT102/VT200 has more 'advanced' editing functions (which results in less overhead in transmitting inserts etc.) so leave this option on VT102/VT200 if possible. If you have to enter the terminal type manually try VT102 first (changing from VT102 to VT100 or to VT200 only changes the report from UniTerm, not the actual commands UniTerm understands). 2.3 Exiting UniTerm To stop UniTerm, press the key, an alertbox will appear asking for confirmation ( exits immediatly). 2.4 Vector Graphics Mode After receiving the control code GS (this can be turned off) or the 4105 command ESC %!0 from the host, UniTerm switches to a separate graphics screen, if the host doesn't send ESC FF (the ASCII characters Escape and Formfeed) before starting a new picture, you will have to clear the screen manually with . The incoming characters will be interpreted as Tektronix encoded vectors or commands (see appendix A) until UniTerm receives one of the following codes: CAN will return you to VT102 mode, ESC FF will clear the screen and enter Tektronix alpha mode. ESC %!1 will return to VT102 mode. To return manually from Tektronix to VT200/VT102/VT100/VT52 mode press or select the appropriate mode from the item Terminal in the menu Settings. To view your picture again press . Be careful,selecting Tektronix 4010 mode manually will also reset the history buffer! 2.5 Zoom Mode If your history buffer is large enough, you can redraw a picture with different scaling factors. To select this mode press , the screen will be cleared, 6 CHAPTER 2. STARTING USING UNITERM the current contents of the buffer will be drawn on the screen and the normal arrow mouse cursor will appear. To select the region of the picture you want to magnify, move the arrow to the upper left corner of the region, press the left mouse button and drag the mouse to the lower right corner of the region (a "rubber box" should follow the arrow) and release the button. The resulting picture will be scaled so that the larger side of box will fit on the screen (if the option True Aspect is selected). You can repeat this operation until a magnification factor of thirty is reached. will restore the previous scaling factor, the arrow keys will move the screen a third of the screen width/height in their direction, will reset to the original scaling and will leave zoom mode. Remember that if your picture is built out a lot of vectors, the redrawing may take some time! 2.6 GIN Mode The sequence ESC SUB will enter GIN mode from any of the Tektronix modes, it will not work from the VT102/VT100 mode since SUB cancels all ANSI type commands. A crosshair cursor will appear which can be moved with the mouse. Pressing any key on the keyboard will cause a GIN report to be sent to the host and exits the GIN mode to Tektronix alpha mode (if for some reason the program switching UniTerm into GIN mode does not stop, you can exit completely by pressing ). 2.7 Tektronix 4014 Alpha Mode This mode is only included for compatibility with the GIN-mode and is not very useful. It is the same as 4010 alpha mode with one margin. This mode will probably be replaced in future versions with a 4105 compatible alphamode. 2.8 Using the Special Keys Here is a list of the functions on the special keys (press and the key listed here to invoke the function): Erases the graphics screen and resets the Tektronix emulation from any terminal mode. Toggle 24/49 lines mode (only on monochrome monitor). Write history buffer contents to a VDI-device (printer or metafile) 2.8. USING THE SPECIAL KEYS 7 Prints the contents of the textbuffer (this is a very quick way of getting a copy of the screen contents, it is much faster than using the normal screen dump). Switches to the graphics screen and sets the terminal to Tektronix 4010 mode. Switches the screen and the terminal to VT102/VT100 mode. Resets the terminal, reads the default values from disk. Toggle autoprint. Enter zoommode. Toggle between 132(128) and 80 column mode. Send the answerback string. Send a short break (0.233 s) (doesn't drop DTR). Start/stop file capture. Hangup the telephone. Send a long break (3.5 s) (drops DTR).

| Led 0 | DLE Data link escape | | 17 |021 | 11 | | Led 1 | DC1 X-on | | 18 |022 | 12 | | Led 2 | DC2 | | 19 |023 | 13 | | Led 3 | DC3 X-off | | 20 |024 | 14 | | Led 4 | DC4 | | 21 |025 | 15 | | Led 5 | NAK Neg. acknowledge | | 22 |026 | 16 | | Led 6 | SYN Synchronus idle | | 23 |027 | 17 | | Led 7 | ETB End trans. blocks | | 24 |030 | 18 | | Led 8 | CAN Cancel | | 25 |031 | 19 | | Led 9 | EM End of medium | | 26 |032 | 1A | | ? | SUB Substitute | | 27 |033 | 1B | <[> | ESC | ESC Escape | | 28 |034 | 1C | <\> | Face p. 1 | FS File sep. | | 29 |035 | 1D | <]> | Face p. 2 | GS Group sep. | | 30 |036 | 1E | <^> | Face p. 3 | RS Record sep. | | 31 |037 | 1F | <_> | Face p. 4 | US Unit sep. | | 32 |040 | 20 | | | SP Space | |_______|______|________|__________|______________|__________________________| 46 APPENDIX B. ASCII CONTROL CODES B.2 8-bit Control Codes ______________________________________________________________________________ | Dec | Oct | Hex |Keys + | 7-bit | ASCII name | |_______|______|________|__+__|___equiv.__|_________________________| | 128 | 200 | 80 | <@> | ESC @ | Unused | | 129 | 201 | 81 | | ESC A | Unused | | 130 | 202 | 82 | | ESC B | Unused | | 131 | 203 | 83 | | ESC C | Unused | | 132 | 204 | 84 | | ESC D | IND Index | | 133 | 205 | 85 | | ESC E | NEL New line | | 134 | 206 | 86 | | ESC F | SSA | | 135 | 207 | 87 | | ESC G | ESA | | 136 | 210 | 88 | | ESC H | HTS Horizontal tab set | | 137 | 211 | 89 | | ESC I | HTJ | | 138 | 212 | 8A | | ESC J | VTS | | 139 | 213 | 8B | | ESC K | PLD | | 140 | 214 | 8C | | ESC L | PLU | | 141 | 215 | 8D | | ESC M | RI Reverse index | | 142 | 216 | 8E | | ESC N | SS2 Single shift 2 | | 143 | 217 | 8F | | ESC O | SS3 Single shift 3 | | 144 | 220 | 90 |

| ESC P | DCS Dev. ctrl string | | 145 | 221 | 91 | | ESC Q | PU1 | | 146 | 222 | 92 | | ESC R | PU2 | | 147 | 223 | 93 | | ESC S | STS | | 148 | 224 | 94 | | ESC T | CCH | | 149 | 225 | 95 | | ESC U | MW | | 150 | 226 | 96 | | ESC V | SPA | | 151 | 227 | 97 | | ESC W | EPA | | 152 | 230 | 98 | | ESC X | Unused | | 153 | 231 | 99 | | ESC Y | Unused | | 154 | 232 | 9A | | ESC Z | Unused | | 155 | 233 | 9B | <[> | ESC [ | CSI Command seq. intro.| | 156 | 234 | 9C | <\> | ESC \ | ST String terminator | | 157 | 235 | 9D | <]> | ESC ] | OSC | | 158 | 236 | 9E | <^> | ESC ^ | PM | | 159 | 237 | 9F | <_> | ESC _ | APC | |_______|______|________|______________|___________|_________________________| Due to the way the german bios is written (and probably most of the none US versions) not all of these codes can be produced with the keyboard. Appendix C Simple Macro Processor The macro commands can be in the strings assigned to the function keys or in a file, the command initiator is % for function keys (this is not needed in a macro file). A command line is a maximum of 80 characters long. The macro-processor works in two modi: Function-key mode all characters between commands are sent to the serial port Macro file mode everything between commands except white-space is a syntax error, additional commands are available in this mode. C.1 Arguments Arguments are enclosed in parentheses and separated by commas, they can be of the following types: String constant character string enclosed in single quotes, max. 80 characters. String variable 10 user setable string variables are available: $1 to $10, additionaly 5 predefined strings can be used. Integer constant positive integer in the range 0..32767. Integer variable 10 user setable integer variables are available: @1 to @10, range -32768 to +32767. 48 APPENDIX C. SIMPLE MACRO PROCESSOR Function any of the built-in functions can be used as an argument. C.2 Functions All commands only have to be specified to the point they are unique (for most commands this means one character). ADD(int1,in2) Arithmetic sum. Returns: int1 + int2 AND(int1,int2) Logical and. Returns: int1 and int2 ASSERT() Assert DTR. Returns: 0 BREAK(len,drop-dtr) Send Break for len (integer) mSec, drop DTR according to the drop-dtr (integer) value. Returns: 0 CONCAT(str1,str2) Concatenate str1 (string) and str2 (string) and put the result in the variable $TEMP. Returns: 0 COPY(nr,str) Copy str (string) to string variable number nr (integer). Returns: 0 COMPARE(str1,str2) Compare str1 (string) to str2 (string). Returns: 1 if str1 equals str2 else 0. DROP() Drop DTR. Returns: 0 DIAL(num) Dial number num (1 to 10). Returns: 1 if sucessful, 0 otherwise. C.2. FUNCTIONS 49 ECHO(message) Echo message (string). Returns: 0 FILESELECTOR(path,filename,prompt) Show a fileselector with path path (string), filename filename (string) and a prompt of prompt (string). The new values for path and filename are in the variables $PATH and $FILENAME. Returns: 1 if [OK] is selected, else 0. GET(in-string,time) Wait for in-string (string), with timeout time (integer) sec. Returns: 1 if sucessful. HANGUP() Hangup the modem. Returns: 0 HISTORY(switch) Turns history recording on if switch is 1 (does not reset the buffer). Returns: 0 INLINE(mode) Reads a line from the keyboard (until is pressed or a maximum of 80 characters are read), if mode is 1 (true) the characters are echoed. The line read is copied into $TEMP. Returns: 0 INPUT(prompt) Prompt for a line of input, result is in $TEMP, prompt is a string. Returns: 1 if [OK] is selected. KERMIT(mode,8-bit-mode,filespec) Start Kermit filetransfer with the following parameters: mode (string): SEND : send file(s) REC : receive file(s) GET : receive file(s) from server 8-bit-mode (integer): 0 : 7 bit ASCII text 1 : 8 bit binary filespec (string): file specification with wildcards. Returns: 0 LOADSETUP(name) Load the setup file with name name (string). Returns: 0 50 APPENDIX C. SIMPLE MACRO PROCESSOR LOADTEL(filename) Load a dialer setup file. Returns: 0 MESSAGE(msg) Displays msg (string) on the statusline. If msg is empty the normal statusline is restored. MACRO(name) Execute the macro with filename name (string) from disk, default path is the current directory. Returns: the value of the exit command, or -3 : syntax error (line in $TEMP) -2 : not enough stack (nested more than one level) -1 : macro buffer full (more than 4kB) OR(int1,int2) Logical or. Returns: int1 or int2 PATH(path) Change default path to path (string). Returns: 0 POPUP(entry,command,name) Redefines an entry in the popup menu: entry : 1..20 command : see list name : string that will be displayed Returns: 0 RUN(name,commandline) Execute program name (string) with commandline commandline (string). If its a .TTP program you'll be asked for parameters. Returns: Return code of program. REASSIGN(alt-key,command) Assigns integer value command to the alternate key value alt-key. Returns: 0 SEND(out-string) Send out-string (string). Returns: 0 C.3. PREFIX OPERATORS 51 SET(nr,int) Set integer variable number nr (integer) to int (integer). Returns: 0 SUSPEND() Displays "Press any key..." on the statusline and waits for a keypress. Returns: 0 WAIT(time) Wait for time (integer)mS x 100. Returns: 0 UNICOMMAND(command) Execute one of UniTerm's internal commands, see list. Returns: 0 XMODEM(mode,file) mode (string): SEND : send file REC : receive file file (string): file to send/receive Returns: 0 YMODEM(mode,filespec) mode (string): SEND : send file(s) REC : receive file(s) filespec (string): file specification with wildcards Returns: 0 C.3 Prefix Operators - negate integer value ! logical not " return integer as string . return string as integer Bug: . and " don't know about negative integers. 52 APPENDIX C. SIMPLE MACRO PROCESSOR C.4 String Constants String constants are a maximum of 80 characters long and are enclosed in single quotes. Special ASCII values can be entered with the escape character \, every character after \ equals itself, except: r : is CR n : is LF 0xx : \0xx is the octal ASCII value 0xx C.5 Predefined String Variables $PATH contains the last file selector path, is initialized to the home directory of UniTerm. $FILENAME contains the last file selector filename, is initialized to ''. $CURRENT contains the current GEM DOS path. $TEMP tempory string for use in the macro processor. $VAR holds the address of UniTerm's parameter block for passing to other programs. C.6 Additional Features in Macro File Mode C.6.1 Labels Twenty local labels (per macro file) can be used: :1 to :20. A label must be the first and only word on a line! C.6.2 Comments A line starting with # is ignored on input. C.7 EXAMPLE 53 C.6.3 Additional Statements These statements can only be used in macro file mode, and will cause an error if used from a function key. if(int) execute the rest of the line if int is not equal 0 jump(nr) goto lanel number nr exit(int) stop processing and return with value int call(nr) execute subroutine at label nr (subroutines can't be nested) return() return from subroutine C.7 Example ##################################### # Test Macro for UniTerm V2.0b 017 # # Copyright 1988 Simon Poole # # # ##################################### # turn history recording on history(1) call(20) echo('\007\r\nSample UniTerm macro file') echo('\r\n-------------------------\007') # # Reset the modem # copy(1,'ATZ') copy(2,'OK') set(2,5) call(4) # if(@1) echo('\r\nReset\r\n') jump(2) # echo('\r\nToo many retries\r\n') exit(-1) # # Dial the number and wait for CONNECT 54 APPENDIX C. SIMPLE MACRO PROCESSOR # (in real life you would use the dial() function) # :2 # Get number from user if(!input('Enter number (012512002)')) echo('\r\nCancelled') exit(0) # if the string is empty use the default if(compare($T,'')) concat('012512002','') # Hayes want a ATD concat('ATD',$T) # dial............ copy(1,$T) copy(2,'CONNECT') set(2,30) call(4) if(!@1) echo('\r\nFailed\r\n')exit(1) # # Login # # this is for our LocalNet 20 system :6 send('\r') if(!get('#',2)) break(100,FALSE) if(!get('#',2)) send('\001\001') send('echo off\r') if(!get('#',2)) echo('\r\nSomething is really wrong!') hangup() exit(-1) # call the system send('call e780\r') # should have a counter here, but you can always stop with ^C if(!get('COMPLETED',3)) send('done\r') jump(6) if(!get('ogin',3)) send('done\r') jump(6) send('poole\r') # # should send my password here # # Finished! exit(0) ######################################################### # # # Send a string to a Hayes compatible modem # # # ######################################################### # # @1 number of retries # @2 timeout # $1 string to send (telephone number...) C.8. UNITERM INTERNAL FUNCTION NUMBERS 55 # $2 string to wait for (CONNECT) # :4 set(1,3) :5 echo('\r\nTry: ') echo("add(4,-@1)) set(1,add(@1,-1)) wait(10) # send attn string echo('\r\nSending +++') send('+++') # we might get a OK here... get('OK',2) echo('\r\nSending ') echo($1) send($1) send('\r') if(and(!get($2,@2),@1)) jump(5) return() ######################################################## # # # Home cursor and clear screen # # # ######################################################## :20 echo('\033[f\033[2J') return() ######################################################## A very useful aspect of the macro processor, is that you can assign a string like %R('TEMPUS.PRG','') to a function key and run your favourite editor just by pressing one key. C.5 UniTerm Internal Function Numbers ResetTek = 1 VDIOutput = 2 PrintTextScreen = 3 TekMode = 4 TextMode = 5 Reset = 6 AutoPrint = 7 56 APPENDIX C. SIMPLE MACRO PROCESSOR Zoom = 8 132ColumnToggle = 9 ScrollLock = 10 49LineToggle = 11 SendAnswerBack = 12 ShortBreak = 13 DropDTR = 14 LongBreak = 15 SaveHistory = 16 ControlHistory = 17 Switch = 18 ControlCapture = 19 PlayBack = 20 SendFile = 21 DegasSave = 22 ReplayHistory = 23 Hangup = 24 Dial1 = 25 Dial2 = 26 Dial3 = 27 Dial4 = 28 Dial5 = 29 Dial6 = 30 Dial7 = 31 Dial8 = 32 Dial9 = 33 Dial10 = 34 SetPath = 35 DelFile = 36 DiskSpace = 37 F1 = 38 F2 = 39 F3 = 40 F4 = 41 F5 = 42 F6 = 43 F7 = 44 F8 = 45 F9 = 46 F10 = 47 SF1 = 48 SF2 = 49 SF3 = 50 C.8. UNITERM INTERNAL FUNCTION NUMBERS 57 SF4 = 51 SF5 = 52 SF6 = 53 SF7 = 54 SF8 = 55 SF9 = 56 SF10 = 57 Utilities = 58 ToggleMeta = 59 Help = 60 InsertClip = 61 SaveClip = 62 ViewHistEOL = 63 Appendix D The KeyEdit Program If you have got a complete release of UniTerm, you should have a copy of KEYEDIT.PRG (Please check that it is for version 1.6f or higher!). This program enables you to edit the keyboard table stored in an UniTerm setup file, additionally you can create an executable keyboard table loader or just output the table itself. D.1 Editing a UniTerm Setup File Start KEYEDIT.PRG and press when you see the opening dialog box. It will take a few seconds to create the display. You can only edit a existing setup file with predictable results, so select [Load UniTerm File] and select the file you want to edit. Select the key you want to change (select the appropriate part of the table (normal, shifted or capslocked)) and then the character you want to assign to the key. When you are finished with editing, select [Save UniTerm File]. Don't try to change the characters on the keypad, cursorkeys or function-keys in the UniTerm setup file. These keys are hardwired via keycode to specific strings (like on a real VT100). D.2 Updating your Setup File To move your custom keyboard table from an old version of UniTerm to a new one, do the following: Rename the old setup file Start UniTerm and set all parameters that need changing Save the setup as UNITERM.SET D.2. UPDATING YOUR SETUP FILE 59 Leave UniTerm and start KeyEdit Load your old setup file Save on top of UNITERM.SET Appendix E Key assignments and generated codes Table E.1: VT100 Cursor Keys ___________________________________________________________________ |__VT100_Key____|_UniTerm_key__|__ANSI_normal_|__ANSI_application_| | Cursor Up | Cursor Up | ESC [A | ESC OA | | Cursor Down | Cursor Down | ESC [B | ESC OB | | Cursor Right | Cursor Right | ESC [C | ESC OC | |__Cursor_Left__|_Cursor_Left__|__ESC_[D______|__ESC_OD___________| Table E.2: VT52 Cursor Keys ___________________________________________________________________ |__VT100_Key____|_UniTerm_key__|__ANSI_normal_|__ANSI_application_| | Cursor Up | Cursor Up | ESC A | ESC A | | Cursor Down | Cursor Down | ESC B | ESC B | | Cursor Right | Cursor Right | ESC C | ESC C | |__Cursor_Left__|_Cursor_Left__|__ESC_D_______|__ESC_D____________| 61 Table E.3: VT100 Keypad _________________________________________________________________________ |__VT100_Key___|____UniTerm_key___|__Numeric_mode__|__Application_mode__| | PF1 | Keypad ( | ESC OP | ESC OP | | PF2 | Keypad ) | ESC OQ | ESC OQ | | PF3 | Keypad / | ESC OR | ESC OR | | PF4 | Keypad * | ESC OS | ESC OS | | Keypad 7 | Keypad 7 | 7 | ESC Ow | | Keypad 8 | Keypad 8 | 8 | ESC Ox | | Keypad 9 | Keypad 9 | 9 | ESC Oy | | Keypad 4 | Keypad 4 | 4 | ESC Ot | | Keypad 5 | Keypad 5 | 5 | ESC Ou | | Keypad 6 | Keypad 6 | 6 | ESC Ov | | Keypad 1 | Keypad 1 | 1 | ESC Oq | | Keypad 2 | Keypad 2 | 2 | ESC Or | | Keypad 3 | Keypad 3 | 3 | ESC Os | | Keypad 0 | Keypad 0 | 0 | ESC Op | | Keypad - | Keypad - | - | ESC Om | | Keypad , | Keypad + | , | ESC Ol | | Keypad . | Keypad . | . | ESC On | |__Keypad_Enter|____Keypad_Enter__|__CR/CRLF_______|__ESC_OM____________| 62 APPENDIX E. KEY ASSIGNMENTS AND GENERATED CODES Table E.4: VT100 Keypad (VT52 mode) _________________________________________________________________________ |__VT100_Key___|____UniTerm_key___|__Numeric_mode__|__Application_mode__| | PF1 | Keypad ( | ESC P | ESC P | | PF2 | Keypad ) | ESC Q | ESC Q | | PF3 | Keypad / | ESC R | ESC R | | PF4 | Keypad * | ESC S | ESC S | | Keypad 7 | Keypad 7 | 7 | ESC ?w | | Keypad 8 | Keypad 8 | 8 | ESC ?x | | Keypad 9 | Keypad 9 | 9 | ESC ?y | | Keypad 4 | Keypad 4 | 4 | ESC ?t | | Keypad 5 | Keypad 5 | 5 | ESC ?u | | Keypad 6 | Keypad 6 | 6 | ESC ?v | | Keypad 1 | Keypad 1 | 1 | ESC ?q | | Keypad 2 | Keypad 2 | 2 | ESC ?r | | Keypad 3 | Keypad 3 | 3 | ESC ?s | | Keypad 0 | Keypad 0 | 0 | ESC ?p | | Keypad - | Keypad - | - | ESC ?m | | Keypad , | Keypad + | , | ESC ?l | | Keypad . | Keypad . | . | ESC ?n | |__Keypad_Enter|____Keypad_Enter__|__CR/CRLF_______|__ESC_?M____________| 63 Table E.5: VT2XX Keys _______________________________________________ | VT2XX Key |Assigned to | Sends | | | for down- | (default | |_____________|loadable_keys_|___on_a_VT2XX)__| | Find | | ESC [1~ | | Insert here| | ESC [2~ | | Remove | | ESC [3~ | | Select | | ESC [4~ | | Prev Screen| | ESC [5~ | |__Next_Screen|______________|____ESC_[6~_____| | F6 (F6) | F1 | ESC [17~ | | F7 (F7) | F2 | ESC [18~ | | F8 (F8) | F3 | ESC [19~ | | F9 (F9) | F4 | ESC [20~ | | F10 (F10) | F5 | ESC [21~ | | F11 (F11) | F6 | ESC [23~ | | F12 (F12) | F7 | ESC [24~ | | F13 (F13) | F8 | ESC [25~ | | F14 (F14) | F9 | ESC [26~ | | Help (F15) | F10 | ESC [28~ | | Do (F16) | Shift F1 | ESC [29~ | | F17 (F17) | Shift F2 | ESC [31~ | | F18 (F18) | Shift F3 | ESC [32~ | | F19 (F19) | Shift F4 | ESC [33~ | | F20 (F20) | Shift F5 | ESC [34~ | |_____________|______________|________________| UniTerm User's Guide 1 CChhaapptteerr -- 11 IInnttrroodduuccttiioonn UniTerm is a program that emulates most of the functions of DEC's (Digital Equipment Corporation) VT102 text terminal and the vector mode of Tektronic's 4014 graphics terminal. The program and its documentation can be copied, distributed and used free of cost, but may not be sold for commercial purposes. Please contact me, if you find bugs or have suggestions for revised versions of UniTerm, but read appendix A and the implementation notes first. Some compromises have been made in the implementation of the VT100 special graphics character set and double height/width characters, but as soon as we can design and load fonts on the ST, this will be fixed. Other things which are planned for future releases: -Tektronix 4105 commands (already started!) -VT200/VT220/VT132 compatibility -sideways scrolling for 132 columns -backwards scrolling -desk accessory version (for use with GEM-Kermit) -make UniTerm work with the blitter-chip -speedup the redrawing of vectors -saving of vectors to a GEM metafile -color version (just need a color monitor to try it out) GEM is a trademark of Digital Research Co. DEC,VT are trademarks of Digital Equipment Co. Tektronix is a trademark of Tektronix Co. Atari is a trademark of Atari Co. Version BETA-1.2 UniTerm User's Guide 2 CChhaapptteerr -- 22 SSttaarrttiinngg uussiinngg UUnniiTTeerrmm RReeqquuiirreemmeennttss To use UniTerm you need: a ATARI ST computer a monochrome monitor (color compatibility is not verified yet) a RS232 standard cable a computer to talk to a floppy disk with UniTerm.PRG on it GGeettttiinngg ssttaarrtteedd After connecting your ST to your host computer, double click the UniTerm Icon. After the program has been loaded you will (hopefully) see the UniTerm opening dialog. Now you can select the size of the vector/filecapture buffer, if you select 0 or a size to big for your free RAM no buffer will be allocated. Probably now a alert box will appear, press (in this manual means the key with xx on it) and ignore the warning (UniTerm didn't find the file DEFAULT.SET, we will create it later on), the screen will clear to white (on a monochrome monitor) with a status line on line 25. Press and the UniTerm selection dialog will appear, the actions which you can select are: SSaavvee SSeettuupp Save a setup file to disk LLooaadd SSeettuupp Load a setup file from disk EEddiitt FF--KKeeyyss Assign a string to the function keys SSeett TTeerrmmiinnaall PPaarraammeetteerrss 11 and SSeett TTeerrmmiinnaall PPaarraammeetteerrss 22 allow you to set the parameters of the serial port and the terminal emulator FFiillee TTrraannssffeerr PPaarraammeetteerrss Allows you to set the parameters for ASCII file transfer Version BETA-1.2 UniTerm User's Guide 3 AA lliittttllee bbiitt ooff hheellpp Gives you some help on the functions of the special keys LLeeaavvee MMeennuu Leave this dialog and return to terminal mode Click the box |Set terminal parameters 1| (|xx| means a GEM button with the text xx in it) and a new dialog will appear. Selecting the different values for the parameters is quite straightforward, just click on the buttons with the right values (we hope you know them, otherwise you will just have to experiment) and when you are finished select |OK|. Now you are back in the main dialog, to save the setup select |Save setup|, a normal GEM file selector dialog will appear, if you want to use this setup as default save it with the name 'DEFAULT.SET' and UniTerm will load it automatically on startup. To leave the main dialog press or select |Leave Menu|. If you have adjusted the parameters correctly, you should now be able to communicate with your host computer. Some operating systems (VMS) try to identify the terminal automatically, depending on your setup UniTerm will identify itself as a DEC VT102 or VT100. A VT102 has more 'advanced' editing functions (which results in less overhead in transmitting inserts etc.) so leave this option on VT102 if possible. If you have to enter the terminal type manually try VT102 first (changing from VT102 to VT100 only changes the report from UniTerm, not the actual commands UniTerm understands). EExxiittiinngg UUnniiTTeerrmm To stop UniTerm press , if there is nothing in the buffer you will be returned straight away to the Desktop, otherwise a alertbox will appear asking for confirmation. VVeeccttoorr ggrraapphhiiccss mmooddee After receiveing the control code 'GS' or the 4105 command 'ESC'%!0 (ASCII control characters are enclosed in apostrophes to distinguish them from printable characters, a space is written 'SP') from the host, UniTerm switches to a separate graphics screen, if the host doesn't send 'ESC''FF' (the ASCII characters Escape and Formfeed) before starting a new picture, you will have to clear the screen manually with . The incoming characters will be interpreted as Tektronix encoded vectors or commands (see appendix A) until UniTerm receives one of the following codes: 'CR' or 'US' will return you to VT102 mode if the first 'GS' was received there, otherwise the terminal will enter Version BETA-1.2 UniTerm User's Guide 4 Tektronix alpha mode. 'ESC''FF' will clear the screen and enter Tektronix alpha mode. 'ESC'%!1 will return to VT102 mode. On returning from Tektronix to VT102/VT100 mode UniTerm only switches the logical screen (the one on which output operations are performed) back to the text mode screen. To switch the physical screen (the one you actually see) back to the text screen, press (this key combination always returns you back to VT102/VT100 mode!). To view your picture again press . ZZoooomm mmooddee If you selected a vector buffer larger than zero kilo bytes, you can redraw a picture with different scaling factors. To select this mode press , the screen will be cleared, the current contents of the buffer will be drawn on the screen and the normal arrow mouse cursor will appear. To select the region of the picture you want to magnify, move the arrow to the upper left corner of the region, press the left mouse button and drag the mouse to the lower right corner of the region (a 'rubber box' should follow the arrow) and release the button. The resulting picture will be scaled so that the larger side of box will fit on the screen (if the option |True Aspect| is selected). You can repeat this operation till a magnification factor of thirty is reached. will restore the previous scaling factors, the arrow keys will move the screen a 10th of the screen width/height in their direction and will leave zoom mode (all other keys only redraw the screen). Remember that if your picture is built out a lot of vectors, the redrawing may take some time! GGIINN mmooddee The sequences 'ESC''SUB' will enter GIN mode from any of the Tektronix modes, it will not work from the VT102/VT100 mode since SUB cancels any ANSI command. A crosshair cursor will appear which can be moved with the mouse. Pressing any key on the keyboard will cause a GIN report to be sent to the host and exits the GIN mode to Tektronix alpha mode. Moving the cursor to regions of the screen with invalid coordinates will cause an invalid report (if you have selected |True Aspect| the 1024*780 (4096*3120) Tektronix coordinate system is mapped to a centered region sized 525*400 pixels on the ST monochrome screen). Version BETA-1.2 UniTerm User's Guide 5 TTeekkttrroonniixx 44001144 aallpphhaa mmooddee This mode is only included for compatibility with the GIN-mode and is not very usefull. But you can position alphatext anywhere on the screen. This mode will probably be replaced in future versions with a 4105 compatible alphamode. UUssiinngg tthhee ssppeecciiaall kkeeyyss Here is a list of the functions on the special keys (press and the key listed here): Erases the graphics screen from any terminal mode. Toggles the foreground/background color (white on black or black on white). Toggles between blinking and static cursor. Prints the contents of the textbuffer. Switches the physical screen (the one you see) to the graphics screen. Switches the screen and the terminal to VT102/VT100 mode. Resets the terminal, reads the default values from disk. Toggle autoprint. Enter zoommode. Reset the Tektronix mode. Send a short break (0.233 s). Version BETA-1.2 UniTerm User's Guide 6 Send a long break (3.5 s). Send the answerback string Switch to 132 column mode (really only 128*64). Switch to 80 column mode. Reset the XOff flags of the bios. Start/stop file capture. Playback a captured file. Start ASCII file transfer. Atari screen dump.

Atari screen dump of the physical screen. Start the single line editor. Version BETA-1.2 UniTerm User's Guide 7 CChhaapptteerr -- 33 MMoorree aabboouutt UUnniiTTeerrmm TTeerrmmiinnaall PPaarraammeetteerrss 11 To change these settings, press and select ||CChhaannggee TTeerrmmiinnaall PPaarraammeetteerrss 11|| Following parameters can be changed: BBaauudd Selects the rate for the serial port. FFlloowwccoonnttrrooll Selects the flowcontrol mode, these functions are implemented by the bios. PPaarriittyy Selects the parity mode, these modes are implemented by the bios. DDaattaa//SSttoopp Allows you to select the number of data and stop bits, implemented by the bios MMooddee Allows you to put the terminal in one of following modes: Full: Data typed on the terminal is echoed by the host computer. Echo: UniTerm echos user input on the screen. Local: User input is only sent to the screen. TTeerrmmiinnaall Selects the terminal mode and change the terminal identification. 4014 selects 4014 alpha mode! AAttttrriibbuutteess Allows you to change the processing of text attributes: Ignore: All attributes except inverse are ignored, the terminal identifies itself as if it had the advanced video option (AVO), this is the quickest output mode. AVO: The terminal process all DEC text attribute codes, slowest mode. NoAVO: The terminal only processes underline and inverse attributes. SSccrroollll Selects between slow and quick scroll. AAssppeecctt Version BETA-1.2 UniTerm User's Guide 8 This option controls the scaling of pictures. TTeerrmmiinnaall PPaarraammeetteerrss 22 To change these settings, press and select ||CChhaannggee TTeerrmmiinnaall PPaarraammeetteerrss 22|| following parameters can be changed: GGIINN TTeerrmmiinnaattiioonn SSeeqquueennccee Determines the string sent after a GIN or status report. AAnnsswweerrbbaacckk The string which is sent as answerback message. PPrriinntt tteerrmmiinnaattoorr Determines if a FF is sent after each print operation or not. PPrriinntteerr Determines if a printer is connected or not. FFiillee TTrraannssffeerr PPaarraammeetteerrss To change these settings, press and select ||FFiillee TTrraannssffeerr PPaarraammeetteerrss|| following parameters can be changed: SSttaarrtt ooff ffiillee ttrraannssffeerr A string that is sent before file transfer starts. EEnndd ooff ffiillee ttrraannssffeerr A string that is sent when the transfer finishes. DDeellaayy aafftteerr eevveerryy cchhaarraacctteerr [[mmss]] Sets the time UniTerm waits after every character sent (this is implemented with the AES call eventmulti, this means the 200Hz system clock is used). MMeetthhoodd If Paced by Echo is selected, UniTerm waits for every character sent to be echoed (except ASCII control codes), doesn't time out!. SSeenndd EEOOLL aass Selects if 'CR''LF' is sent as 'CR''LF','CR','LF' or 'SP''CR'. Version BETA-1.2 UniTerm User's Guide 9 SSeettuupp FFiilleess Follow information is stored in the setup files: Version Number Baud Flowcontrol Parity Databits Stopbits Communication Mode Terminal Mode Attribute Mode Scroll Mode Aspect Mode GIN Termination String Answerback String Print Terminator Printer Mode Cursor Mode Screen Mode ASCII File Transfer Start String ASCII File Transfer Finish ASCII File Transfer Delay Time ASCII File Transfer Method ASCII File Transfer EOL Type Function Key Strings Loading a setup file from a different version of UniTerm will result in a version conflict error message. FFiillee CCaappttuurree//PPllaayybbaacckk These functions were only added for debugging purposes, but can be used for simple seven-bit ASCII file capture and for playing back a sequence of terminal commands (redrawing a picture as well). EEddiittiinngg FFuunnccttiioonn KKeeyyss To edit the string assigned to a function key, press and select ||EEddiitt FF--KKeeyyss|| you now can edit the strings, the cursor keys will move you to the string you want to edit, will clear the string, will delete to the left, the current character. Control codes can be entered by pressing and the appropriate key (see appendix B). Version BETA-1.2 UniTerm User's Guide 10 TThhee SSttaattuusslliinnee The 25th line on the screen is used as a statusline in VT102/VT100 mode it should look like this: UUnniiTTeerrmm BBEETTAA--11..22 RR 11223344 1234 simulate the LED's on a VT100, when they are set they will change from inverse to normal. R indicates that the terminal is in replace mode, an I insert mode. Other indicators: C file capture is on, L the keyboard is locked. TThhee SSiinnggllee--LLiinnee EEddiittoorr To make working on systems that don't have a single-line editor (short sle) easier, a simple sle is implemented in UniTerm. The last 10 lines typed by the user are stored in a circular buffer. Pressing starts the sle, the status line will clear and the current line will be displayed instead. Following functions are provided: Left and right cursor keys: move the cursor one character left or right. Up and down cursor keys: display the next or last line in the buffer. : delete the character under the cursor. : delete the character to the left of the cursor. : abort the sle. : send the line and leave the sle. The sle is always in insert mode. AASSCCIIII FFiillee TTrraannssffeerr will capture all ASCII characters sent to UniTerm in a file, this option disables zooming of pictures. You can play back the contents of a File with , the characters are processed as if they were received from the serial port. Pressing will send a file to the host using the current file transfer parameters. will abort the file transfer. Version BETA-1.2 UniTerm User's Guide 11 CChhaapptteerr -- 44 IImmpplleemmeennttaattiioonn NNootteess GGeenneerraall Most of UniTerm is written in CCD/OSS Pascal and uses standard GEM,GEMDos,Bios and XBios calls. The exceptions are: Scrolling up, this is done with a assembler routine instead of a raster operations. Peeking and poking in user and supervisor status is done in assembler. In future versions probably more will be done in assembler. The Bios input buffer for the serial port is expanded to 2000 bytes. If no attributes except reverse are set and the character cell height is 16 or 8 pixels, screen output is done with the Bios call BConout (Bios 3), this is at least twice as fast as using GEMDos and three and half times faster than using GEM. Typical times (may change from version to version, these were taken with Beta version 0.7): Polling of the serial port and keyboard (main loop): 0.65ms (Beta V1.2 0.48ms) (if ther are characters in the input buffer, a maximum of 20 are processed before the keyboard is polled again) The following data was measured with simulated input to the VT102 command processing routine, the times are per operation: Carriage return 0.6ms Clear complete screen ('ESC'[2K): 140 ms Clear complete line ('ESC'[2J): 10.0ms Absolute cursor address combination ('ESC'[H'ESC'[10;10H): 5.6ms Linefeed with scroll: 30.0ms 40'000 characters 8 per line 4.4ms 80 per line 1.0ms (Beta V1.2 0.88ms) 4'000 characters bold (highlighted) 80 per line 3.5ms To decode one character without any output operation (moving of cursor etc.) takes less than 0.5 ms. Use of UniTerm at 9600 baud is probably not unresonable, but it may need flowcontrol. The carrier detect signal and the break bit on the Mfp are polled once per main loop and if they are present a appropriate message is displayed. Version BETA-1.2 UniTerm User's Guide 12 VVTT110022//VVTT110000 MMooddee 113322 CCoolluummnn MMooddee A simulation of 132 column mode is done using the 6*6 font. The characters are spaced in 5 pixels increments instead of 6, this gives (monochrome) 128 columns * 64 lines. Characters between 128 and 132 columns are lost. This mode will probably be exchanged for sideways scrolling later. Restrictions: No double height/width characters. SSppeecciiaall GGrraapphhiiccss//LLiinnee DDrraawwiinngg CChhaarraacctteerr SSeett The line drawing characters are mapped to lines (which are actually drawn) and to the '+' and '|' characters. The other special characters are mapped as good as possible to the ATARI ST character set. Hopefully this will change before the end of year, as soon as we can design and load fonts this will be done properly. DDoouubbllee HHeeiigghhtt//WWiiddtthh CChhaarraacctteerrss Restrictions: only USASCII set, no double height in color. The same goes here as for the line drawing set. HHDDSS220000 IInntteerrnnaattiioonnaall CChhaarraacctteerr SSeett Undocumented, only for use at CHRZU1A. TTeekkttrroonniixx MMooddee GGeenneerraall The Tektronix mode is still a bit in a mess. This will change with the using the 4105 command set, this implies that you should only use the vector mode of the 4010 emulation as all other 4010 commands will probably be removed from the program. Right now scaling is done with respect to a 4010 with 1024*780 points, this probably will change for the 4105 (512*360) emulation. In Tek coordinates the screen measures 4096*3120 points (4105: 4096*3072 points). Version BETA-1.2 UniTerm User's Guide 13 For redrawing and zooming purposes the incoming characters are stored in a linear buffer. This is quite a memory saving way to store them, but on the other hand this means they have to be decoded every time the vectors are drawn. AAllpphhaa MMooddee Restrictions: 1 margin, all (well nearly all) character sizes are the same only the spacing is different. VVeeccttoorr MMooddee ZZoooomm MMooddee Restrictions: No zooming of graph text, slow. PPrroobblleemmss Sometimes the serial port seems to blocked (this has happened to me with other ST terminal emulators aswell), possibly we received a XOFF but no XON. Pressing wil reset the XOFF flags of the bios. Don't use the |Change Terminal Parameters 1| dialog in an editor or the like, for some mysterious reason the serial port outputs a delete character if you actually change something and exit with |OK|. TThhee GGeerrmmaann kkeeyybbooaarrdd aanndd ootthheerr hhoorrrriibbllee tthhiinnggss Due to the way the keyboard interrupt routine is written for the German bios not all of the control codes can be produced with the keyboard. To make local debugging easier will send a 'GS' code and to allow you to get to the [,],{,},@, and \ characters without pressing two to three keys the umlauts are caught and replaced by the ASCII characters on the keys (if somebody sends me the layout of the other none US keyboards I will try to do the same thing). Do not count on this feature to stay, maybe this will be replaced by loading a keyboard table. Version BETA-1.2 UniTerm User's Guide Appendix A 14 AAppppeennddiixx -- AA CCoonnttrrooll CCooddeess aanndd EEssccaappee SSeeqquueenncceess This appendix list control codes and escape sequences that complete implementations of VT102 and Tektronix 4014/4105 terminals should interpret and the functions they should initiate. * marks functions that are redundant or not possible on an Atari ST computer, *NI marks other not implemented functions (due to my laziness?), *RI uncomplete implementation of a function, please read the implementation notes for details. Consult the ASCII table for numeric values of the control codes, 'Ps', 'Pn', 'Pc' and 'Pl' denote decimal values (Esc[10;10f postion cursor at text coordinates (10,10)). The following control codes and commands, the syntax and the command interfaces as a whole could possibly be patented or/and copyrighted, please consider this list as 'for information only'. Commercial use is strictly forbidden. AANNSSII//VVTT110022//VVTT110000 MMooddee SSeett MMooddee 'ESC'[2h Keyboard locked 'ESC'[4h Insert mode 'ESC'[12h Local echo off 'ESC'[20h New line mode on 'ESC'[?1h Cursor key application mode 'ESC'[?3h *RI 132 column mode 'ESC'[?4h Smooth scrolling 'ESC'[?5h Screen reverse 'ESC'[?6h Origin mode relative 'ESC'[?7h Auto wrap on 'ESC'[?8h * Auto repeat on 'ESC'[?9h * Interlace on 'ESC'[?18h Print form feed on 'ESC'[?19h Print extent full screen Version BETA-1.2 UniTerm User's Guide Appendix A 15 RReesseett MMooddee 'ESC'[2l Keyboard unlocked 'ESC'[4l Replace mode 'ESC'[12l Local echo on 'ESC'[20l New line mode off 'ESC'[?1l Cursor key cursor mode 'ESC'[?2l *NI VT52 mode 'ESC'[?3l 80 column mode 'ESC'[?4l Jump scrolling 'ESC'[?5l Screen normal 'ESC'[?6l Origin mode absolute 'ESC'[?7l Auto wrap off 'ESC'[?8l * Auto repeat off 'ESC'[?9l * Interlace off 'ESC'[?18l Print form feed on 'ESC'[?19l Print extent scrolling region SSeelleecctt CChhaarraacctteerr SSeettss G0 G1 'ESC'(A 'ESC')A UK 'ESC'(B 'ESC')B USASCII 'ESC'(0 'ESC')0 Special graphics (line drawing) 'ESC'(1 'ESC')1 *NI Alt char ROM 'ESC'(2 'ESC')2 *NI Alt char ROM SShhiifftt iinnttoo CChhaarraacctteerr SSeettss 'ESC'N Single shift into G1 'ESC'O Single shift into G0 'SO' Locked shift G1 'SI' Locked shift G0 CChhaarraacctteerr AAttttrriibbuutteess 'ESC'[m No attributes 'ESC'[0m No attributes 'ESC'[1m Bold 'ESC'[4m Underline 'ESC'[5m Blink (Light) 'ESC'[7m Reverse Version BETA-1.2 UniTerm User's Guide Appendix A 16 SSccrroolllliinngg RReeggiioonn 'ESC'['Pt';'Pb'r Set scrolling region CCuurrssoorr MMoovveemmeenntt CCoommmmaannddss 'ESC'['Pn'A Cursor up 'ESC'['Pn'B Cursor down 'ESC'['Pn'C Cursor right 'ESC'['Pn'D Cursor left 'ESC'['Pl';'Pc'H Cursor position 'ESC'['Pl';'Pc'f 'ESC'D Index 'ESC'M Reverse Index 'ESC'E Next line 'ESC'7 Save cursor 'ESC'8 Restore cursor TTaabb SSttooppss 'ESC'H Horizontal tab set 'ESC'[g Tab clear 'ESC'[0g Tab clear 'ESC'[3g Clear all tabs LLiinnee AAttttrriibbuutteess 'ESC'#3 *RI Double-height top half 'ESC'#4 *RI Double-height bottom half 'ESC'#5 Single-width single-height 'ESC'#6 *RI Double-width single-height EErraassiinngg In Line 'ESC'[K Cursor to end of line 'ESC'[0K 'ESC'[1K Beginning of line to cursor 'ESC'[2K Entire line Version BETA-1.2 UniTerm User's Guide Appendix A 17 In Screen 'ESC'[J Cursor to end of screen 'ESC'[0J 'ESC'[1J Beginning of screen to cursor 'ESC'[2J Entire screen RReeqquueessttss//RReeppoorrttss Requests from host Reports to host 'ESC'[5n Status 'ESC'[0n Terminal OK 'ESC'[3n * Terminal not OK 'ESC'[6n Cursor position 'ESC'['Pl';'Pc'R Cursor position Pl,Pc 'ESC'[c What are you? 'ESC'[?1;'Ps'c VT100, Ps options 'ESC'[0c 'ESC'[?6;'Ps'c VT102, Ps options 'ESC'Z 'ESC'[?15n Printer status 'ESC'[?10n Printer ready 'ESC'[?11n Printer not ready 'ESC'[?13n No printer 'ESC'[0x Terminal Parameter Request, send on exit of setup 'ESC'[1x send only on request RReesseett 'ESC'c Reset to default values TTeessttss 'ESC'#8 Fill screen with E's 'ESC'[2;'Ps'y * Invoke tests KKeeyybbooaarrdd LLEEDD''ss 'ESC'[0q All off 'ESC'['Ps'q LED 'Ps' on Version BETA-1.2 UniTerm User's Guide Appendix A 18 VVTT5522 MMooddee 'ESC'< Enter ANSI Mode 'ESC'= *NI Enter alternate keypad mode 'ESC'> *NI Exit alternate keypad mode 'ESC'F *NI Select special graphics character set 'ESC'G *NI Select US/UK character set 'ESC'A *NI Cursor up 'ESC'B *NI Cursor down 'ESC'C *NI Cursor right 'ESC'D *NI Cursor left 'ESC'H *NI Cursor home 'ESC'Y'Pl''Pc' *NI Direct cursor address 'ESC'I *NI Reverse line feed 'ESC'K *NI Erase to end of line 'ESC'J *NI Erase to end of screen 'ESC'Z *NI What are you? 'ESC'/Z *NI I am a VT52 (Response) 'ESC'^ *NI Enter auto print mode 'ESC'- *NI Exit auto print mode 'ESC'W *NI Enter printer controller mode 'ESC'X *NI Exit printer controller mode 'ESC'] *NI Print screen 'ESC'V *NI Print cursor line EEddiittiinngg FFuunnccttiioonnss 'ESC'['Pn'P Delete character 'ESC'['Pn'L Insert Line 'ESC'['Pn'M Delete Line PPrriinntt CCoommmmaannddss 'ESC'[?5i Enter auto print 'ESC'[?4i Exit auto print 'ESC'[5i Enter printer controller 'ESC'[4i Exit printer controller 'ESC'[i Print screen 'ESC'[0i 'ESC'[?1i Print cursor line Version BETA-1.2 UniTerm User's Guide Appendix A 19 OOtthheerr CCoonnttrrooll CChhaarraacctteerrss 'NUL' Ignored 'SOH' Ignored 'ETX' Ignored 'EOT' Ignored 'ENQ' Transmit answerback message 'BEL' Bell 'BS' Backspace 'HT' Horizontal tab 'LF' Linefeed or 'CR''LF' 'VT' 'LF' 'FF' 'LF' 'CR' Carriage Return 'SO' Shift to G1 character set 'SI' Shift to G0 character set 'DC1' Ignored (Alternate XOn) 'DC3' Ignored (Alternate XOff) 'CAN' Cancel 'SUB' Cancel 'DEL' Ignored 'US' Ignored 'RS' Ignored 'FS' Ignored 'SYN' Ignored 'EM' Ignored 'ETB' Ignored 'NAK' Ignored 'DLE' Ignored 'XON' In XOn/XOff flow control mode 'XOFF' intercepted by ST bios, otherwise ignored NNoonnssttaannddaarrdd VVTT110022 ffuunnccttiioonnss 'ESC'(< 'ESC')< *RI HDS200 International character set 'GS' Enter 4014 Vector mode (Nonstandard) 'ESC'%!0 Enter Tektronix alpha mode (4105 command) 'ESC'#!0 Report terminal mode (4105 command) %!'SP''SP'1 Report: I am a ANSI terminal Version BETA-1.2 UniTerm User's Guide Appendix A 20 44001144 MMooddee AAllpphhaa MMooddee Cursor movement 'BS' Cursor left 'HT' Cursor right 'LF' Cursor down 'VT' Cursor up 'CR' Cursor to left margin Character set sizes 'ESC'8 Normal 35x76 (lines x columns) 'ESC'9 Small 38x81 'ESC': Smaller 50x120 'ESC'; Smallest 58x133 'ESC'6 *NI Enter Italics ? 'ESC'7 *NI Exit Italics ? Mode changing 'GS' Vector mode 'ESC''SUB' GIN mode 'FS' Point plot mode 'ESC''FS' *NI Special point plot mode 'RS' *NI Increment mode OOtthheerr ffuunnccttiioonnss aanndd eexxtteennddeedd eessccaappee ccooddeess 'ESC''ETB' Hardcopy 'ESC''ENQ' Transmit status 'ESC''STX' Enable block fill/erase 'ESC''ETX' Disable block fill/erase 'ESC'\R Enable rectangle draw 'ESC'\r Disable rectangle draw 'ESC'x Enable selective erase Version BETA-1.2 UniTerm User's Guide Appendix A 21 VVeeccttoorr mmooddee 'GS' Next vector is dark address Draw vector, next vector is visible 'ESC'` Solid vector 'ESC'a Dotted 'ESC'b Dot-dashed 'ESC'c Short-dashed 'ESC'd Long-dashed 'ESC'p Solid vector, XOR 'ESC'q Dotted, XOR 'ESC'r Dot-dashed, XOR 'ESC's Short-dashed, XOR 'ESC't Long-dashed, XOR 'ESC''SUB' GIN mode 'US' Alpha mode, don't move 'CR' Alpha mode 'ESC''FF' Alpha mode, clear screen PPooiinntt pplloott//ssppeecciiaall ppooiinntt pplloott mmooddee address Plot point intensity address *NI Special plot point 'CR' Alpha mode 'ESC''FF' Alpha mode IInnccrreemmeennttaall ppooiinntt pplloott mmooddee 'SP' *NI Pen up P *NI Pen down D *NI North E *NI North east A *NI East I *NI South east H *NI South J *NI South west B *NI West F *NI North west 'CAN' *NI Alpha mode 'ESC''SUB' *NI GIN mode Version BETA-1.2 UniTerm User's Guide Appendix A 22 44110055 CCoommmmaannddss In the following list capital letters are part of the command sequences and lower case identifiers denote Tektronix encoded parameters. 'ESC'IQ code *NI Report terminal settings 'ESC'IJ normal shifted *NI Change GIN cursor speed 'ESC'JC *NI Copy 'ESC'KC *NI Cancel 'ESC'KR mode *NI Change carriage return/line feed mode 'ESC'KD number contents *NI Define macro 'ESC'KO number contents *NI Define nonvolatile macro 'ESC'KA mode *NI Enable dialog area 'ESC'KW mode *NI Enable key expansion 'ESC'KX number *NI Expand macro 'ESC'KH mode *NI Hardcopy 'ESC'KI mode *NI Ignore deletes mode 'ESC'KF mode *NI Change line feed/carriage return mode 'ESC'KL mode *NI Lock keyboard 'ESC'KQ *NI Report errors 'ESC'KV *NI Reset 'ESC'KU *NI Save nonvolatile parameters 'ESC'KE mode *NI Change echo mode 'ESC'KZ char-delete line-delete literal *NI Change edit characters 'ESC'KT threshold *NI Change error threshold 'ESC'KY char *NI Change key execute character 'ESC'KS mode *NI Change transparent mode 'ESC'KB positions *NI Change tab stops 'ESC'LL number *NI Change number of lines in dialog area 'ESC'LP start-point fill-boundary *NI Start panel boundary 'ESC'LZ *NI Clear dialog area 'ESC'LG position *NI Draw to position 'ESC'LH position *NI Draw marker at position 'ESC'LE *NI Finish panel 'ESC'LT text *NI Graphic text 'ESC'LF position *NI Move to position 'ESC'LB number *NI Change number of lines for dialog buffer 'ESC'LI char-color char-backgr-color dialog-backgr-color *NI Change dialog area color Version BETA-1.2 UniTerm User's Guide Appendix A 23 'ESC'LV mode *NI Change dialog area visibility 'ESC'LM writing-mode *NI Change dialog area writing mode 'ESC'MP number *NI Choose fill pattern 'ESC'MG writing-mode *NI Change graphics area writing mode 'ESC'MN direction *NI Change graphtext direction 'ESC'MR mantissa power-of-two *NI Change graphtext rotation 'ESC'MC width height spacing *NI Change graphtext size 'ESC'ML color *NI Change line color 'ESC'MV style Change line style 'ESC'MM type Change marker type 'ESC'MT text-color *NI Change text color 'ESC'NM mode *NI Prompt mode 'ESC'NR transmit receive *NI Change baud rates 'ESC'NK time *NI Change break time 'ESC'NU char *NI Change echo suppression cancel character 'ESC'NE string *NI Change EOF string 'ESC'NT string *NI Change EOL string 'ESC'NC first-char second-char *NI Change EOM characters 'ESC'NF mode *NI Change flow control mode 'ESC'NP string *NI Change prompt string 'ESC'NQ size *NI Change input buffer size 'ESC'NB stopbits *NI Change number of stop bits 'ESC'ND delay *NI Change transmit delay 'ESC'QI values *NI Map color to monochrome values for print 'ESC'QU density *NI Choose color hardcopy image density 'ESC'QD type *NI Choose printer type 'ESC'QL pages page-origin ff-mode *NI Change dialog hardcopy attributes 'ESC'QE attributes *Ni Change hardcopy monochrome attributes 'ESC'QO orientation *NI Change image orientation 'ESC'RU plane writing-mode bits-per-pixel *NI Begin pixel operations 'ESC'RX dest.-plane d.-lower-left-corner first-source-corner second-s.-corner *NI Copy pixels 'ESC'RP number color *NI Write pixels Version BETA-1.2 UniTerm User's Guide Appendix A 24 'ESC'RR lower-left-corner upper-right-corner fill-color *NI Fill rectangle 'ESC'RL array *NI ? 'ESC'RH position *NI Move to pixel position 'ESC'RS lower-left-corner upper-right-corner *NI Change coordinates for pixel operations 'ESC'RW first-corner opposite-corner *NI Change window on 4096*4096 coordinates 'ESC'TD first-color second-color *NI Change alpha cursor colors 'ESC'TF colors *NI Change color indices for dialog area 'ESC'TG plane colors *NI Change color indices for plane 'ESC'TC first-color second-color third-color *NI Change GIN cursor color 'ESC'SX number position *NI Change GIN cursor position 'ESC''SUB' Enter 4010 GIN mode 'ENQ' *NI Inquire 4105 status 'US' *NI Enter 4105 alpha mode 'ESC''CAN' Enter echo suppression mode 'FS' Enter marker mode 'GS' Enter vector mode 'ESC''FF' Clear screen, enter alpha mode 'ESC'#!0 Report terminal mode 'ESC''ENQ' Report 4010 status 'ESC'%! mode Change to a different terminal mode 'ESC' font Change fonts 'ESC' style Change 4014 line style 'ESC''ETB' 4014 hardcopy Version BETA-1.2 UniTerm User's Guide Appendix B 25 AAppppeennddiixx -- BB AASSCCIIII ccoonnttrrooll cchhaarraacctteerrss |Dec|Oct|Hex|Keys |Atari character|ASCII name | | | | | | | | | 0|000| 00|<@>|None |NUL Null | | 1|001| 01||Up Arrow |SOH Start of header | | 2|002| 02||Down Arrow |STX Start text | | 3|003| 03||Right Arrow |ETX End text | | 4|004| 04||Left Arrow |EOT End of transmission | | 5|005| 05||Close Box |ENQ Enquiry | | 6|006| 06||Move Box |ACK Acknowledge | | 7|007| 07||Full Box |BEL Bell | | 8|010| 08||Check |BS Backspace | | 9|011| 09||Clock |TAB Horizontal tab | | 10|012| 0A||Bell |LF Linefeed | | 11|013| 0B||Note |VT Vertical tab | | 12|014| 0C||FF |FF Formfeed | | 13|015| 0D||CR |CR Carrige return | | 14|016| 0E||Left Atari sign|SO Shift out | | 15|017| 0F||Right Atari " |SI Shift in | | 16|020| 10|

|Led 0 |DLE Data link escape | | 17|021| 11||Led 1 |DC1 X-on | | 18|022| 12||Led 2 |DC2 | | 19|023| 13||Led 3 |DC3 X-off | | 20|024| 14||Led 4 |DC4 | | 21|025| 15||Led 5 |NAK Negative acknowledge | | 22|026| 16||Led 6 |SYN Synchronus idle | | 23|027| 17||Led 7 |ETB End transmission blocks| | 24|030| 18||Led 8 |CAN Cancel | | 25|031| 19||Led 9 |EM End of medium | | 26|032| 1A||? |SUB Substitute | | 27|033| 1B|<[>|ES |ESC Escape | | 28|034| 1C|<\>|? |FS File separator | | 29|035| 1D|<]>|? |GS Group separator | | 30|036| 1E|<^>|? |RS Record separator | | 31|037| 1F|<_>|? |US Unit separator | | 32|040| 20| < >| |SP Space | Due to the way the german bios is written (and probably most of the none US versions) not all of these codes can be produced with the keyboard. Version BETA-1.2 UniTerm User's Guide Appendix C 26 AAppppeennddiixx -- CC EErrrroorr nnuummbbeerrss 1 No VT52 mode 4 No special point plot Version BETA-1.2 I TTaabbllee ooff CCoonntteennttss Chapter - 1. Introduction ..................... 1 Chapter - 2. Starting using UniTerm ............. 2 Requirements ............................... 2 Getting started ............................. 2 Exiting UniTerm ............................. 3 Vector graphics mode ......................... 3 Zoom mode ................................... 4 GIN mode .................................... 4 Tektronix 4014 alpha mode ..................... 4 Using the special keys ........................ 5 Chapter - 3. More about UniTerm ................. 7 Terminal Parameters 1 ........................ 7 Terminal Parameters 2 ........................ 8 File Transfer Parameters ..................... 8 Setup Files ................................. 8 File Capture/Playback ....................... 9 Editing Function Keys ........................ 9 The Statusline .............................. 9 The Single-Line Editor ....................... 10 ASCII File Transfer .......................... 10 Chapter - 4. Implementation Notes .............. 11 General .................................... 11 VT102/VT100 Mode ............................ 11 132 Column Mode ........................... 12 Special Graphics/Line Drawing Character Set . 12 Double Height/Width Characters ............ 12 HDS200 International Character Set ......... 12 Tektronix Mode .............................. 12 General ................................. 12 Alpha Mode ............................... 13 Vector Mode .............................. 13 Zoom Mode ................................ 13 Problems ................................... 13 The German keyboard and other horrible things .... 13 Appendices............................................ 13 Appendix - A Control Codes and Escape Sequences.... 14 ANSI/VT102/VT100 Mode ....................... 14 Set Mode ................................. 14 Reset Mode ............................... 14 Select Character Sets ..................... 15 Shift into Character Sets .................. 15 Character Attributes ..................... 15 Scrolling Region ......................... 15 Cursor Movement Commands .................. 16 Tab Stops ................................ 16 Line Attributes .......................... 16 Erasing ................................. 16 In Line ............................... 16 In Screen ............................. 16 Requests/Reports ........................ 17 II Reset ................................... 17 Tests ................................... 17 Keyboard LED's ........................... 17 VT52 Mode ................................ 17 Editing Functions ........................ 18 Print Commands ........................... 18 Other Control Characters .................. 18 Nonstandard VT102 functions ............... 19 4014 Mode ................................... 19 Alpha Mode ............................... 20 Cursor movement ....................... 20 Character set sizes .................... 20 Mode changing ......................... 20 Other functions and extended escape codes .... 20 Vector mode .............................. 20 Point plot/special point plot mode .......... 21 Incremental point plot mode ................ 21 4105 Commands ............................... 21 Appendix - B ASCII control characters ............ 25 Appendix - C Error numbers ...................... 26

Screen dump to disk in DEGAS format. Playback a file with the terminal emulator. Control history recording. Start file transfer (starts file transfer with the protocol selected in the [Transfer] menu). View the history buffer. Save history buffer to disk. Hold Screen ( on the german keyboard). <1>-<0> Dial numbers 1 to 10. Atari screen dump. Start the single-line editor. Toggle Meta mode. 8 CHAPTER 2. STARTING USING UNITERM 2.9 The Clipboard Pressing the left mouse button while the I-type mouse cursor is visible will produce a "rubber box", after you have let go of the mouse button the selected text will be inverted and a small popup menu will appear: - clicking outside the popupwill cancel the operation - selecting the [Cut] item with the left mouse button will store the the text in a buffer (the "clipboard"). Doing the same with the right button will append a CR after each line. - [Add] appends to the text already in the clipboard (with the same difference between left and right mouse button). - [Send] sends the text directly to the host computer, without using the clipboard (again same usage of left and right button). Two commands supplement this feature, SaveClip and Insert which are both available via the main popup menu: - SaveClip allows you to save the contents of the clipboard to a file, CR's are mapped to CR LF. - Insert sends the contents of the clipboard to the host computer. Additional operations on the clipboard are possible with seperate programs, the clipboard can be accessed via the UniTerm parameter block, example programs and documentation should be available with this manual. 2.10 Mouse Cursor Control In practically all situations where you can use the cursor keys, you can use the mouse to position the cursor too; while the mouse cursor is visible (the I-type text cursor) move it to a new position and double click the left mouse button; the cursor should now move to the new position. Some editors do not allow you to move the cursor over tabs, this will cause the cursor to miss the intended end position in some cases. 2.11 Popup Menu Besides being bound to keys some functions of UniTerm are accessible via a popup menu. Click the right mouse button and the popup will appear at the 2.12 VIEWING THE HISTORY BUFFER 9 current cursor position. To select one of the items just click the left button, to get rid of the menu click outside of the popup area. The default configuration assigns the ten telephone numbers of the dialer to the fields on the right-hand side. 2.12 Viewing the History Buffer You can view the contents of the history buffer with the key combination . Besides the normal `clip' functions with the mouse, six keys have a special function: Exit. Bottom of buffer. Top of buffer. <^> Up one line. (`Up arrow') Down one line. (`Down arrow') <->> Up one page. <<-> Down one page. 2.13 Dialer The setup file UNITERM.TEL is loaded at startup, if it isn't found the values for the dialer are reset. The keys <1> to <0> dial numbers 1 to 10, sends the hangup string. A '+' as first character of the number is a placeholder for the access code. Dialling can be aborted by pressing , the timeout is 40 seconds. The suffix, prefix and hangup strings are passed to the macro interpreter in "function-key" mode. If the number and macro field is empty, the dialer returns straight away, if the number field is empty and a macro file is specified, the macro file is executed. A tip for people that want the macro to handle waiting for the `CONNECT' or whatever it may be message, just leave out the `Connect msg' entry, The dialer will then immediatly start executing the macro file after sending the number string. 2.13 Meta Mode In Meta mode is the so called Meta key; pressing plus a second key will produce the ASCII code of that letter plus 128 (the 10 CHAPTER 2. STARTING USING UNITERM Meta key sets the eighth bit of the character). To enter Meta mode press (this will toggle an indicator on the statusline). Some of the more important characters of the international character set that can be generated are: ______________________________________________________________ |____Meta_+___|____Character___|______Meta_+__|___Character__| | @ | | ` | | | A | | a | | | B | | b | | | C | | c | | | D | | d | | | E | | e | | | F | | f | | | G | | g | | | H | | h | | | I | | i | | | J | | j | | | K | | k | | | L | | l | | | M | | m | | | N | | n | | | O | | o | | | Q | | q | | | R | | r | | | S | | s | | | T | | t | | | U | | u | | | V | | v | | | W | | w | | | X | | x | | | Y | | y | | | Z | | z | | | [ | | { | | | ~ | | - | | | ] | | } | | | _ | | | | |_____________|________________|______________|______________| If you have a non-US keyboard, you will probably have to edit your UniTerm setup file with KeyEdit to get all ASCII codes. Chapter 3 More About UniTerm This chapter contains a short description of all user-setable parameters, except those related to the various file transfer protocols. Please read Chapter 4 for more information. 3.1 RS232 Port Parameters To change these settings, press and select [RS232] from the [Settings] menu. Following parameters can be changed: Baud selects the rate for the serial port. Flowcontrol selects the flowcontrol mode, these functions are implemented by the BIOS. Parity selects the parity mode, these modes are implemented by the BIOS. Databits allows you to selectthe number of data bits, implemented by the BIOS. Stopbits allows you to select the number of stop bits, implemented by the BIOS. Mode allows you to put the terminal in one of following modes: [Full] Data typed on the terminal is echoed by the host computer. 12 CHAPTER 3. MORE ABOUT UNITERM [Echo] UniTerm echos user input on the screen. [Local] User input is only sent to the screen. 3.2 Terminal Parameters To change these settings, press and select [Terminal 1] or [Terminal 2] from the [Settings] menu, the following parameters can be changed: 3.2.1 Terminal 1 Terminal selects the terminal mode and change the terminal identification. [4014] selects 4014 alpha mode, [DCM] selects Display Control Mode3 Keypad chooses the mode of the keypad, in application mode escape sequences are sent by all keys, in numeric mode only the top 4 keys send escape codes (they are the keys F1 to F4 on a real VT100). Cursormode selects the two different sets of escape sequences that can be sent by the cursor keys. Use masks out the 8th bit of sent or received bytes for the terminal emulations, set to 8 bits if you want to use the 8 bit VT2XX mode (this only effects ASCII file transfer and not the other file transfer modes). Scroll selects between slow and quick scroll. Newline Mode sets the VT100/102/200 newline mode (what is sent when you press ). Wrap switches the automatic wraparound at the end of a line on and off. Cursor selects blinking or non blinking, underline or block cursor. Background sets the background (and naturally the foreground) color 3.2. GRAPHICS TERMINAL PARAMETERS 13 Delete changes the way and work, if set to [Delete] will send BS and Delete will send DEL, set to [Backspace], the codes are exchanged. 3.2.2 Terminal 2 Answerback is the string which is sent as answerback message. Printer determines if a printer is connected or not. Print terminator determines if a FF is sent after each print operation or not. SLE turns the built-in single-line editor on and off. Auto executed macro The contents of any file named here are executed on startup by the UniTerm macro processor NRC turns national replacement character set mode on, and controls which character set is used (selecting ASCII turns it off). 3.3 Graphics Terminal Parameters Select [Graphics] from the [Settings] menu to change the parameters of the graphic terminal module: Tektronix mode enables or disables automatic switching to the Tektronix mode after a GS character, useful on noisy telephone lines (this option also inhibits the allocation of a 32kB buffer for the Tektronix screen). GIN Termination String sets the string sent after a GIN report. Status Termination String sets the string sent after a status report. 14 CHAPTER 3. MORE ABOUT UNITERM Aspect this option controls the scaling of pictures. Deletes allows you to set the processing of DEL in the 4010 module. 3.4 Tabs This small dialog allows you to set the tab positions. Generally it is not a good idea to change them from the default settings, since there is a lot of (buggy) software that relies on the settings being the same as the original VT100 factory settings. 3.5 Changing Buffer Sizes Select [Buffers] from the [Settings] menu, the top half of the dialog form allows you to change four values: * Transfer buffer size * RS232 input buffer size * System reserved size * Clipboard size the [+] and the [-] buttons autorepeat, double clicking increases (decreases) the displayed value by 1000. In the bottom half the actual amount of memory allocated to each buffer is displayed, if these values are not the same as the ones set by you, for some reason UniTerm was not able to use your configuration. In this case 5kB are reserved for system use, 2kB for the clipboard and the rest of available memory is allocated to the transfer buffer (up to the amount set by you, minimum 1kB) and the remaining memory is used by the history buffer (min.1kB). The RS232 buffer values will only change if you save the value in a setup file and restart UniTerm, all other changes take effect immediately (and reset the buffers!). 3.6 Setup Files All user setable parameters are stored in the setup files (including the function key strings etc.). Loading a setup file from a different version of UniTerm may result in a version conflict error message, if this happens UniTerm uses its internal defaults. 3.7 FILE CAPTURE/PLAYBACK 15 3.7 File Capture/Playback The file capture routine uses a character translation table, whichcan be edited by selecting [ASCII] from the [Transfer] menu and then selecting [File Transfer] from the [Settings] menu. While file capture is in progress all screen output is translated too, so you will get a direct impression of what you are saving. The Playback function allows you to simulate input from the serial port, pressing A allows you to abort, any other key will cause UniTerm to wait for another keypress. 3.8 Editing Function Keys To edit the string assigned to a function key, press the key and select [Edit Function Keys] from the [Other] menu. You can edit the strings now, the cursor keys will move you to the string you want to edit, will clear the string, will delete to the left, the current character. Control codes can be entered by pressing and the appropriate key (see appendix B). 3.9 The Statusline The 25th line on the screen is used as a statusline in text terminal mode, it should look like this (all possible information shown): ______________________________________________________________________________ |__UniTerm__V2.0c___Online________Meta_______Caps______HPDBLCR__________1234_| ______________________________________________________________________________ | Program Version Mode Meta Caps Status LED | |__name___________________________Ind._______Ind.____________________________| The "Status LED's" are (from left to right): __________________________________________ |_____________________|____On___|__Off___| | History | H | _ | | Autoprint | P | _ | | DCD | D | _ | | Break | B | _ | | Keyboard locked | L | _ | | File Capture ! C | _ | |__Insert_Mode________!_____I___|____R___| 3.10 The Single-line Editor To make working on systems that don't have a single-line editor (short sle) easier, a simple sle is implemented in UniTerm. The last 20 lines typed by the 16 CHAPTER 3. MORE ABOUT UNITERM user are stored in a circular buffer. Pressing starts the sle, the status line will clear and the current line will be displayed instead. The following functions are provided: <->> move the cursor one character to the right. <<-> move the cursor one character to the left. <^> display the previous line. display the next line. delete the character under the cursor. delete the character to the left of the cursor. terminate the sle without sending the current line. send the current line and leave the sle. The sle is always in insert mode. DON'T FORGET TO ERASE YOUR PASSWORDS! If you want to disable the sle for this reason, disable it in the [Terminal] dialog box. 3.12 Single Character Commands All functions in the 'Help' menu of UniTerm can used with single character commands: 1 Set terminal parameters part 1 2 Set terminal parameters part 2 A Set ASCII file transfer parameters B Set buffer sizes C Configure dialer D Delete file E Edit function-keys F Show free diskspace G Set graphic parameters I Show info dialog K Set Kermit parameters L Load Setup P Set Path R Run program S Save Setup T Set tabs Q Quit 'help' dialog V Set RS232 parameters X,Y Set X/YModem parameters Chapter 4 File Transfer 4.1 General To change the current file transfer mode use the [Transfer] menu. Changing the file transfer type here, changes the dialog box that is displayed when you select [File Transfer] from the [Settings] menu and what happens when you type (start file transfer). 4.2 ASCII File Transfer 4.2.1 Using ASCII File Transfer There is nothing much to say about ASCII file transfer,just press and choose the file you want to send. Pressing gets you to the Help screen, so you can change the delay between characters to a different value during an upload (this is useful with VMS which normally has a lot of trouble with the first line sent). The transfer can be interrupted at any time by pressing A. Normally some experimentation is needed to find the shortest delay time for your system. You can use a character translation table to map incoming characters to Atari characters. To receive files use the file capture function. A translation table is used in the same way as with sending files. When file capture is in effect the characters are displayed as they will be saved. 4.2.2 Setting the ASCII File Transfer Parameters The following parameters can be set: Start of file transfer a string that is sent before file transfer starts. 18 CHAPTER 4. FILE TRANSFER End of file transfer a string that is sent when the transfer finishes. Send determines if the output translation table is used for sending files. Receive determines if the input translation table is used for capturing files. Delay Time sets the time [ms] UniTerm waits after every character sent (this is implemented with the 200Hz system clock. Method if [Paced by Echo] is selected, UniTerm waits for every character sent to be echoed (except ASCII control codes), this doesn't time out! Translate EOL to selects if CR LF is sent as CR LF , CR , LF or as SP CR. This function will send single CR 's and LF 's correctly! Translation on input allows you to change the translation table used during file capture Translation on output enables you to edit the translation table which is used for sending files, enter the decimal ASCII values of the characters or nothing if you want the character to be ignored. 4.3 XModem/YModem 4.3.1 Using XModem To receive a file, start the remote XModem and type . To receive a file select [Receive] from the dialog box and enter the filename in the file selector form. If you have set the error check mode to [CRC] UniTerm will try to initiate a file transfer with CRC error check, if it gets no response in the maximum allowed number of errors, it will retry with the normal checksum. To send a file select [Send] and enter the name of the file in the file selector. 4.4 KERMIT 19 4.3.2 Using YModem Batch YModem is a version of the XModem protocol with CRC type block check and with a batch send/receive protocol added. The file length will be set to the value received in the header block, file date and time is set to 0 and the attribute to 000644 (octal) on sending and ignored on receiving. Filename collision handling and wildcard expansion are done on receiving/sending a group of files. 4.3.3 Setting the XModem Parameters The following parameters can be set: Timeout after sets the maximum time XModem waits for a character to be received from the serial port. Maximum number of errors sets the maximum number of errors before the file transfer is aborted. Accept ASCII NUL allows you to use XModem for non-binary file transfers, when ASCII NUL is used as padding character. Packet size chooses the packet size for XModem transfers, the 1kB size may be more efficient on noise free lines. Error check type sets the default checksum type, if possible use the CRC check for the larger packet size. 4.4 Kermit 4.4.1 UniTerm Kermit Capabilities UniTerm Kermit capabilities at a glance: Local operation: Yes Remote operation: No Transfers text files: Yes Transfers binary files: Yes Wildcard send: Yes ^X/^Y interruption: No Filename collision avoidance: Yes Can time out: Yes 8th-bit prefixing: Yes 20 CHAPTER 4. FILE TRANSFER Repeat count prefixing: Yes Alternate block checks: Yes Terminal emulation: Yes (UniTerm) Communication settings: Yes (UniTerm) Transmit BREAK: Yes (UniTerm) IBM mainframe communications: Yes Transaction logging: No Session logging: No Act as server: No Talk to server: Yes Advanced server functions: No Advanced commands for servers: Yes Local file management: Yes Handle file attributes: Yes Command/init files: Yes (UniTerm) Command macros: Yes (UniTerm) Large packets: Yes Windows: No Please don't forget if you miss a feature,that UniTerm is a terminal emulator and not a "real" Kermit (whatever that maybe). 4.4.2 Simple File Transfer To receive a file, type the correct command for the remote Kermit and type on the ST keyboard, a large dialog box should appear. Select [Receive] if you want to use a different name than the original filename use the file selector form to select a name (this will only effect the first file received in a mutiple file transfer). If you want to receive the files with the names supplied by the host, just press (the path entered is retained untill the end of your UniTerm session). A new form will appear and will display the current file being received, the total number of packets, the current number of errors and timeouts and the last non-fatal error that occurred. The transfer can be aborted by typing . To send a single file or a group of files, setup the remote host for receiving, type and select [Send]. Enter the filename or wildcards (*,?) in the file selector dialog and press . 4.4.3 Binary File Transfer Set both sides (host and local computer) to binary mode (on most mainframes with set file type binary or set file binary, select the [Binary] button 4.4 KERMIT 21 on UniTerm), if you have set parity to none and have selected 8 data bits, binary files will be transferred without 8th-bit prefixing; in all other cases prefixing will be used (be sure that the parity is the same on the complete connection to the remote computer). One note, since the Kermit "end of record" is the same as the TOS "end of line" no translation of CR's or LF's is done, this may lead to problems if you have a file on the ST which uses LF as 'end of line' marker. 4.4.4 Server Commands This is probably the simplest way to use Kermit, connect to the remote host and start the remote Kermit in server mode. A large subset of the possible Kermit server commands is implemented (not implemented: Journal, Who, Variable): Put send a file to the host. Get receive a file from the host. Finish terminate the remote Kermit. Logout terminate the remote Kermit and logout. Dir send a directory to the local Kermit and have it displayed on the screen (argument: file-spec). Remote send a command to the remote host (argument: commandline). Type send a file to the local Kermit and display it on the screen (argument: file). CWD change the current working directory of the remote Kermit (arguments: directory, password). Usage show disk usage (argument: area). Program start a program on the host computer (arguments: program- file, program-commands). Erase delete a file on the host computer (argument: file). Copy copy a file on the host computer (arguments: source, destination). Rename rename a file on the host computer (arguments: oldname, newname). Login login on a remote Kermit in server mode (argu- ments: user, password, account). Help get help from the remote host (argument: topic). Status get the current status of the server. For more information consult the "Kermit Protocol Manual". 4.4.5 Setting the Kermit Parameters The following parameters can be set: 22 CHAPTER 4. FILE TRANSFER Timeout after sets the maximum time Kermit waits for a character to be received from the serial port. Maximum number of retries the maximum number of retries before the transmission is aborted. Number of padding characters the number of padding characters sent before each packet. Packet size the maximum packet size you want to use (maximum size without large packets is 94 bytes, with 2048). Quote character the ASCII character used for control character quoting. 8 bit quote character the ASCII character used for 8th-bit quoting. Repeat prefix character the character used for repeat prefixing. Padding character the character used for padding. Start of packet the character that marks the start of a Kermit packet. IBM mode wait for a XOn character before sending a packet (XOn/XOff flow- control naturally has to be turned off for this to work). Error check type two and single character checksum and CRC check. Normally you shouldn't have to change any of these parameters, please consult the Kermit literature for more details. Chapter 5 Customizing UniTerm UniTerm can be adjusted to suit your needs in various ways, most use the setup files to store the configuration data. The popup menu and the bindings of the keys are exceptions, mainly since there would have been no way of editing these settings without making UniTerm simply too large. The popup menu and function keys can be set by executing UniTerm macro commands in the auto startup macro file. 5.1 Popup Menu A line like %POPUP(1,15,'L. Break') in your startup macro file will assign the command LongBreak to the top left- hand entry in the popup and will name the command 'L. Break', consult the chapter on the macro commands for a complete description. 5.2 Key Bindings A line like %REASSIGN(39,15) in your startup macro file will assign the command LongBreak to , to find out which keycode to use please consult other literature. Be-ware: in some cases the key modifies the value of the returned keycode. To override the default key bindings, set the command number to zero, this causes the character generated by the BIOS to be used for output. Chapter 6 Implementation Notes 6.1 General Most of UniTerm is written in CCD/OSS Pascal and uses standard GEM, GEM-Dos, Bios and XBios calls. The exceptions are: * Scrolling, this is done with a assembler routine instead of raster operations. * Character output in the 128 column, DW and DH modes, is done with TXTBLT (which doesn't help very much speedwise), all other terminal mode output is done with fast custom assembler routines, which are at least an order of magnitude faster when using text attributes than the corresponding TXTBLT calls. * Some miscellaneous routines, like CRC calculation, supervisor peeks pokes. Timing information for the main loop of UniTerm: 0.2 mS RS232 state, keyboard and mouse state If characters can be read from the serial port: 0.18 mS Cursor on/off (disabling the cursor saves this) Innerloop (max. 20 iterations): 0.1 mS Character read (possibly slower) 0.3 mS Character output (VT100 mode 80 clumns, no attributes set) Turning history recording on will naturally make the loop slower, scrolling speed is 38 lines per second. 6.2 VT102/VT100 MODE 26 The carrier detect signal and the break bit on the Mfp are polled once per main loop and if they are present a appropriate message is displayed. UniTerm needs one VBL interrupt slot and also installs its own mouse-movement interrupt handler in GIN mode, additionaly VDI mouse-movement and mouse-button handlers are installed. The mouse-button handler may cause problems with programs that use both buttons, since it maps both to the left button (this is a workaround AES's inability to wait for a left or right mouse-button event). Please note that unlike other available products, UniTerm does NOT use any undocumented locations or functions of the operating system. 6.2 VT102/VT100 Mode 6.2.1 Smooth Scrolling Only works upwards (this is hopefully the only direction anybody really needs), this will be fixed the day I get a blitter. 6.2.2 132 Column Mode Only 128 columns wide, this is due to the 640 pixel resolution of the ST in horizontal direction. 6.2.3 Double Height/Width Characters Restrictions: no double width in color. 6.2.4 Extended character set in 8 bit mode Using the GR character set will work, but is probably very slow due to the fact that the font has to be set/reset for every character. 6.3 VT200 Mode 6.3.1 VT200 function keys There is no default assignment of the VT200 function keys to ST keys, except for the downloadable function key strings. If you need the default VT200 keys (->appendix E), build yourself a setup file with the right settings. 26 CHAPTER 6. IMPLEMENTATION NOTES 6.3.2 C0/C1 Modes Not implemented, that means UniTerm always sends C0 codes (7 bit) (this only a restriction for the escape sequences sent by the cursor and keypad keys, you can send 8 bit codes from the keyboard), received C1 codes will be interpreted correctly. 6.3.3 International character set The international character set is the default GR set (the characters that are between ASCII 128 and 256). For technical reasons use of the GR set is slow (the set is changed for every character!). 6.3.4 Downloadable character set Not implemented (very resolution dependent, useless on the ST). 6.3.5 Downloadable function keys The lock/unlock/erase parameters are ignored. The mapping of the keys is de- scribed in app endix E,maximum string length per key is 80 characters (DON'T FORGET THAT % IS A SPECIAL CHARACTER FOR UNITERM!). 6.3.6 Regis Not implemented (very resolution dependent, useless on the ST). 6.4 Tektronix Mode 6.5 General The Tektronix mode is still a bit in a mess. This will change with the using the 4105 command set, this implies that you should only use the vector mode of the 4010 emulation as all other 4010 commands will probably be removed from the program. Right now scaling is done with respect to a 4010 with 1024*780 points, this probably will change for the 4105 (512*360) emulation. In Tek coordinates the screen measures 4096*3120 points (4105: 4096*3072 points). For redrawing and zooming purposes the incoming characters are stored in a circular buffer. This is quite a memory saving way to store them, but on the other hand this means they have to be decoded every time the vectors are drawn. 6.6 PROBLEMS 27 6.5.1 Alpha Mode Restrictions: 1 margin, all (well nearly all) character sizes are the same only the spacing is different. 6.5.2 Vector Mode 6.5.3 Zoom Mode Restrictions: No zooming of graph text, slow. 6.6 Problems Sometimes the serial port seems to blocked (this has happened to me with other ST terminal emulators as well), the reason for this still hasn't been discovered (probably due to a bug in the ST Bios), try resetting the terminal if this happens. Don't use the [Set RS232 Port Parameters] dialog in an editor or the like, for some mysterious reason the serial port outputs a delete character if you actually change something and exit with [OK](probably due to a bug in the ST Bios). Don't try to use the underscore character in the file-selector dialogs (this is a bug in GEM, fixed in the so called Blitter-TOS). Appendix A Control Codes and Escape Sequences This appendix lists control codes and escape sequences that complete implemen- tations of VT102/VT2XX and Tektronix 4014/4105 terminals should interpret and the functions they should initiate. * marks functions that are redundant or not possible on an Atari ST computer, *NI marks other not implemented functions (due to my laziness?), *RI uncomplete implementation of a function, please read the implementation notes for details. Consult the ASCII table for numeric values of the control codes, Ps, Pn, Pc and Pl denote decimal values ( ESC [10;10f postion cursor at text coordinates (10,10)). The following control codes and commands, the syntax and the command interfaces as a whole could possibly be patented or/and copyrighted, please consider this list as 'for information only'. Commercial use is strictly forbidden. A.1 ANSI/VT2XX/VT102/VT100 Mode A.1.1 Set Mode ESC [2h Keyboard locked ESC [4h Insert mode ESC [12h Local echo off ESC [20h New line mode on ESC [?1h Cursor key application mode ESC [?3h *RI 132 column mode ESC [?4h *RI Smooth scrolling ESC [?5h Screen reverse ESC [?6h Origin mode relative A.1. ANSI/VT2XX/VT102/VT100 MODE 29 ESC [?7h Auto wrap on ESC [?8h * Auto repeat on ESC [?9h * Interlace on ESC [?18h Print form feed on ESC [?19h Print extent full screen A.1.2 Reset Mode ESC [2l Keyboard unlocked ESC [4l Replace mode ESC [12l Local echo on ESC [20l New line mo de off ESC [?1l Cursor key cursor mode ESC [?2l VT52 mode ESC [?3l 80 column mode ESC [?4l Jump scrolling ESC [?5l Screen normal ESC [?6l Origin mode absolute ESC [?7l Auto wrap off ESC [?8l * Auto repeat off ESC [?9l * Interlace off ESC [?18l Print form feed on ESC [?19l Print extent scrolling region A.1.3 Select Character Sets The format is : ESC primary final Where primary selects one of the four logical character sets (G0 to G3) and final selects the actual character set to be, mapped into the logical set. Primary selector ( G0 ) G1 Final selector A UK national B US-ASCII 0 Special graphics 1 *NI Alternate character set ROM 2 *NI Alternate special graphics set ROM 30 APPENDIX A. CONTROL CODES AND ESCAPE SEQUENCES A.1.4 Shift into Character Sets SO Locked shift G1 SI Locked shift G0 A.1.5 Character Attributes ESC [0m No attributes ESC [1m Bold ESC [4m Underline ESC [5m Blink (Light) ESC [7m Reverse A.1.6 Scrolling Region ESC [Pt;Pbr Set scrolling region A.1.7 Cursor Movement Commands ESC [PnA Cursor up ESC [PnB Cursor down ESC [PnC Cursor right ESC [PnD Cursor left ESC [Pl;PcH Cursor position ESC [Pl;Pcf ESC D Index ESC M Reverse Index ESC E Next line ESC 7 Save cursor ESC 8 Restore cursor A.1.8 Tab Stops ESC H Horizontal tab set ESC [g Tab clear ESC [0g Tab clear ESC [3g Clear all tabs A.1. ANSI/VT2XX/VT102/VT100 MODE 31 A.1.9 Line Attributes ESC #3 Double-height top half ESC #4 Double-height bottom half ESC #5 Single-width single-height ESC #6 *RI Double-width single height A.1.10 Erasing In Line ESC [K Cursor to end of line ESC [0K ESC [1K Beginning of line to cursor ESC [2K Entire line In Screen ESC [J Cursor to end of screen ESC [0J ESC [1J Beginning of screen to cursor ESC [2J Entire screen A.1.11 Requests/Reports Requests from host Reports to host ESC [5n Status ESC [0n Terminal OK ESC [3n * Terminal not OK ESC [6n Cursor pos. ESC [Pl;PcR Cursor position ESC [c What are you? ESC [?1;Psc VT100, Ps options ESC [0c ESC [?6;Psc VT102, Ps options ESC Z ESC [?62;Psc VT200, Ps options ESC [?15n Printer status ESC [?10n Printer ready ESC [?11n Printer not ready ESC [?13n No printer ESC [0x Send terminal parameter report after setup ESC [1x Send only on request 32 APPENDIX A. CONTROL CODES AND ESCAPE SEQUENCES A.1.12 Reset ESC c Reset to default values A.1.13 Tests ESC #8 Fill screen with E's ESC [2;Psy * Invoke tests A.1.14 Keyboard LED's ESC [0q All off ESC [Psq LED Ps on A.1.15 VT52 Mode ESC Enter ANSI Mode ESC = Enter alternate keypad mode ESC i Exit alternate keypad mode ESC F Select special graphics character set ESC G Select US/UK character set ESC A Cursor up ESC B Cursor down ESC C Cursor right ESC D Cursor left ESC H Cursor home ESC YPlPc Direct cursor address ESC I Reverse line feed ESC K Erase to end of line ESC J Erase to end of screen ESC Z What are you? ESC /Z I am a VT52 (Response) ESC ^ Enter auto print mode ESC - Exit auto print mo de ESC W Enter printer controller mode ESC X Exit printer controller mode ESC ] Print screen ESC V Print cursor line A.1. ANSI/VT2XX/VT102/VT100 MODE 33 A.1.16 Editing Functions ESC [PnP Delete character ESC [PnL Insert Line ESC [PnM Delete Line A.1.17 Print Commands ESC [?5i Enter auto print ESC [?4i Exit auto print ESC [5i Enter printer controller ESC [4i Exit printer controller ESC [i Print screen ESC [0i ESC [?1i Print cursor line A.1.18 Other Control Characters NUL Ignored SOH Ignored ETX Ignored EOT Ignored ENQ Transmit answerback message BEL Bell BS Backspace HT Horizontal tab LF Linefeed or CR LF VT same as LF FF same as LF CR Carriage Return SO Shift to G1 character set SI Shift to G0 character set DC1 Ignored (Alternate XOn) DC3 Ignored (Alternate XOff) CAN Cancel SUB Cancel DEL Ignored US Ignored RS Ignored FS Ignored SYN Ignored EM Ignored 34 APPENDIX A. CONTROL CODES AND ESCAPE SEQUENCES ETB Ignored NAK Ignored DLE Ignored XON In XOn/XOff flow control mode XOFF intercepted by ST bios, otherwise ignored A.1.19 Nonstandard Functions ESC [` Lock Keyboard ESC [b Unlock Keyboard ESC [PnI Move Pn tabs right GS Enter 4014 Vector mode ESC %!0 Enter Tektronix alpha mode (4105) ESC #!0 Report terminal mode (4105) %! SPSP 1 Report: I am a ANSI terminal (4105) ESC [?39h Set 49 line mode ESC [?39l Set 24 line mode ESC [?40h Set meta mode ESC [?40l Reset meta mode ESC [*c Inquire UniTerm version and mode Response: ESC [*major ;minor ;release;max-row;max-col c ESC Pu string ESC \ Execute string with UniTerm's macro processor A.2 VT2XX Functions A.2.1 Character Sets The format is: ESC primary final Primary selector ( G0 ) G1 * G2 + G3 Final selector < DEC International A.2. VT2XX FUNCTIONS 35 B US-ASCII 0 Special graphics A.2.2 Terminal Modes CSI 61"p VT100 mode CSI 62"p VT200 mode, 8-bit CSI 62;0"p " " CSI 62;1"p VT200 mode, 7-bit CSI 62;2"p VT200 mode, 8-bit ESCSP F *NI Send only C0 codes ESCSP G *NI SEnd only C1 codes A.2.3 Selective Erasing and Attributes CSI 22m Bold off CSI 24m Underline off CSI 25m Blink off CSI 27m Inverse off CSI 0"q Erase protectionoff CSI 1"q Non-erasable CSI 2"q Erasable CSI ?K Cursor to EOL CSI ?0K CSI ?1K SOL to Cursor CSI ?2K Whole line CSI ?J Cursor to EOP CSI ?0J CSI ?1J SOP to Cursor CSI ?2J Whole screen 36 APPENDIX A. CONTROL CODES AND ESCAPE SEQUENCES A.2.4 Reports From host CSI i0c Secondary device attribute response From terminal CSI i1;17;0c VT220, Software version 1.7 From host CSI ?25n Are the function-keys locked? From terminal CSI ?20n Unlocked CSI ?21n *NI Locked A.2.5 Misc ESC [PnX Erase Pn characters ESC [PnP Delete Pn characters ESC [Pn@ Insert Pn blanks CSI !p Soft reset CSI ?38h Tektronix mode CSI ?38l VT200 mode CSI ?25h *NI Cursor on CSI ?25l *NI Cursor off A.2. VT2XX FUNCTIONS 36 A.2.6 Downloadable Function Keys DCS Pc;Pl|Ky1/St1;.. ST Pc = 0 clear all keys (ignored) Pc = 1 don't clear keys (ignored) Pl = 0 lock keys (ignored) Pl = 1 don't lock keys (ignored) Ky1 Key number (decimal) St1 String (hex) A.2.7 Downloadable Character Sets Not implemented! Sorry. A.2.8 Control Codes IND Index NEL Next line SSA Ignored A.2. VT3XX FUNCTIONS 37 ESA Ignored HTS Horizontal tab set HTJ Ignored VTS Ignored PLD Ignored PLU Ignored RI Reverse index SS2 Single shift G2->GL SS3 Single shift G3->GL DCS Device control string introducer PU1 Ignored PU2 Ignored STS Ignored CCH Ignored MW Ignored SPA Ignored EPA Ignored CSI Control sequence introducer ST String terminator OSC Ignored PM Ignored APC Ignored A.3 VT3XX Functions Cuurently only the implemented control sequences are listed. A.3.1 Set Mode ESC ?67h sends BS and sends DEL A.3.2 Reset Mode ESC ?67l sends DEL and sends BS A.3.3 National Replacement Character Sets In this mode the ASCII characters: # @ [ \ ] ^ _ ` { | } ~ are mapped into characters of the international character set. Only one NRC can be active at one time, the format to select one is: ESC primary final 38 APPENDIX A. CONTROL CODES AND ESCAPE SEQUENCES Primary selector ( G0 ) G1 * G2 + G3 Final selector A British 4 *RI Dutch 5 or C Finnish R *RI French 9 or Q French Canadian K German Y Italian ' or E or 6 Norwegian/Dutch %6 *NI Portugese Z Spanish 7 or H Swedish = Swiss A.4 4014 Mode A.4.1 Alpha Mode Cursor Movement BS Cursor left HT Cursor right LF Cursor down VT Cursor up CR Cursor to left margin Character Set Sizes ESC 8 Normal 35x76 (lines x columns) ESC 9 Small 38x81 ESC : Smaller 50x120 ESC ; Smallest 58x133 ESC 6 *NI Enter Italics ? ESC 7 *NI Exit Italics ? A.4. 4014 MODE 39 Mode Changing GS Vector mode ESC SUB GIN mode FS Point plot mode ESC FS *NI Special point plot mode RS Incremental mode CAN Return to text terminal A.4.2 Other Functions and Extended Escape Codes ESC ETB Hardcopy ESC ENQ Transmit status ESC STX Enable block fill/erase ESC ETX Disable block fill/erase ESC "R Enable rectangle draw ESC "r Disable rectangle draw ESC x Enable selective erase ESC /0d Dots on ESC /1d Dots off ESC /2d Dots complemented A.4.3 Vector Mode GS Next vector is dark address Draw vector, next vector is visible ESC ` Solid vector ESC a Dotted ESC b Dot-dashed ESC c Short-dashed ESC d Long-dashed ESC p Solid vector, XOR ESC q Dotted, XOR ESC r Dot-dashed, XOR ESC s Short-dashed, XOR ESC t Long-dashed, XOR ESC SUB GIN mode US Alpha mode, don't move CR Alpha mode ESC FF Alpha mode, clear screen 40 APPENDIX A. CONTROL CODES AND ESCAPE SEQUENCES A.4.4 Point Plot/Special Point Plot Mode address Plot point intensity address *NI Special plot point CR Alpha mode ESC FF Alpha mode A.4.5 Incremental Point Plot Mode SP Pen up P Pen down D North E North east A East I South east H South J South west B West F North west CAN Alpha mode ESC SUB GIN mode A.5 4105 Commands In the following list capital letters are part of the command sequences and lower case identifiers denote Tektronix encoded parameters. ESC IQ code *NI Report terminal settings ESC IJ normal shifted *NI Change GIN cursor speed ESC JC *NI Copy ESC KC *NI Cancel ESC KR mode *NI Change carriage return/line feed mode ESC KD number contents *NI Define macro ESC KO number contents *NI Define nonvolatile macro ESC KA mode *NI Enable dialog area A.5. 4105 COMMANDS 41 ESC KW mode *NI Enable key expansion ESC KX number *NI Expand macro ESC KH mode *NI Hardcopy ESC KI mode Ignore deletes mode ESC KF mode *NI Change line feed/carriage return mode ESC KL mode *NI Lock keyboard ESC KQ *NI Report errors ESC KV *NI Reset ESC KU *NI Save nonvolatile parameters ESC KE mode *NI Change echo mo de ESC KZ char-delete line-delete literal *NI Change edit characters ESC KT threshold *NI Change error threshold A.5. 4105 COMMANDS 40 ESC KY char *NI Change key execute character ESC KS mode *NI Change transparent mode ESC KB positions *NI Change tab stops ESC LL number *NI Change number of lines in dialog area ESC LP start-point fill-boundary *NI Start panel boundary ESC LZ *NI Clear dialog area ESC LG position *NI Draw to position ESC LH position *NI Draw marker at position ESC LE *NI Finish Panel ESC LT text *NI Graphic text ESC LF position *NI Move to position ESC LB number *NI Change number of lines for dialog buffer ESC LI char-color char-background-color dialog-background-color *NI Change dialog area color ESC LV mode *NI Change dialog area visibility ESC LM writing-mode *NI Change dialog area writing mode ESC MP number *NI Choose fill pattern ESC MG writing-mode *NI Change graphics area writing mode ESC MN direction *NI Change graphtext direction ESC MR mantissa power-of-two *NI Change graphtext rotation ESC MC width height spacing *NI Change graphtext size ESC ML color *NI Change line color ESC MV style Change line style ESC MM type Change marker type 42 APPENDIX A. CONTROL CODES AND ESCAPE SEQUENCES ESC MT text-color *NI Change text color ESC NM mode *NI Prompt mode ESC NR transmit receive *NI Change baud rates ESC NK time *NI Change break time ESC NU char *NI Change echo suppression cancel character ESC NE string *NI Change EOF string ESC NT string *NI Change EOL string ESC NC first-char second-char *NI Change EOM characters ESC NF mode *NI Change flow control mode ESC NP string *NIChange prompt string ESC NQ size *NI Change input buffer size ESC NB stopbits *NI Change number of stop bits ESC ND delay *NI Change transmit delay ESC QI values *NI Map color to monochrome values for print ESC QU density *NI Choose color hardcopy image density ESC QD type *NI Choose printer type ESC QL pages page-origin ff-mode *NI Change dialog hardcopy attributes ESC QE attributes *NI Change hardcopy monchrome attributes ESC QO orientation *NI Change image orientation ESC RU plane writing-mode bits-per-pixel *NI Begin pixel operations ESC RX dest.-plane d.-lower-left-corner first-source-corner second-s.-corner *NI Copy pixels ESC RP number color *NI Write pixels ESC RR lower-left-corner upper-right-corner fill-color *NI Fill rectangle ESC RL array *NI ? ESC RH position *NI Move to pixel position ESC RS lower-left-corner upper-right-corner *NI Change coordinates for pixel operations ESC RW first-corner opposite-corner *NI Change window on 4096*4096 coordinates ESC TD first-color second-color *NI Change alpha cursor colors A.5. 4105 COMMANDS 43 ESC TF colors *NI Change color indices for dialog area ESC TG plane colors*NI Change color indices forplane ESC TC first-color second-color third-color *NI Change GIN cursor color ESC SX number position *NI Change GIN cursor position ESC SUB Enter 4010 GIN mode ENQ *NI Inquire 4105 status US *NI Enter 4105 alpha mode ESC CAN Enter echo suppression mode FS Enter marker mode GS Enter vector mode ESC FF Clear screen, enter alpha mode ESC #!0 Report terminal mode ESC ENQ Report 4010 status ESC %! mode Change to a different terminal mode ESC font Change fonts ESC style Change 4014 line style ESC ETB 4014 hardcopy Appendix B ASCII Control Codes B.1. 7-BIT CONTROL CODES 45 B.1 7-bit Control Codes ______________________________________________________________________________ | Dec | Oct | Hex | Keys | Atari | ASCII name | |_______|______|________|+|__character___|__________________________| | 0 |000 | 00 | <@> | None | N_ L Null | | 1 |001 | 01 | | Up Arrow | SOH Start of header | | 2 |002 | 02 | | Down " | STX Start text | | 3 |003 | 03 | | Right " | ETX End text | | 4 |004 | 04 | | Left " | EOT End of trans. | | 5 |005 | 05 | | Close Box | ENQ Enquiry | | 6 |006 | 06 | | Move Box | ACK Acknowledge | | 7 |007 | 07 | | Full Box | BEL Bell | | 8 |010 | 08 | | Check | BS Backspace | | 9 |011 | 09 | | Clock | TAB Horizontal tab | | 10 |012 | 0A | | Bell | LF Linefeed | | 11 |013 | 0B | | Note | VT Vertical tab | | 12 |014 | 0C | | FF | FF Formfeed | | 13 |015 | 0D | | CR | CR Carrige return | | 14 |016 | 0E | | Left Atari | SO Shift out | | 15 |017 | 0F | | Right " | SI Shift in | | 16 |020 | 10 |