@CH-FOR18p  )׼NO NAME FAT12 3м|PPPPPiP:3S|Sr &>}Uu˾t223 uV^FDBOOT Version 1.8 No Systemdisk. Booting from harddisk. Cannot load from harddisk. Insert Systemdisk and press any key. U./ 40775 12 1 0 5555546011 4155 5$7 @AAWt@` r- yd5(_65,_650_652_654_656_65:_6|5<_6n5@_6`5B_6R5D_6D5F_665J_6(5P_65V_6 5\_65^_65d_65p_65r_65t_65v_65x_65z_65|_65_6r5_6d5_6V5_6H5_6:5_6,5_65_6./usr/ 40775 2 2 0 5555546046 4756 5_65_65_65_65_65_65_65_65_65_65_6v5_6h5_6Z5_6L5_6>5_605_6"5_65_65_65_65_65_65_65_65_65_65_65_6z5_6l5_6^5_6P5_6B5_645_6&5_65_./usr/bin/ 40775 2 2 0 5555546036 5525 6 5_65_65_65_65_65_65_65_65_65_6~5_6p5 _6b5_6T5_6F5_685_6*5_65_65 _65"_65&_65(_65*_65,_650_656m5:g5<a5>[|5@Up5BOd5DIX5FC _ A_65 6 R_x R_ z5l#./usr/bin/clear 775 2 2 23220 5555215656 6602  _F R5b _ ;_V  5&@w|  _p _. 5. _j 0_| ;_R A_n cd5f _ t_ A_D _05 /_ A_5~ *_ *_ ;_ A_ c_5  *_ _ _b *_5_6 _5_6 ;_ ;_d5_6 _ ;_ n_r _.5_6 ;_ n_T, 0  6 >  67 - % d7gV 5@e5@e5Ne  @7&  dNfe  % dNe[  5 w%Ne^  5 ra T &f %   dw87 Nef %  @wx7 @AAWt@` pb: sg1 li" lm% co ws7 it vt+@w"d5X5L5@545(5 5" 5`_6 _~ ;_5H_6 *_4 _5X_6 *_52_6 _h _2 5_ n_  _, _f5_6 _\ _\ 5_ _05T_6 _t _5._6 )_ _< _ _ _5$_6 $_ n_5_6 $_ _ _ 5_ F_l5_6 _N h_ _@5_6 5_ W_` h_ _l l P 5t 5r tNt ` 1 rNr ` 1 eH5d e&? ^E% E^ 0 2 0 & _h5bC-dSb5beB-dRb5xeB-d %x @f@mx@j j Cf@h h 7  eJT &H % 5` e\ eJ P~w 7  5` e\T &H %wZ 7d D 5 $0 $"Wp C0` $+  x $  w f@w D-wA vuA-u@ f& % @ ` ݂@ ` `f@w 7\NeTf %  w,70DCB 5Ԕ @wBFN& fwwwr&wNfwxmtpz&w.dwm^fwNz&w w@ 76  FTERMpcclli >j6 l  B Z < ^ @ X z * V 8Z<@(#)tputs.c 1.1 (1.9 3/6/83)5MS 5h_6 5_ _X F_ h_: _5_6 h_5R_6 F_ ~_58_6 $_ F_ ~_ _Z5_6 5_ y_ _.5_6 _5_6 _$ 5_ @_( _5*_6 5_  F_ _5L_6 _ ~_8 @_H h_ y_t5>_6 #_t _T 5_P F_ h_ _*54_6 _ F wJ 7 -D pj  N *f r%  r% *& r%  r%wH7R 6 %@E& v w&@E?EE 7D~  &  w 7DC ԥ==̋ wfwvwr%w  7D ԋwx7DCԔw`f@w(w$%wfww w%w7$% e-w7D w  *_ _5n_6 _ Q_d _5N_6 _ _5_6 /_ /_ h_ y_z5_6 /_ _@ _ W_ _J _058_6 _* /_5Z_6 @_ @_f W_ y_ _5j_6 _ @_ _  @_ W_B _5_67>D < Nf& %̥$&  ̋w7D  5e$Wp @ R v 4 44  7D4  wv   -  7ND E%B: 0#H&^@E<EE % @EE@E54 fe& r%% ) %"E%E%    -  D  wlD   @EE& v @EE< 7*DD  H&4 H&  @  2@`e$Wp C̥. $e` $̥* upC̥> @&  @ N  w87BD p`E5%w@  r`<   r   7  5N eJT&H %w 7  0 5 5 v= %fez B Nez *Caezӕ/Sӕ/N B  fez | 5v v#F fez B Nez *CaezsN B  fez | 5v & r%  w 7DE%wzEU4   -D H&4 H&  @  2 7 D* Wte(te   A%tepH&  h @w% 4 7D H& H&-wVf 4@f@w w %w705 <5U7:5U7~<5|:5trtAe vBZ5 7PvA [   q ($   r%N *f r%  r%=  _d d  n 7r 5 f &f  :-f% N h < pH $ fefv Z%5xNv R x% d%x  r%  d'De5pe%p  r% wN 5pe5ne5le5je5he fNh 5f@p p F e5d: @n n \5 " e&5d e@ P 7J  %"55 a  a!_^E -%:5 wn e !e vu@t 5 r $ rf5`5` @5e vu@t 5@me@ u%| | %|N % $( @m@e  e U?:5U?_ a7 ?U 7!e_H7.DE -w7C5  5N F&(6F5alted ((((( H !()0+((H  @m Amp @m0< Wp3` Am   Wp3a Am Wp3a Am@ Ampw( 72 uuu w 7 @a@a& j A %WZX eNf 0  w 7 D%wp 7v @e5@ff % w8 7> C  %5!"BA  D & r&@rr @`   w & BAN   C 5 N & A-  A./usr/bin/erase 775 2 2 23220 5555215656 11421 1./usr/bin/clear B A @ A-  A    wb 7l DC  ԋ@w< f BR7. DCԔw 7 5 uDC5 5 5  % _X @w e@-U +U U  #U 0U  `u5 U5  . >u5 u-u @  A ZU5Bw JU5   5 5  57)  &unknownPackaged for USG UNIX 6.0, 3/6/83TERMunknownTERMINFO/usr/lib/terminfo/a//usr/lib/terminfo/ . /usr/lib/terminfo/ . No such terminal: corrupted term entry term entry too long LINESCOLUMNS Unknown error: R!Z!d!~!!!!!!!!"#"4"F"R"h"t""""""""" ##(#@#M#c#r#~###### $$&$?$\$w$-Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBa./usr/bin/dryr 775 0 3 12042 5555216643 6470 d file numberNo child processesNo more processesNot enough spacePermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesNot a typewriterText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument out of domainResult too largeNo message of desired typeIdentifier removedChannel number out of range, 0  6 >  67b- % <7^  <wB7LV V5u %P V@A 5u( l7@(( l72(0(,(((0  (((<(e n [fe n   V5u h @zfe n Nefe   7AWpuNe&f % 5!Nf eF' jAC@& j @-Ne& x TupuA 5rAWpDDNeLevel 2 not synchronizedLevel 3 haltedLevel 3 resetLink number out of rangeProtocol driver not attachedNo CSI structure availableLevel 2 halted ((((( H !()0+((  %P_ V@A @A 5uffP& . e ffP& ef& ew(72DZ&P~0<  e& x &e & %P~w7De A = w7 %%d%e %wP7ZA ]Bw,76A7 w7$DC     x2 %dfw 7 De@a=w 7 De @m%    -  D  wlD r  @EE& N @EE< 7*DD  4   @   & J%  w 7DE%wzEU4  | -D 4   @   7 D* Wte(te   A4tep  @ @w% ./usr/bin/drynr 775 0 3 12256 5555216644 6656 l4 7D  -wVf 4@f@ww.w705 -U7-U7--Ae vB5 7  7  %"55 a  a!_6E -%- wnt de !e vu@t 5 r $ rf5`5` @5e vu@t 5@me@ u%| | %|N %  0  6 >  67- % 7  w7X 5u %P @A 5u( 7(( 7((((0 ((((e  fe   ` 5u  zfe  Nefe   7ZAWpAuNeff % u-Nf  .e' xAC@&  @-Ne&  AupuA 5r5AWp@m@e e U?xt-U?h_ a7V NP?HDU 7!@48e_ 7.DE -  w7C5 n 5N lD-wA vuA-u@ f& l% @ ` ݂@ ` `rf@w 7\NeTf %  w,70DCB 5Ԕ @wBFN& fwNwJwFwNfw2m.* w.AuNe  %P_ @A @A 5uffP& % he ffP& ef&N Bew7@&P~@@Ap@@ J@ Ne@&  @~&Ne @& %@AP~w7@e 5Ax  @f=5 w7 &&d<%e0 %w7 A 5]Bwx7A7 wf7p}N  @  x= %d     U &  C ~CB5W-o0ʋW-x0 ʋ x5ʕX05-eW-da5+Z5V S v r@ r ! f e0 9e'5e= !A&ӋC~ @ AB 5wHBA 5u`u` u`ff` Hew5  @0   Wp ` e0eӕ?7DCB@ wmfw w w 7 F1.1DHRYSTONE PROGRAM, SOME STRINGDHRYSTONE PROGRAM, 1'ST STRINGDHRYSTONE PROGRAM, 2'ND STRINGDhrystone(%s) time for %ld passes = %ld This machine benchmarks at %ld dhrystones/second dox, f, e, g c sluJ rvh(null))+(((N  N @ ȕ N E& N @ @ EH @ N  N @ ȕ w7$8 e-H w7D w    *  n4 44  7D4  wv   - r  7ND E%B: 0#^@E<EE % @EE@E54 fe& J%% ) r %"E%E6- 7 F1.1DHRYSTONE PROGRAM, SOME STRINGDHRYSTONE PROGRAM, 1'ST STRINGDHRYSTONE PROGRAM, 2'ND STRINGDhrystone(%s) time for %ld passes = %ld This machine benchmarks at %ld dhrystones/second dox, f, e, g c sluJ rvh(null))+(((  %5!"BA  D & r&@rr @`   w & BAN   C 5 N & A-  A B A @ A-  A    wb 7l DC  ԋ@w< f BR7. DCԔw 7 5 uDC5 5 5  % _ @w e@-U +U U  #U 0U  `u5 U5  . >u5 u- rf5`5` @5e vu@t 5@me@ u%| | ^%|N ^% @m@e e U?xt.U?h_H a7V NP?HDU 7!@48e_7.DE -  w7C5  5N D-wA vuA-u@ f& % @ ` ݂@ ` `rf@w 7\NeTf :%  wu @  A ZU5Bw JU5   5 5  5     U &  C ~CB5W-o0ʋW-x0 ʋ x5ʕX05-eW-da5+Z5V S v r@ r ! f e0 9e'5e= !AӋC~ @ AB 5wHBA ,70DCB 5Ԕ @wBFN& fwNwJwFwNfw2m.*w.wmfww w 7 F1.1DHRYSTONE PROGRAM, SOME STRINGDHRYSTONE PROGRAM, 1'ST STRINGDHRYSTONE PROGRAM, 2'ND STRINGDhrystone(%s) time for %ld passes = %ld This machine benchmarks at %ld dhrystones/second jd@oTx f e g c s8lzu rh(null) *,t)t)5u`u` u`ff` Hew5  @0   Wp ` e0eӕ?7DCB@ N  @ ȕ N E& @ @ EH @ N  @ ȕ w7$ " e-H w7D w     4 44  7D4  wv   -  7ND E%Bd|)6*. 7 F1.1DHRYSTONE PROGRAM, SOME STRINGDHRYSTONE PROGRAM, 1'ST STRINGDHRYSTONE PROGRAM, 2'ND STRINGDhrystone(%s) time for %ld passes = %ld This machine benchmarks at %ld dhrystones/second jd@oTx f e g c s8lzu rh(null) *,t)t): 0#f^@E<EE % @EE@E54 fe& %% ) %"E%E%    -  D ~  wlD  @EE& @EE< 7*DD  f4 f  @   & %  w 7DE%wzEU4   -D f4 f ./usr/bin/kermit 775 2 2 410060 3505605375 7023 w"7 @e5@@m=w 7 @e5 @mH @ @mA Amp@ @mp<u AWp3Am AmI @ @-AWp3Am Am AWp3Am AmB Bmw< 7F uuu w 7 @@m@@m&  A %WZXeNf   w 7 u%wp 7v @e5ff % w8 7> C @   7 D* Wted)te   Atepf   @w% 4 7D f f-wVf 4@f@www705  .U7.U7 ..Ae vB5 7  7  %"55 a  a!_E -%. wnt ^de !e vu@t 5 r $ @\xZ" 0  6 >  67 % B7dwP{wH{76B{ *&{"{% x7 J    Β L ~ J 7w7% ww  Uf 7f ư%Nf ve%_Tf  f ve7 0q F 8 5ffe ư% f  ve 5fef >%  7f,.Ne  .   .   . 7 w|7 _6 z_| n ||P %7Lw2 7|E5 ,(@E7@E7w7  mw7 5  NAAm u- @@m@w7 wNf Pʖ%5Nf ve N ve@7@ 8w$fe Pʖ%7 +& 5EE5 f5@@mAEH u-@E@- @w J fe5 ve 5fef >%  7bf> ve7 B D&N  NGw %" 0 ff ve_ (T ͖%:T ͖%LT ͖%} veN vez ve_7j b wP T  J  > 0472 ( 2E:T ͖% d ^ w  f%5 0N 7w:T.  . N n 7 Nfr %5( 55EE5 5@@mAEH u-@E@-   n  . 7  dw .  . N n  ,5 n  . @EE@7| p , TT ͖%  w:7DNe 2u5 Ne 2u5 AWpuA-@w7 5uNe l=w7ʿ^T& ͖% ͖% 7  (T ͖%  wl7v N `5@@mp@@m w:  76>/f , 5 @5fe %& n f @ w wNef %& t%& n   ve  @ &fe j%& n Ne N @  j f @ ! 7 ں57 N l5w%$ 5fef Pʖ%NT& ͖%pT& ͖%w7 ~ wwdE PxMxwHxEx@xT& ͖%5% w ( @w7$  LwwE wUwEwEwwwpT& ͖%wȾ7Ҿ  w7 ^T& ͖%7fe Pʖ%w7Nf Pʖ%wl7v N `5f Pʖ%wF7P 5 @ @m , @ @mȋw7N , Pʖ%w7 7 D  . wȽ 7ν5 !fe 0 7  &w7 wpN 5%U E%U %EE UUE EE0U7%Ew]:T ͖% %  f%E f% B{  0  7 wpN 5%U  E~%U ~%E~E ~U~E ~E~E0~U~~7~%E~w]~LT ͖% %  f%E f% & %5 @%kvw| .  . N n fe& %5 n  . %%k7  $& w7NfV ve@ c^ veN  . * fd veN t <  ve F wwF%%f A 1@ f ve@  ̸@ 7Nf veN   w@B{  0 7 wx@ r y5 V@OKGC ? ; 7 3 /  7 K  , X   `  5 NQw %nw 7 w7  T ͖%  ̸ 7t  wT7^^ . w87B ,< . D  . "7  & . %  . N . N . w7   vew %f A 1@  ̸  &f %#  @ & ( @  ve@ 7N % wغ%  :@ %w@ %w@  @ 0 7 N %wn@  @  $ A @ E5%E= 7.N %w @ f 7N %wع@ f @  7@pu5 @@mH  %/@@m%  //7@hN 5//@e |fe @e57 wTtwwpwwlwfef % N t@5 >ww74@e5   =N 8_4N  ,Nf N `5`=Nef N m/ =Nf@& %Z=Nef N %M5@I f 51? -Nef  "Nef Ne ` HUNen F Ne >7(U%"U  D T> 5%;  % e uu N ` 5u@m%$Nu uueuwmu uw7 @ 5 *?w 7Ʈ 55w?    uu}* uu 7J0utwtuu "wuwtuw7 |J-t j%^d_!%^X:XPy X&%@7 :N -%A@wuuNf ve% 7l8@e55  @ A H w$N veu @@m/ N ve fe @@m0fe @ 5dfe veNfe ve 7lN &wR7\@u@ @=  =w7 j5  f ve@e5u //5 @e5 =u.X pXjXdXdX7 N _!%FXy xWHy nWjWpy `W\W0yw77 _ " -@e7޵ @5 5 - @5 @-@5 E5%@%_%?@A@x5u] nf #% "%  eYw YeYw YfNef  f vew|@u@ =X ~#. %}72  B5uN w 7 Bw7Ne  wĴ >7&o_N 0 0   0N h% , 0N h% ,N 0  ,5u@5@55 @ ȥ/u I@ ve ff ve fJff e BN 0  w  @ 5 7X X?X wb7l@  wN7X@ &  vew 7 r veq ve q 7q77 U U|Upy77 , qV 7qXUXUq qq7 ~qw->U8U ve UwVw-U5  @U`pyT veT(! veTTT0yT8)7 7  wʩ p Tp Pp5  NeMf 77_7  77 (5-m%wZ7df b%7mqmmO vemw7"|m xm ZqeTqf =Vm fV ve5pepum~ N D5@-5@ N \f %w7 55/ @wұ r5` @0  u  %5e|Ww vWevWw pW 8 @E% P @E7XX ZH9 veQI ve  w 77 7 o7 joR7 V7 V wV7VwV7V7VwVD7 > 7n7h7V \ w7 Ne & fR bRe  wBV77jU& &  qe w1   Ie M|ML 2  Ie wt7~e =@e p@e p@@xp@e p@# L @&@Y@he0p@~@0  wƞ7ОN `5 @eZ7% Z@ @e5 77 7@ @e7@ @@@x77@ @e 7~v n@ @#7R@ -@ @ A H .p  ve.   .w  ve 7@\7B77  .  ve7" 577LA@wyfefe ?%5-? yfefe ?%5 <5 5%  y E ^ǿyfefe ?%5 ;-*? yfefe ?%5 -%T%Q%N7, ;55 @pfx -n ;A1fx @mTe" ;A1fx Ne ;A1fx7&% %@%`%  VK %Y&%N7 @ @e7%%ϖ@ @7% %@ %`v%n 7b7 \ ~N 0w7ȜNyM  ve` X  vei a  ver j  ve{ s  ve |  ve   ve   vev   veV   veJ   ve4ε @ ;7Z>A1fx u@  ;A1fx @0fx  x gx B@w 8@= 7`6@w`4@w .@ fx  fxf @& qew 7 ?@ o s@Eŀ? e  m@Uw@EAWtE@xLz ?r {Lz 4 5$&  {"  xOe  {& &  qee4Sw .S,S&S L%&  {&  0Oe 6 & &  qe@w7 DJQ 7  & V F 2& d W  Ne RR e  Ne vRpR   Ne ^RXR   fNe wX7b 77Ne & f  0Ne R=-Q8QQ   Ne QQ   Me QQ   Me QQ!   Me   vew7V   ve > &    \Ee A Fb>_Z3 0bH H 0 IeI { H {  ve a& { 5 {  ve  wȚ76HdH   ve { 25u &  {#  veff4  { nDe  {&  qewGwG _^278h aw fE  ve`S K  ve `5a T  veNf   f w7dn hfe " V :Ne {  {fe   {#  ve fe)  ve { j3  w wQ7PwP7P7PwPNe X4 > >yMtF v9e 2 {Z F qeNe& &  qe1 4P.P&  qeeVPw PPNPHP 8I%&  {2  TLe & fe:  :Le *i7. .>  ve. X wO7OwO7OwO7Owjh4 >yLdX v9e.P X b  veNef F Nef  5n f  ve  feo s & &  qe&  fe "Ce  fe  ve _|37f        vew f  ve t p@e5 Pf FNfe  fe  ve (Ne 2 W Nefe  Nfe  fe  veNe   fe  ve& fe  Ae _4Nef qee~Ow xOvOpO `H%& .E  |Ke wj7t 0 , e "54 >yfD v9ew74 >  S Z v9e7 &  U = & `Z v9e&    Je NN   Je fN`N   rJe NNHN   VJe wH7R 4 > & B v9e 77Ne & f  Je M=-M8MM   Ie MM   Ie MM  f _47 wE7|E7tEwrE &  wl7v `^7 Z^  "  &  & &  qe 777Dw7   %hD { 6    ve& (   @e ) &  1 *  ve2 & &  qe7 P7Cwx77 D(3 . V]L]\ &wB7L@@m0N p N Xy x=& f =  @e w& f R  ?e 7ܕ  w.} u@"y5 ,@ _^B@e=" ve@"y5 @ _^B̿@e=,# ve@"y5 @ _^B@9- veSIN@e5 @e=F: veNLG veNZM ve=5 @@mAA"yH@ƾ@ @@mȭ_? }-@@m fe"y[ ve5 0@@mAp"y@@mog v  X B b_:G_F X x= D &J"y ! _\F  J_LGy .µµ  5 5 _\FN T> ̵_:G_Fy J$  | _\F n _\F 8   % T> |_:G_F ZX_\F `_:G_Fy <F~I>  \lI0 0_:G_F f_\F7\ ? `  ޴5B{W vej& &  _lLfeB{ % %wB{z ve ^5/fe@@m<@@m"_?@0"y u-@@m0Nfep veu- _?@ _6D x Ne"y B=wƀ7ЀN {f ư%@@mw7  xL{e j w|77 |7pG7pG7jG.wZ7d|TG?PG LG%|FG7/wv w.78 \u@=  w7%  Ni j wNeff :R%5& ve@& veuuu  "yf @& qe@_j?7D N 5 ve @w 6@E5N  ve7 %nnw 7rb 5T% veN,& ve &" 5 555 :63@E@-?%;u-7 ^D59- ve   @p"y 5  N`"y e5@0#yN"y: veNJ ve R} f_ N j R} D= @7rNeff :R%5N j NN R N 6 }@w~7~ 57V-5% 5N _7R}N R= mNR} ve@ _bP x@w\~ }R}@ȋ R=  ve N >5  N j  NN 25u%%N<% %5EAWtE@x5EA E@x5%oP?@5@AWt@P7` N h<5E?t@mEw07:5  >@E@55`@ @w75 5 A >E@A@xE5A@vCp  xx5uA vCBxEuA@vCp  xx5u@ 5@wF7P & Y v9e4 >w 7*Nf ؂ &Y v9e4 >w7 & ~N v9ewҏ7܏ 5    @ ve%! :"y  u-A 7`P5w`N5w H5A 7`65w`45w .5 wD7N 5t@m 5% $ xV   H     x7v ^nȺ ^CZ LGH  T>>vM6 TdM( wZy %θθȄy . & > 7  :7_\Fָ& > 7 LzP3"y ! Lzj3 _F_Fy .y  e@-Z:R:fx fx % qe  &:fx  wD7NN Xy9E v9e & &  qew7N Xy9@& v9ew܎7 Xy9`R v9ew7wHA r@}w7 T> Lw7 55 5   ve  T qeTw* "y  ve5  @"y5@ % %QN  ve5 N ve$.y x=7 62_\FLz2"y !  " " 2> _\FLz2"y !  "Lz 7 _F T>_FMz V7 _F=Nz( 7 _FTNz 7 _Fi {& &  qe_8G h |& &  qe _:G  _F}Nz 7 _F17XK% 7DKhNz` 7 7&K_F_lHNzB 7 _F_lH_lH6"y ! _:G_F  ~_\F T> ~_:G_F2 j|{4 j%_bP7{*?wl{  7h{ 579 )5% H5N _7`R}mVNR}:  veNJ G  ve@ 8 x }R}@ȋ@NK j N ^N _7 wz  l$ w T x5J$ F$O jNk j |{o j%7*z ( u  ve7 <%|(N `7@ 7 @7)Z(5% 5@m@@R}  T @E?  ( 8_~^88~8 _7 P?l8  R wfE T @E?. *88:848 _7 *%?5  wfE T @E? ?77 _?77 _7L_r[% %  %%%_]%|7" j 7 |77 ?r7 \w T B > -H7H7N_~^" j?4707 ,7%| :%|7 w T   t%" j?6 6%|6 6 " j?6 6%|6 6 6 veN   ve@ O x z@N j N ^7w T T5 @@}@w&y ,@ ## # jN j |{ j%N j 7x 756'5%N _ 5N   ve&   veN   vemNR}! ve@ _W x@wx JN _NefR}f Ye5 _V xR} ! j 7>&R}! 7 @_\%%% ?6|{" j%)  V wfE T @E?2 .ҿ % &6 "65 %|6_([ w T  " j_\7n 5 %|5 5 5   5 5?555@wn7n 7 ʾR}=     }  = tw2n7% AWpAmf _ AWpAmN X u- |{! j%_Vwm7m_b @_b@_b b_b b_b b_b|; b_b; b_b; b_b; b_b< b_be< b_b< b_bd b_b" Rb_b" Rb_b" Rb_b"# Rb_b<<JU Te5%@_b%@_b  5@_bN d_b b_b b_b<<nU Te5%@R%@K ~  5@=N b8< b32= b.= b)= b$> b &  5@N!_U7u$!! ve 75%# wdu@ R}" j  4$w T @5mbNR}! ve@  x$  R}"," j|{]" j%7t7$ 7"7"wt7t "5 "p| "  -p"+| 7r-Z"V"0| N" D" | :" -pw$t7.t""0| "|b" j Dws7tN _5%ws5 "NAWpAmf JNfAWp|> j  ) xh# wk__7k  5@N ޹ wJk 7Pk4  5@$5   @ @mȋ w@ @m& w | wj7j_d%,# Rb_d @_d@_d6# Rb_d> ޹ _d ? ޹Y? ޹ _dr?o? j _d@# Rb_d? ޹ @ ޹ _d@ ޹g@ ޹ _d@ j @ j A jIA ޹A ޹A ޹B ޹TB ޹ pB ޹B ޹%C ޹oC ޹ ^N[ Nu .N j N ^N _7 L' w T  6',' (' F 5_NN R= VeR}5* = R} >5 =  R}_O R}_O W- &} e}5 j N ^C _R} 7*_8O jN j N~eR}5* = R} >5 =  R}_O R}_O j 5 } } X A 5 u Amf >% G G @ @-NfAWpAmf >% 7@ = AWpAmANfAWpAmf >% } AWpAmA@5 7r5 5 5 99|u"g" ve9z"v" ve9"{" ve |" ve_~^ 55f95  8w $&E 5%w"r _,^ %\_~^%  " N%  % _\8 8   wfEC ޹C ޹ T D ޹ NAD ޹D ޹D ޹ @D ޹E ޹SE ޹E ޹E ޹ *E ޹F ޹SF ޹F ޹F ޹ |FF j%   x#wh_b7h_%\# RbT @N@C G bFFG bA|G b<G b7H b2jH b-H b(H b#  5@|ZIWI j%   x#w"h 7(h @ _pl xTJK j L j lNeԜHL xS%5] lf 5XO xS%5@_qNfO ve5@e5_do%"7 ~2fe ഖ% P < f2P ve_XoGP j@% OE%? SP j@e55)% w T  %% %} rw $`E X5% = Pw T  6 2@e5~P fP vePffC Le7А _qNePP xS%5_nEf Lq _qNePP xS%5_nfef % TL ̸:%wBNB{ 0$B{kL vevLuLpI Te5@ 5@wgwJ lNe LxL Me5LL veNfF (m%LLI Te5 5w0_eNe LL Me5fD |mLLVI Te5 V xLJNe l5_rf  7̘_eMLJ Te5_f >5@_fw_eMMJ Te5PPfD_p  5_nPPPHnPP xS%5_ncXNeQP xS%5_nSNeAQQ xS%5_nCQBQfU*Ne^QDQ xS%5_nT_oNeQ_Q xS%5_nQQfW Le7fw\@ _m  5_n|Q j 7V\Q jw2\@fQ veQQf@& Le7\RN `5  @ _dt xJQ N , @_f 5wT_e^_f"M j_ f?M>MI Te5_rf 5_fw _eIMHMI Te5_rf |5_f%W 7w_eoMNMdk Te5_f .5_fwj_ewMvMP J Te5_rf 5_fw\_eNeM|M xS%5_fN xL_e% MM"~ M"~XI Te5_rf " J r _j _,k _k _kN jO_eNe NM Me5 7w[@m%KQ 7 Q ,N ,@e7`%NQ 7 xf fQfe F5eNeQ J xJe>%N8Q 7 *Q eتe %NQ 7 Q e וe%NQ 7 Q e׀Q Q ,N @ Rf ff 0Rfe l4e Ne ,Ne `7`j_qY_qD f f 0Dev_q.(׷ $%N8R 7 @ _q9R ? :R_lrwm%N;R wffe |m%5_rf% w_rfw_rfNe 1NN Me5ffe (m%5_rf% w_rfw_rfNe bN4N Me5ffe |m%5_rf% wr_rfwf_rfNe NdN Me5ffe (m%5_rf% w_rfw_rfNe NN Me5ffe |m%5_rf% w_rfw_rfNe NN Me5ffe (m%5_rf% Fw<_rfw4_rf"~B{JON ,_qRfe F3e _`rFR_M%%=| ~f"~ ഖ% _0"~  %=\ @  H@\| jM x >M`7 ~ XL j\b\T Te5{\k\ veN ̃ & xFV L5_"~nv hva veVv  Nva ves4v &v__ 5_xv v__ aaxnU Te5%a_Ą _N ze_ NebaDa xS% _t  J25Kca t# ,5u@5@55 @ ȥ/u  kaff e  fnaff e B+ . 5 . 5 (5@-%N . N . t _ raqa:V Te5_  t wUf f "Tf /eN `5@@mȥ @@mN(Tf %.TN `5@@mȥ @@mf f f/Tf /N f f f9TN `5@@mȥ @@mNfBTf e_wN `5@@mȥ @@mf f ffITf r.e _wf f UT_x7ZT VV 77_zVV ve ކ%g` %rX%cP HV %s4 %r,%v$ W %v v  ~  F  |\ % \ < ~ n >M7 8~_ $~ $~wLK7VK ~ .B{ "} } X } d } \\ ve7~7 }  }77 }  }77 |}  r}& \\ e 77 P} N BwJ7J N `5e =Nf @@m wLJ7VJ} =Nf  5f  5 f  | |\ vegwI7I.@ -_ xZV p|%W %s %v%r%x  D, *7 " ,7    .    L  w(S"5@ z5 B _hyeV veȥ- 7R 5_~@a _~ xT TW x u hW ~W}W|WF Le7 W v W ڄ lW @W  75e7eȥ- W  Z  ] j L ] j wI@ 5_ :|)](]']L Le7&| 5_ Ne*] xS% N N ̸. Ni]V] V Te5%j] j k $5@@ = xNV R{]77 B{ _ 4{]_7,7 "{ {]_7B7 { {]_7X7 zN] j _ Ne(^^ xS%5 N 5 :5@_ NeF^)^ xS%5"~"N~H^ e"~_%@W %W % %7  X    F 4X VX> ves_{ zWX @kX e ȥ-X r,_{ _{_{ wP@X e %ȥ-X tL_{@X XeR P%JBȥ-X 0B{ &YB{  7Ԃ5Y/Y ve bB{ %_{@6Y e %ȥ-PY Ned^N^ xS%5Ne^ 5% L 5 *zi^_^^^F_: z^_n^^ xS%5%%y9%dF^ ~d"~ ഖ% ^ "~ jM"~y, ~| ഖ% ^ | jM("~ryrhy Zy_ >y_ |Ry(fe L _ xLZ{ >M nQ_:_ xS%5yR_ ve% Ne xL_x Y_ jNe xL_ x"~ "~xf_ xLz >M  p__ D5 l%w,_{]Y _{6_{._{&_{sY Ғ_{@}Y 6e0 .%( ȥ-Y 5e  x|T@7_{7 _{Y~zv7 _{Y _|7N 5N @wN7NNYw %& fY re  Lw\N7fN  N{Yw e& fZ ,e wN7(N|[ j%[ xLX 7J"~H?D <66 /*[ n [ n ["~ 0N%5%_%_Ne xL___BT Te5 __ __ V Te5%__Ą _N _ Ne`_ xS%5_N $_ `wp0`` 0N%5%_%_w1` ve 5_vdw Vw__ Hw>`_Ąz`]`U Te5%{`_ĄN m_ `7w7wNefe`` Ne5 %_`_ĄN"~ N`` ve?v pa` xS%5 _ NR 7L@7>n N  5N 7D@7n N  7m0N & mg e  go weNe & gf e 7m_R7:  N  7Xm.N   lg ve "gho veNe  #gf ve7lw<:7F:4  w&:70:< l'ig jlg j @e5B{gf %Ne ̸_Fg jl ll%dlblbB{ ^  nN n lN@&F %@F * %  l b 5 nF _֟ 0 0 A-%_@ O_6 _F E 5  K%_@ _֟ _L5  EA1F@ F  F %d@0F _֟@ _֟ xknF t _֟n *_XnF t oF t  oF t oF t oF t% @lB{g j%6l2l & & h j%/h jfh j lh j k ~ h rzhk   +5 (5a4 E\ . : E5 / ~k,N  |k%N & 7 dk E5-Fk ; b %h ̸7 : 6 f  ( yi j wN8 5 ,i ̸f $EN  jN & u5%f 57 ŀ w-f  djN &oF t 3oF t _֟_֟:oF t BoF t _֟MoF t UoF t _֟`oF t coF t hoF t _֟poF t xoF t _֟oF t oF t oF t G_* E5 &  50@ _ E5AB_*135 %   5_ބ@ < xVV _ ,s}a j%N{a j HvBv.a je\xVxa je:a j%_ a_ h5_&x_ R5_a ja eb e b ve?b be s_b j }b j rbb jb j rb_b_%b_ĄNefebb Ne5 %_ބb_Ą c_ĄN"~ D5_ބLc"~ " 1~_ Nc ̸"~ %77 &g Rj , 5 j E@w\77f7 >%  @A@xjNjf %>@w77 7 ŀ@-i@ ;5 N b w6@u@ 5@ r y6g7 tj , 4v xl7 \"jEj ,dJjNjTj 55    1 4      1 9%j ,B{ , h h7jZ %Z , Bj , e m o sYj , nhaj , Sc j  "~qc ve _ |c j _Ȅ7x? rB{c j% rcc j5 *AWp-qfk AWpNdkc j  m' o! s$c j #d) -c j ec cccc jd j Jqd jd j%f#d,d j  PJ1d j 4d j ppBd j Fd jpLd j ppXd j%ppd j%pzpd j%`pp&p&d jeFpdp&lp&d je8p+e j % w4  74 n .  . w474H5 6g m j_\=m 8g g_m@e5B{mf %Ne ̸_\fbB{ % f 5LkfN `5uou@5Hn }@5l NXfB{m jjOe j \p_eje jse j Bpee je j (pee je j pee jee j e je j o e j e je j oRf j f jf j ~o'f j *f j/f j Zo@f j Cf jHf jw|<7<@ , xVNeffKf 0N%5&@wB%3 3s  Ksp$x ap e p2Z   q . 5 b_u 7 4 > u5r nȥ-  rb X Tȥ-N . Mq j& pqcq e _u  b 2 N . 4q j& LqAq ~e _7x& _N@@@xqq_X@uq %w.&78& @e5wff –% w%7& @55@e5Neff –%=w& f e  w  r+Հw^f/7^D 5 u0 u"Wp C0` u+  xr u  w 7DCB 5 Ԕ @w7D E%    -  D  L H x%?`@u@& ff Ժe5B ` $x  @  ʃ` @ x%w 5$xN `5%fw~xqw& fwhwdw`|qw% fwJqw%7X%Dq & w,%76%N  w%7 % @Ȁ 5uNe 5w/%J %K @ tp@ tpf b f b  "  @%  @%eu Ne 5 @w6$7@$DC%: r mne`m e rfw#7#Q@f& e5uQ@Nf& Pʖ%@f "rw 7zD  tLt!%  A~wtep$x WteTte ep$x F @ 4 wf@7 X 6r&r 7D> w7 .( 7 w7D̥:̥  ̥̋  ̋wN7X 8r&r 7ξ w*¾ x7*N4 ഖ%*7 7 ̥: fe& %5u `:& %@- w j`o j 0`  _`7-  wj-7t-7 5 %,@0 p-u~r_n hd5 r yo@ _x@ _x@ _x@_x@?_x@~_x@'_x@"_x@_x_|@0 wb,  ! & ( *@u_|@E5pu"@t XTE@P5Fu @t .*E@P5@pT  ! &@ E f& be5u eeQu  < ff v ew< ff eC r<w r< A@epe@ f&  ew .FnmQn 5u  r m 5 'u $ r mF r mn 5`u`u D7 r nL  q  0!q. 77 w"7"qԔAA WpCeqԔԔԔ BeWpCeqԔԔԔ& H ed& H e _ $_ %_̠ &_ 'u% E7pu XWp ŸE`wF@n d_>7+: 5 `5%e5`f fo e  &  po e w*55 @@m0 % .  Ov n J5 @@mAAmp @ @- EAAm1Ne `%*@@m *fe n Nfe >%  77  n . & d& H ed& H @%d 20e@ ed& H wP!7Z!D % A r  r e0@ԕ A r e0@w!7! r BY̋W̋ ~̥- 5  ̥9 Wp @@`e̥0  < Wp< @ f& e7jwh̋ 7Z X̋ ~w> 7H C  %5!"BA  D & r&@rr @`   w& BAN   C 5 N & A-  A w7DC5 = %$ wpu u+  x:r  %0 xXuue uee5 %%0u xXeue uee 5 e*f ff e 5u uuuee5  = A@_$A@  _$7C  5!BAf  r@rr ` 1$x7 w- w efwww fwʶwƶww 7B D ԋw f%A%Z%a%ze7 LN F pNef 0 f@E% _ w Wfe& %%:  u-w Ne n Ne N u-@E%  u- 0w  & & e  0 7 DCԔw f@wTwPw Lww< f@  wBA  C 5 A- A B A @ A-  A    w2f@wιwʹ@rw7DC  ԋ@wfwwFrwZ7Lr- `rN `f Pʖ%Zr Pʖ% `& Pʖ%]r Pʖ%wZ7dDCB ԋ   w.@fw f*wBJ 7 @e5Nff –%@ w7 Ew0w,&ww fwww,ww f@w4ww fww޴8ww 74 DCԋ Ԕw 7 5 uDC5 5 5  % _^ @w e@-U +U U  #U 0U  `u5 U5  . >u5 u-u @  A ZU5>wBw JU5   5 5  % -  Dw   wpe 5$x w x%`8@& f Ժe5` $x  @ w ` ּ Dмw x%7DCB  w 7B A@ C@ppC`pwt7~D  NDw @ e-  $x&& %4 E %  4 w 5     U &  C ~CB5W-o0ʋW-x0 ʋ x5ʕX05-eW-da5+Z5V S v r@ r ! f e0 9e'5e= !ApwӋC~ @ AB 5wHBA 5u`u` u`ff` Hew5  @0   Wp ` e0eӕ?7DCB@ P 7AB@7 7> wŀI#EEFNuwL7T 5 fvvv e  .  . Ne (5@-% .  . %@w@fw@e7wwf@fw7 fAW @wƹ fJ1J75 eww 5w7|7x7t7p7l7h7d7`7\7X7T7P7L7H7D7@7<7874707,7(7$7 777 N  T @ ȕ N E& T @ @ EH @ N  T @ ȕ w7$w e-w7D w   0  t4 44  7D4  wv   - x 7ND E%B: 0#$x^@E<EE % @EE@E54 fe& Pʖ%% ) x%"E%  % %`a A@w ̥: fe& %5u `:& %@-  % %`a A@w2r7 7 7 v̥, ̋̋7d67DCu F  $%u-; w~ , f Ժe5B`` $x  @    =@7DC T w 7D  & & e4  077 777f&刽 & J fw }7`D  & p w. 72DC ԥ==̋ wf BR7 Bff %w7D ff %w7D _ __ r) w_ U"@+ @ a U  f –%5'4 t  r4a & f e  w 4E%    -  D  wlD x  @EE& T @EE< 7*DD  $x4 $x  @   & Pʖ%  w 7DE%wzEU4  -D $x4 $x  @   7 D* WteTte   A~wtep$x  F @w%..Warning, read access to lock directory denied /look4lkls -l (You may type "! rm %s" to remove this file) Warning, write access to lock directory denied Unsupported line speed - %d Current speed not changed flush failedttolttol failedCan't send BREAK 18?DIMQ         Unix file support, 4C(028) 18 Jun 85 AT&T System III/System Vls -l rm -f cat pwd df df who zopeni fp invoking zxcmdTerminal input not allowedzopeni: attempts input from unred r4 7D $x $x-wVf 4@f@wwxww705 (U7U7Ae vB5 7 7  %"55 a  a!_<E -% wn ve !e vu@t 5 r $ rf5`5`&& @5e vu@t 5@me@ u%| | %|N %irected stdinr zopenizopeni zopeno fp[]=stdoutwzopeno can't open fp[n] chkfn: file number out of range?File number out of range - %d zchki stat failszchki skipping:zchki stat ok: access failed: access ok: length i./zchko access failed:zchko access ok:zltor name2HOMEHOME/bin/sh/dev/nulltrouble duping stdout in routine zxcmd trouble duping stderr in routine zxcmd zxcmd...-crzxpandznext~%dmalloc fails in splitpath()././C-Kermit functions, 4C(041)+1 25 Jun Η@m@e e U?U?z_ʀ a7h `b?ZVU 7!RFJe_&7.D(E -w7C5 t 5N rD-wA vuA-u@ f& r͖% @ ` ݂@ ` `f@w 7\NeTf ͖%  w,70DCB 5Ԕ @wBFN& fwwwNxwNfwvmrnVx 85putfil zchout write error, setting czseengetpkt, entering with next tgetpkt exact fitgetpkt leftover osizegetpkt eof/eotcanned: cxseen czseenTransaction beginsTransaction beginssinit: sndsrcToo many filesFile not foundFile not foundNo readable file to sendNo readable file to sendstdinSending fromsinit: nfils filnam cmdstrReceiving asFailure to openCan't open file *** Discarding end of file file characters communication line in communication line w.bwm\fwLVxw w> 7t FrZZ &~ ##C-Kermit, 4C(053)+1 21 Jun 85C-Kermit Server Commands Supported: GET filespec REMOTE CWD [directory] REMOTE SPACE [directory] SEND filespec REMOTE DIRECTORY [filespec] REMOTE HOST command FINISH REMOTE DELETE filespec REMOTE WHO [user] REMOTE HELP REMOTE TYPE filespec BYE C-Kermit server starting. Return out End of transaction files total file characters communication line in communication line out sfile pktnamSending assxpackSending from:D *** interrupted, sending discard request end of file file characters communication line in communication line out End of transaction files total file characters communication line in communication line out spar: data spsiz timint npad padch eol ctlq ebq ebqflg chklen rptq to your local machine by typing its escape sequence for closing the connection, and issue further commands from there. To shut down the C-Kermit server, issue the FINISH or BYE command and then reconnect. Unix tty I/O, 4C(029)+1, 26 Jun 85 AT&T System III/System V/dev/ttyttopen/dev/tty Same as CTTNAM ttyname(0) ttyname ctermid ttynameExclusive access to %s denied Access denied by lockttopen, ttyfd lcl lock file/usr/spool/uucpLCK rptflggnfile: czseenTransaction cancelledgnfile: cmlist filnamgnfile cmlist: nfilsgnfile znext: filnamgnfile skipping:not sent, reasonopeni sndsrc file number ok zopeni okCan't open filecould not be opened openi failedopeno: name open cancelledopeno: xname exists, new name openo failedFailure to openopeno ok, name2DiscardedDiscardedClosedhelp textChanged directory toFailed to change directory tosyscmdsyscmd zopeni oksyscmd zopeni failedV:|::BBzCTimed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%%%%%%%%%%%%%%%%"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%y files match - %s %s Input file specification %s ?No files match - %s ?Too many file match - %s , one of the following: %s%scmfld: getwd x%s Please complete this field %s %s%scmtxt, cmflgscmtxt: getwd x%s Text string %s %s%s ?Unexpected return code from getwd() - %d cmkey: table length cmflgs zzcmkey: getwd ?Ambiguous - %s ?Invalid - %s %s cmkey: defaultcmkey: esc ?Invalid - %s %s cmkey: addbuf %s %s%s ?Invalid One of the following: %s, one of the folloout.User typed ^Crpack: inlinrpack: inlin ok, recpktentering rpack with irpack starting at i pkt lenrpack: nrpack: typerpack: bctu pbl data length packet chk chk[j] chk array, jrpack: chk should be xchk[0]= xchk[1]= bct2's don't compare xchk[0]= xchk[1]= xchk[2]= bct3's don't compareinchr ttinc after parityinlin: speed maxtinlin inchrinlin timeoutsFFFFF GG>GTGGGGH8HtHzHHHHH II:IIIIIII J>JJJJJKK>K%%%%%%%   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Wart Version 1A(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%003) 27 May 85C-Kermit Protocol Module 4C(026), 12 Jun 85User cancelled transactionCan't do system commandUnimplemented server functionCan't change directoryCan't list directoryCan't remove fileCan't send helpCan't type fileCan't check spaceCan't do who commandUnimplemented generic server functionCan't open fileXZCan't execute commandCan't open fileCan't open fileSorry, you must 'set speed' firstproto ttopen localCan't open lineproto ttopen localCan't condition lineEntering serve%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%%%%%%%%%%%%%%%%!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%r mode on C-Kermit server done6N[.ObP.O.O'.Communication line speed for external tty line specified in most recent'set line' command. Any of the common baud rates: 0, 110, 150, 300, 600, 1200, 1800, 2400, 4800, 9600.Specify parameters for inbound packets:End-Of-Packet (ASCII value), Packet-Length (94 or less),Padding (amount, 94 or less), Pad-Character (ASCII value),Start-Of-Packet (ASCII value), andmmandDelete a local file or filesDial a number using modem autodialerDisplay a directory of local filesDisplay the rest of the command on the terminal, useful in command files.Exit from the Kermit program, closing any open logs.Tell the remote Kermit server to shut down without logging out.Remote commandParameterIssue a command to the Unix shell (space required after '!')Display current values of 'set' parameters; 'show version' will display program version information for each of the C-Kermit m Timeout (94 seconds or less),all specified as decimal numbers.Specify parameters for outbound packets:End-Of-Packet (ASCII value), Packet-Length (94 or less),Padding (amount, 94 or less), Pad-Character (ASCII value),Start-Of-Packet (ASCII value), and Timeout (94 seconds or less),all specified as decimal numbers.%sNot available yet - %s Ask remote Kermit server to change its working directory.Ask remote Kermit server to delete the named file(s).Ask remote Kermit server to provide directory listinodules.Display disk usage in current device, directoryDisplay statistics about most recent file transferTake Kermit commands from the named file. Kermit command files may themselves contain 'take' commands, up to a reasonable depth of nesting.Not available yet - %s Number of seconds to wait before sending first packet after 'send' command.During 'connect': 'full' means remote host echoes, 'half' means this programdoes its own echoing.%sDecimal ASCII value for escape character during 'connect', norg of the named file(s).Ask remote Kermit server to tell you what services it provides.Send a command to the remote system in its own command language through the remote Kermit server.Ask the remote Kermit server to tell you about its disk space.Ask the remote Kermit server to type the named file(s) on your screen.Ask the remote Kermit server to list who's logged in, or to give information about the specified user.%snot working yet - %s KKKK KKK K%K-K;Ke 'help set ?' to see what's available. Type of packet block check to be used for error detection, 1, 2, or 3. Type 1 is standard, and catches most errors. Types 2 and 3 specify more rigorous checking at the cost of higher overhead. Not all Kermit programs support types 2 and 3. set file: names, type, warning, display. 'names' are normally 'converted', which means file names are converted to 'common form' during transmission; 'literal' means use filenames literally (useful between like systems)mally 28 (Control-\) Type of flow control to be used. Choices are 'xon/xoff' and 'none'.normally xon/xoff.Decimal ASCII value for character to use for half duplex line turnaroundhandshake. Normally, handshaking is not done.Device name of communication line to use. Normally %s. If you set the line to other than %s, then Kermit will be in 'local' mode; 'set line' will reset Kermit to remote mode. If the line has a modem, and if the modem-dialer is set to direct, thiscommand causes waiting for a ca. 'type' is normally 'text', in which conversion is done between Unix newlines and CRLF line delimiters; 'binary' means to do no conversion. Use 'binary' for executable programs or binary data. 'warning' is 'on' or 'off', normally off. When off, incoming files will overwrite existing files of the same name. When on, new names will be given to incoming files whose names are the same as existing files. 'display' is normally 'on', causing file transfer progress to be displayed on your screen when rrier detect (e.g. on a hayes type modem).This can be used to wait for incoming calls.To use the modem to dial out, first set modem-dialer (e.g., to hayes), thenset line, next issue the dial command, and finally connect.Type of modem for dialing remote connections. Needed to indicate modem canbe commanded to dial without 'carrier detect' from modem. Many recentlymanufactured modems use 'hayes' protocol. Type 'set modem ?' to see whattypes of modems are supported by this program.Parity to use duriralbinarytextevenmarknoneoddspaceoffon...Use 'set send' or 'set receive' instead. Type 'help set send' or 'help set receive' for more info. Device nameSorry, can't open lineset line 1Number of seconds before starting to send5XYDELA: yfullDecimal ASCII code for escape characterFile parameterhow to handle filenamesconvertedtype of filetext?unexpected file parameter xon/xoffnonetype of modem, direct means nonedirectnoneProgram's command promptC-Kermit>Parameter for inb[[ [([/[6[ >[C[I[Y[a[e[l[v[{[[[[[[[[[[,0L H\*VDZFhʋTz4Vfvȑ֑JUser Interface 4C(048)+, 26 Jun 85xargvaction-l and -b required-a without -s, -r, or -gunredirected -k can only be used in local modeconflicting actionsconflicting actionsconflicting actionsconflicting actionsconflictiound packetsParameter for outbound packetsDecimal ASCII code for packet terminator0Maximum number of characters in a packet90Decimal ASCII code for packet-start character1How many padding characters for inbound packets0Decimal ASCII code for inbound pad character0Interpacket timeout interval5 Speed setting can only be done on an external line You must 'set line' before issuing this command Baud rate for %s?Unsupported line speed - %d %s: %d baud Not working yet - %s onsetnum ?Sorryng actionsinvalid argument bundling after -s-missing filename for -s-s: too many -'sinvalid mixture of filenames and '-' in -ssending from terminal not allowedconflicting actionsinvalid argument bundling after -gmissing filename for -ginvalid argument bundling after -amissing name in -ainvalid argument bundling after -lcommunication line device name missing/dev/ttylocalinvalid argument bundlingmissing baudunsupported baud ratedebug.loginvalid argument bundlingmissing parityinvalid pa, 94 is the maximum ?Not in ASCII control range - %d Remote directory nameXZCWD: take file ends prematurely in 'remote cwd' pswd from take file Password: ? Password of remote directory Password: passwordName of remote file(s) to deleteRemote directory or file specificationCommand for remote systemRemote file(s) to print on remote printerConfirm, or remote directory nameRemote file specificationRemote user name, or carriage returnnot working yet - %s ?File specificationrityinvalid argument, type 'kermit -h' for help Fatal: %s Fatal: %s - %s Error -!byeccloseconnectcwddialdirectoryechoexitfinishgethelplogquitrreceiveremotesscriptsendserversetshowspacestatisticstakebaudblock-checkdelayduplexend-of-packetescape-characterfileflow-controlhandshakelinemodem-dialerpacket-lengthpad-characterpaddingparitypromptreceivesendspeedstart-of-packettimeoutcwddeletedirectoryhelphostspacetypewhodebuggingpacketssessiontransac required rfilop=> , Size: %ld [OK] [discarded] [interrupted]Skipping *** screen() called with bad status ***%s: %ld%s: %ld*** screen() called with bad object ***Type escape (%s) followed by:CTRL-F to cancel file, CTRL-R to resend current packetCTRL-B to cancel batch, CTRL-A for status report: conchk^A Status report: file type: binarytext file number characters block check compression 8th-bit prefixing^B - Cancelling Batch ^F - Cancelling File ^R - Resending tionsparametersversions%s,%s Type ? for help C-Kermit> /.kermrcrinit file.kermrcrinit fileno init fileterminal interrupt... Command too long for internal bufferCommandtop-level cmkeyKermit command error in background executionKermit command error: take file terminated.Debug Log ClosedTransaction Log Closedsetgen You have to 'set line' first Name of local directory, or carriage returnWhich log to close?You must tell which log ?Debugging log wasn't open ?Packet log wasnIKWK_KoKwK|KKK KK KKKKKKKKeKmKKoKsKKgg hngTffffegDgpl hZhplplpleepleeehpl"iplplplpliplehLiLillmoop0pqqqqqqRpqqvpqppxrrrrqqFrhr ssVsssssttBtvw&w>wXwfwtwwwwxRxxxxx123fullhalfdisplaynamestypewarningend-of-packetpacket-lengthpad-characterpaddingstart-of-packettimeoutnonexon/xoffbellcresclfnonexoffxonconvertedlite [Ignored] %s%s%c =%d [%s] [%s]=%d %s=%d %s[%s] %s[%s]=%d ?Invalid format for debug() - %d %s %ld %s %ld [%s] [%s] %ld %s: %ld %s %s %s %s: %ld ?Invalid format for tlog() - %ld V~~~~~~~~~~~~~~~|}|>~~${n|| ~~f{(}~|~J~4~P{|{~~~*~{Z ZZZZZ"Z('Z1Z 6Z ;Z BZ FZKZOZTZVZ^ZeZgZ)nZsZzZ~Z Z!Z"Z$ZZZZZZZZ Z ZZ't open ?Session log wasn't open ?Transaction log wasn't open ?Unexpected log designator - %ld Number to be dialedDirectory/file specification.%s %sMaterial to be echoed%s You have to 'set line' first You have to 'set line' first Name of remote file(s), or carriage returntake file ends prematurely in 'get'take file ends prematurely in 'get' Remote file specification: Name of remote file(s) cmtxt(cancelled) Local name to store it under: Local file name(cancelled) C-Kermit comur escape character is not ASCII - %d Sorry, can't open %sConnecting thru %s, speed %d. The escape character is %s (%d). Type the escape character followed by C to get back, or followed by ? to see other options. (Session logged to %s.) Sorry, can't condition console terminal Sorry, Can't condition communication line Can't send character[Back at Local System] Can't get character C to close the connection, or: B to send a BREAK H to hang up the phone S for status 0 to semandhelpWhat to log?You must specify what is to be logged Text of login scriptName under which to store the file, or CRcmofi cmarg2 You have to 'set line' first Remote Kermit server command?You must specify a command for the remote server File(s) to send?A file specification is required Send: wildName to send it withSending: as:Parameter?You must specify a parameter to set Unix shell command to execute/bin/sh-i-cparameters Versions: %s %s %s %s %s %s for%s %s fornd a null ? for help escape character twice to send the escape character. Command> CTRL-%c'%c' Connected thru , speed %d, evenoddspacemark parity, logging to kkkklll l lllllllllll!l$l&l'l(l)l -l/l2l4l7l9l#>l@lDlElFlGl2QlRl,UlWlZl\l#`lcl2flhlklmlqlrlsltlulvlzl|lllllll,llllrjjjjjjjjk&k:kllllllllll m m %s %s %s %s Nothing to show... Most recent transaction -- files: %ld total file characters : %ld communication line in : %ld communication line out : %ld block check type used : %d compression : yes no 8th bit prefixing : yes no ?Take files nested too deeply C-Kermit command file?A file specification is required ?Wildcards not allowed in command file name rtakeCan't open command file - %s Failure to openNot available - %s Line: %s, speed: %d, mode:PdjšX֟4b֞֟bDial Command, V2.0(007) 28 Jun 85BbPpTt XYR D '%s' =%s=%s#=W%s!% $D :T%s ,AT AT DT %s >k :%s Kk *D ?%s %s ,ATS2=01 OK ATTD%s % $cermetekdf03-acdf100-seriesdf200-seriesdirectgendatacommhayespenrilracalvadicunknownusrobotics-212aventelSorry, you must 'set modem' first Sorry, you must 'set line' first Sorry, you must 'set speed' first Sorry, can't open %sDialing thru %s, speed %d localremote, modem-dialer: %s Parity: evenoddmarkspacenoneinvalid - %d, duplex: half, full, flow: xon/xoffnone%d, handshake: %d none Delay: %d Send timeout: %d, receive timeout: %d Send padding: %d, pad character: %d Receive padding: %d pad character: %d Send Packet start: %d, end: %d, length: %d Receive Packet start: %d, end: %d, length: %d Block check: %d File parameters: Names: converted literal Type: binary text Warning: on off Displ, number %s. The timeout for completing the call is %d seconds. Type the interrupt character to abort the dialing. Sorry, Can't hang up tty line Sorry, Can't condition communication line No connection made within the allotted time. Dialing interrupted. Failed (""). Cannot initialize modem. No ConnectionAU 1 AttachedBusyDisconnectedErrorNo answerNo dial toneSpeed:ON LINENO CONNECTCONNECTNO CARRIEROKBUSYNO RINGON LINEFAILED CALLONLINE!BUSYDEAD PHONECall completed. ay: off on Init File: %s.kermrc Logs: Debugging: %snone Packets: %snone Session: %snone Transactions: %snone Name of debugging log filedebug.logName of packet log filepacket.logName of session log filesession.logName of transaction log filetransact.log ?Unexpected log designator - %d Transaction Log:Debug Log :gBiciyiiiiij.\Connect Command for Unix, V4C(012)+2 27 Jun 85Sorry, you must 'set line' first Sorry, you must 'set speed' first Yoo6СScript Command, V2.0(006)+1 26 Jun 85expecting sequencegot it (null sequence)received sequence: returning with got-it codesending sequence EOTBREAKSorry, you must 'set line' first Sorry, you must 'set speed' first Sorry, can't open %sExecuting script thru %s, speed %d. The logon string is: %s Logon command string: Sorry, Can't condition communication line Logged on! Logged on!Sorry, logon failed Logon failed^%c%c +/dev/ttyPFqqcal_ttyfd_escchr&_kerld_ttold(_ttraw:_tttvtL_ccold^_ccrawp_cccbrk_flfnam_hasLock_inbufc_ungotn_conesc_ttnmsv~ttopenttnamelclmodemxcnameL8L20003L7L10000L10001L9L20004L10L11TL12L13rL14L16L17 L10002L10003L18,L20002HL205L100046L10005:\ L181L180~ttocb cL185t L184p ~ttinl destmaxtimoeol xycL189 L188 L20030 L193 L194 L192 L196 L197 L198< L202r L203T L201 ~ttinc timonchL208 L207 L20032 L210 L211 L212 ~ttsndb& xspdL216D L200334 L215Z L200M:/ESTEDTDay Mon 00 00:00:00 1900 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecTZ%/etc/passwdrrVZRAUnknown error: rrrrrss4sFsXshs{sssssssss tt*t;tOtctttttttttttu+u>uZusuuuuuu-Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo child processesNo more processesNot enough spacePermission deniedL21>L22_ttlockL23L24GL25fL27L29L28}L31L30L32~ttclos8L36HL20005BL37RL38\_ttunlck~tthangpttc_saveL42L20009|L41L20007L44~ttresL49L20010 L48(_xxlast,~xxlast,sciL56bL57@L54^L53Z_look4lkl~look4lklttnamedevicedevnameBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesNot a typewriterText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument out of domainResult too largeNo message of desired typeIdentifier removedChannel number out of rangeLevel 2 not synchronizedLevel 3 haltedLevel 3 resetLink number out of rangeProtocolockfilL63lockdirL10006L10007L64L65L66L20016L62L67L68L69vlckcmdL70L71pL72L73L74!~ttlockttyfdlck_fill4lpid_bufL78L20020L77L20018~ttunlckL83~ttpktspeedflowsL88(L20021 L87$L89BL90NL91\L92jL93L95l driver not attachedNo CSI structure availableLevel 2 halted ((((( H /bin/shsh-c;0 !/dev/dox2f2e2gcsluPr|h(null)dd ~ttvtspeedflowsL100(L20022 L99$L101BL102NL103\L104jL105L107L10009L10011L125~ttsspd speedsspdokL112 L20025L111L1158L113L20024>L116DL117LL118TL119\L120dL121lL122tL123|L124L126QL127n~ttfluiL132 L131 L133* L134"xl6crt0.oexitckcmai.o>L1rL2L3L4L5~main>argcargvL9L11L12L13L14L20001ckutio.oL1L2L3_brnulsL4_sjbuf_jjbuf_lkf_conif_cgmf_xlo~timerh. ~esctrpD ~conint` fL143 L144 L145 ~connoi L148 ~myread L152inbuf_itL153inbufreaditL1546 L155| L156F L20028l L158f L151b ~myunrd ch~ttchk xnL10013 L10014 ~ttxin nbufxL170 L171 L173 ~ttol snxL177 L176 L178L17906^~zsouttnsL61L60~zsoutlnsL65L64L66~zsoutxnsxL70L69~zchout&ncL74bL73^L20013>L10007L10008L76L10010L80 ~chkfnnL91L93$L92L94%L79L20015~zchki2namebufxyL98endcurfddir_entrdirbufstatbufL253L2524L254L256L20041eos~addresu8strlL262L263ZL264hL20042`L261~iswildstrcL269L270L10022L268~matchpatternstringpsavessaveL279,L280L277L274L20045L283:L285L287Tckcfns.oXL1_memptr,_cmdL99EL20016lL97L20018rL100L101VL102fL103L104uL20020L10014L100130L106~zchko6nameixsspL110RL20022NL112tL20023lL109pL114L113L117L118L116L121L120L122L123L124L125L126L128~zdelet6name~zrtolFnamename2L137str._sndsrc_memstr_t_next~encstrXsmp~encodeaa7b8L8> L9L7!L20005& L12 L13L16t L10000 L17 L18 L19 L20 ~decode !buffnaa7b8L24 "L20007!L26D!L28h!L30!L10002!L10001!L32!L37"L38!L35"L23!35: L218~msleep^ mt1t2tarrayt3L223 L20036| L221 ~ztime sclock_st~congm ~concbescxL236&L237v~conbin~escL241~conresL245L244~conocc~conxoxs~conol,slen~conolaRsiL260rL261^~conollsL266~conchktL138LL10016dL10017h~zltornamename2workcpppdcL143L146L147L149L144L159L160L151DL20024>L200258L157h~zchdirpdirnamhdL164L165L166L10018L163~zhomeL170~zxcmdcomandpipesL174L20027L173L175shpathshnameshptrpL176xnL270L269~coninctimonchL274(L275L20042L273L20040 L276"L20041L277RL278nckufio.oL1L2L31L48L5?L6DL7IL8ML9Q_pid_fcount_mtchs_mtchptr~zkself~zopeninnameL16VL18cL17^L19RL20007L15NL20001L21defShelL177L179$L180L181BL182L10020`L183hL184rL185L20029L189IL188@L190JL191M~zclosf wstatL195$L194:~zxpand>fnL200`L201O~znextfnL205L206L207V~znewnfnsL211bufbpxplenndtmaxL212L20031dL20003L24tL26L25L20005:L20006JL27L28L29L30~zopenonnameL34L35L20010L33L10002L38L37L20009 L39L40NL41L42|L45L44~zclosenL49L48L50L51L52~zchinncaL56*L20011"L55&L10005JL100L214L215pL20033>L219\_sspaceT_freeptr$_resptr&_remlen(_numfnd*~splitpapheadcurprviL224L20036L20038L226L227`L228L229L232L233L2312L236PL235XL20035F~fgenbpatresarrylenheadscratchsptrL242L20039L244|L247L248~traversplsofar&L127L&L128L130L132h&L136&L137L138&L139L140L142 L141L143 L144 L145'~sipkt>'x~rcvfilp'xL152'L153 L154'L156Z(L157" L158(L159& L1606 ~reof(L164(L10010(L10011(L10012(L165(L167V L166F L200274)L170d L169W L172 L171e L174 L173 L176 L337n L336f L338P4L339o L341s L342 L343 ~openo4namename2xnamexpL3474L348 L3464L100374L352 L351 L200474L349 L3535L20044&5L355 L3565L10038\5L358 L3595L360 L361 L363 ~opent6L367 ~clsif,6L371<6L372D6L10039P6L373^6L374 L20050h6L376 ~clsof6L100406L380L175 ~reot@)tpL180 L179)L10013)L183 L182 L185 L184 L187 L186 L189! L188 ~sfile)pktnamL193*L194" L195B*L1962*L20028@*L198# L199) L200*L192~*L2016+L2021 L2032 L204: ~sxpackt+L208> L209E ~sdata.,lenL10014@,L213D,L212,~seof,L10015,L218,L219S L221 L2206L3816L383 L382 L385( L384 L386) L200537L3891 L388* L3902 ~sndhlp 7L3943 ~cwdV7vdirL3987L399= L3977L401R ~syscmd7prefixsuffixcpL100417L4057L4047L4087L4097L4117L413p L414h8L415w L417 ckcfn2.o8~input8lennumtypenumtryL48L200048L200008L38U L20032D-L223 L225 L224 L227 L226 L229 L228 L231 L230 ~seotP-tpL235 L236 L234 .L10016-L239 L238 L241 L240 L2431 L242 L245L L2442 ~rpar$.dataL10017.L249.L250.~spar.datalenxL10018.L10019.L254 /L10020&/L10021*/L255@/L257/L258/L10022/L100L68L9T9L108L129L13 L7P9L10001 L32V:L33|:L34:~spackv9typenumlendat ijL229L239L274:L28:L30t:L20010^:L37:L20021:L38:L40n;~dopar;chabL44;L20022;L43;L20024;L50;L512<~chk1BMdL26HM~stripqjMstL31ML20001rML33ML36ML37M~cmnumMxhlpxdefradixn xsL42ML43iL41ML45L44L20002*NL20004NL49~cmofi0NxhlpxdefxpxsL53DNL54L55L56NL20012NL20006fNL197L196L198DL20046DL199DL201L200 ~inlinDijkmaxteL10011DL10012DL206%L205L208,L207&L10013 EL10014$EL209EL210GL24TGL27GL30GL33GL34HL358HL40tHL42zHL45HL49HL53HL55HL57 IL61IL65:IL70IL74IL76IL79IL85IL86IL89 JL96>JL97JJL106JL108JL116KL119KL122>K~wartTFcactnoL6\FL12FL20000FnPL100RPL101L20021L90>L83P>~errpktT>reasonL95 ~scmd>tdat~srinit>~nxtpkt>num~sigint?L108 L10010 L166BL173BL182zC~rpaL5:GL20005FL20025FL22L200018GL20027LGL25vGL26GL20034~GL28GL36L39L20029lHL41L44=L48TL52iL54{L56|L60}L64L10000NIL10001RIL10002bIL66L20003jIL69L73L75L80IL20031IL82L90"JL91L20032JL20036JL94L92,JxsL98nJL99L100xdefxpxxcL1469 L147jRL148vRL149|RL151: L153J L152G L161RL162RL145SL20044RL166K L10011:SL169VSL170O L171dSL172k L173o L10018L193jTL207TL194$TL195^TL197rTL201T~cmtxtxSxhlpxdefxpxL177xcL179 L178u L180SL181SL182 L184S\L20086\L10045]L360]L361,]L362"L363&]L364P]L10046B]L10047L]L20080]L20076\]L368"L366h]L20081]L20090|]L371]L10048]L10049]L374]L376"L379]L380]L382"L378]L384"L385\^L10052L^L10054p^L386z^L10055^L10056^L387"~addbuf^cplenL391^L20092^L392^~setatm_cpapL396_L200L186 L188 L187 L189TTL20046*TL199 L20048FTL176nTL202TL203 L204TL205 L206 L208 L10020L233UL235UL10026L227UL267WL229UL238UL250V~cmkeyTtablenxhlpxdef iyzzzxcxpL212TL213UL215 L214 L217 L216 L219 L218 L22094_L398N_L20096&_L399V_~digitsf_sL403_L20098l_L405~_L402z_~lower_snL409_L20100_L411_~test_xmL10057_L414_ckuus2.o__hlp1"L1 $L2"$L3Q$L4$L5$L6 %L7(%L8O%L9%L10%L11%L12 &L13P&L14&L15&L16&L17&L18'L19K'L20~'JUL222!L211UL230UL231VL234 !L20060UL20065UL236!L239.VL240VL241/!L2423!L244B!L245VL20056VL20052pVL223VL246VL247M!L248]!L249a!L251>WL252o!L253RWL255x!L256bWL257!L258pWL259!L262WL263zWL260WL266!L268!L10030$L2824XL275hXL284:XL288TXL289X~cmcfmWxxcL21'L22'L23+(L24`(L25(~usage_L26_L27_L28__tophlp"L29(L30)L31g*L32*_hmxxbye"L33*_hmxxclo"L34 +_hmxxcon"L35+_hmxxget"L36+_hmxxlg"L37,L38-L393._hmxxlog"L404.L41J.L42.L43.L44.L45/L46e/L47/L48/L4990L50{0L510L52 1L53T1L541L55L273!L272!L20068.XL2710XL286"L20071HXL10027XL277!L290XL291"L292,"L293]"~clrhlpX~addhlpXsjL302YL303YL301$YL3054YL309hYL299pYL310VY~dmphlptYL316b"~lookupYtablecmdnx ivcmdlenL10032YL320YL319YL323 ZL324YL10033vZL10034ZL10035ZL321Z1L562L57$2L58k2_hmxxrc"#L59l2L603L61}3_hmxxsen(#L62~3_hmxxser*#L63X4_hmhset,#L644L65"5L66h5L675L685_hmxychk6#L695L70"6L71l6L726L736_hmxyf@#L746L756L76D7L777L787L797L80A8L81x8L828L83 9L84O9L859L869L87:_hmhrmt\#L88:L89b:L90:L91L328ZL20072ZL20074TZL326ZL3334~getwdZcinword4quoteechofignoreL335u"L334g"L337z"L336v"L339"L338{"L340"L341~^L20078([L343v[L344H[L10036X[L10037d[L346|[L332r[L347,^L348[L349[L350"L351[L352\L353\L10038[L354\L20079\L10040,\L357`\L10041P\L20084x\L358\L10043\L10044:L92?;L93{;~dohlp_xxL94bL95_xyL97 `L96bL99bL100`L101 `L102,`L1038`L104|;L105D`L106;L107P`L108;L109\`L110;L111h`L112L147aL10004aL10005aL148aL149>L98 bL10007h#~hmsgbsL150NbL151"bxL10008.bL100092bL153>bL152Jb~hmsgaRbsL154bL155XbxiL10010KL48 LL20006eL20005eL38fL50HLL20001fL10000eL10001eL52fL53TLL20007 fL54 fL55:fL56kLL59vLL58uLL60xfL20008rfL61fL20009fL65LL64xLL67LL66LL20010fL70LL69LL75LL74LL78LL77LL95hzL10002gL10003gL86ML85LL88gL20011gL91ML90ML96"MdbL10011hbL157tbL156bL160bL161zbL162bL158|bL159b~dohsetbxxL163dL164bL166bL165dL167bL169dL170bL171cL172>L173cL174 ?L175Y?L176(cL178r?L177o?L179ML104IML103HML10006hL10007hL109oML108NML114wML113vML119ML118|ML123ZiL124ML20004^iL126ML127ML131iL137*jL143jL149jL155,kL161kL168kL169NL170OL133NL132ML135 jL1391NL138NL141vjL145bNL1444NL147jL151NL150dNL153"kL157NL156NL159xkL163NL162cL197BL198BL199%CL200oCL201cL202CL203CL204dL205 DL206dL207ADL208DL209DL210*dL211DL212EL213SEL214EL215EL216VdL217EL218FL219SFL220FL221FL222dL224FL223FL168dL10013#~dohrmtdxxL225veL226dxL228dL227reL229dL231beL232dL233 GL234dNL165kL171JOL172[OL10009&lL10010*lL175TlL176\OL20013JlL178zOL181OL10014JL10016lL197l~chkspdlxL196lL184l~setonlprmxyL202OL201OL200$mL20015 m~setnum(mprmxyL209OL208OL210`mL20019JmL207NmL20017RmL212O~setcc|mprmxyL217mL20023mL216L235FGL236dL237|GL238dL239GL240eL241HL242eL243jHL244eL245HL246"eL247HL248,eL100148eL10015[L187C[L188I[L189Y[L190a[L191e[L192l[L193v[L194{[L195[L196TL20092wL20091wL20090wL20088wL438"TL20095xL440:xL441(TL442.TL444vxL445/TL20097xL4489TL450xL451BTL453yL454ITL456UTckuusr.oHyL1V~cmdlinHyxL5VL6VL7zL20005hyL14VL13VL15yL10000yL17VL18yL20 WL21yL23%WL10001zL240zL25&zL27:zL28ZzL30TzL31hz[L197[L198[L199[L200[L201[L202[L203[~cmdinizL207[L208[L209L211[L212[L213[L214L215[L216nL217\L218 \L219XL220 \L20010fL223#\L222\~trapvL228:\L227$\L10014FVL254L262,L256L255~parserxxcbncbpL232L233;\L236L20012ƀL237L238|L239LqstL299fqL300QL298bqL301QL303QL302QL307JL10032JL325xrL329rL333rL337rL10034JL310qL312qL318FrL320hrL322 sL342sL344VsL348sL349sL351sL353sL356tL358tL361Bt~screenqfcns pJlenbufL306qL363dtL311QL313rL314QL315L20001pzL12zL20002zL9VL10010|TL121~L123~L122~L10012TL85|L98}L82|L109>~L126~L42${L75n|L84|L106 ~L51f{L90(}L83|L111J~L1084~L48P{L54|{L125~L107*~L39{~doargzxzxpL35zL36~L40{L41TWL37{L432{L44hWL47~WL46}WL45|WL49QL317QL20046RL364FR~intmsgltnbufL367uL368tL369nRL370RL371R^{L50WL52t{L53WL55{L56WL57{L58WL59{L20007{L61{L62WL60{L63|L64WL65|L66WL674|L68,|L70 XL71L|L734XL74VXL76||L77WXL78|L79kXL10002|L80|L81XL34|L86|L87XL10003}L88}L89XL91:}L92XL10004Z}L93b}L94XL95&YL10005}L100L20062tL373R~chkintuchcnL10035uL377uL376uL379SL378RL380ruL20064>uL397XvL399xvL401vL404SL20072juL386SL387SL388uL389!SL20070uL391(SL392-SL393:SL394GSL395TSL396aSL398tSL400SL402SL10038JL411vL413wL415&wL418>wL420XwL421fwL423twL425w~debugvfs106}L975YL96/YL99}L1006YL10007}L101}L102PYL103~L105]YL20008~L110sYL112\~L113}YL10008|~L114~L115YL124YL127Y_doconne~~doconne~x~fatalmsgL134YL135Y~ermsg<msgL139^L140YL141ZL142ZL143 ZL144ZL145ZL146ZL147ZL148"ZL149'ZL1501ZL1516ZL152;ZL153BZ]L20020L302 ]L20022L290 L20018L305)]L304(]L303']L20031:L309*]L310zL20032tL311L20033L314i]L313V]L315΄L316j]L20035ĄL20034ȄL318L20036ބL333hL322L323]L20037 L325"L326]L328>L329]L331ZL332]L334]L20039pL337(^L336^L342F^L341)^L344H^L347d^L346N^L349e^L356L5626L5661dL5674dL568TL569BdL570\L571FdL572LdL573XdL574dL575dL576dL577dL578+eL579L592eL20053BL594eL595eL596ZL597eL20054^L599eL601eL600eL602eL603eL604L605eL606L607BL357i^L360^L359^L358^L362dL363^L365^L364^L367L368 L369L370^L371L372^L373L20040psaveL376_L377xL20024LL380Q_L379:_L381R_L382L383L384Y_L20044L385f_L386އL387L389_L388_L392_L397_L396_L400_L399_L401nL402_L406`L405_L409`eL608eL609L610fL611ĐL612fL613fL614L615'fL616L617*fL618/fL619L620@fL621L622CfL623HfL10028VL6294L632VL635fL638vL10030VL647ȑL648֑L651L654J~dologxysL641L631ffL630KfL20061BL643L20062NL626RL634fL633pfL637fL636fL640fL639L4110`L410`L4131`L417$L418>`L420z`L419]`L421NL422{`L424`L426`L425`L427L429`L431`L430`L432L434aL433`L436L438aL4392L440aL447aL446aL448L449apidL453baL452DaL455hshpathshnameshptrpL456cadefShelL10019L457L458L459"L20026L462fL642fL20063L649L650L652lL33@lL34DlL35ElnL204nL207nL208L209oL210L211 oL212̝L213oL214L215oL216L217&oL218L2193oL20023*L222:oL223LL224BoL228MoL229zL230UoL233`oL234L235coL236L237hoL240poL241L242xoL245oL246L247oL2486L249oL255L10008lL10009pL20026vL252L256L257ȟL260L261L36FlL37Gl_PENRILjL38QlL39RlL40UlL41WlL42ZlL43\l_RACALjL44`lL45clL46flL47hlL48klL49ml_UNKNOWNkL50qlL51rlL52slL53tlL54ulL55vl_USROBOT&kL56zlL57|lL58lL59lL60lL61l_VENTEL:kL62lL63lL64lL65lL66lL67l_ptrtabNkL68lL69lL70lL71lL72L262ockuscr.oL1o_EXP_ALRo_seq_buf_s_got_it_no_cr_alrmRng~scrtimeL10002oL100046L10005СL10006_sequenc.~sequenc.icoct_charL10>L12RL20002FL72L14nL17L20004xL18L19L20L21̠L22ڠL23L24L26L27L36|L28L32TL34ġ_recvSeq~recvSeqelL73lL74lL75lL76lL77lL78mL79m_triesk_lbufF_sjbuf_savAlrm_savInt~dialtim~dialint_ttolSlo*~ttolSlo*smillisecL91FL920_waitForP~waitForPscL97dL99V_didWeGet~didWeGetsrlriL106ΘL107L104ʘL103Ƙ_resetؘ~resetؘL10003kL146PL148dL150jL159gottraceilL40L41oL42L44 pL43oL20006L48L50֣L51@L59ڣL55bL56LL58_chstr*L10007̣L10008УL60 pL62:pL61p_outSeq~outSeqsbldelayretCodeL66*L68;pL69L70MpL71L20009L83L73QpL74L76L79ҤL80L84~loginL17 hL18/hL19fhL20HL21hL22dL23hL20010ZL25hL40JL27$L28L20012L20014L20015L37hL38iL42pL43,iL45L47L51ЕL52•L58&gL59BiL60ciL61yiL62iL63iL64iL65iL66j~hconnechlpmsg&gL67jL68j~chstrs>cpL73šL10007kL201XL188֟L206L2214L227bL232L239֞L244~dialtelnbrcijwaitctstatuserrmsgerppmdminfaugmdmtymdmEchonpcL117&L118mL20002L20027\L20004 L120=mL121bL122_mL200078L124mL127֙L128L132L20011L142HnL130L125ҙL136mL137m$cmdstrsaveAlmeL88WpL89`L90XpL20011TL20014L20013ZL92zpL93L94pL87L95pL98֥L99L101pL102pL103L104 qL105L200162L108HL107BL20017LL20019nL112VL114ئL111L120MqL122pqL121cqL20021ȦL115ަL1174qL119LqL118Aq~chstr*cL126scL127NL128_xargv${_xargc${csav"_dftty#_strcpy"_dfloc#_dfprty#_dfflow#_cmdlin"Hy_proto"FK_conoll"_conect"r_doexit"L_cmdini"z_parser"cret"_ckxv#_ckxsys#_backgrd#_ckxech#_ttopen"_open" _strncpy"ư_debug"v_strcmp"_isatty"F_ttyname"_strncmp">_ctermid"J__iob#w_fprintf"_close"0_ioctl"_ttclos"8_tthang"p_ttres"_msleep"^ _fcntl"f_strlen"`_strcat"n_access"@_system"N_printfqqL20026XL130uqprintf.ojsprintf.chdir.ochown.o times.o2ctermid.Jctime.olldiv.oZgetpwuid,getuid.oPdup.oZsleep.oalarm.onfputc.o|fdopen.ogetgid.o:atoi.oDstrncpy.ưfputs.okill.o setbuf.o(getppid.ȲgetpwentԲfgets.omemchr.orew.ostrtol.olrem.ofcntl.ofstrcmp.ocreat.operror.o̸errlst.o>strncmp.>pause.orpipe.ofprintf.puts.o޹memccpy.Ժlmul.o"j_getpid"x_creat"_write"P_unlink"&_ttpkt"_ttsspd" _ttflui"_ttvt"_perror"̸_timerh". _longjmp"_esctrp"D _signal"._conint"` _connoi" _myread" _read"_myunrd" _ttchk" _ttxin" _ttol" _ttoc"b _ttinl" _alarm"n_setjmp"_ttinc" _ttsndb"& _conol",_times"2_ztime" _time"_ctime"l_congm" _concb"_setbuf"(_conbin"~_conres"_conoc"_conxo"_conola"R_conchk"_coninc"_errfilbuf.o$setjmp.octype.oNsystem.oNexecl.oexit.o fork.osignal.o.wait.o(getenv.oBtime.ofopen.ofindiop.unlink.o&access.o@strlen.o`getpid.oxtolower.toupper.ttyname.strcpy.olseek.oread.oopen.o fstat.o0stat.oNstrcat.ondoprnt.offltpr.ostrout.oflsbuf.o~cuexit.oBwrite.oPmalloc.orclose.o0data.oFisatty.oFmemcpy.orcret.ocsav.oioctl.osbrk.ocerror.ono${_ckzv#_ckzsys#_DIRCMD#_DELCMD#_TYPCMD#_PWDCMD#_SPACMD#_SPACM2#_WHOCMD#_fp#_zkself"_getppid"Ȳ_kill" _zopeni"_chkfn"_zxcmd"_ermsg"<_fopen"_zopeno"_getgid":_getuid"P_chown" _zclose"_zclosf" _fclose"_zchin"__filbuf"$_zsout"t_fputs"_zsoutl"_zsoutx"_zchout"&__flsbuf"T_zchki"2_stat"N_zchko"6_zdelet"6_zrtol"F__ctype#u_tolower"_zltor"_toupper""_exit"B_environ$start"mcount"<_main">_versio#_hlptxt#_srvtxt#_spsiz#_rpsiz# _timint# _rtimo#_timef#_npad#_mypadn#_chklen#_bctr#_bctu#_ebq#_ebqflg#_rpt# _rptq#"_rptflg#$_capas#&_padch#(_mypadc#*_seol#,_eol#._ctlq#0_myctlq#2_pktnum#4_prvpkt#6_sndtyp$\x_size$^x_osize$`x_maxsize$bx_spktl$dx_sndpkt$fx_recpkt$"y_data$y_srvcmd$Lz_srvptr${_mys_zchdir"p_getenv"B_chdir"_zhome"_pipe"_fork"_dup"h_getpwui",_execl"_fdopen"_wait"(_zxpand">_fgen"b_znext"_znewn"_atoi"D_sprintf"_splitpa"_malloc"r_fatal"_travers"_free"t_addresu"8_iswild"_match"_fnsv#_encstr"X_getpkt""_encode"_decode" !_putsrv""_puttrm"6"_putfil"J"_getch"#_canned"J$_tinit"$_nack"=_rinit"%_tlog"w_spar"._rpar"$._ack1"x=_sinittch#8_stchr#:_filnam$ {_nfils$<{_fsize$>{_ttname$B{_parity$t{_flow$v{_speed#<_turn#>_turnch#@_duplex#B_escape#D_delay#F_mdmtyp#H_filcnt$x{_flci$|{_flco${_tlci${_tlco${_ffc${_tfc${_deblog#J_pktlog#L_seslog#N_tralog#P_displa#R_stdouf#T_xflg#V_hcflg#X_fncnv#Z_binary#\_warn#^_quiet#`_local#b_server#d_cnflg#f_cxseen#h_czseen#j_sstate#l_cmarg#n_cmarg2#p_cmlist${"x%_screen"q_errpkt"T>_gnfile"2_sleep"_spack"v9_sipkt">'_rcvfil"p'_openo"4_intmsg"lt_reof"(_clsof"6_reot"@)_sfile")_openi"j3_nxtpkt">_sxpack"t+_sdata".,_seof",_seot"P-_sdebu"0_opent"6_clsif",6_sndhlp" 7_cwd"V7_syscmd"7_input"8_rpack"?_chkint"u_resend"=_dopar";_chk1"B<_chk2"h<_chk3"<_ack"R=_scmd">_srinit">_sigint"?_inlin"D_inchr"^D_wartv#L_protv#N_state#T_war_memcpy"r__sibuf$__sobuf$_end$time"_tzset"_gmtime"ldiv"Zlmul"_setpwen"Բ_getpwen"J_endpwen"_dup2"Z__findio"__bufend#$x_lseek"__wrtchk"__xflsbu"x_memccpy"Ժ__bufsyn"__stdbuf#~w__smbuf$T_rewind"_fgetpwe"x_strtol"_memchr"_fflush"_sys_ner#r_sys_err#`r__findbu"__lastbu#"xcm_pnt$cm_off$__exit" _par_uid$H_freopen"Ҿ_fstat"0fltcvt"__strout"__cleanu"~_sbrk"_brk"_realloc" w\  " % %`a A@w. ̥: fe& %5u :& %@- " % %`a A@wx.'v.7t. "7j. "7`. "H.̥, ̋̋76.57vDCu F  %u-; w2 , f e5B`` .  @  "  =@7DC T w 7D  & & e4  0t"TF_tbl#_cmdv#_psetf#_cc#_dpx#_hw#_hc#_hh${_hx${_cmprom${_dfprom#_cmerrp${_cmflgs$|_cmdbuf$|_hlpbuf$|_atmbuf$R}_filbuf$}_cmsetp"xL_cmsavp"L_prompt"L_cmres"M_cmini">M_stripq"jM_cmnum"M_cmfld":R_digits"f__cmofi"0N_chkwld"R_cmifi"N_getwd"Z_setatm"__addbuf"^_clrhlp"X_addhlp"X_dmphlp"tY_cmtxt"xS_cmkey"T_lookup"Y_test"__cmcfm"W_lower"__usage"_./usr/bin/uudecode 775 2 2 34074 3505627427 7316 _dohlp"__hmsg"b_hmsga"Rb_nrmt#V_remcmd#U_dohrmt"d_nprm#U_prmtab#nU_dohset"b_puts"޹_fputc"|_blktab#pI_dpxtab#I_filtab#I_nfilp#I_srtab#I_nsrtab#I_flotab#I_nflo#I_hshtab#I_nhsh#J_fntab#J_fttab#J_partab# J_npar#>J_onoff#@J_doprm"ze_seton"l_setnum"(m_setcc"|m_nmdm#k_mdmtab#dk_line$"~_lp$~_chkspd"l_dormt"m_tlevel$~_tfile$~_fgets"_setgen"L_rfilop"Lqlrem"_chstr&d,  0  6 >  672 % #7"&>%'@& & 5 @  #e z-%' X #NPfe$ % 4'-  #C'fe$ N % NetfeJ'fe$ 0 e~tS/fet  5" V'-  #=" "Neu 5 Nete'- % #@ fe  y'fe 8 N"fe 8 Nefet  {'fet & 5 Net  #Nfet  N"<_userv#xT_debfil$ _pktfil$R_sesfil$_trafil$_n$_cflg$_action$_repars$_cwdf#zT_homdir$_cmdstr$_doarg"z_debopn"Ғ_cmdtab#T_ncmd#lU_logtab# V_nlog#8V_shotab#:V_trap"v_docmd"̃_bldlen"_dial"_dolog"_login"$_shopar"*_connv#$g_loginv#o_dialv#pj_i$V_active$X_temp$Z_lbuf$_conn_in"\_doesc"_pause"r_hconne"_dialtim"_dialint"_scrtime"__doprnt"cerror""_timf H NPfe$ % }'fe$ '-  # #w$7$TNPfe % ' X #@eE5@e5Nff %e w#7#@eEtAAeEWt@P5@eEtAAeEWt@P5@eEtAAeE@P5%@  NfE  @ AEH%@  NfE  @ AEH%@  NfE  @ AEezon#q_dayligh#q_tzname#q_localti"_asctime"_tzset"_gmtime"ldiv"Zlmul"_setpwen"Բ_getpwen"J_endpwen"_dup2"Z__findio"__bufend#$x_lseek"__wrtchk"__xflsbu"x_memccpy"Ժ__bufsyn"__stdbuf#~w__smbuf$T_rewind"_fgetpwe"x_strtol"_memchr"_fflush"_sys_ner#r_sys_err#`r__findbu"__lastbu#"xcm_pnt$cm_off$__exit" _par_uid$H_freopen"Ҿ_fstat"0fltcvt"__strout"__cleanu"~_sbrk"_brk"_realloc"Hw`"7j"DC̋T@ 5 5@ @w "@@m 7" @e5-ff V% )w!fw#w#'w6" 7! &  &f N %  0wx!7! " '' & 7"" wN!7X! "" Z7 "w4!7>!D̥:̥  ̥̋  ̋w!7 ! d" '' & 7P" w D" 7 N3 %*7n/ "7d/ "̥: fe& %5u :& %@-wbE + R x+   C+N+ 0E 4+7W@5u-c  f fff eee@ 5u   ;+% 0%.@ %e%E! @   E +%+%- _ \ & Ne 5 5%l e@58=e@583 %% A@  5u%l e@pH %h e@x5 B555555@e05uu5  B5)5 B5@5 5=5@ =5 B@e % c%$5?%r5r5˕0 5%6555e0 5u B5 䂃˥5%$5 1&   ˕0e %9 $5w0 7: Bff d%w 7 D Zff d%w 7 D _T _T_T r) w_ U"@+ @ a U    %= @_ 7TDCB e@ 55%c%@ N @ E5%%s+%[@ @mȋ  } %  N f  %= u- wx %c=7nDC5 E%^  &  %E5%]%--@mH &E5%]EB-@ f` %%-@mHE5%]  w7D5 5  ++  f %5'4 t  r4a & f e  w 4 1.7 z-- w e7 D ԋw 7 DCԔw f@wNwJw F -w f@w*w&(-w fwww .-w 7( DCԋ Ԕw 7 5 uDC5 5 5  % _( @w e@-U +U U  #U wT7^DC5 = %$ w$+ ++  x'  %0 xX++e +ee5 %%0+ xXe+e +ee 5 e*f ff \ e 5u +++ee5  = A@_.A@  _.7DC  ԋ@wz7'-Rj$d$x+  5! %%.AOM5  B5eA5 +%.uw%E%e. 5   + - +%Wp B`e + ` L+55 @  2e%++C @5%??e55 5 AWpN 555& e5 5_^5_^7DCT w7B A@ C@ppC`pw7D  @"N 'N f #%' #% & #%' #%w7DCB ԋ   w@7 @e5Nff V%@ w7DCB  wr 7x @e5fz- ~ %wJ7T @e5ff ~ %w&70D @e555 5Nffe ~ %w7DC 5 EF+%%E%%< # $  E 5+fDz- @ e-  .&& %4 E %  4 w7D%   | @w - -f&& e7vD 5%g 5 %e fefe&5&%f e%e5B ҕ- 5ҕ+5ҕ %e %gI5!%B ˕0Ҕҕ.Ҕ  B-0ʥ. ʕe5ʕE  % XE 5 f  %@w&%*5 E5 AWp `euE+ 5%l%hE %[ Ne  +le %c %[  E 5+f  %_ %c%s%[Ne&feff  Ne&fff e 5um _ _( _ 7D XCe5 5 5 5 5 5 5 @d  xp+    @ 5ҕ-ҕ+A r e0A r e0@A %gDҕ0ҕ. ҕ0 %f Dm Ҕ ҕ.  ҕ0 ҕ. B-0ʥ. w75@m   777"dwb7l fff 5& >ew>7Hfff 5& >ew7"D$5B e$55 =557 5_, AOM5 B5M55=5@ l=5@e %R5  - 6! 7ND E%B: 0#.^@E<EE % @EE@E54 fe& #%% ) 6!%"E%E%    -  D ! wlD 6!  @EE&  @EE< 7*DD  .4 .  @  " & #%  w 7DE%wzEU4 terText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument out of domainResult too largeNo message of desired typeIdentifier removedChannel number out of rangeLevel 2 not synchronizedLevel 3 haltedLevel 3 resetLink number out of rangeProtocol driver not attachedNo CSI structure availableLevel 2 halted  (((((  @" -D .4 .  @  " 7 D* WteV.te   Av-tep.  & @w% 0#4 7D . .-wVf 4@f@wV wR p-w705 4v5U7&t5U7v5t5Ae vB5 7  7  %"55 a  a!_$E -%t5 wn H u+p [M G@C Bdoxfegcs|lurFh(null).1f.f.&e !e vu@t 5 r $ rf5`5`22 @5e vu@t 5@me@ u%| | &%|N &% &@m@e e U?t5U?_# a7t ln?fbU 7!^RVe_#7.D4E -*(w7C5 2% 5N 0#D-wA vuA-u@ f& 0&% @ ` ݂@ ` `f.n.65crt0.oexituudecode>_sccsid&~main>argcargvinoutmodedesttbuf$L5L6'L7zL8L14L10'L16L174'L18C'L19J'L20sl"user dnbufL21<L22V'L23pL24e'L25y'L26{'L27L10000(L280U  `u5 U5  . >u5 u-u @  A ZU56-Bw JU5   5 5  5     U &  C ~CB5W-o0ʋW-x0 ʋ x5ʕX05-eW-da5+Z5V S v r@ r ! f e0 9e'5e= !Ah-@w 7\NeTf r&%  w,70DCB 5Ԕ @wBFN& fwwwF.wNfwmN.w.wmfwN.w wx 7p F@(#)uudecode.c 5.5 (Berkeley) 7/6/88rUsage: uudecode [infile] No begin line begin begin %o %sIllegal ~user No such user as %s /wend No end line Short file @(#)index.c 6.1/etc/passwdrr`d\Unknown error: <(D(N(h(x((((ӋC~ @ AB 5wHBA 5u`u` u`ff` <ew5  @0   Wp ` e07DCB@ N   @ ȕ N E&  @ @ EH @ N   @ ȕ w7$z- Ze-w7D w   %  2%4 44  7D4  wv (((( ))0)<)R)^)j)|))))))))****7*M*\*h*******++)+F+a+-Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo child processesNo more processesNot enough spacePermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesNot a typewriL10Jprintf.oXchmod.ogetpwnamgetpwentfgets.omemchr.orew.ostrtol.ostrcmp.o perror.o errlst.oN strncmp.N fprintf. memccpy. scanf.o doscan.o~ atof.omemset.olmul.ofilbuf.oungetc.ofltpr.ocvt.octype.oldexp.oecvt.ofopen.o&findiop.pstrlen.ostrcpy.olseek.oread.oopen.ostrcat.o8doprnt.oVstrout.oflsbuf.o<cuexit.o#write.o#malloc.o0#close.o%data.oBh 0  6 >  67 % 7,"%"@& $ 5 @ h e b% $r   Ne@&  @   <@ EI@E5@fI %jf ( V  w87BDCR-fe e5  `E&  @Ee  @Ee `E;  @`e&  eB-    wv7D&isatty.o&memcpy.o0&cret.oV&csav.od&ioctl.or&sbrk.o&cerror.o&_exit"#_environ$3start"mcount"<_main">csav"d&_fopen"&_perror" __iob#z-_printf"X_fgets"_fprintf" _strncmp"N _sscanf"0 _index"_getpwna"_strcpy"_strcat"8_chmod"_decode"H_strcmp" cret"V&_outdec"__flsbuf" __doprnt"Vcerror"&_setpwen"_getpwen"T_endpwen"_rewind"_fclose"Z_fgetpwe"_strtol"_strlen"_memchr"__fiCttEWtE@P5tEWtE@P5E5  Ee `E&   Ee `E;  @Ee `E&   @Ee `E;  @Ee `E&   @Ee `E;  @Ee `E&   @Ee `E; w7 @e5jff T% w7D   wAupC   \%lbuf"_memccpy" __bufend#.__bufsyn""_fflush"_lseek"__ctype#+lmul"_sys_ner#:(_errno$T._sys_err#'_write"#_scanf" __doscan"~ _fscanf" _ungetc"_atof"_memset"fltused"_ldexp"__findbu"@"__lastbu#._read"fltcvt"__cvt"_fcvt"_ecvt"__findio"p_freopen"B_open"__strout"__cleanu"<_close"%_free"2%__xflsbu"6!__wrtchk"!__smbuf$V.__stdbuf#v-_isatty"&_malloc"0#_sbrk"&_brk"&_realloc"Z% -@m A &@&f :%`5`   @  @7\-V pN f %j % & %m %w7 @e5Nff T%@ wNW f r @  W f r@  @ 7D  JNDb @ e-X  && %4 E_memcpy"0&__sibuf$.__sobuf$1_ioctl"r&_end$5ek"__ctype#+lmul"_sys_ner#:(_errno$T._sys_err#'_write"#_scanf" __doscan"~ _fscanf" _ungetc"_atof"_memset"fltused"_ldexp"__findbu"@"__lastbu#._read"fltcvt"__cvt"_fcvt"_ecvt"__findio"p_freopen"B_open"__strout"__cleanu"<_close"%_free"2%__xflsbu"6!__wrtchk"!__smbuf$V.__stdbuf#v-_isatty"&_malloc"0#_sbrk"&_brk"&_realloc"Z% %  4 w< 7F Bff b%w 7* D d ff b%w 7 D _R _R_R r) w_ U"@+ @ a U  f %5'4 t  r4a & f e  w 4 17 b- w e7 D ԋw f@wHwDw @w f@w$w }'L29>L30'~decodeHinoutbufbpnL37PL39xL40'L33L41L20001~outdecpfnc1c2c3L46L10001pL47L10003L45L10005index.o_Sccsid'~indexas1as2s1s2coffsetL20001L5 L20003L4FL8(L9<./usr/bin/uuencode 775 2 2 20264 3505627432 7320 w fw www f@ww fww 7 5 uDC5 5 5  % _& @w e@-U +U U  #U 0U  `u5 U5  . >u5 u-u @  A ZU5Bw JU5   5 5  5     U &  U? _ a7   ?  U 7!  e_7.D E -  w7C5 < 5N :D-wA vuA-u@ f& :% @ ` ݂@ ` ` f@w 7\NeTf |%  w,70DCB 5Ԕ @wBFN& fwww.wNfwm6w.zwmtfwd6w wV 7N C ~CB5W-o0ʋW-x0 ʋ x5ʕX05-eW-da5+Z5V S v r@ r ! f e0 9e'5e= !APӋC~ @ AB 5wHBA 5u`u` u`ff` Hew5  @0   Wp ` e0eӕ?7DCB@ N   @ ȕ N E& F@(#)uuencode.c 5.6 (Berkeley) 7/6/88rUsage: uuencode [infile] remotefile begin %o %s end Unknown error:  *DVhx +:K_s ;Nj-Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo child processesNo more processesNot enough spacePermission deniedBad addressBlock device requiredDevice busyFi @ @ EH @ N   @ ȕ w7$b d e- w7D w      <4 44  7D4  wv   - @ 7ND E%B: 0#^@E<EE % @EE@E54 fe& %% ) @%"E%E%    -  D  le existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesNot a typewriterText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument out of domainResult too largeNo message of desired typeIdentifier removedChannel number out of rangeLevel 2 not synchronizedLevel 3 haltedLevel 3 resetLink number out of rangeProtocol driver not attachedNo CSI structure availablewlD @  @EE&  @EE< 7*DD  4   @   & %  w 7DE%wzEU4  J -D 4   @   7 D* Wte>te   A^tep   @w% :4 7D Level 2 halted< d o x f e g c sz l u rD h(null)NNV6crt0.oexituuencode>_sccsid~main>argcargvinsbufmodeL5L6"L7zL8L9 -wVf 4@f@w4w0Xw705 U7 U7    Ae vBr 5 7h  h 7b  %"55 a  a!_E - % wn   e !e vu@t 5 r $ rf5`5`  @5e vu@t 5@me@ u%| | %|N % @ 8 @m@e $ e  U? L10$L10000L11L20000L13IL14V~encode(inoutbufinL208L10001L20001tL10003fL10004L10005L10006L25L26L10007L10008~outdecpfc1c2c3c4L10009pL10010^L10011bL10012L10013L10014L10015L10016L10017L10018L10019L10020L10021./usr/demo/.profile 664 0 0 77 3505632342 7310 somn'n'nngr'fsolid om'n.n.n'n'gIr'.fsolid om.n5n<5n<.n.gAr.<5fsolid om9n@n@n9n9gr9@fsolid om@nGnGn@n@gIr@Gfsolid omGnNn-Nn-GnGgArG-Nfsolid omRnYnYnRnRgrRYfsolid omYn`n`nYnYgIrY`fsolid om`nhn"hn"`n`gAr`"hfsolid omknrnrnknkgrkrfsolid omrnznznrnrgIr L10022L10023L10024.L10025 L10026$L10027\L10028JL10029NL30~L10031pL10032tprintf.ofread.operror.oherrlst.ofprintf.udiv.ofilbuf.o\fopen.o$findiop.nstrlen.olseek.oread.oopen.ofstat.oumask.o<doprnt.oTffltpr.o strout.o flsbuf.oF cuexit.o write.omalloc.o:close.odata.oisatty.omemcpy.o:cret.o`csav.onioctl.o|sbrk.ocerror.o_exiecho " Self-running demo. Type cntrl-C to exit. " exec demo mbuf$>__stdbuf#^_malloc":_sbrk"_brk"_realloc"d__sibuf$__sobuf$_ioctl"|_end$"`_fread"__flsbuf" _outdec"__doprnt"T__filbuf"\udiv"_memcpy":__bufend#__bufsyn"_sys_ner#_errno$<_sys_err#p_strlen"_write"urem":__findbu"J_fflush" __lastbu#_read"__findio"n_freopen"@_fclose"d _open"_lseek"cerror"fltcvt" __strout" t" _environ$start"mcount"<_main">csav"n_fopen"$_perror"h__iob#b_fprintf"_fstat"_isatty"_umask"<_printf"_encode"(cret"`_fread"__flsbuf" _outdec"__doprnt"T__filbuf"\udiv"_memcpy":__bufend#__bufsyn"_sys_ner#_errno$<_sys_err#p_strlen"_write"urem":__findbu"J_fflush" __lastbu#_read"__findio"n_freopen"@_fclose"d _open"_lseek"cerror"fltcvt" __strout" ./usr/demo/demo 775 0 0 711 3505632250 6532 __cleanu"F _close"_free"<__xflsbu"@__wrtchk"__smbuf$>__stdbuf#^_malloc":_sbrk"_brk"_realloc"d__sibuf$__sobuf$_ioctl"|_end$"`_fread"__flsbuf" _outdec"__doprnt"T__filbuf"\udiv"_memcpy":__bufend#__bufsyn"_sys_ner#_errno$<_sys_err#p_strlen"_write"urem":__findbu"J_fflush" __lastbu#_read"__findio"n_freopen"@_fclose"d _open"_lseek"cerror"fltcvt" __strout" while : do #echo -n "Color or monochrome terminal? (c or m) " echo "Color or monochrome terminal? (c or m) \c" read a case $a in c*) S="-"; P=cpplot ; break ;; m*) S=""; P=pplot ; break ;; esac done while : do swoop $S < logo sleep 3 erase s echo "HHere are some examples of our Graphics application programs ..." $P < demo3 sleep 5 erase r $P < demo3.5 sleep 5 erase l $P < demo6 sleep 5 erase u $P < demo7 sleep 5 erase h done "_lseek"cerror"fltcvt" __strout" ./usr/demo/ 40775 10 1 0 5555551476 5723 ./usr/demo/demo3 664 0 0 12731 3256110675 6664 tY mRDtE mR:tA mR0tR mR&t omFnFnnnFsomn#n#nngAr#fsolid om#n6n6n#n#gr#6fsolid om6nnn6n6gqr6fsolid om#n#)nG)nGn#gAr#G)fsolid om#)n#GnGGnG)n#)gr#)GGfsolid om#Gn#nGnGGn#Ggqr#GGfsolid omSnS1nw1nwnSgArSw1fsolid omS1nSOnwOnw1nS1grS1wOfsolid omSOnSnwnwOnSOgqrSOwfsolid omn4n4-fsolid fsolid lN?T?fsolid fsolid lNPTPfsolid fsolid lNbTbfsolid fsolid lNsTsfsolid fsolid lNTfsolid fsolid lNTfsolid fsolid lNTfsolid mTnTn3n3nTofsolid mpnpnvn|nnn|nvnpmyofshortdashed lfsolid ofsolid mnnnnnnnnmomtTokyo C ofsolid mpnpnnnpmyofshortdashed lfsolid ofsolid mnnnnmomtKowtko I ofsolid mpnynngAr4fsolid om4nXnXn4n4gr4Xfsolid omXnnnXnXgqrXfsolid ofdotted l##)fsolid fdotted lG)S1fsolid fdotted lw14fsolid fdotted l6#Gfsolid fdotted lGGSOfsolid fdotted lwOXfsolid fdotted l#fsolid fdotted lGSfsolid fdotted lwfsolid ofsolid lfsolid fsolid lfsolid fsolid l$$fsolid fsolid l//fsolid fsolid l::fsolid fsolid lDDfsolid fsolid lOOfsolid fsolidnnpmyofshortdashed lfsolid ofsolid mnnnmomtMikuni C omBt0 mB-t2 mB?t4 mBPt6 mBbt8 m6st10 m6t12 m6t14 m6t16 fsolid lssfsolid mgt80 fsolid lfsolid mt81 fsolid lfsolid mt82 fsolid lfsolid m t83 om9tR&D EXPENDITURES om t$ m t m {tM m qtI m gtL m ]tL m StI m ItO m ?tN m 5tS m +t mtFISCAL YEAR omnn@n@nomtKowtko I ofsolid mpnyrzfsolid omznnnznzgArzfsolid ofsolid lfsolid fsolid lfsolid omnm'm.m5n9m@mGmNnRmYm`mhnkmrmzmnofsolid fsolid lfsolid ofdotted mnn'm.m5n9m@mGmNnRmYm`mhnkmrmzmnofsolid fsolid lfsolid ofdotted mnn'n.m5n9n@mGmNnRnYm`mhnkmrmzmnofsolid fsolid lfsolid ofdott lZZfsolid fsolid lddfsolid fsolid loofsolid fsolid lzzfsolid fsolid lfsolid mnnnnomnnnngArfsolid omtTokyo Corp omnnnngrfsolid omtKowtko Inc omnnnngqrfsolid omtMikuni Co omt0 m$t10 m/t20 m:t30 mDt40 mOt50 mZt60 mdt70 mot80 mzt90 mt100 mt80 m)t81 mYt82 mt83 omtR&D EXPENDITURES omt$ med mnn'n.m5n9n@nGmNnRnYn`mhnknrnzmnofsolid fsolid lfsolid ofdotted mnn'n.m5n9n@nGmNnRnYn`mhnknrnznnofsolid fsolid l88fsolid ofdotted m8n8n8'n8.m85n89n8@n8Gn8Nn8Rn8Yn8`n8hn8kn8rn8zn8n8ofsolid fsolid l\\fsolid ofdotted m\n\n\'n\.n\5n\9n\@n\Gn\Nn\Rn\Yn\`n\hn\kn\rn\zn\n\ofsolid fsolid t mztM mptI mftL m\tL mRtI mHtO m>tN m4tS m*t m tFISCAL YEAR omnnnnsofsolid mi%ni(no*nv*n|(n|%nv#no#ni%ms&ofshortdashed ls&1fsolid ofsolid m0n2n4n4n2n0n-n-n0m1ofshortdashed l1=fsolid ofsolid m<n>nAnAn>n<n:n:n<m=ofshortdashed l=?fsolid ofsolid m >n @nBnBn@n>n;n;n >m?ofsolid mi.ni5n|5n|.ni.ms2olfsolid mnnnnomnnnngrfsolid omtTokyo Corp omnnnngIrfsolid omtKowtko Inc omnnnngArfsolid omtMikuni Co om|t0 mt2 mt4 mt6 mt8 m,t10 mPt12 mut14 mj-t8 mj#t0 mjt mjGt8 mj=t1 mj3t mj`t8 mjVt2 mjLt mjyt8 mjot3 mjet omtR&D EXPENDITURES omt$ MILLIONS mRtF mRtI mRtS mRvtC mRltA mRbtL mRXt mRNfshortdashed ls2Cfsolid ofsolid m@nGnGn@n@mCofshortdashed lCGfsolid ofsolid mDnKnKnDnDmGofshortdashed lGJfsolid ofsolid m Gn NnNnGn GmJofsolid miqnsxn|qniqmsuofshortdashed lsunfsolid ofsolid mjnqnjnjmnofshortdashed lnifsolid ofsolid menlnenemiofshortdashed liVfsolid ofsolid m SnZnSn SmVofsolid lT3fsolid fsolid lNTfsolid fsolid lN-T5fsolid omn=n=nngr=fsolid omnHnHnngrHfsolid omn[n [n ngr [fsolid omnmn*mn*ngr*mfsolid om2n2nJnJn2gr2Jfsolid omRnRnjnjnRgrRjfsolid omrnrnnnrgrrfsolid omnnnngrfsolid omnnnngrfsolid omnnnngrfsolid omnn n nwnwnwnwn wnwn*wn2wmJwnRwmjwnrwmwnwmwnwmwnwmwnwm wnwm+wn3wmKwnSwnkwnswnwnwnwnwofsolid fsolid lBHfsolid ofdotted mHnPnhnpnnnnnnnnn nn)n1nInQninqnnnnnnnnn nn*n2mJnRmjnrmnmnmnmnm nm+n3mKnSnknsnnnnofsolid fsolid lBHfsolgr fsolid omnn+n+ngr+fsolid om3n3nKnKn3gr3Kfsolid omSnSmnkmnknSgrSkmfsolid omsns[n[nnsgrs[fsolid omnYnYnngrYfsolid ofsolid lHfsolid fsolid lBHfsolid omHnPmhnpmnmnmnmnm nm)n1mInQminqmnmnmnmnm nm*n2mJnRmjnrmnmnmnid ofdotted mHnPnhnpnnnnnnnnn nn)n1nInQninqnnnnnnnnn nn*n2nJnRmjnrmnmnmnmnm nm+n3nKnSnknsnnnnofsolid fsolid lBHfsolid ofdotted mHnPnhnpnnnnnnnnn nn)n1nInQninqnnnnnnnnn nn*n2nJnRnjmnm nm+n3mKnSmknsmnmnofsolid fsolid lB,H,fsolid ofdotted mH,nP,nh,np,n,n,n,n,n,n,n,n,n ,n,n),n1,nI,nQ,ni,nq,m,n,m,n,m,n,m,n,m ,n,m*,n2,mJ,nR,mj,nr,m,n,m,n,m,n,m,n,m ,n,m+,n3,mK,nS,mk,ns,m,n,m,n,ofsolid fsolid lB?H?fsolid ofdotted mH?nP?nh?np?n?n?n?n?n?n?n?n?n ?n?nrnnnnnnnnn nn+n3nKnSnknsnnnnofsolid mHnHnnnHom6t0 m6,t1 m6?t2 m6Qt3 m6dt4 m6wt5 m6t6 m6t7 m6t8 mVtO mvtN mtD mt84 mtF mtM mtA m7tM mWtJ mwtJ mtA mtS mtO mtN mtD m2t85 mXtF mxtM mtA mtM mtJ mtJ mtA m9tS mYtO mytN mtD omtt(Oct 83 -- Dec 85) m}tBritish Avionics Ltd. (SEC div.) -- Unit S./usr/demo/demo3.5 664 0 0 11253 3257622662 7032 n)?n1?nI?nQ?ni?nq?n?n?n?n?n?n?m?n?m ?n?m*?n2?mJ?nR?mj?nr?m?n?m?n?m?n?m?n?m ?n?m+?n3?mK?nS?mk?ns?m?n?m?n?ofsolid fsolid lBQHQfsolid ofdotted mHQnPQnhQnpQnQnQnQnQnQnQnQnQn QnQn)Qn1QnIQnQQniQnqQnQnQnQnQnQnQnQnQm QnQm*Qn2QmJQnRQmjQnrQmQnQmQnQmQnQmQnQm QnQm+Qn3QmKQnSQmkQnssomPnPnhnhnPgrPhfsolid ompnpnnnpgrpfsolid omnnnngrfsolid omnnnngrfsolid omnnnngrfsolid omnn n ngr fsolid omn"n)"n)ngr)"fsolid om1n1'nI'nIn1gr1I'fsolid omQnQ*ni*ninQgrQi*fsolid omqnq,n,nnqgrq,fsolid omn5n5nngrQmQnQmQnQofsolid fsolid lBdHdfsolid ofdotted mHdnPdnhdnpdndndndndndndndndn dndn)dn1dnIdnQdnidnqdndndndndndndndndn dndm*dn2dmJdnRdmjdnrdmdndmdndmdndmdndm dndm+dn3dmKdnSdmkdnsdndndndndofsolid fsolid lBwHwfsolid ofdotted mHwnPwnhwnpwnwnwnwnwnwnwnwnwn wnwn)wn1wnIwnQwniwnqwnwnwnwnwn./usr/demo/demo6 664 0 0 4641 3256110702 6637 tOverhead omt18.9% omnnnngIrfsolid omtAdvertising omt15.3% omnnnngqrfsolid omtCost of Goods omt7.1% omnnnngArfsolid omtR & D omt16.5% omnnnng<nFn>nDnDn>mBofsolid n6o./usr/demo/swoop 775 0 0 25304 3257644646 7042 fsolid m1n:n1n8n8n1m6ofsolid n%,ofsolid m(n%0n*(n.n0.n(m%,ofsolid ni*ofsolid mc&ni.nn&n^,nt,nc&mi*ofsolid n5ofsolid m1n9n1n7n7n1m5ofsolid n.ofsolid m*n2n*n0n0n*m.ofsolid n5#ofsolid m0n5(n;n*&nA&n0m5#ofsolid ny ofsolid mtny$nnn"n"ntmy fsolid mxn~nnrnnxm~ofsolid mnfsolid ofsolid mnnnnn'  0  6 >  676 % (w '5 5 % ' &EN D$& & e _  r2e 7,  r2e 7+ z r2e 7+ f r2e 7+ R5+ 7+ >5+ 7+ *5+ 7+ 5+ 7~+@ b+up,@ R+up>.@ B+up/@ 2+up^1 '  l& b 5 Nf ff e % (&N b eNefefemomtAfter trans-cranial shock therapy (275mV/12.2MHz) my fsolid omBt2 mt3 mt4 mAt5 mt6 mt7 m6t1 m6?t2 m6et4 m6{t6 m6t8 m*t10 omCt(before & after treatment) mtWalking Stability Measurements using Delta Criterion mytWALKING SPEED (dm/s) m ttS m jtW m `tA m VtY m Lt m Btc m 8tm m .t omnnnn"ntmy fsolid mxn~nnrnnxm~ofsolid mnfsolid ofsolid mnnnnnf e % ,,,,' e%_ %_h' A r uN b 5 t@ 5,@ 5>.@ 5/@ 5^15 Nf ff e %@ >.e8@ ,eL&@ &>.@ ,e& e@ ^1e8@ /eL&@ &^1@ /e& e u- % _L wl$w \$; )*  ),+ )+ (,m((m((m((m((%,(% (( 7(%(% (( 7(%,./usr/demo/logo 664 0 0 355 3203327152 6544 (% (( 7(%(% (( 7( '   r rD # b  , &+ &,+ &* e%&e r rD N# b  , &+ &+ &* e %<5 r rD " b  , &+ &,+ &* e %<w"w " Ew"w "  (w"w |"---7-7-7- - --z-t- & & e7l-j-h-w,"w "N Z 7H-f , 76-&f  &f  & eh &f & eww EE]$E$Wt@P]$u- CC uCC _u- Du 5 D)t$5h$ b$U\$ V$EP$5J$ D$U>$ 8$E2$  D- ww w.$w*$@@7#@ @7#7 #ww NefJ) %ww Neff %ww zDA555  ԋNeffe %wFw 6DC 5 5 _@ E_(%%_5 %*e5 . B~ӕe ӕ- ӕ+ r e0e0Sw uDAB %u f& & He wd5 5  W- W00u5  .u(BwF J@B V_@  o x d u        ӕ- f&@Ew ӕ0 S r@A r  f  e0 9e' E,* AB)ҋ D~@B fw!w ! & & e 7,7,,7,7,,,7,7,7,7 ,( % 52gf $% t,p,t >%% w>!(%(    %  %   %  % <0804000,05 EU >%% E7+  w ///// &  >%%(((  wN w >  (w: w * D+t >%% w E 5AWpA ( @5 AWp `eu* 0u%l%h5 %[ *e  Neffff Fe   - @w8@ @ EN n5% % % %Nf $     %_@ _N n5 %Nf $ w N%c%s%[Nf ff f& ewL5 5 5 5 %e%f %o%xDe5 5 @ @ AWpA( @P5AWpA( @PtP % w *w*w*w*w *ww r*f b %7**f b %7* ~* x* v* p*w:w *6(f $ X*M:(f $ >*@>(f $ $*3B(f $  *&F(f $ )J(f $ ) N(f $ ) wzw jw) whw X)  x,()  z)@ E&  w*b)  T)@ EB)8)  *)@ EN n% % % %-5 Ԑ@ @ EN n 1 A@  5u%_N  $ = _$%+ @ _@ E *8%)%._%e%E %    Ԑ@ _@ Ee%a%f%A%F %A@v% A@v@mAm@ vA@v5u%0%90 %a%fW7 5`u`u C"% _N _N N n%+ %- %E)w 5w(5w(5w(ww  ( E@t@] wzw jf f f .ef& he@wJw :u-@@w0u-@w  E]B(E4(Wt@P],(u- 2E_@@5 5__'_ -'H5` u-<EU_@ @5 5_ _ 5` V'_ -F'Ew__"'@@0_N%9_NԐ@ _N n_ @e! _@t@]   x(Ne 6A _Ne 6A @H@pHw 4DC = 5%c%0u5 %s E  nrR(%%c5 %[rR(   E  n%%   $ =  D- %cwF w 2D ̥^  R(R( %E%]  R(R( C C     3EU&  5a5a5&_m  um_mum Ef&  5`5`5 B&_m  um_mum w  %%f% %5%f% b %w%f% b %5f& w r %%f% %5%f% b %&w@d%fx% b %&5f& %w N Z f  &f ww R)fef ,% Bw w D%    | w - -w ^D@w@ 4 e474 && d%%4 %  4 E & & .e Ӌ (( &7& e |ӕ-vӕ0B~bӕ.  ӕ0~ B~((&76 & : e ӕ-0 ӕe5 55ww  4J7U7&H7U7J7H7Ae vB7 55 a  a!RE -%H7 wF %e rt 7 % `e   %%hde U?RR `e 7@H7U?4 a7&  ?U ew DE wxw hD5 F!@ r5N !w65A vBB-  }ee@ !ۃ `(\  AAAAAABBBBBB 6470#~~dddddddddddddTTl$d oxfegcslL,u r0DOXBU(null)&5&5)=!ւ `@ r `Dw fff 5& X"eww  fff 5& X"eww t 5 %O N  = T7555Ne5& 0$e5755'0Ne5 B& 0$e57 Be0" 5%755 5 B5@B eT7 a=%T77T7w %75 B5Ne5& 0$e55e0%77 `Jʕ0%T7ʕ1  %T7˕0 ʥ9 w Nef ./usr/demo/.news_time 644 0 0 0 5555551475 7620 @  5w*A  fff xe w5  @ 0   Wp `e0w T Nefef 5& "e C ӕ-B  @@ % :%6 ӕ. `ȥ0  B- ӕe @ 5ӕ-ӕ+A r e0A r e0@- ̥0ӕ. ӕ0 B-ӕ. B- u-  ӕ0@ @-ӕ.. @w( w  DCB &E t z f $  ww 5@m 77"ww 5@} ww w7 ww vmNA <ee90@ w7|vE@wNw >N tf $%w4w $Ntf $%ww DCԋ w@f@w fww|wx*w fwbw^*wfwJwFwB*w f@w(w$*w`fwm *w@wmfw*ww fAW @w f717t  #̥-%0  E: E:  &E t  z f t  wh w X DuNfe& &%4 ;#%R)  # &3&3   & &%S  w @w v DE%& &%  w8 w $ J) e-* w w  D@ V75 e"&w* 5w7L7H7D7@7<7874707,7(7$7 77777 777f&&& & 7 f BRfw*f@ww*w7@Fw C  5!#BA  D & r@&rr @`    w& BAN   C 5 N B A @ A-  A    w2w "B A@ C@ppC`pw @& BF%d $  F! 4 4 w f x@w D*\5% %-%+ 5 55 55  B5eA5 *%.55  B5eA5 * %E%e$%+%-  Wp B`e*  @`5 @ 5AupAm%55 @5A5u555555  55555AupN5& $%d%d%dbismovxor/dev/console%s%s xormovmvcbisbicclrset~~dddddddddddddTTl$d oxfegcslL,u r0DOXBU(null)&5&5)=./usr/opt/bin/kermit/ 40775 0 3 0 5555546175 7625 ic 'timeInt' handler to global 'scrtime', to avoid possible problems with VENIX code mapping (see CKUKER.BWR below). CKUTIO.C: Treat hangup of a closed line as success rather than failure. CKUUS2.C: Replaced TAB character in help entries for '-q' and '-d' options with spaces. CKUUSR.C: Created a 'doconnect' function, to be called by the CONNECT and DIAL commands. Appended a space to the default "C-Kermit>" prompt. DIAL now automatically invokes CONNECT if dialing is successful. Modified modem./usr/opt/bin/kermit/DECnotes 644 0 3 14065 5555215767 11261 -type display code to avoid some redundant testing. CKVCON.C: Made source lines for 'hlpmsg' more consistent, alphabetized the entries, and removed explicit occurrences of \r\n (see CKVTIO). Appended a space to the "Command>" prompt. CKVFIO.C: Modified ZLTOR to strip the version number and include debug info. Modified ZRTOL to preserved the version number and include debug info. CKVKER.COM: Automatically determine C Run-Time library to use. Save and restore command-file verification. Exit on CKCMAI.C: Call to hack_vms_open_console (see CKVTIO). CKCFNS.C: Removed a ZRTOL-related debugging call, since debugging statements were added to ZLTOR and ZRTOL (in CKVFIO) themselves. CKUCON.C: Made source lines for 'hlpmsg' more consistent, alphabetized the entries, and added a H(angup) entry as somebody had apparently done for CKVCON. Appended a space to the "Command>" prompt. Added the code to support the H(angup) option. CKUDIA.C: Merged in Joe Orost's support for US Robotics 212A modem, errors. Display additional "progress" information. Avoid use of LNK$LIBRARY in case user had it defined. Use CCMAKE to check/compile CKCPRO and CKWART. Allow external definition of C-Compiler options. Make the DCL somewhat more efficient. CKVMAK.COM: Save and restore command-file verification. Exit on errors. Determine output file specification more efficiently with F$PARSE. CKVTIO.C: Treat hangup of a closed line as success rather than failure. Modified 'conola' to removed any trailing ./usr/opt/ 40775 0 3 0 5555546046 5557 which included making 'dmode_prompt' and 'wake_prompt' be strings rather than single characters, and correspondingly updating 'waitFor'. More explicit specification of DF03 as "DF03-AC". The "-AA" is not an autodial modem. Changes to DF100 and DF200 dial strings and comments to allow use of the modem's memory to store and dial numbers. Modularization of some of the failure paths to hopefully provide consistent failure handling, as well as reduced code size. Added the ability to interrupt the d./usr/opt/bin/ 40775 0 3 0 5555546047 6330 ialing. Changed the call to 'ttopen' to pass the address of 'local' rather than it's value. Close the line rather than hang it up on failures, since this might get around some unnecessary problems caused by trying to re-open it. It is believed that every function that "needs" the line does an explicit call to 'ttopen' anyway. Declare handlers AFTER establishing "jump vector" for them. Change success message to "Call competed" and beep the bell, if quiet is not enabled. CKUSCR.C: Changed statso if desired, rather than telling you what command to use to do it. Make a change to 'conola' as was done for CKVTIO if it won't break anything, and then modify the corresponding arrays. CKUKER.BWR: When modifying or writing KERMIT code, do NOT pass a routine (e.g., "signal") the address of a static function. Doing so may break VENIX code mapping. If you must pass the address of the routine, make it global and pick a "non-generic" name for it that will hopefully be unique and yet informative. ed for use with VAX-C V1, modify the CKCDEB.H file. , you may need to use a lower baud rate or shorter send packets when transferring from your "terminal" to the host. Some LAT software doesn't expect "fast typing" from the terminal direction. VMS VAX-C V2 allows DEFINEs by a command line qualifer, and CKVKER.COM makes use of this to include debugging and transaction logging code if it believes that VAX-C V2 is being used. VAX-C V1 had no such feature. If you want the DEBUG and TLOG symbols defin Change some of the function names in CKxTIO to use the name "string" when a new-line is not implied, and "line" when it is. Current usage of the word "line" is sometimes misleading. A control-S typed at the keyboard doesn't always seem to "take" when doing terminal emulation under PRO/VENIX V2. Perhaps other systems as well? PRO/VENIX V2 (and some other systems) are having DTR-dropping problems. With PRO/VENIX V2, a workaround is to get the system to ignore the modem control signals and treat th./usr/opt/bin/kermit/KERMIT_INFO 644 0 3 16253 5555215770 11416 e line as a direct line by issuing a "setline -d xxx" command, where "xxx" is the device node (e.g., com1). KERMIT under PRO/VENIX V2 (and probably other systems) doesn't find long (?) file names (e.g., ckvker.com.dif, ckvmak.com.dif) when doing a "send *.dif", even with file names set to literal locally. A "dir *.com.dif" shows them there, and they can be sent individually. The VMS C-Kermit, unlike the BLISS-KERMIT, is NOT interruptable, either with ^C or ^Y. The latter can be interrupted by tw For your convenience, and also to facilitate support-related activities, a copy of KERMIT is included in this distribution. KERMIT is a terminal emulator and file transfer program, capable of transferring text and binary files with error checking and recovery. KERMIT was developed at the Columbia University Center for Computing Activities, and carries the following copyright notice: Copyright (c) 1985, Trustees of Columbia University in o (?) ^Ys. The "REMOTE xxx" commands to VMS C-KERMIT do not appear to work, nor does "! xxx" locally from VMS C-Kermit. A problem with the "system" call or subprocess spawning is suspected. VMS C-KERMIT is less efficient than BLISS-KERMIT, and may require the use of lower baud rates or shorter send packets when sending TO it. KERMIT under PRO/VENIX V2 on the PRO 350 is (not suprisingly) less responsive than on the PRO 380, and may necessitate the use of lower baud rates or shorter packets. If the City of New York. Permission is granted to any individual or institution to use, copy, or redistribute this software so long as it is not sold for profit, provided this copyright notice is retained. Note that no support of KERMIT is provided by Digital Equipment Corporation. Also note that this is a preliminary version of KERMIT, that changes are still being made to it, and that you may encounter some problems with\r and/or \n from each line and for an explicit \r\n. 'hack_vms_open_console' added to allow display of command-line help. --------------------------------------------------------------------------- The following changes were NOT made, but it is suggested that somebody do so. CKUFIO.C: You should probably add debugging statements to ZLTOR and ZRTOL in CKUFIO as was done in CKVFIO. CKUTIO.C: It would be "friendlier" if the lock-checking code asked you if you wanted to remove the file, and then did using LAT (Local Area Transport) terminal connections, you may need to use a lower baud rate or shorter send packets when transferring from your "terminal" to the host. Some LAT software doesn't expect "fast typing" from the terminal direction. VMS VAX-C V2 allows DEFINEs by a command line qualifer, and CKVKER.COM makes use of this to include debugging and transaction logging code if it believes that VAX-C V2 is being used. VAX-C V1 had no such feature. If you want the DEBUG and TLOG symbols defin it. You may write to the following address to inquire about obtaining an up-to-date collection of Kermit programs: Kermit Distribution Columbia University Center for Computing Activities 612 West 115th Street New York, New York 10025 The KERMIT distribution you are receiving includes two diskettes, both in tar(1) format. The first one, labelled "KERMIT 4C(053)+ diskette #1", contains sources and related files for building C-Kercan then use KERMIT to get updated sources or binaries of itself from your Professional, from dial-in networks, etc. In addition to information in the KERMIT files included in the kit (e.g., ckaaaa.hlp, ckuker.bwr, DECnotes), you should note the following when using KERMIT with PRO/VENIX V2.0: o When using KERMIT to do terminal emulation, type Control-S to "freeze" the display and Control-Q to restore it, rather than usingmit on a UNIX or UNIX-like system. The second one, labelled "KERMIT 4C(053)+ diskette #2", contains an executable KERMIT image for use with PRO/VENIX V2.0, some documentation on using and building KERMIT, and also additional sources and related files for building C-Kermit for VMS. For information on using and building KERMIT, change your default directory if desired using cd(1), insert the second diskette in drive zero, and issue the following co the HOLD SCREEN key. o To build a version of KERMIT that will run on both the Professional 380 and the Professional 350, extract all the files from the first diskette, rename ckuker.mak to makefile, and issue a "make sys3nid" command. make(1) will produce an executable file named "wermit", which you can rename to /usr/bin/kermit after testing it. o If using a Professional 380, you may inmmand: tar xvf /dev/f0 ckaaaa.hlp Then use more(1), lp(1), or some other utility, to read the ckaaaa.hlp file that you just extracted from the diskette. To extract the executable KERMIT for use with PRO/VENIX V2.0 from the kit, insert the second diskette in drive zero and issue the following command: (cd /usr/bin; tar xvf /dev/f0 kermit) This will place the executable file in the /usr/bin directory, which is normally included in the stead issue a "make sys3" command to produce a version of KERMIT with slightly better performance, and also one that can be debugged using adb(1). KERMIT cannot easily be debugged on the Professional 350 because adb cannot be used with code-mapped programs. o The C optimizer will issue a warning about running out of space when compiling ckuus2.c. Do not be concerned. search list specified by the PATH variable. The file can be used on both the Professional 380 and the Professional 350. Page 2 If you wish to use KERMIT to do file transfers, you will need to get a version of KERMIT running on the host as well. The easiest way is probably to get a magnetic tape from Columbia, or possibly from a users' group or from a network (e.g., USENET). You can also o The linker, ld(1), will issue a warning about switching to a -m option when "wermit" is linked using a "make sys3nid" command. Again, do not be concerned. In addition to information in the KERMIT files included in the kit you should note the following when using KERMIT with VMS: o Contrary to the file-naming conventions mentioned in CKAAAA.HLP, VMS C-KERMIT is built using some of the "UNIX" files as well asend the C sources, assuming they are appropriate, from your Professional to the host. Send them to the host using cu(1), which does no error checking. Then either send them again (while maintaining the first set) and compare the second set with the first set and correct any problems, or use the sum(1) command (if available) on the local and remote copies to see if any of the files need to be resent. Once this bootstrapping procedure is completed, you s the VMS-specific ones. Page 3 o If you have problems running CKWART, try compiling CKWART.C without optimization. Alternatively, you can omit the use of CKWART and use the CKCPRO.C file that is included in the kit. o VMS C-KERMIT appears not to be interruptable. You will have to send it a FINISH command from a local KERMIT, or abort the VMS process C-Kermit File Naming Conventions: (Version 4C, 30 May 1985) File names will be lowercase on Unix systems, and probably will be uppercase on other systems. C-Kermit file names are of the form: ck. where: is the file type: c: C language source h: Header file for C language source w: Wart preprocessor source, converted by Wart (or Lex) to a C program nr: Nroff/Troff text formatter source mss: Scribe text formatter source doc: Documentation hlp: Help text res: resource info sav: settings saver module scr: screen (conflicts with name of script module, should be changed) sfp: standard file package sum: sumacc workarounds utl: utilities All the files necessary to build a particular implementation of C-Kermit are listed in the appropriate makefile or equivalent: Unix: ckuker.mak Macintosh: ckmker.mak VAX/VMS: ckvker.com (end of ckaaaa.hlp) redefinition package kkc: common defs between ckmkey and ckmker rem: remote server command modulefrom another terminal line. o There is also a BLISS-32 (and hence MACRO-32) version of KERMIT for VMS. It has been around a while and is somewhat faster and more stable than the C version. Contact Columbia University if you want a copy of it. Digital has recently made some changes to the KERMIT files and has sent those changes to Columbia University. This kit includes the changed versions, which have not yet been " upd: Program change log bwr: A "beware" file - list of known bugs, restrictions ann: The text of an announcement of a particular version bld: Instructions for building mak: A Unix Makefile (should be renamed to "makefile") com: (VMS only) a DCL command procedure is a single character to tell what system the file applies to: a: Descriptive material, documentation c: All systems with C compilers m: Macintosh u: Unix or systems that simulate (some features of) Unix v: VAX/VMS officially" accepted by Columbia. The DECnotes file on the second diskette contains some information that was sent to Columbia about the changes that Digital has made, and also includes some problem reports, suggestions, etc. KERMIT now supports Digital's DF03-AC, DF100 series, and DF200 series modems. You may redial the last number dialed on the DF100 and DF200 modems by simply issuing the DIAL command without any arguments. You can also store dialing stw: Wart (really belongs in 'c' category, but...) is mnemonic (up to 3 characters) for what's in the file aaa: A "read-me" file, like this one cmd: Command parsing con: Connect command deb: Debug/Transaction Log formats, Typedefs dia: Modem/Dialer control fio: System-depdendent File I/O fns: Protocol support functions fn2: More protocol support functions ker: General C-Kermit definitions, information, documentation mai: Main program pro: Protocol scr: Script command tio: Syrings in the modem's memory and invoke them from KERMIT (e.g., DIAL $WORK, DIAL B). UNIX is a trademark of AT&T. VENIX is a trademark of VenturCom, Inc. igital has made, and also includes some problem reports, suggestions, etc. KERMIT now supports Digital's DF03-AC, DF100 series, and DF200 series modems. You may redial the last number dialed on the DF100 and DF200 modems by simply issuing the DIAL command without any arguments. You can also store dialing ststem-dependent terminal i/o & control and interrupt handing usr: User interface us2: More user interface us3: Still more user interface Examples: ckaaaa.hlp - This file ckufio.c - File i/o for Unix ckmtio.c - Terminal i/o for Macintosh ckuker.mss - Scribe source for for Unix C-Kermit Kermit User Guide chapter ckuker.nr - Nroff source file for Unix C-Kermit man page ckuker.mak - Makefile for building Unix C-Kermit (rename to makefile) ckmker.mak - Makefile for building Macintosh C-Kermit under U./usr/opt/bin/kermit/ckaaaa.hlp 644 0 3 5633 5555215770 11553 nix/SUMACC Macintosh Kermit adds a few additional items to this list: hqx: binhex'd Macintosh resource (binhex version 4) sed: sed script for massaging ckcpro.c to make it smaller rc: rmaker input file (text) rsrc: (or rsr) 8-bit binary Macintosh resource def: Macintosh definitions header key: key redefinition package ke2: more key redefinition package ke3: still more key redefinition package kkc: common defs between ckmkey and ckmker rem: remote server command modules: - Acts as server - Talks to server - All packet encoding and error checking options are provided - File transfer interruption - Filename collision avoidance - Binary and text file transfer . Modular construction for easy portability to other systems . An interactive command parser as well as Unix-style command line arguments . Command and initialization files . Piped operation . Improved terminal connect, with optional logging . Logs for debugging, packets, and transactions . Communication wiease let me know so I can tell you whether someone else is already at work on the same thing, and perhaps put you in touch. The files are on CU20B as KER:CK*.*, available via anonymous FTP. The file CKERMI.DOC provides user-level documentation as well as a description of the program organization and hints for adapting it to new systems. Within several days the files should also be available on BITNET via KERMSRV (to get started with KERMSRV, type SMSG RSCS MSG CUVMA KERMSRV HELP), and to Unix systems viath IBM mainframes Several items on the wish list were not done for lack of time. They will probably be added in the future: . File attributes . Command macros . Login scripts . Raw file transmit The new program is called "C-Kermit" because it is intended as a basis for Kermit programs for any systems that have C compilers. Its version number is 4.0, to distinguish it from earlier releases of Unix Kermit, the most recent of which was 3.0. This prerelease test version of the program runs only under Berk UUCP from Oklahoma State University, Stillwater, OK. Here's how to UUCP to OK State: You need to set up "okstate" as a site in your "L.sys" UUCP dialing file using the information listed below. You can then issue the following command on your system: uucp okstate\!/u/kermit/ck\* /usr/spool/uucppublic (this example will retrieve the new Unix version of Kermit) The "/usr/spool/uucppublic" is chosen as the destination on your system since the destination must be WIDE OPEN (drwxrwxrwx) to everyone. ./usr/opt/bin/kermit/ckc40.ann 644 0 3 12276 5555215771 11271 eley Unix 4.2. We also intend to bring it to the following systems within the coming weeks: . DEC Pro-350 and Pro-380 with Venix (a Unix v7 derivative) . Amdahl UTS on IBM 370-series mainframes . Apple Macintosh (maybe) Support for other systems will have to be added elsewhere. The program is being "pre-released" at this time for two reasons: 1. It seems to be perfectly usable on Berkeley 4.2 systems, and is an improvement over the previous version. 2. The modular design may need some adjustment to 5-Feb-85 16:10:22-EST,5392;000000000000 Mail-From: SY.FDC created at 5-Feb-85 16:09:41 Date: Tue 5 Feb 85 16:09:41-EST From: Frank da Cruz Subject: Info-Kermit Digest V2 #1 -- New Unix Kermit To: Info-Kermit-Members@CU20B.ARPA cc: Info-Unix@BRL-TGR.ARPA Reply-To: Info-Kermit@CU20B Queries-To: Info-Kermit-Request@CU20B Info-Kermit Digest Tue, 5 Feb 1985 Volume 2 : Number 1 ANNOUNCEMENTS - New Unix Kermit Available for Testing ----------------------------------accommodate certain systems. Before a great deal of additional coding is done, it is highly desirable to get the design and specification of the system-dependent modules stable. Therefore, please take the files, read the documentation, try running the program on your Berkeley Unix system if you have one, and send comments or bug reports to me as soon as you can. If you have a Unix system that is not Berkeley Unix, or a non-Unix system with a C compiler, please take a look at the system-dependent mod------------------------------------ My apologies for the long delay since the last issue of the Info-Kermit Digest, which was Vol.1, No.46, dated 31 December 1984. This first issue of Volume 2 is to announce a test release of the new Unix Kermit. In subsequent issues, I'll attempt to catch up on other overdue items. A new Kermit program has been written in C, initially for 4.2 Berkeley Unix. The features of this program include: . Full implementation of the Kermit protocol, except for Attribute packetules to see how they could be adapted to your system; again, if you have any suggestions or criticisms of the design, please let me know. I'm particularly interested in issues of portability. After a round or two of this, perhaps the design can be agreed upon, and then those who would like to contribute support for Version 6, System III, System V, Xenix, PC/IX, etc etc, can do so without fear of running into other people's changes for other systems. Before attempting to adapt C-Kermit to a new system, pl./usr/opt/bin/kermit/ckc42.ann 644 0 3 6004 5555215771 11243 ut fear that the program will have to be completely reorganized (again). The only systems supported by C-Kermit so far are Unix systems; rather than create a separate ckx and ckz module for each such system (since these systems tend to differ in small places, but still have much in common), conditional compilation was used within these modules. If C-Kermit is to be adapted to non-Unix systems, then a full replacement of the ckx and/or ckz modules is probably indicated. This is what we will probably do in 6-Mar-85 21:53:46-EST,3104;000000000000 Mail-From: SY.FDC created at 6-Mar-85 21:53:20 Date: Wed 6 Mar 85 21:53:20-EST From: Frank da Cruz Subject: Info-Kermit Digest V2 #9, C-Kermit Release #2 To: Info-Kermit@CU20B.ARPA, Info-Micro@BRL-VGR.ARPA, Info-Unix@BRL.ARPA Reply-To: Info-Kermit@CU20B Queries-To: Info-Kermit-Request@CU20B Info-Kermit Digest Wed, 6 Mar 1985 Volume 2 : Number 9 Second Pre-Release of C-Kermit for Unix ------------------------- bringing the program up on the Macintosh. The files are available via anonymous FTP from Internet host CU20B (Internet number 192.5.43.128) as KER:CK*.*. They will appear at okstate (for uucp'ing) and on KERMSRV (BITnet) shortly. If you plan to adapt this program to a new system, be sure to let me know quickly so I can prevent duplication of effort and can put people with similar interests in touch with each other. ------------------------------ End of Info-Kermit Digest ************************* ------------------------------------------------- Date: Wed 6 Mar 85 21:43:12-EST From: Frank da Cruz Subject: Second Pre-Release of C-Kermit for Unix To: Info-Kermit@CU20B This is to announce the second "pre-release" of C-Kermit. The first pre-release (version 4.0) occurred a month ago; the program included support only for Berkeley Unix. This new release (4.2) includes support for: . 4.x Berkeley Unix (VAX, SUN) . Generic AT&T System III, System V . Microsoft Xenix for the PC/AT . Interact--- nging the program up on the Macintosh. The files are available via anonymous FTP from Internet host CU20B (Internet number 192.5.43.128) as KER:CK*.*. They will appear at okstate (for uucp'ing) and on KERMSRV (BITnet) shortly. If you plan to adapt this program to a new system, be sure to let me know quickly so I can prevent duplication of effort and can put people with similar interests in touch with each other. ------------------------------ End of Info-Kermit Digest ************************* ---- You should not remove files from your uucppublic until the entire transfer is complete including any redials that are necessary. If you do remove some files our system may retransmit them, resulting in a higher phone bill for you. -- UUCP Login information -- Site Name : okstate Phone number : (405) 624-6953 (one line only) Login name : uucpker Password : thefrog Hours : 10:00pm - 10:00am central time (7 day per week) Problem : okstate!uucp-support (UUCP) reports : uuive on the PC/XT (PC/IX) and other systems . DEC Professional 3xx with Venix 1.0 . NCR Tower All reported bugs have been fixed (or at least fixes have been attempted), and many of the restrictions lifted. "Dial" and "script" commands have been added, along with code to support modem control and dialers, uucp line locking, and the like. The program itself has been somewhat reorganized to be more adaptable to small environments: the larger modules have been split; long character strings have been shortenedcp-support%okstate@csnet-relay (ARPA) The phone number is for 300/1200 baud (bell compatible). ------------------------------ End of Info-Kermit Digest ************************* ------- resulting in a higher phone bill for you. -- UUCP Login information -- Site Name : okstate Phone number : (405) 624-6953 (one line only) Login name : uucpker Password : thefrog Hours : 10:00pm - 10:00am central time (7 day per week) Problem : okstate!uucp-support (UUCP) reports : uu. Most of the new work was done by Herm Fischer of Litton Data Systems, Van Nuys CA (HFISCHER@USC-ISIB), and there were also contributions from many others in the form of bug reports and/or fixes. NCR Tower support came from John Bray at Auburn University. The new makefile (distributed as CKERMI.MAK) embodies procedures for building all the different versions. Since the program now runs on a variety computers, large and small, it would seem relatively safe to begin adding support for other systems witho30-May-85 19:29:36-EDT,5278;000000000000 Mail-From: SY.FDC created at 30-May-85 19:29:10 Date: Thu 30 May 85 19:29:10-EDT From: Frank da Cruz Subject: Info-Kermit Digest V2 #32 To: Info-Kermit@CU20B.ARPA Reply-To: Info-Kermit@CU20B Queries-To: Info-Kermit-Request@CU20B Info-Kermit Digest Thu, 30 May 1985 Volume 2 : Number 32 C-Kermit Version 4C for Unix, VMS, and the Macintosh ---------------------------------------------------------------------- This is to annmeters in protocol settings dialog. (A complete list of Macintosh updates is in CKMKER.UPD.) The Macintosh implementation is built using the Stanford University Medical Center's SUMACC cross development system, which runs on VAX computers under Unix (or VMS with Eunice). MacKermit fits on a standard 128K Mac, but just barely. The key configurator is a separate program, because this additional functionality added to Kermit itself would not fit into a 128K Mac. The memory restriction is a problem onlyounce version 4C of C-Kermit for Unix, the Apple Macintosh, and VAX/VMS. C-Kermit is a version of Kermit written modularly in C, implementing the entire Kermit file transfer protocol (except for attribute packets), designed for modularity and transportability. This version of Kermit has been in "field test" for about a month, and is being released at this time because most of the major goals for it have been met, namely: . Most known bugs in release 4.2 fixed . Support for new systems added and tested . because the SUMACC system cannot produce swappable segments. If someone wants to take the trouble to translate the Macintosh-specific modules to one of the native Macintosh C development systems that supports segment loading, then additional functionality can be added without worrying about exceeding memory. (If you want to volunteer to do this, please contact us first!) The VAX/VMS implementation is more an exercise in portability than a real Kermit implementation. It mostly works, but does not possesA few new functions incorporated At this point, C-Kermit should be considered a fairly stable base upon which to add support for new systems -- the interface between the system-dependent and portable modules seems to have settled down -- and to add new features. A few highlights: Systems Supported: . Berkeley Unix 4.1 and 4.2 (but not yet 2.9) . AT&T Unix System III and derivatives (Xenix/286, PC/IX, etc) . AT&T Unix System V and derivatives . Bell Unix Version 7 . DEC Pro-350 with Venix Versis the intimate knowledge of the VMS environment that the Stevens Institute of Technology Bliss language implementation has. Still, it may be useful to sites that do not have a Bliss compiler but do have the VAX-11 C compiler. Documentation includes a Unix Kermit manual (CKUKER.DOC, Scribe source CKUKER.MSS), a Macintosh Kermit manual (CKMKER.DOC,.MSS), various help files (CK*.HLP), program update histories (CK*.UPD), and "beware" files (CK*.BWR). The Unix and Macintosh manuals are new chapters for the Keron 1 . NCR Tower 1632, OS 1.02 . VAX/VMS . Apple Macintosh New features since version 4.2, common to all implementations: . Many features redesigned to promote portability. . Compile-time options to eliminate debugging and logging code to reduce size and boost performance. . Packet parameters separately settable for inbound & outbound packets. . Protocol operation improved here & there, many bugs fixed. New features for Unix implementation (and VMS): . Command line continuation . Supmit User Guide, but the Guide itself has not yet been reissued to include these chapters; a new revision of the manual will appear after MS-DOS Kermit 2.28 is announced. The files are in KER:CK*.*, available from host CU20B via anonymous FTP on the Internet. Within a few days, they will also be available from BITnet via KERMSRV at CUVMA. In addition, Macintosh Kermit diskettes will be sent out to selected sites (Apple University Consortium schools and a few others; our capacity to reproduce diskettes is ./usr/opt/bin/kermit/ckc4c.ann 644 0 3 12127 5555215772 11350 port for additional modem-dialers . Improved performance for Pro/Venix . Better (but still not perfect) determination of local vs remote mode in 'set line' . User's preferred shell is used for "!" commands, rather than always sh. (A complete list of Unix/VMS updates is in CKUKER.UPD.) New Features (since 0.7) for Macintosh: . A key redefinition package is now provided. . I/O errors, such as disk full or write protected, now handled better. . Separate boxes for inbound & outbound packet paralimited, so we can't do mass mailings). And of course, the new files will be included henceforth on our Kermit distribution tapes. The files that had been in for testing purposes have been removed. Thanks to all the folks on the network who participated in the test and helped to work out the bugs, particularly Dave Tweten (AMES-NAS), Marco Papa (USC), Dan Schullman (DEC), Lawrence Afrin (Clemson U), and many others too numerous to mention. Please report any problems to Info-Kermit@CU20B. -----uld use "make sys3nid". For other Unix systems, see the makefile. VAX/VMS: support added by Stew Rubenstein at Harvard and Martin Minow at DEC. Has to be built with CKV*.COM, needs development to handle all the VMS/RMS features and to improve performance. Has its own build procedure. See CKV*.*. Macintosh: Support added at Columbia, has own makefile, etc. See CKM*.*. -- BUG LIST -- General problems: - Too many features, program is too big, source is too large to fit on some disks. Needs t------------------------- End of Info-Kermit Digest ************************* ------- henceforth on our Kermit distribution tapes. The files that had been in for testing purposes have been removed. Thanks to all the folks on the network who participated in the test and helped to work out the bugs, particularly Dave Tweten (AMES-NAS), Marco Papa (USC), Dan Schullman (DEC), Lawrence Afrin (Clemson U), and many others too numerous to mention. Please report any problems to Info-Kermit@CU20B. -----o be reorganized so that a minimal Kermit can be built for any system, and then frills can be added on if desired -- interactive command parser, help strings, dial command, script command, etc. - There's not a full enough set of features available from command line invocation. Commands like "bye" are missing. - Conditionalizations are not done clearly. In some cases it might be better to have compile-time flags for features, rather than systems, or generic system names, rather than specific ve./usr/opt/bin/kermit/ckuker.bwr 644 0 3 26431 5555215773 11667 ndor/machine names, to avoid excessive nesting of compile-time variables. Note that constructions like "#ifdef FOO | BAR" are avoided because many compilers don't understand them; the alternative is to repeat code under different conditionals (to accomplish an OR) or to include it within nested conditionals (AND), sometimes applying De Morgan's law to achieve the desired result... - It might also be better to have a -D in the makefile for the system name, rather than hard-coding it into the ckC-Kermit Version 4C(052): Status, Bugs, and Problems As of: 18 June 1985 Note: Version numbering system changed from decimal notation (like 4.2) to number-letter notation (like 4C) to avoid confusion with Berkeley Unix version numbers. See ckuker.upd for list of bugs fixed since 4C(050). -- SUPPORT FOR DIFFERENT SYSTEMS: -- 4.2BSD: "make bsd" works. Should work on VAX, SUN, and Pyramid. 4.1BSD: "make bsd" should work for this too (did not in C-Kermit v4.2). 4.3BSD: untested, "make bsd" should work. [xz]*.c modules. - Program's return code might be wrong in some cases (in 4.0, it was always zero; in 4C some attempt is made to return correct codes for failure and success). Also see note about VMS return codes, below. - The default prompt might be set from the makefile with -DPROMPT. - Need more 'set' commands: . set incomplete (file disposition) {keep,discard} . set retry-threshhold n - The program could be a little bit less cavalier in its treatment of files. For instance, when receiving2.9BSD: Support is in but untested: "make bsd29" Version 7: works ok on the systems tested so far using "make v7", but some fiddling with the make file is necessary for proc table definitions; see the makefile and also ckuv7.hlp for details. PC/IX: should work ok with "make pcix". ATT 3Bx systems: should work ok with "make att3bx". Most other System V or System III based systems can build a working Kermit with "make sys3" PDP-11's running a System III or V based Unix and which have no I & D space sho a file (with "warning" turned off) it will overwrite any existing file of the same name. That's ok, but what if the user types ^F or ^B to interrupt the transfer? This does not save the existing file -- it's already been destroyed by the open() of the new copy, which in turn is discarded as a result of the interruption. Maybe Kermit should always make a temporary, unique name for incoming files, and then rename them to their real names only after the transfer is complete. But that's no gorectory. - It would also be desirable to have a way of specifying alternate startup files on the command line, so that aliases could be defined for running Kermit on certain lines, at certain speeds, etc. - A deeper problem with the initialization files is that the file is only taken when the program enters interactive command dialog. To be consistent, it should also be taken when the program is run via command line arguments. - Some users report that it would be more desirable to have an error you use EXTA, EXTB), and even when they do, the program has no way of knowing whether a specific port serial controller supports those rates. - UUCP Lock files are left behind if the program crashes or is interrupted in a way that is not trapped. - Use of RAW|TANDEM in 4.1 BSD gives only unidirectional, not bidirectional, flow control -- xoff's from the terminal are treated as data rather than control signals. Symptom: possible loss of characters during CONNECT. ckudia.c: - Some systems do nod on systems (like the Macintosh) that don't have disk space to burn. - Local versus remote mode is not, and probably can not, be determined automatically upon startup. For instance, on a workstation (e.g. a DEC Pro-380/Venix) upon which the user usually logs on through the console device, the program is configured to be in local mode by default. However, if a user logs in to this workstation through the "back port", the program doesn't know it should be in remote mode. On some systems, likduring execution of a take file return directly to command level, rather than pop to the invoking take file (why?). - Some users report that the program should make no internal distinction between running in foreground or background (why?). - Since kermit opens and closes the communication line with each command line invocation, it is not convenient to use it in scripts in which it is repeatedly invoked (e.g. a print spooler). - Variable names are sometimes confusing, especially the send/receive Pro/Venix V1, ttyname(0) returns a meaningful string like "/dev/console", from which one can tell if the job is remote. Others, like bsd, just return the tty number, like "/dev/ttyi6", from which you can't tell anything. (Note, System V has a nice function ctermid() which helps a lot, but other Unixes don't have it). - Local mode file transfer display could be improved. On tty-style displays, the "percent done" could be shown by doing something like "0...1...2...3...4...5...6...7...8...e parameter pairs (spsiz/rpsize, mystch/stchr, npad/mypadn, rtimo/timint, etc). This is mostly history... they tend to agree with the names used in other Kermit programs. Still, they should probably be changed. Ditto for some of the procedure names. - When the C-Kermit server is given a host command (or even some generic commands like 'space'), it might have to think for a long time before returning output. In this case, it should set a timer while waiting for input from the fork and when9...". - Interrupt handling is not done particularly well, and if the program crashes or is halted while it has the terminal in a not-normal mode during command parsing or file transfer, the terminal mode is not restored, and lock files are not cleaned up. - The shell's interrupt, delete, and kill characters may interfere or conflict with those used by the Kermit command parser. In any case, there is no way to change Kermit's editing characters to conform to user's taste. - "status" command neever the timer goes off, it should send a null data packet to prevent the other Kermit from timing out. - When connecting back to C-Kermit after a transaction, or after finishing the server, it may be necessary to type a ^Q to clear up an XOFF deadlock. There's not much the Kermit program can do about this... ckufio.c: - ckufio currently goes to a lot of trouble to traverse the directory in order to expand "*" and "?" in wildcards. Maybe it should just fork the user's customary shell and have eds timing info, maybe also effective baud rate. - Status info should be updated only for real file transfers, not transactions like "finish". - "!" command requires a space after, contrary to the Unix user's normal expectation. - Many people have asked for a system-wide startup file similar to the user's .kermrc file, perhaps with a conditional way to escape from it if the user has her own .kermrc file. This notion might be extended to include the entire hierarchy system -- home -- current diit do the expansion. This would allow fancier filespecs to be given, like "~/ck*.[cwh]". But it would slow down features like filename completion and menus in the interactive command parser. (Find out how Unix FTP does it...) ckvfio.c: - zltor does not strip version numbers from outbound filenames. ckutio.c: - There should be a timed option for ttoc(), for use during connect. - There's no good way to select baud rates higher than 9600. Most Unix systems don't supply symbols for them (unlessheck for keyboard "interrupts" during the send-init process, set c[xz]seen. But doing this will make the state table a lot more complicated... Maybe change ^C trap to get back to command mode rather than exit the program. - When parity is in use and the other Kermit cannot do 8th bit prefixing, the user is not warned that binary files will not be transferred correctly. This can be easily remedied by calling screen(SCR_WM,...) after the send-init exchange has occurred, but this would make a dit, a (not proprietary) lex-like preprocessor for C. System-dependent primitive func- tions are isolated into separately compiled modules so that the program should be easily portable among Unix systems and also to non-Unix systems that have C compilers. This document applies to Unix implementations of C-Kermit. Unix Kermit Capabilities At A Glance: Local operation: Yes Remote operation: Yes Login scripts: Yes Transfer text files: alog box pop up during protocol on the Macintosh... ckucon.c: - Doesn't do any particular kind of terminal emulation. It wasn't meant to. Filters can be used for this. Or a replacement module can be written (as has been done for the Macintosh). - Performance is poor on systems that can't check the input buffer. See the horrendous code that was added for V7 to get around this (peeking into tty buffers in kernal memory). - As structured, connect mode can't include commands to toggle logging o Yes Transfer binary files: Yes Wildcard send: Yes File transfer interruption: Yes Filename collision avoidance: Yes Can time out: Yes 8th-bit prefixing: Yes Repeat count prefixing: Yes Alternate block checks: Yes Terminal emulation: Yes Communication settings: Yes Transmit BREAK: Yes Support for dialout modems: Yes IBM mainfot allow users to manipulate dialers directly. - Should allow user to break out of a dial command that is obviously going to fail (e.g. user entered wrong number). - Should support a "phone book" (this would actually go in ckuus*.c). ckuus*.c: - The send command should have the same syntax as the get command to allow multiple filenames to be given on a single line: send foo bar baz <-- send all these files or: send Local file(s) to send: foo bar baz Name(s) to send it/them under: x y n and off or to change settings, because the fork that reads keyboard input doesn't share variables with the fork that does port i/o. - The program may become stuck if the two sides get into an XOFF deadlock. There should probably be a timer around (or in) the ttoc() call. systems that can't check the input buffer. See the horrendous code that was added for V7 to get around this (peeking into tty buffers in kernal memory). - As structured, connect mode can't include commands to toggle logging oz The latter form could be risky, of course, when mixed with wildcards, and in any case would require major rewriting of many parts of the program. - Certain kinds of quoting don't work, e.g. echo "this \07 should ring". - Baud rate selection currently requires user to type a number, which is then verified against a system-dependent table. Better to have a baud rate keyword (cmkey) table defined in the system-dependent module, so user can abbreviate (e.g. '9' for '9600'). - No way to put comm./usr/opt/bin/kermit/ckuker.doc 644 0 3 253343 5555216002 11650 ents in take files. Cure: Add an invisible ";" or "#" "command" for full-line comments. Trailing comments would be harder. - ckuus2.c makes the C optimizer run out of space under PC/IX and some other systems. Protocol (ckcpro.w, ckcfn*.c): - No way to interrupt a protocol transaction until after it starts successfully. For instance, no way to interrupt the timeouts and retransmissions of the initial packet when the other side is not responding, except for killing the whole program. Cure: cUNIX KERMIT (Chapter of Kermit User Guide) Page 118 9. UNIX KERMIT Program: Frank da Cruz, Bill Catchings, Jeff Damens, Columbia University; Herm Fischer, Encino CA; contributions by many others. Language: C Documentation: Frank da Cruz, Herm Fischer Version: 4C(052) Date: June 1985 C-Kermit is a completely new implementation of Kermit, written modularly and transportably in C. The protocol state transition table is written in warle transfer functionality of UUCP among heterogeneous operating systems, including the use of scheduled (e.g. late night) unattended operation. 9.1. The Unix File System Consult your Unix manual for details about the file system under your version of Unix. For the purposes of Kermit, several things are worth briefly noting. Unix files generally have lowercase names, possibly containing one or more dots or other special characters. Unix directories are tree-structured. Directory levels are septe S Send Initiate UNIX KERMIT Page 120 F File Header G Generic Server Command C Remote Host Command N Negative Acknowledgement (NAK) E Fatal Error T Indicates a timeout occurred Q Indicates an invalid packet was received % Indicates a packet was retransmitted You may type (to stdin) certain "interrupt" commands during file transfer: Control-F: Interrupt the current File, and go on to the next (if any).arated by "/" characters. For example, /usr/foo/bar denotes the file bar in the directory /usr/foo. Wildcard or "meta" characters allow groups of files to be specified. "*" matches any string; "?" matches any single character. When C-Kermit is invoked with file arguments specified on the Unix command line, the Unix shell (Bourne Shell, C-Shell, etc) expands the meta characters itself, and in this case a wider variety is available. For example, kermit -s ~/ck[x-z]*.[ch] is expanded by Control-B: Interrupt the entire Batch of files, terminate the transaction. Control-R: Resend the current packet Control-A: Display a status report for the current transaction. These interrupt characters differ from the ones used in other Kermit implemen- tations to avoid conflict with Unix shell interrupt characters. With System III and System V implementations of Unix, interrupt commands must be preceeded by the 'connect' escape character (e.g. control-\). CAUTION: If Control-F the Berkeley C-Shell into a list of all the files in the user's home directory (~/) that start with the characters "ck", followed by a single character x, y, or z, followed by zero or more characters, followed by a dot, followed by one of the characters c or h. Internally, the C-Kermit program it- self expands only the "*" and "?" meta characters. Unix files are linear streams of 8-bit bytes. Text files consist of 7-bit AS- CII characters, with the high-order bit off (0), and lines separated by or Control-B is used to cancel an incoming file, and a file of the same name previously existed, and the "file warning" feature is not enabled, then the previous copy of the file will dis- appear. 9.3. Command Line Operation The C-Kermit command line syntax has been changed from that of earlier releases of Unix Kermit to conform to the "Proposed Syntax Standards for Unix System Commands" put forth by Kathy Hemenway and Helene Armitage of AT&T Bell Laboratories in Unix/World,rame communication: Yes Transaction logging: Yes Session logging: Yes Debug logging: Yes Packet logging: Yes Act as server: Yes Talk to server: Yes Advanced server functions: Yes Local file management: Yes Command/Init files: Yes UUCP and multiuser line locking: Yes File attributes packets: No Command macros: the Unix newline character, which is linefeed (LF, ASCII 10). This distinguishes Unix text files from those on most other ASCII systems, in which lines are separated by a carriage-return linefeed sequence (CRLF, ASCII 13 followed by ASCII 10). Binary files are likely to contain data in the high bits of the file bytes, and are not treated in terms of lines. When transferring files, C-Kermit will convert between upper and lower case filenames and between LF and CRLF line terminators auto No Raw file transmit: No C-Kermit provides traditional Unix command line operation as well as inter- active command prompting and execution. The command line options provide ac- cess to a minimal subset of C-Kermit's capabilities; the interactive command set is far richer. UNIX KERMIT Page 119 On systems with dialout modems, C-Kermit can use its command file and login script facilities to replicate the fimatically, unless told to do otherwise. When binary files must be transferred, the program must be instructed not to perform LF/CRLF conversion (-i on the command line or "set file type binary" interactively; see below). 9.2. File Transfer If C-Kermit is in local mode, the screen (stdout) is continously updated to show the progress of the file transer. A dot is printed for every four data packets, other packets are shown by type: I Exchange Parameter Information R Receive Initia- '-' preceded and followed by whitespace means standard input. A group of bundled options may end with an option that has an argument. The following notation is used in command descriptions: fn A Unix file specification, possibly containing the "wildcard" charac- ters `*' or `?' (`*' matches all character strings, `?' matches any single character). fn1 A Unix file specification which may not contain `*' or `?'. rfn A remote file specification in the remote system'e or multiple files) to the indicated command, as in kermit -k | sort > sorted.stuff UNIX KERMIT Page 122 -a fn1 If you have specified a file transfer option, you may specify an alter- nate name for a single file with the -a option. For example, kermit -s foo -a bar sends the file foo telling the receiver that its name is bar. If more than one file arrives or is sent, only ts own syntax, which UNIX KERMIT Page 121 may denote a single file or a group of files. rfn1 A remote file specification which should denote only a single file. n A decimal number between 0 and 94. c A decimal number between 0 and 127 representing the value of an ASCII character. cc A decimal number between 0 and 31, or else exactly 127, representing the value of an ASCII control character. [ he first file is affected by the -a option: kermit -ra baz stores the first incoming file under the name baz. -x Begin server operation. May be used in either local or remote mode. Before proceeding, a few words about remote and local operation are necessary. C-Kermit is "local" if it is running on PC or workstation that you are using directly, or if it is running on a multiuser system and transferring files over an external communication line -- not your job's co] Any field in square braces is optional. {x,y,z} Alternatives are listed in curly braces. C-Kermit command line options may specify either actions or settings. If C-Kermit is invoked with a command line that specifies no actions, then it will issue a prompt and begin interactive dialog. Action options specify either protocol transactions or terminal connection. -s fn Send the specified file or files. If fn contains wildcard (meta) characters, the Unix shell expands it inntrolling terminal or con- sole. C-Kermit is remote if it is running on a multiuser system and transfer- ring files over its own controlling terminal's communication line, connected to your PC or workstation. If you are running C-Kermit on a PC, it is in local mode by default, with the "back port" designated for file transfer and terminal connection. If you are running C-Kermit on a multiuser (timesharing) system, it is in remote mode un- less you explicitly point it at an external line for file tto a list. If fn is '-' then kermit sends from standard input, which must come from a file: kermit -s - < foo.bar or a parallel process: ls -l | kermit -s - You cannot use this mechanism to send terminal typein. If you want to send a file whose name is "-" you can precede it with a path name, as in kermit -s ./- -r Receive a file or files. Wait passively for files to arrive. -k Receive (passively) a file orransfer or terminal connection. The following command sets C-Kermit's "mode": -l dev Line -- Specify a terminal line to use for file transfer and terminal connection, as in kermit -l /dev/ttyi5 When an external line is being used, you might also need some additional op- tions for successful communication with the remote system: -b n Baud -- Specify the baud rate for the line given in the -l option, as in kermit -l /dev/ttyi5 -b 9600 This optio Vol.1, No.3, 1984. The rules that apply are: - Command names must be between 2 and 9 characters ("kermit" is 6). - Command names must include lower case letters and digits only. - An option name is a single character. - Options are delimited by '-'. - Options with no arguments may be grouped (bundled) behind one delimiter. - Option-arguments cannot be optional. - Arguments immediately follow options, separated by whitespace. - The order of options does not matter. files, sending them to standard output. This option can be used in several ways: kermit -k Displays the incoming files on your screen; to be used only in "local mode" (see below). kermit -k > fn1 Sends the incoming file or files to the named file, fn1. If more than one file arrives, all are concatenated together into the single file fn1. kermit -k | command Pipes the incoming data (singln should always be included with the -l option, since the speed of an external line is not necessarily what you expect. -p x Parity -- e,o,m,s,n (even, odd, mark, space, or none). If parity is other than none, then the 8th-bit prefixing mechanism will be used for transferring 8-bit binary data, provided the opposite Kermit agrees. The default parity is none. -t Specifies half duplex, line turnaround with XON as the handshake character. Thes of the command line options. The command line may contain no more than one protocol action option. Files are sent with their own names, except that lowercase letters are raised to upper, pathnames are stripped off, certain special characters like (`~') and (`#') are changed to `X', and if the file name begins with a period, an `X' is inserted before it. Incoming files are stored under their own names except that uppercase letters are lowered, and, if -w was specified, a "generation number" following commands may be used only with a C-Kermit which is local -- ei- ther by default or else because the -l option has been specified. UNIX KERMIT Page 123 -g rfn Actively request a remote server to send the named file or files; rfn is a file specification in the remote host's own syntax. If fn happens to contain any special shell characters, like '*', these must be quoted, as in kermit -g xis appended to the name if it has the same name as an existing file which would otherwise be overwritten. If the -a option is included, then the same rules apply to its argument. The file transfer display shows any trans- formations performed upon filenames. During transmission, files are encoded as follows: - Control characters are converted to prefixed printables. - Sequences of repeated characters are collapsed via repeat counts, if UNIX KERMIT \*.\? -f Send a 'finish' command to a remote server. -c Establish a terminal connection over the specified or default com- munication line, before any protocol transaction takes place. Get back to the local system by typing the escape character (normally Control-Backslash) followed by the letter 'c'. -n Like -c, but after a protocol transaction takes place; -c and -n may both be used in the same command. The use of -n and -c is illustra Page 124 the other Kermit is also capable of repeated-character compression. - If parity is being used on the communication line, data characters with the 8th (parity) bit on are specially prefixed, provided the other Kermit is capable of 8th-bit prefixing; if not, 8-bit binary files cannot be successfully transferred. - Conversion is done between Unix newlines and carriage-return-linefeed sequences unless the -i option was specified. Commanted below. On a timesharing system, the -l and -b options will also have to be included with the -r, -k, or -s options if the other Kermit is on a remote system. Several other command-line options are provided: -i Specifies that files should be sent or received exactly "as is" with no conversions. This option is necessary for transmitting binary files. It may also be used to slightly boost efficiency in Unix-to-Unix trans- fers of text files by eliminating CRLF/d Line Examples: kermit -l /dev/ttyi5 -b 1200 -cn -r This command connects you to the system on the other end of ttyi5 at 1200 baud, where you presumably log in and run Kermit with a 'send' command. After you escape back, C-Kermit waits for a file (or files) to arrive. When the file transfer is completed, you are again connected to the remote system so that you can logout. kermit -l /dev/ttyi4 -b 1800 -cntp m -r -a foo This command is like the preceding one, except the remote system in newline conversion. -w Write-Protect -- Avoid filename collisions for incoming files. -q Quiet -- Suppress screen update during file transfer, for instance to allow a file transfer to proceed in the background. -d Debug -- Record debugging information in the file debug.log in the cur- rent directory. Use this option if you believe the program is mis- behaving, and show the resulting log to your local kermit maintainer. -h Help -- Display a brief synopsithis case uses half duplex communication with mark parity. The first file that arrives is stored under the name foo. kermit -l /dev/ttyi6 -b 9600 -c | tek This example uses Kermit to connect your terminal to the system at the other end of ttyi6. The C-Kermit terminal connection does not provide any particular terminal emulation, so C-Kermit's standard i/o is piped through a (hypothetical) program called tek, which performs (say) Tektronix emulation. kermit -l /dev/ttyi6 -b 9600les and all its subdirectories and all their files...) to standard output instead of to a tape; kermit receives this as standard input and sends it as a binary file. On the receiving system, in this case the local one, type (for instance): kermit -il /dev/ttyi5 -b 9600 -k | tar xf - Kermit receives the tar archive, and sends it via standard output to its own copy of tar, which extracts from it a replica of the original directory tree. A final example shows how a Unix compression utility might b-H) for this function. ^W (Control-W) -- Erase the rightmost word from the command line. ^U (Control-U) -- Erase the entire command. ^R (Control-R) -- Redisplay the current command. SP (Space) -- Delimits fields (keywords, filenames, numbers) within a com- mand. HT (Horizontal Tab) may also be used for this purpose. CR (Carriage Return) -- Enters the command for execution. LF (Linefeed) or FF (formfeed) may also be used for this purpose. \ (Backslash) -nf This command would be used to shut down a remote server and then connect to the remote system, in order to log out or to make further use of it. The -n option is invoked after -f (-c would have been invoked before). kermit -l /dev/ttyi6 -b 9600 -qg foo.\* & This command causes C-Kermit to be invoked in the background, getting a group of files from a remote server (note the quoting of the `*' character). No dis- play occurs on the screen, and the keyboard is not sampled for interruption coe used to speed up Kermit file transfers: compress file | kermit -is - (sender) kermit -ik | uncompress (receiver) UNIX KERMIT Page 126 Exit Status Codes: Unix Kermit returns an exit status of zero, except when a fatal error is en- countered, where the exit status is set to one. With background operation (e.g., `&' at end of invoking command line) driven by scripted interactive com- mands (redirected standard inputmmands. This allows other work to be done while file transfers proceed in the background. kermit -l /dev/ttyi6 -b 9600 -g foo.\* > foo.log < /dev/null & UNIX KERMIT Page 125 This command is like the previous one, except the file transfer display has been redirected to the file foo.log. Standard input is also redirected, to prevent C-Kermit from sampling it for interruption commands. kermit -iwx This command starts up C-Kerm and/or take files), any failed interactive command (such as failed dial or script attempt) causes the fatal error exit. 9.4. Interactive Operation C-Kermit's interactive command prompt is "C-Kermit>". In response to this prompt, you may type any valid command. C-Kermit executes the command and then prompts you for another command. The process continues until you instruct the program to terminate. Commands begin with a keyword, normally an English verb, such as "send". You may omit trailingit as a server. Files are transmitted with no newline/carriage-return-linefeed conversion; the -i option is necessary for bi- nary file transfer and useful for Unix-to-Unix transfers. Incoming files that have the same names as existing files are given new, unique names. kermit -l /dev/ttyi6 -b 9600 This command sets the communication line and speed. Since no action is specified, C-Kermit issues a prompt and enters an interactive dialog with you. Any settings given on the command line characters from any keyword, so long as you specify suf- ficient characters to distinguish it from any other keyword valid in that field. Certain commonly-used keywords (such as "send", "receive", "connect") have special non-unique abbreviations ("s" for "send", "r" for "receive", "c" for "connect"). Certain characters have special functions during typein of interactive com- mands: ? Question mark, typed at any point in a command, will produce a message explaining what remain in force during the dialog, un- less explicitly changed. kermit This command starts up Kermit interactively with all default settings. The next example shows how Unix Kermit might be used to send an entire direc- tory tree from one Unix system to another, using the tar program as Kermit's standard input and output. On the orginating system, in this case the remote, type (for instance): tar cf - /usr/fdc | kermit -is - This causes tar to send the directory /usr/fdc (and all its fiis possible or expected at that point. Depending on the context, the message may be a brief phrase, a menu of keywords, or a list of files. ESC (The Escape or Altmode key) -- Request completion of the current keyword or filename, or insertion of a default value. The result will be a beep if the requested operation fails. DEL (The Delete or Rubout key) -- Delete the previous character from the command. You may also use BS (Backspace, Control, or start a shell. bye Terminate and log out a remote Kermit server. close Close a log file. connect Establish a terminal connection to a remote system. cwd Change Working Directory. dial Dial a telephone number. directory Display a directory listing. echo Display arguments literally. exit Exit from the program, closing any open logs. finish Instruct a remote Kermit server to exit, but not log out. ur screen. who Display who's logged in, or get information about a user. Most of these commands are described adequately in the Kermit User Guide. Spe- cial aspects of certain Unix Kermit commands are described below. THE 'SEND' COMMAND Syntax: send fn - or - send fn1 rfn1 Send the file or files denoted by fn to the other Kermit, which should be run- ning as a server, or which should be given the 'receive' command. Each file is sent under its own name get Get files from a remote Kermit server. help Display a help message for a given command. log Open a log file -- debugging, packet, session, transaction. quit Same as 'exit'. receive Passively wait for files to arrive. remote Issue file management commands to a remote Kermit server. script Execute a login script with a remote system. send Send files. server Begin server operation. set Set various parame(as described above, or as specified by the 'set file names' command). If the second form of the 'send' command is used, i.e. with fn1 denoting a single Unix file, rfn1 may be specified as a name to send it un- der. The 'send' command may be abbreviated to 's', even though 's' is not a unique abbreviation for a top-level C-Kermit command. The wildcard (meta) characters `*' and `?' are accepted in fn. If `?' is to be included, it must be prefixed by `\' to override its normal function of provid- ing -- Enter any of the above characters into the command, literally. To enter a backslash, type two backslashes in a row (\\). A backslash at the end of a command line causes the next line to be treated as a continuation line; this is useful for readability in com- mand files, especially in the 'script' command. UNIX KERMIT Page 127 You may type the editing characters (DEL, ^W, etc) repeatedly, to deters. show Display values of 'set' parameters. space Display current disk space usage. statistics Display statistics about most recent transaction. take Execute commands from a file. The 'set' parameters are: block-check Level of packet error detection. delay How long to wait before sending first packet. duplex Specify which side echoes during 'connect'. escape-character Prefix for "escape commands" during 'connect'. file lete all the way back to the prompt. No action will be performed until the command is entered by typing carriage return, linefeed, or formfeed. If you make any mis- takes, you will receive an informative error message and a new prompt -- make liberal use of `?' and ESC to feel your way through the commands. One impor- tant command is "help" -- you should use it the first time you run C-Kermit. Interactive C-Kermit accepts commands from files as well as from the keyboard. When you enter interactiSet various file parameters. flow-control Communication line full-duplex flow control. handshake Communication line half-duplex turnaround character. line Communication line device name. modem-dialer Type of modem-dialer on communication line. parity Communication line character parity. prompt Change the C-Kermit program's prompt. receive Parameters for inbound packets. UNIX KERMIT Page 128 ve dialog, C-Kermit looks for the file .kermrc in your home or current directory (first it looks in the home directory, then in the current one) and executes any commands it finds there. These commands must be in interactive format, not Unix command-line format. A "take" command is also provided for use at any time during an interactive session. Command files may be nested to any reasonable depth. Here is a brief list of C-Kermit interactive commands: ! Execute a Unix shell command send Parameters for outbound packets. speed Communication line speed. The 'remote' commands are: cwd Change remote working directory. delete Delete remote files. directory Display a listing of remote file names. help Request help from a remote server. host Issue a command to the remote host in its own command language space Display current disk space usage on remote system. type Display a remote file on yo on page 125, or under System III/V Unix you can use cpio. Another Note -- C-Kermit does not skip over "invisible" files that match the file specification; Unix systems usually treat files whose names start with a dot (like .login, .cshrc, and .kermrc) as invisible. Similarly for "temporary" files whose names start with "#". UNIX KERMIT Page 129 THE 'RECEIVE' COMMAND Syntax: receive - or - receive fn1 P Attempts to log itself out UNIX KERMIT Page 130 finish Exits to level from which it was invoked remote directory Sends directory lising remote delete Removes files remote cwd Changes working directory remote type Sends files to your screen remote space Reports about its disk usage remote who Shows who's logged in remote host Execassively wait for files to arrive from the other Kermit, which must be given the 'send' command -- the 'receive' command does not work in conjunction with a server (use 'get' for that). If fn1 is specified, store the first incoming file under that name. The 'receive' command may be abbreviated to 'r'. THE 'GET' COMMAND: Syntax: get rfn or: get rfn fn1 Request a remote Kermit server to send the named file or files. Since a remote utes a Unix shell command remote help Lists these capabilities Note that the Unix Kermit server cannot always respond to a BYE command. It will attempt to do so using "kill()", but this will not work on all systems or under all conditions. If the Kermit server is directed at an external line (i.e. it is in "local mode") then the console may be used for other work if you have 'set file dis- play off'; normally the program expects the console to be used to observe file transfers afile specification (or list) might contain spaces, which normally delimit fields of a C-Kermit command, an alternate form of the command is provided to allow the inbound file to be given a new name: type 'get' alone on a line, and you will be prompted separately for the remote and local file specifications, for example C-Kermit>get Remote file specification: foo Local name to store it under: bar As with 'receive', if more than one file arrives as a result of the 'get' com- mand, only nd enter status queries or interruption commands. The way to get C-Kermit into background operation from interactive command level varies from system to system (e.g. on Berkeley Unix you would halt the program with ^Z and then use the C-Shell 'bg' command to continue it in the background). The more common method is to invoke the program with the desired command line arguments, including "-q", and with a terminating "&". When the Unix Kermit server is given a 'remote host' command, it executes it help. `*' matches any string, `?' matches any single character. Other notations for file groups, like `[a-z]og', are not available in interactive commands (though of course they are available on the command line). When fn contains `*' or `?' characters, there is a limit to the number of files that can be matched, which varies from system to system. If you get the message "Too many files match" then you'll have to make a more judicious selection. If fn was of the form usr/longnamethe first will be stored under the alternate name given by fn1; the remaining files will be stored under their own names if possible. If a `?' is to be included in the remote file specification, you must prefix it with `\' to suppress its normal function of providing help. If you have started a multiline 'get' command, you may escape from its lower- level prompts by typing a carriage return in response to the prompt, e.g. C-Kermit>get Remote file specification: foo Local name to store it under/anotherlongname/* then C-Kermit's string space will fill up rapidly -- try doing a cwd (see below) to the path in question and reissuing the command. Note -- C-Kermit sends only from the current or specified directory. It does not traverse directory trees. If the source directory contains subdirectories, they will be skipped. Conversely, C-Kermit does not create directories when receiving files. If you have a need to do this, you can pipe tar through C-Kermit, as shown in the example: Type a carriage return here (cancelled) C-Kermit> THE 'SERVER' COMMAND: The 'server' command places C-Kermit in "server mode" on the currently selected communication line. All further commands must arrive as valid Kermit packets from the Kermit on the other end of the line. The Unix Kermit server can respond to the following commands: Command Server Response get Sends files send Receives files bye type it. remote delete rfn delete remote file or files. remote directory [rfn] directory listing of remote files. remote host command command in remote host's own command language. remote space disk usage report from remote host. remote type [rfn] display remote file or files on the screen. remote who [user] display information about who's logged in. remote help display remote server's capabilities. bye and finish: Whenfault name: transact.log. The 'close' command explicitly closes a log, e.g. 'close debug'. Note: Debug and Transaction logs are a compile-time option; C-Kermit may be compiled without these logs, in which case it will run faster, it will take up less space on the disk, and the commands relating to them will not be present. LOCAL FILE MANAGEMENT COMMANDS: Unix Kermit allows some degree of local file management from interactive com- mand level: directory [fn] Displays connected to a remote Kermit server, these commands cause the remote server to terminate; 'finish' returns it to Kermit or system command level (depending on the implementation or how the program was invoked); 'bye' also requests it to log itself out. UNIX KERMIT Page 131 THE 'LOG' AND 'CLOSE' COMMANDS: Syntax: log {debugging, packets, session, transactions} [ fn1 ] C-Kermit's progres a listing of the names, modes, sizes, and dates of files matching fn (which defaults to `*'). Equivalent to `ls -l'. cwd [directory-name] Changes Kermit's working directory to the one given, or to the your default directory if the directory name is omitted. Like 'cd', affects only the Kermit process and any processes it may subsequently create. space UNIX KERMIT Page 132 Display information about disk space and/or qs may be logged in various ways. The 'log' command opens a log, the 'close' command closes it. In addition, all open logs are closed by the 'exit' and 'quit' commands. A name may be specified for a log file; if the name is omitted, the file is created with a default name as shown below. log debugging This produces a voluminous log of the internal workings of C-Kermit, of use to Kermit developers or maintainers in tracking down suspected bugs in the C-Kermit program. Use of this featureuota in the current directory and device. ! [command] The command is executed by the Unix shell. If no command is specified, then an interactive shell is started; exiting from the shell, e.g. by typing Control-D, will return you to C-Kermit command level. C-Kermit at- tempts to use your preferred, customary shell. Use the `!' command to provide file management or other functions not explicitly provided by C-Kermit commands. The `!' command has certain dramatically slows down the Kermit protocol. Default name: debug.log. log packets This produces a record of all the packets that go in and out of the com- munication port. This log is of use to Kermit maintainers who are tracking down protocol problems in either C-Kermit or any Kermit that C-Kermit is connected to. Default name: packet.log. log session This log will contain a copy of everything you see on your screen during the 'connect' command, except for locpeculiarities: - At least one space must separate the '!' from the shell command. - A 'cd' command executed in this manner will have no effect -- use the C-Kermit 'cwd' command instead. THE 'SET' AND 'SHOW' COMMANDS: Since Kermit is designed to allow diverse systems to communicate, it is often necessary to issue special instructions to allow the program to adapt to peculiarities of the another system or the communication path. These instruc- tion using the shell invoked upon login to the remote system, e.g. the Bourne shell or the Berkeley C-Shell. THE 'REMOTE', 'BYE', AND 'FINISH' COMMANDS: C-Kermit may itself request services from a remote Kermit server. In addition to the 'send' and 'get' commands, the following may also be used: remote cwd [directory] If the optional remote directory specification is included, you will be prompted on a separate line for a password, which will not echo as you al messages or interaction with local escape commands. Default name: session.log. log transactions The transaction log is a record of all the files that were sent or received while transaction logging was in effect. It includes time stamps and statistics, filename transformations, and records of any errors that may have occurred. The transaction log allows you to have long unattended file transfer sessions without fear of missing some vital screen message. Des are accomplished by the 'set' command. The 'show' command may be used to display current settings. Here is a brief synopsis of settings available in the current release of C-Kermit: block-check {1, 2, 3} Determines the level of per-packet error detection. "1" is a single- character 6-bit checksum, folded to include the values of all bits from each character. "2" is a 2-character, 12-bit checksum. "3" is a 3-character, 16-bit cyclic redundancy check (CRC). The me that starts with period. Incoming files have uppercase letters lowered. Literal means that none of these conversions are done; there- fore, any directory path appearing in a received file specification must exist and be write-accessible. When literal naming is being used, the sender should not use path names in the file specification unless the same path exists on the target system and is writable. type {binary, text} Normally higher the block check, the better the error detection and correction and the higher the resulting overhead. Type 1 is most commonly used; it is supported by all Kermit implementations, and it has proven adequate in most circumstances. Types 2 or 3 would be used to advantage when transferring 8-bit binary files over noisy lines. delay n How many seconds to wait before sending the first packet after a 'send' command. Used in remote mode to give you time to etext, which means that conversion is done between Unix newline characters and the carriage-return/linefeed sequences required by the canonical Kermit file transmission format, and in common use on non- Unix systems. Binary means to transmit file contents without conver- sion. Binary (`-i' in command line notation) is necessary for binary files, and desirable in all Unix-to-Unix transactions to cut down on overhead. warning {on, off} scape back to your local Kermit and issue a 'receive' command. Normally 5 seconds. duplex {full, half} For use during 'connect'. Specifies which side is doing the echoing; 'full' means the other side, 'half' means C-Kermit must echo typein itself. escape-character cc For use during 'connect' to get C-Kermit's attention. The escape character acts as a prefix to an 'escape command', for instance to close the connec- tion and return to C-Kermit or Unix command level. Normally off, which means that incoming files will silently overwrite existing files of the same name. When on (`-w' on command line) Kermit will check if an arriving file would overwrite an existing file; if so, it will construct a new name for the arriving file, of the form foo~n, where foo is the name they share and n is a "generation number"; if foo exists, then the new file will be called foo~1. If foo and foo~1 ex- ist, the new file will be foo~The normal escape character is Control-Backslash (28). The escape character is also used in System III/V implementations, to prefix interrupt commands during file transfers. file {display, names, type, warning} Establish various file-related parameters: UNIX KERMIT Page 133 display {on, off} Normally 'on'; when in local mode, display progress of file transfers on the screen (stdout), and listen to 2, and so on. If the new name would be longer than the maximum length for a filename, then characters would be deleted from the end first, for instance, thelongestname on a system with a limit of 14 characters would become thelongestn~1. CAUTION: If Control-F or Control-B is used to cancel an incom- ing file, and a file of the same name previously existed, and the "file warning" feature is not enabled, then the previous copy the keyboard (stdin) for inter- ruptions. If off (-q on command line) none of this is done, and the file transfer may proceed in the background oblivious to any other work concurrently done at the console terminal. names {converted, literal} Normally converted, which mean that outbound filenames have path specifications stripped, lowercase letters raised to upper, tildes and extra periods changed to X's, and an X inserted in front of any naof the file will disappear. flow-control {none, xon/xoff} Normally xon/xoff for full duplex flow control. Should be set to 'none' if the other system cannot do xon/xoff flow control, or if you have issued a 'set handshake' command. If set to xon/xoff, then handshake should be set to none. This setting applies during both terminal connection and file transfer. handshake {xon, xoff, cr, lf, bell, esc, none} Normally none. Otherwise, half-duplex communication line turnarouother Kermit agrees; if not, 8-bit binary data cannot be successfully transferred. prompt [string] The given string will be substituted for "C-Kermit>" as this program's prompt. If the string is omitted, the prompt will revert to "C-Kermit>". send parameter Establish parameters to use when sending packets. These will be in effect only for the initial packet sent, since the other Kermit may override these parameters during the protocol parameter exchange (unless noted be to be different from that of arriving pack- ets, so that the echoed packets will be ignored. The opposite Kermit must also be told to change the prefix for its inbound packets. timeout n Specifies the number of seconds you want the other Kermit to wait for a packet before timing it out and requesting retransmission. receive parameter Establish parameters to request the other Kermit to use when sending pack- ets. end-of-packet cc Requests the otnd hand- shaking is done, which means Unix Kermit will not reply to a packet until it has received the indicated handshake character or has timed out waiting for it; the handshake setting applies only during file transfer. If you UNIX KERMIT Page 134 set handshake to other than none, then flow should be set to none. line [device-name] The device name for the communication line to be used for file transfer and termlow). end-of-packet cc Specifies the control character needed by the other Kermit to recognize the end of a packet. C-Kermit sends this character at the end of each packet. Normally 13 (carriage return), which most Kermit implemen- tations require. Other Kermits require no terminator at all, still others may require a different terminator, like linefeed (10). packet-length n Specify the maximum packet length to send. Normally 90. inal connection, e.g. /dev/ttyi3. If you specify a device name, Kermit will be in local mode, and you should remember to issue any other necessary 'set' commands, such as 'set speed'. If you omit the device name, Kermit will revert to its default mode of operation. When Unix Kermit enters lo- cal mode, it attempts to synchronize with other programs (like uucp) that use external communication lines so as to prevent two programs using the same line at once. The method useShorter packet lengths can be useful on noisy lines, or with systems or front ends or networks that have small buffers. The shorter the packet, the higher the overhead, but the lower the chance of a packet being cor- rupted by noise, and the less time to retransmit corrupted packets. pad-character cc Designate a character to send before each packet. Normally, none is sent. Outbound padding is sometimes necessary for communicating with UNIXd is the "uucp lock file", explained in more detail later. modem-dialer {direct, hayes, racalvadic, ventel, ...} The type of modem dialer on the communication line. "Direct" indicates ei- ther there is no dialout modem, or that if the line requires carrier detec- tion to open, then 'set line' will hang waiting for an incoming call. "Hayes", "Ventel", and the others indicate that 'set line' (or the -l argument) will prepare for a subsequent 'dial' command for the KERMIT Page 135 slow half duplex systems that provide no other means of line turnaround control. It can also be used to send special characters to communica- tions equipment that needs to be put in "transparent" or "no echo" mode, when this can be accomplished in by feeding it a certain control character. padding n How many pad characters to send, normally 0. start-of-packet cc given dialer. Support for new dialers is added from time to time, so type 'set modem ?' for a list of those supported in your copy of Kermit. See the description of the 'dial' command parity {even, odd, mark, space, none} Specify character parity for use in packets and terminal connection, nor- mally none. If other than none, C-Kermit will seek to use the 8th-bit prefixing mechanism for transferring 8-bit binary data, which can be used successfully only if the The normal Kermit packet prefix is Control-A (1); this command changes the prefix C-Kermit puts on outbound packets. The only reasons this should ever be changed would be: Some piece of equipment somewhere be- tween the two Kermit programs will not pass through a Control-A; or, some piece of of equipment similarly placed is echoing its input. In the latter case, the recipient of such an echo can change the packet prefix for outbound packetsu can use the line. 'set baud' is an acceptable synomym for 'set speed'. THE 'SHOW' COMMAND: Syntax: show {parameters, versions} The show command displays the values of all the 'set' parameters described above. If you type 'show versions', then C-Kermit will display the version numbers and dates of all its internal modules. You should use the 'show versions' command to ascertain the vintage of your Kermit program before reporting problems to Kenteractive dialog. The .kermrc file should contain 'set' or other commands you want to be in effect at all times. For instance, you might want override the default action when incoming files have the same names as existing files -- in that case, put the command set file warning on in your .kermrc file. On some non-Unix systems that run C-Kermit, this file might have a different name, such as kermit.ini. Commands executed from take files are not echoed at the terminal. If you want to seermit maintainers. THE 'STATISTICS' COMMAND: The statistics command displays information about the most recent Kermit protocol transaction, including file and communication line i/o, as well as what encoding options were in effect (such as 8th-bit prefixing, repeat-count compression). THE 'TAKE' AND 'ECHO' COMMANDS: Syntax: take fn1 The 'take' command instructs C-Kermit to execute commands from the named file. The file may contain any in the commands as well as their output, you could feed the command file to C-Kermit via redirected stdin, as in 'kermit < cmdfile' Errors encountered during execution of take files (such as failure to complete dial or script operations) cause termination of the current take file, popping to the take file that invoked it, or to interactive level. When kermit is ex- ecuted in the background, errors during execution of a take file are fatal. THE 'CONNECT' COMMAND: The conher Kermit to terminate its packets with the specified character. packet-length n Specify the maximum packet length to that you want the other Kermit to send. Normally 90. pad-character cc C-Kermit normally does not need to have incoming packets preceded with pad characters. This command allows C-Kermit to request the other Ker- mit to use cc as a pad character. Default cc is NUL, ASCII 0. padding n How many pad characters to ask teractive C-Kermit commands, including 'take'; com- mand files may be nested to any reasonable depth. The 'echo' command may be used within command files to issue greetings, announce progress, etc. Command files are in exactly the same syntax as interactive commands. Note that this implies that if you want to include special characters like question mark or backslash that you would have to quote with backslash when typing in- teractive commands, you must quote these characters the same wayfor, normally 0. start-of-packet cc Change the prefix C-Kermit looks for on inbound packets to correspond with what the other Kermit is sending. timeout n Normally, each Kermit partner sets its packet timeout interval based on what the opposite Kermit requests. This command allows you to override the normal procedure and specify a timeout interval for Unix Kermit to use when waiting for packets from the other Kermit. If you specify 0, t in command files. Long lines may be continued by ending them with a single backslash. Command files may be used in lieu of command macros, which have not been imple- mented in this version of C-Kermit. For instance, if you commonly connect to a system called 'B' that is connected to ttyh7 at 4800 baud, you could create a file called b containing the commands set line /dev/ttyh7 set speed 4800 echo Connecting to System B... connect and then simply type 'take b' (or 't b' since no other commahen no timeouts will occur, and Unix Kermit will wait forever for ex- pected packets to arrive. UNIX KERMIT Page 136 speed {0, 110, 150, 300, 600, 1200, 1800, 2400, 4800, 9600} The baud rate for the external communication line. This command cannot be used to change the speed of your own console terminal. Many Unix systems are set up in such a way that you must give this command after a 'set line' command before yonds begin with the letter 't') whenever you wished to connect to system B. For connecting to IBM mainframes, a number of 'set' commands are required; UNIX KERMIT Page 137 these, too, are conveniently collected into a 'take' file like this one: set speed 1200 set parity mark set handshake xon set flow-control none set duplex half An implicit 'take' command is executed upon your .kermrc file upon C-Kermit's initial entry into ilose the connection b Send a BREAK signal 0 (zero) send a null s Give a status report about the connection ^\ Send Control-Backslash itself (whatever you have defined the escape character to be, typed twice in a row sends one copy of it). UNIX KERMIT Page 138 Uppercase and control equivalents for these letters are also accepted. A space typed after the escape character is ignored. Any other character will pr THE 'SCRIPT' COMMAND: Syntax: script expect send [expect send] . . . "expect" has the syntax: expect[-send-expect[-send-expect[...]]] This command facilitates logging into a remote system and/or invoking programs or other facilities after login on a remote system. This login script facility operates in a manner similar to that commonly used by the Unix uucp System's "L.sys" file entries. A login script is a sequence of the form: expect send [expect send] . . . where expect is a prompt oduce a beep. The connect command simply displays incoming characters on the screen. It is assumed any screen control sequences sent by the host will be handled by the firmware in your terminal or PC. If terminal emulation is desired, then the connect command can invoked from the Unix command line (-c or -n), piped through a terminal emulation filter, e.g. kermit -l /dev/acu -b 1200 -c | tek 'c' is an acceptable non-unique abbreviation for 'connect'. Tor message to be issued by the remote site, and send is the string (names, numbers, etc) to return. The send may also be the keyword EOT, to send Control-D, or BREAK, to send a break signal. Letters in send may be prefixed by `~' to send special characters. These are: ~b backspace ~s space ~q `?'(trapped by Kermit's command interpreter) ~n linefeed ~r carriage return ~t tab ~' single quote ~~ tilde ~" double quote ~x XON (Control-Q) ~c doHE 'DIAL' COMMAND: Syntax: dial telephone-number-string This command controls dialout modems. The telephone-number-string may contain modem-dialer commands, such as comma for Hayes pause, or `&' for Ventel dial- tone wait and `%' for Ventel pause. Because modem dialers have strict requirements to override the carrier-detect signal most Unix implementations expect, the sequence for dialing is more rigid than most other C-Kermit procedures. Example one: kermit -l /dev/cul0 -b 1200 C-Kermit>set n't append a carriage return ~o[o[o]] an octal character ~d delay approx 1/3 second during send ~w[d[d]] wait specified interval during expect, then time out As with some uucp systems, sent strings are followed by ~r unless they have a ~c. Only the last 7 characters in each expect are matched. A null expect, e.g. ~0 or two adjacent dashes, causes a short delay before proceeding to the next send sequence. A null expect always succeeds. As with uucp, if the expect string does not arrivenect command links your terminal to another computer as if it were a lo- cal terminal to that computer, through the device specified in the most recent 'set line' command, or through the default device if your system is a PC or workstation. All characters you type at your keyboard are sent out the com- munication line, all characters arriving at the communication port are dis- played on your screen. Current settings of speed, parity, duplex, and flow- control are honored. If you have ismodem-dialer hayes hint: abbreviate set m h C-Kermit>dial 9,5551212 Connected! C-Kermit>connect hint: abbreviate c logon, request remote server, etc. C-Kermit> ... C-Kermit>quit hint: abbreviate q this disconnects modem, and unlocks line. Example two: kermit C-Kermit>set modem-dialer ventel C-Kermit>set line /dev/cul0 C-Kermit>dial 9&5551212% Connected! C-Kermit> ... Example three: kermit C-Kermit>take my-dial-procedure Connected! sued a 'log session' command, everything you see on your screen will also be recorded to your session log. This provides a way to "capture" files from systems that don't have Kermit programs available. To get back to your own system, you must type the escape character, which is Control-Backslash (^\) unless you have changed it with the 'set escape' com- mand, followed by a single-character command, such as 'c' for "close connection". Single-character commands include: c C UNIX KERMIT Page 139 file my-dial-procedure: set modem hayes set line /dev/tty99 dial 5551212 connect For Hayes dialers, two important switch settings are #1 and #6. #1 should be up so that the DTR is only asserted when the line is 'open'. #6 should be up so carrier-detect functions properly. Switches #2 (English versus digit result codes) and #4 (Hayes echoes modem commands) may be in either position. s records all exchanges, both expected and actual. Note that `\' characters in login scripts, as in any other C-Kermit interactive commands, must be doubled up. A line may be ended with a single `\' for con- tinuation. Example one: Using a modem, dial a UNIX host site. Expect "login" (...gin), and if it doesn't come, simply send a null string with a ~r. (Some Unixes require either an EOT or a BREAK instead of the null sequence, depending on the particular site's "logger" program.) After ps ) break sleep 600 end File tonight.cmd might have two takes in it, for example, one to take a file with the set modem, set line, set baud, dial, and script, and a second take of a file with send/get commands for the remote server. The last lines of tonight.cmd should be a bye and a quit. THE 'HELP' COMMAND: Syntax: help or: help keyword or: help {set, remote} keyword Brief help messages or menus are always available at interactive command roviding user id and password, respond "x" to a question-mark prompt, expect the Bourne shell "$" prompt (and send return if it doesn't arrive). Then cd to directory kermit, and run the program called "wermit", entering the interactive connect state after wermit is loaded. set modem-dialer ventel set line /dev/tty77 set baud 1200 dial 9&5551212 script gin:--gin:--gin: smith ssword: mysecret ~q x $--$ \ cd~skermit $ wermit connect Example two: Using a modem, dial the Telenet network. level by typing a question mark at any point. A slightly more verbose form of help is available through the 'help' command. The 'help' command with no arguments prints a brief summary of how to enter commands and how to get further help. 'help' may be followed by one of the top-level C-Kermit command keywords, such as 'send', to request information about a command. Commands such as 'set' and 'remote' have a further level of help. Thus you may type 'help', 'help set', or 'help set parity'; eaThis network expects three returns with slight delays between them. These are sent following null expects. The single return is here sent as a null string, with a return appended by default. Four returns are sent to be safe before looking for the prompt. Then the Telenet id and password are entered. Then telenet is instructed to connect to a host site (c 12345). The host has a data switch, and to "which system" it responds "myhost". This is followed by a TOPS-20 logon, and a request to ch will provide a successively more detailed level of help. UNIX KERMIT Page 142 THE 'EXIT' AND 'QUIT' COMMANDS: These two commands are identical. Both of them do the following: - Attempt to insure that the terminal is returned to normal. - Relinquish access to any communication line assigned via 'set line'. - Relinquish any uucp and multiuser locks on the communications line. - Hang up the modem, if the co load Kermit, set even parity, and enter the server mode. Files are then exchanged. The commands are in a take file; note the continuation of the 'script' command onto several lines using the `\' terminator. UNIX KERMIT Page 141 set modem-dialer hayes set line /dev/cul0 set baud 1200 dial 9,5551212 set parity even script ~0 ~0 ~0 ~0 ~0 ~0 ~0 ~0 @--@--@ id~saa001122 = 002211 @ \ c~s12345 ystem-c~s12345-ystem myhost @ joe~ssecmmunications line supports data terminal ready. - Close any open log files. After exit from C-Kermit, your default directory will be the same as when you started the program. The 'exit' command is issued implicitly whenever C-Kermit halts normally, e.g. after a command line invocation, or after certain kinds of interruptions. 9.5. UUCP Lock Files Unix has no standard way of obtaining exclusive access to an external com- munication line. When you issue the 'set line' command to Unix , the script attempt fails. If you expect that a sequence might not arrive, as with uucp, conditional se- UNIX KERMIT Page 140 quences may be expressed in the form: -send-expect[-send-expect[...]] where dashed sequences are followed as long as previous expects fail. Timeouts for expects can be specified using ~w; ~w with no arguments waits 15 seconds. Expect/send transactions can be easily be debugged by logging transactions. Thiret @ kermit \ > set~sparity~seven > server send some.stuff get some.otherstuff bye quit Since these commands may be executed totally in the background, they can also be scheduled. A typical shell script, which might be scheduled by cron, would be as follows (csh used for this example): # #keep trying to dial and log onto remote host and exchange files #wait 10 minutes before retrying if dial or script fail. # while ( 1 ) kermit < tonight.cmd & if ( ! $statuKermit, Unix would normally grant you access to the line even if some other process is making use of it. The method adopted by most Unix systems to handle this situation is the "UUCP lock file". UUCP, the Unix-to-Unix Copy program, creates a file in its directory (usually /usr/spool/uucp, on some systems /etc/locks) with a name like LCK..name, where name is the device name, for in- stance tty07. Unix Kermit uses UUCP lock files in order to avoid conflicts with UUCP, tip, or othetab. Locking is not needed, or used, if communications occur over the user's login terminal line (normally /dev/tty). It may be seen that line locking is fraught with peril. It is included in Unix Kermit only because other Unix communication programs rely on it. While it is naturally desirable to assure exclusive access to a line, it is also un- desirable to refuse access to a vacant line only because of a spurious lock file, or because the uucp directory is not appropriately protected. r programs that follow this convention. Whenever you attempt to access an external line using the 'set line' command or `-l' on the command line, Kermit looks in the UUCP directory for a lock file corresponding to that device. For instance, if you 'set line /dev/ttyi6' then Kermit looks for the file /usr/spool/uucp/LCK..ttyi6 If it finds this file, it gives you an error message and a directory listing of the file so that you can see who is using it, e.g. -r--r--r-- 1 fdc 4 May 7 13:02 9.6. C-Kermit under Berkeley or System III/V Unix: C-Kermit may be interrupted at command level or during file transfer by typing Control-C. The program will perform its normal exit function, restoring the terminal and releasing any lock. If a protocol transaction was in progress, an error packet will be sent to the opposite Kermit so that it can terminate cleanly. C-Kermit may be invoked in the background ("&" on shell commmand line). If a background process is "killed", the user will have/usr/spool/uucp/LCK..ttyi6 In this case, you would look up user fdc to find out how soon the line will be- come free. This convention requires that the uucp directory be publicly readable and writable. If it is not, the program will issue an appropriate warning message, but will allow you to proceed at your own risk (and the risk of anyone else who might also be using the same line). If no lock file is found, Unix Kermit will attempt create one, thus preventing anyone who subsequently tries to r to manually remove any lock file and may need to restore the modem. This is because the kill signal (kill(x,9)) cannot be trapped by Kermit. During execution of a system command ('directory', 'cwd', or `!'), C-Kermit can often be returned to command level by typing a single Control-C. (With System III/V, the usual interrupt function (often the DEL key) is replaced by Control-C.) Under Berkeley Unix only: C-Kermit may also be interrupted by ^Z to put the process in the background. un Kermit, UUCP, tip, or similar programs on the same line from gaining access until you release the line. If Kermit could not create the lock file (for instance because the uucp directory is write- protected), then you will receive a warning message but will be allowed to proceed at your -- and everyone else's -- risk. When Kermit terminates nor- mally, your lock file is removed. UNIX KERMIT Page 143 When a lock-creating program In this case the terminal is not restored. You will have to type Control-J followed by "reset" followed by another Control-J to get your terminal back to normal. Control-C, Control-Z, and Control-\ lose their normal functions during terminal connection and also during file transfer when the controlling tty line is being used for packet i/o. If you are running C-Kermit in "quiet mode" in the foreground, then interrupt- ing the program with a console interrupt like Control-C will not restore theabruptly terminates, e.g. because it crashes or is killed via shell command, the lock file remains in the uucp directory, spuriously indicating that the line is in use. If the lock file is owned by yourself, you may remove it. Otherwise, you'll have to get the owner or the system manager to remove it, or else wait for a system task to do so; uucp sup- ports a function (uuclean) which removes these files after a predetermined age -- uucp sites tend to run this function periodically via cron terminal to normal conversational operation. This is because the system call to enable console interrupt traps will cause the program to block if it's run- ning in the background, and the primary reason for quiet mode is to allow the program to run in the background without blocking, so that you can do other work in the foreground. If C-Kermit is run in the background ("&" on shell commmand line), then the in- terrupt signal (Control-C) (and System III/V quit signal) are ignored. This prevenng characters: The program's interactive command interrupt, delete, and kill characters are Control-C, Delete (or Backspace), and Control-U, respectively. There is currently no way to change them to suit your taste or match those used by your shell, in case those are different. 3. High baud rates: There's no way to specify baud rates higher than 9600 baud. Most Unix systems don't supply symbols for them (unless you use EXTA, EXTB), and even when theyd be executed to "enable" the line again. This program also needs to be set-uID'ed to root. If your Unix lacks the enable(8) and disable(8) commands, another common technique works if your system supports the /etc/ttys file. A shell program could call up an awk program to find the line in the file and set the enable byte to 0 (to directly disable the line). Likewise, it can be reenabled by a counterpart at the end. It may be necessary to pause for 60ts an interrupt signal intended for a foreground job (say a compilation) UNIX KERMIT Page 144 from being trapped by a background Kermit session. 9.7. C-Kermit on the DEC Pro-3xx with Pro/Venix Version 1 The DEC Professional 300 series are PDP-11/23 based personal computers. Venix Version 1 is a Unix v7 derivative. It should not be confused with Venix Ver- sion 2, which is based on ATT System V; these comments apply to Venix Version 1 on do, the program has no way of knowing whether a specific port's serial i/o controller supports those rates. 4. Modem controls: If a connection is made over a communication line UNIX KERMIT Page 145 (rather than on the controlling terminal line), and that line has modem controls, (e.g. data terminal ready and carrier detection implementation), returning to the shell level will disconnect the ly. C-Kermit runs in local mode on the Pro-3xx when invoked from the con- sole; the default device is /dev/com1.dout. When connected to a remote system (using C-Kermit's 'connect' command), Pro/Venix itself (not Kermit) provides VT52 terminal emulation. Terminal operation at high speeds (like 9600 baud) requires xon/xoff flow control, which unfortunately interferes with applica- tions such as the EMACS that use Control-Q and Control-S as commands. When logging in to a Pro-3xx (or any work conversation. In that case, one should use interactive mode com- mands, and avoid use of piped shell-level operation (also see 'set modem-dialer' and 'dial' commands.) 5. Login Scripts: The present login scripts implementation follows the Unix conventions of uucp's "L.sys" file, rather than the normal Ker- mit "INPUT/OUTPUT" style, so there's no way to arbitrarily mingle script output with Kermit commands (e.g. changing parity or duplex in the middle ofstation) through the "back port", it may be necessary to give the command "set line /dev/tty" in order to get C-Kermit to function correctly in remote mode (on a system in which it normally expects to be operating in local mode). 9.8. C-Kermit under VAX/VMS Version 4C of C-Kermit can be built using VAX-11 C to run under VMS. Most of the descriptions in this manual hold true, but it should be noted that as of this writing the VMS support is not thoroughly tested, and no explicit support exis a script). 6. Dial-out vs dial-in communications lines: C-Kermit requires a dial-out line for the "set line" or "-l" options. Most systems have some lines dedicated to dial-in, which they enable "loggers" on, and some lines available for dial-out. Where a line must be shared be- tween dial-in and dial-out, several options are available (though they are, strictly speaking, outside the pervue of C-Kermit). A simple shell program can be used to change dits for the various types of VMS files and their attributes. The C-Kermit init file for VMS is called KERMIT.INI. 9.9. C-Kermit on the Macintosh The "protocol kernel" of C-Kermit is also used by Columbia's Macintosh Kermit. The user and system interface is entirely different, and is covered in a separate document. 9.10. C-Kermit Restrictions and Known Bugs 1. Comments in commands: There is no way to include comments in com- mands, either in take files or interactively. 2. Editirectionality of the line if your Unix has the enable(8) and disable(8) commands. In that case, the shell program could "grep" a "who" to see if anybody is logged onto the desired line; if not, it could "disable" the line. The shell program will need to be set-uID'ed to root. The shell program can be called from kermit prior to a dial command, e.g., "! mydisable.shellprog". Prior to the final "quit" from C-Kermit, another shell program couly activity: Using "remote host" to instruct the C-Kermit server to invoke Unix func- tions (like "make") that might take a long time to produce output can cause timeout conditions. 10. XOFF deadlocks: When connecting back to C-Kermit after a trans- action, or after finishing the server, it may be necessary to type a Control-Q to clear up an XOFF deadlock. There's not much the program can do about this... 11. PC/IX Login Scripts -- Unfound Bug: ers long, the part after the dot no more than 3 characters long, and: is the file type: UNIX KERMIT Page 147 c: C language source h: Header file for C language source w: Wart preprocessor source, converted by Wart (or Lex) to a C program nr: Nroff/Troff text formatter source mss: Scribe text formatter source doc: Documentation hlp: Help text bld: Instructions for building the program bwr: A "beware" fileThough login scripts appear to work properly on most processors, in the case of the PC/XT with PC/IX, it appears that longer scripts need to be broken up into shorter scripts (invoked sequentially from the take file). This is because the portion of the script handler which checks if an opera- tion timed out seems to leave the processor in a strange state (i.e. hung). 9.11. How to Build C-Kermit for a Unix System The C-Kermit files, as distributed from - list of known bugs upd: Program update log mak: Makefile is a single character to tell what system the file applies to: a: Descriptive material, documentation c: All systems with C compilers m: Macintosh u: Unix v: VAX/VMS w: Wart is mnemonic (up to 3 characters) for what's in the file: aaa: A "read-me" file, like this one cmd: Command parsing con: Connect command deb: Debug/Transaction Log formats, Typedefs dia: Modem/Dialer control seconds after modifying that file be- fore the logger sees it and actually disables the line. 7. Using C-Kermit on Local Area Networks: C-Kermit can successfully operate at speeds up to 9600 baud over LANs. Testing has, however, shown that most processors, whether PC/XTs with PC/IX, or Vaxes, need flow control at these rates. A command, "set flow x" should be issued to each end of this form of connection. If the LAN is the sort with an interface caColumbia, all begin with the prefix "ck". You should make a directory for these files and then cd to it. A makefile is provided to build C-Kermit for various Unix systems (there are separate makefiles for VMS and the Macintosh). As distributed, the makefile has the name "ckuker.mak". You should rename it to "makefile" and then type "make xxx", where xxx is the symbol for your system, for instance "make bsd" to make C-Kermit for 4.x BSD Unix. The result will be a program called "wermird (or box, like the Sytek), then the interface card/box must be programmed to handle the flow control characters (xon and xoff) at the card/box level (rather than forwarding these characters to the remote site). This is be- cause packetizing LANs will not deliver the xoff character to the other end, after packetization, until long after the receive buffer has been overrun. 8. Resetting terminal after abnormal termination or kill: When C-Kermit terminatest". You should test this to make sure it works; if it does, then you can rename it to "kermit" and install it for general use. See the makefile for a list of the systems supported and the corresponding "make" arguments. 9.12. Adapting C-Kermit to Other Systems C-Kermit is designed for portability. The level of portability is indicated in parentheses after the module name: "C" means any system that has a C compiler that conforms to the description in "The C Programming Language" by Kernighan & Ritchi abnormally (say, for example, by a kill command issued by the operator) the user may need to reset the terminal state. If commands do not seem to be accepted at the shell prompt, try UNIX KERMIT Page 146 Control-J "stty sane" Control-J (use "reset" on Berkeley Unix). That should take the terminal out of "raw mode" if it was stuck there. 9. Remote host commands may time-out on lengthe (Prentice-Hall, 1978). "Cf" is like "C", but also requires "standard" features like printf and fprintf, argument passing via argv/argc, and so on, as described in Kernighan & Ritchie. "Unix" means the module should be useful un- der any Unix implementation; it requires features such as fork() and pipes. Anything else means that the module is particular to the indicated system. C-Kermit file names are of the form: ck. where the part before the dot is no more than 6 charact code is only several lines long, it should be easy to replace for systems that have different styles of user interaction. The header files define symbols and UNIX KERMIT Page 148 macros used by the various modules of C-Kermit. ckcdeb.h is the only header file that is included by all the C-Kermit modules, so it contains not only the debug format definitions, but also any compiler-dependent typedefs. ckwannels" (file pointers in this case) for the files C-Kermit cares about -- the input file (the file which is being sent), the output file (the file being received), the various logs, the screen, and so forth. This module varies little among Unix implementations except for the wildcard expansion code; the directory structure of 4.2bsd Unix is dif- ferent from that of other Unix systems. Again, variation among Unix sys- tems is selected using conditional compilation. ckuusr.rt.c (Cf), ckcpro.w (C): The ckcpro module embodies the Kermit protocol state table and the code to accomplish state switching. It is written in "wart", a language which may be regarded as a subset of the Unix "lex" lexical analyzer generator. Wart implements enough of lex to allow the ckprot module to function. Lex it- self was not used because it is proprietary. The protocol module ckcpro.w is read by wart, and a system-independent C program is produced. The syn- taxh, ckuusr.c, ckuus2.c, ckuus3.c (Unix): This is the "user interface" for C-Kermit. It includes the command parser, the screen output functions, and console input functions. The command par- ser comes in two pieces -- the traditional Unix command line decoder (which is quite small and compact), and the interactive keyword parser (which is rather large). This module is fully replacable; its interface to the other modules is very simple, and is explained at the beginning of the of a Wart program is illustrated by ckcpro.w, and is described in ckwart.doc. ckcfns.c (C): The module contains all the Kermit protocol support functions -- packet formation, encoding, decoding, block check calculation, filename and data conversion, protocol parameter negotiation, and high-level interaction with the communication line and file system. To accommodate small systems, this module has been split into two -- ckcfns.c and ckcfn2.c. ckutio.c: This module source file. The ckuser module also includes code to execute any commands directly which don't require the Kermit protocol -- local file management, etc. The module is rated "Unix" because it makes occasional use of the UNIX KERMIT Page 149 system() function. Note that while ckuser is logically one module, it has been split up into three C source files, plus a header file for the symbols they share in c fio: System-depdendent File I/O fns: Protocol support functions fn2: More protocol support functions ker: General C-Kermit definitions, information, documentation mai: Main program pro: Protocol scr: Script command tio: System-dependent terminal i/o & control and interrupt handing usr: User interface us2: More user interface us3: Still more user interface Examples: ckufio.c File i/o for Unix ckmtio.c Terminal i/o for Macintosh ckuker.mss Scribe source focontains the system-dependent primitives for communication line i/o, timers, and interrupts for the various versions of Unix. Certain im- portant variables are defined in this module, which determine whether C-Kermit is by default remote or local, what the default communication device is, and so forth. The tio module maintains its own private database of file descriptors and modes for the console terminal and the file trans- fer communication line so that other modulr for Kermit User Guide chapter ckuker.nr Nroff source file for Unix C-Kermit man page The following material discusses each of the C-Kermit modules briefly. ckcmai.c, ckcker.h, ckcdeb.h (Cf): This is the main program. It contains declarations for global variables and a small amount of code to initialize some variables and invoke the com- mand parser. In its distributed form, it assumes that command line ar- guments are passed to it via argc and argv. Since this portion ofes (like ckcfns or the terminal connect module) need not be concerned with them. The variations among Unix implementations with respect to terminal control and timers are accom- modated via conditional compilation. ckufio.c: This module contains system-dependent primitives for file i/o, wildcard (meta character) expansion, file existence and access checking, and system command execution for the various versions of Unix. It maintains an inter- nal database of i/o "chaupports functions like printf. The file name parsing functions depend upon primitives defined in the fio module; if these primitives can- not be supplied for a certain system, then the filename parsing functions can be deleted, and the package will still be useful for parsing keywords, numbers, arbitrary text strings, and so forth. The style of interaction is the same as that found on the DECSYSTEM-20. ckucon.c (Unix): This is the connect module. As supplied, it should tance with one that provides a mouse/window/icon environment, a menu/function-key environment, etc. A few guidelines should be followed to maintain portability: - Keep variable and function names to 6 characters or less. Don't use identifiers that are distinguished from one another only by al- phabetic case. - Keep modules small. For instance, on a PDP-11 it is necessary to keep the code segment of each module below 8K in order to allow the segment mapping to operate in any Unix en- vironment, or any C-based environment that provides the fork() function. The module requires access to global variables that specify line speed, parity, duplex, flow control, etc, and invokes functions from the tio module to accomplish the desired settings and input/output, and functions from the fio module to perform session logging. No terminal emulation is performed, but since standard i/o is used for the console, this may be pipeoccur which is necessary to run programs larger than 64K on a non-I-and-D-space machine. - Keep strings short; many compilers have restrictive maximum lengths. - Keep (f,s)printf formats short. If these exceed some compiler de- pendent maximum (say, 128) memory will be overwritten and the program will probably core dump. - Do not introduce system dependencies into ckcpro.w or ckcfn*.c. - If a variable is a character, declare as CHAR, not int, to prevent the varioud through a terminal emulation filter. The ckucon function may be en- tirely replaced, so long as the global settings are honored by its replace- ment. PC implementations of C-Kermit may require the ck?con module to do screen control, escape sequence interpretation, etc, and may also wish to write special code to get the best possible performance. ckudia.c (Unix): This is the dialer module. As supplied, it handles Hayes, Ventel, Penril, Racal-Vadic, and several other modemss sign extension and byte swapping foulups that occur when characters are placed in integer variables. In general, remember that this program will have to be compilable by old com- pilers and runnable on small systems. me compiler de- pendent maximum (say, 128) memory will be overwritten and the program will probably core dump. - Do not introduce system dependencies into ckcpro.w or ckcfn*.c. - If a variable is a character, declare as CHAR, not int, to prevent the variou. ckuscr.c (Unix): This is the login script module. As supplied, it handles uucp-style scripts. Moving C-Kermit to a new system entails: 1. Creating a new tio module in C, assembler, or whatever language is most appropriate for system programming on the new system. If the system is Unix-like, then support may be added within the ckutio.c module itself. 2. Creating a new fio module, as above. 3. If the system is not Unix-like, then a new ckuser module ma./usr/opt/bin/kermit/ckuker.nr 644 0 3 34200 5555216004 11471 om- mon. This is to accommodate small systems that cannot handle big modules. ckuusr.c has the command line and top-level interactive command parser; ckuus2.c has the help command and strings; ckuus3 has the set and remote commands along with the logging, screen, and "interrupt" functions. ckucmd.c, ckucmd.h (Cf): This is an interactive command parsing package developed for C-Kermit. It is written portably enough to be usable on any system that has a C compiler that sy be re- quired, as well as a different invocation of it from ckmain. 4. If the distributed connect module doesn't work or performs poorly, then it may be replaced. For instance, interrupt-driven i/o may be required, especially if the system doesn't have forks. UNIX KERMIT Page 150 Those who favor a different style of user/program interaction from that provided in ckuusr.c may replace the entire module, for ins.TH KERMIT 1C LOCAL .SH NAME kermit \- kermit file transfer .SH SYNOPSIS .B kermit [ option ...] [file ...] .SH DESCRIPTION .I Kermit is a file transfer program that allows files to be moved between machines of many different operating systems and architectures. This man page describes version 4C of the program. .PP Arguments are optional. If .I Kermit is executed without arguments, it will enter command mode. Otherwise, .I kermit will read the arguments off the command line and interpret them. .RE 1 .PP Tv kermit -k > fn1 .IP Sends the incoming file or files to the named file, .I fn1. If more than one file arrives, all are concatenated together into the single file .I fn1. .sp 0.6v kermit -k | command .IP Pipes the incoming data (single or multiple files) to the indicated command, as in .sp 0.6v kermit -k | sort > sorted.stuff .TP .BI \-a " fn1" If you have specified a file transfer option, you may specify an alternate name for a single file with the .B -a option. For example, .sp 0he following notation is used in command descriptions: .RE 1 .TP 8 .I fn A Unix file specification, possibly containing either of the "wildcard" characters '*' or '?' ('*' matches all character strings, '?' matches any single character). .TP .I fn1 A Unix file specification which may not contain '*' or '?'. .TP .I rfn A remote file specification in the remote system's own syntax, which may denote a single file or a group of files. .TP .I rfn1 A remote file specification which should denote only a single fil.6v kermit -s foo -a bar .IP sends the file foo telling the receiver that its name is bar. If more than one file arrives or is sent, only the first file is affected by the .B \-a option: .sp 0.6v kermit -ra baz .IP stores the first incoming file under the name baz. .TP .B \-x Begin server operation. May be used in either local or remote mode. .RE 1 .PP Before proceeding, a few words about remote and local operation are necessary. .I Kermit is "local" if it is running on a PC or workstate. .TP .I n A decimal number between 0 and 94. .TP .I c A decimal number between 0 and 127 representing the value of an ASCII character. .TP .I cc A decimal number between 0 and 31, or else exactly 127, representing the value of an ASCII control character. .TP .B [ ] Any field in square braces is optional. .TP {\fIx,y,z\fR} Alternatives are listed in curly braces. .RE 1 .PP .I Kermit command line options may specify either actions or settings. If .I Kermit is invoked with a command line that specifies no aion that you are using directly, or if it is running on a multiuser system and transferring files over an external communication line \(em not your job's controlling terminal or console. .I Kermit is remote if it is running on a multiuser system and transferring files over its own controlling terminal's communication line, connected to your PC or workstation. .PP If you are running .I Kermit on a PC, it is in local mode by default, with the "back port" designated for file transfer and terminal connection. ctions, then it will issue a prompt and begin interactive dialog. Action options specify either protocol transactions or terminal connection. .RE .SS COMMAND LINE OPTIONS .TP 8 .BI \-s " fn" Send the specified file or files. If .I fn contains wildcard (meta) characters, the Unix shell expands it into a list. If .I fn is '-' then .I Kermit sends from standard input, which must come from a file: .sp 0.6v kermit -s - < foo.bar .sp 0.6v or a parallel process: .sp 0.6v ls -l | kermi If you are running .I Kermit on a multiuser (timesharing) system, it is in remote mode unless you explicitly point it at an external line for file transfer or terminal connection. The following command sets .IR Kermit 's "mode": .RE 1 .TP 8 .BI \-l " dev" Line \(em Specify a terminal line to use for file transfer and terminal connection, as in .sp 0.6v kermit -l /dev/ttyi5 .RE 1 .PP When an external line is being used, you might also need some additional options for successful communication wit -s - .IP You cannot use this mechanism to send terminal typein. If you want to send a file whose name is "-" you can precede it with a path name, as in .sp 0.6v kermit -s ./- .TP .B \-r Receive a file or files. Wait passively for files to arrive. .TP .B \-k Receive (passively) a file or files, sending them to standard output. This option can be used in several ways: .sp 0.6v kermit -k .IP Displays the incoming files on your screen; to be used only in "local mode" (see below). .sp 0.6th the remote system: .TP .BI \-b " n" Baud \(em Specify the baud rate for the line given in the .B \-l option, as in .sp 0.6v kermit -l /dev/ttyi5 -b 9600 .IP This option should always be included with the .B \-l option, since the speed of an external line is not necessarily what you expect. .TP .BI \-p " x" Parity \(em .BR e , .BR o , .BR m , .BR s , .B n (even, odd, mark, space, or none). If parity is other than none, then the 8th-bit prefixing mechanism will be used for transferring 8-bito avoid conflict with Unix shell interrupt characters. With System III and System V implementations of Unix, interrupt commands must be preceeded by the escape character (e.g. control-\\). .RE .PP Several other command-line options are provided: .TP 8 .B \-i Specifies that files should be sent or received exactly "as is" with no conversions. This option is necessary for transmitting binary files. It may also be used to slightly boost efficiency in Unix-to-Unix transfers of text files by eliminating CRLF/n^U (Control-U) \(em Erase the entire command. .TP .B ^R (Control-R) \(em Redisplay the current command. .TP .B SP (Space) \(em Delimits fields (keywords, filenames, numbers) within a command. HT (Horizontal Tab) may also be used for this purpose. .TP .B CR (Carriage Return) \(em Enters the command for execution. .B LF (Linefeed) or .B FF (formfeed) may also be used for this purpose. .TP .B \e (Backslash) \(em Enter any of the above characters into the command, literally. To enter a backslash, type two bact binary data, provided the opposite .I Kermit agrees. The default parity is none. .TP .B \-t Specifies half duplex, line turnaround with XON as the handshake character. .RE 1 .PP The following commands may be used only with a .I Kermit which is local \(em either by default or else because the .B \-l option has been specified. .TP 8 .BI \-g " rfn" Actively request a remote server to send the named file or files; .I rfn is a file specification in the remote host's own syntax. If .I fn happens to contain aewline conversion. .TP .B \-w Write-Protect \(em Avoid filename collisions for incoming files. .TP .B \-q Quiet \(em Suppress screen update during file transfer, for instance to allow a file transfer to proceed in the background. .TP .B \-d Debug \(em Record debugging information in the file debug.log in the current directory. Use this option if you believe the program is misbehaving, and show the resulting log to your local .I Kermit maintainer. .TP .B \-h Help \(em Display a brief synopsis of the commandny special shell characters, like '*', these must be quoted, as in .sp 0.6v kermit -g x\\*.\\? .TP .B \-f Send a 'finish' command to a remote server. .TP .B \-c Establish a terminal connection over the specified or default communication line, before any protocol transaction takes place. Get back to the local system by typing the escape character (normally Control-Backslash) followed by the letter 'c'. .TP .B \-n Like .B \-c, but after a protocol transaction takes place; .B \-c and .B \-n may bo line options. .RE 1 .PP The command line may contain no more than one protocol action option. .SS INTERACTIVE OPERATION .RE 1 .PP .IR Kermit 's interactive command prompt is "C-Kermit>". In response to this prompt, you may type any valid command. .I Kermit executes the command and then prompts you for another command. The process continues until you instruct the program to terminate. .PP Commands begin with a keyword, normally an English verb, such as "send". You may omit trailing characters from any keywth be used in the same command. The use of .B \-n and .B \-c is illustrated below. .RE 1 .PP On a timesharing system, the .B \-l and .B \-b options will also have to be included with the .BR \-r , .BR \-k , or .B \-s options if the other .I Kermit is on a remote system. .PP If .I kermit is in local mode, the screen (stdout) is continously updated to show the progress of the file transer. A dot is printed for every four data packets, other packets are shown by type (e.g. 'S' for Send-Init), 'T' is printord, so long as you specify sufficient characters to distinguish it from any other keyword valid in that field. Certain commonly-used keywords (such as "send", "receive", "connect") have special non-unique abbreviations ("s" for "send", "r" for "receive", "c" for "connect"). .PP Certain characters have special functions in interactive commands: .PP .TP 8 .B ? Question mark, typed at any point in a command, will produce a message explaining what is possible or expected at that point. Depending on the conteed when there's a timeout, and '%' for each retransmission. In addition, you may type (to stdin) certain "interrupt" commands during file transfer: .IP Control-F: Interrupt the current File, and go on to the next (if any). .IP Control-B: Interrupt the entire Batch of files, terminate the transaction. .IP Control-R: Resend the current packet .IP Control-A: Display a status report for the current transaction. .RE .IP These interrupt characters differ from the ones used in other .I Kermit implementations xt, the message may be a brief phrase, a menu of keywords, or a list of files. .TP 8 .B ESC (The Escape or Altmode key) \(em Request completion of the current keyword or filename, or insertion of a default value. The result will be a beep if the requested operation fails. .TP 8 .B DEL (The Delete or Rubout key) \(em Delete the previous character from the command. You may also use BS (Backspace, Control-H) for this function. .TP .B ^W (Control-W) \(em Erase the rightmost word from the command line. .TP .B splay arguments literally. .TP .B exit Exit from the program, closing any open logs. .TP .B finish Instruct a remote .I Kermit server to exit, but not log out. .TP .B get Get files from a remote .I Kermit server. .TP .B help Display a help message for a given command. .TP .B log Open a log file \(em debugging, packet, session, transaction. .TP .B quit Same as 'exit'. .TP .B receive Passively wait for files to arrive. .TP .B remote Issue file management commands to a remote .I Kermit server. .TP .B script atory. .SH BUGS See recent issues of the Info-Kermit digest (on ARPANET or Usenet), or the file ckuker.bwr, for a list of bugs. n about a user. .SH FILES .ta \w"$HOME/.kermrc "u $HOME/.kermrc \fIKermit\fR initialization commands .br \&./.kermrc more \fIKermit\fR initialization commands .PD .SH SEE ALSO cu(1C), uucp(1C) .br Frank da Cruz and Bill Catchings, .IR "Kermit User's Guide" , Columbia University, 6th Edition .SH DIAGNOSTICS The diagnostics produced by .I Kermit itself are intended to be self-explanExecute a login script with a remote system. .TP .B send Send files. .TP .B server Begin server operation. .TP .B set Set various parameters. .TP .B show Display values of 'set' parameters. .TP .B space Display current disk space usage. .TP .B statistics Display statistics about most recent transaction. .TP .B take Execute commands from a file. .sp 1 .PP The 'set' parameters are: .TP 21 .B block-check Level of packet error detection. .TP .B delay How long to wait before sending first packet. .TP .B duplex ./usr/opt/bin/kermit/ckuker.upd 644 0 3 30673 5555216005 11655 kslashes in a row (\\\\). A single backslash immediately preceding a carriage return allows you to continue the command on the next line. .RE 1 .PP You may type the editing characters (DEL, ^W, etc) repeatedly, to delete all the way back to the prompt. No action will be performed until the command is entered by typing carriage return, linefeed, or formfeed. If you make any mistakes, you will receive an informative error message and a new prompt \(em make liberal use of '?' and ESC to feel your way througSpecify which side echoes during 'connect'. .TP .B escape-character Character to prefix "escape commands" during 'connect'. .TP .B file Set various file parameters. .TP .B flow-control Communication line full-duplex flow control. .TP .B handshake Communication line half-duplex turnaround character. .TP .B line Communication line device name. .TP .B modem-dialer Type of modem-dialer on communication line. .TP .B parity Communication line character parity. .TP .B prompt Change the .I Kermit program's promh the commands. One important command is "help" \(em you should use it the first time you run .I Kermit. .PP Interactive .I Kermit accepts commands from files as well as from the keyboard. When you enter interactive mode, .I Kermit looks for the file .kermrc in your home or current directory (first it looks in the home directory, then in the current one) and executes any commands it finds there. These commands must be in interactive format, not Unix command-line format. A "take" command is also providept. .TP .B receive Set various parameters for inbound packets. .TP .B send Set various parameters for outbound packets. .TP .B speed Communication line speed. .sp 1 .PP The 'remote' commands are: .TP 12 .B cwd Change remote working directory. .TP .B delete Delete remote files. .TP .B directory Display a listing of remote file names. .TP .B help Request help from a remote server. .TP .B host Issue a command to the remote host in its own command language. .TP .B space Display current disk space ud for use at any time during an interactive session. Command files may be nested to any reasonable depth. .PP Here is a brief list of .I Kermit interactive commands: .PD 0.6v .TP 12 .B ! Execute a Unix shell command. .TP .B bye Terminate and log out a remote .I Kermit server. .TP .B close Close a log file. .TP .B connect Establish a terminal connection to a remote system. .TP .B cwd Change Working Directory. .TP .B dial Dial a telephone number. .TP .B directory Display a directory listing. .TP .B echo Disage on remote system. .TP .B type Display a remote file on your screen. .TP .B who Display who's logged in, or get information about a user. .SH FILES .ta \w"$HOME/.kermrc "u $HOME/.kermrc \fIKermit\fR initialization commands .br \&./.kermrc more \fIKermit\fR initialization commands .PD .SH SEE ALSO cu(1C), uucp(1C) .br Frank da Cruz and Bill Catchings, .IR "Kermit User's Guide" , Columbia University, 6th Edition .SH DIAGNOSTICS The diagnostics produced by .I Kermit itself are intended to be self-explan&D space) ckufio.c: . Add appropriate #ifdef for TOWER1 in zkself() . Add 2.9bsd identification string ckutio.c: . Move definition of CTTNAM from here to ckcdeb.h, so it can be shared. . In initrawq() (for V7 only) read the proc table again after fork(). . Change symbol 3BX to ATT3BX. . Get rid of the (void) casts in strxxx() invocations -- the proliferation of conditionals was getting ridiculous, and it was only to please lint. . In conbin() for Sys III/V, open terminal in 7-bit, parity-enabled mode red (e.g. in Makefile), then define null macros to replace calls to the debug() and tlog() functions, to save space and execution time. Program is too big for Macintosh with these functions compiled in. Establish a symbol NLCHAR. If this symbol is defined, then text (ascii) files are stored with a single character (such as lf or cr) terminating each line, and this character is the value of NLCHAR. If not defined, then the system uses CRLF. When NLCHAR is defined, C-Kermit maps between that character andather than 8-bit, no-parity mode (some sites actually use parity). . In conint(), trap and ignore QUIT signal, trap SIGHUP and handle like SIGINT. This prevents lock files from being left behind after hangup or quit. . In connoi(), turn off traps for SIGQUIT, SIGHUP. . In ttopen(), add Sys III/V code using ctermid() to better determine remote/ local status when stdin redirected. If not Sys III/V and stdin redirected, assume local, rather than remote, so that "set speed" and other local-mode only CRLF. ckcfns.c, ckcfn2.c (formerly ckfns.c, ckfns2.c): . change all calls to screen() to new form. . fix bug in sfile() that sometimes prevented literal names from working. . don't translate send-as names in sfile, always use them literally. . change input() to always resend() after getting a NAK. . change getpkt to clear leftovers when starting new file (next = -1), so that filenames in F pkt wouldn't have garbage after previous file was interrupted. . Change call to zchin() to use new calling convecommands will work. . Add 2.9bsd identification string . Make new ANYBSD symbol to select 4.1, 4.2, and 2.9. In some cases, all 3 work the same, in others, 2.9 and 4.2 are the same, 4.1 special. ckuus*.c: . In command line invocation, base local/remote determination on CTTNAM. . In "set line" only ask ttopen() to set local/remote if not default tty. . Ignore SIGQUIT and SIGINT signals while inferior shell active in XXSHE:. Previously, both Kermit and the inferior shell would catch them. . In XYLINE: cntion so bytes with hi bit on won't be confused with eof on some systems. . Reset czseen in seof, not in clsif, so that remote ^X while C-Kermit sending will result in correct Z packet with D in data. . In resend(), don't send any packet if packet buffer is empty. . Un-hardwire getch() from Unix newline text file convention. . Fix bug that sometimes resulted in contents of R or X packet having first character doubled. . Fix bug in getpkt that prevented leftovers from being transmitted after end of fC-KERMIT FOR UNIX, CHANGES FROM 4C(052) TO 4C(053), 21 JUNE 85: ckcfn2.c: . Change dopar() to be of type CHAR. . Fix dopar() to calculate odd parity correctly. ckucon.c, ckuscr.c: . Add "extern CHAR dopar();" declarations. C-KERMIT FOR UNIX, CHANGES FROM 4C(050) TO 4C(052), 18 JUNE 85: ckcfns.c: . Repair rpar() and spar() handling of 8th bit prefix negotiation. . In sinit(), when sending from stdin, allow "-a name" to work. . In rcvfil(), guard against receiving a null F packet. ckcmai.c: . Change hlpall ttopen() with a temp, x, rather than "local", then only set local if x was set. . Change message "status report..." to "status report:" to avoid dot confusion. C-KERMIT FOR UNIX, CHANGES FROM VERSION 4.2(030) TO 4C(050), 30 May 85: All files except ckwart.* have been renamed according to a consistent convention, see ckaaaa.hlp for an explanation. Copyright notices added to every module, so we can't be enjoined from distributing our own program if we give the right to other organizations, like Berktxt[] to contain less than 256 characters (for Xenix) ckcpro.c: . In proto() call ttopen() with a temp, x, rather than "local", then only set local if x was set. ckucmd.c: . In cmifi(), make y long rather than int. This was making 16-bit machines erroneously report that files longer than 32K could not be found. ckuker.mak (makefile): . Change symbol 3BX to ATT3BX (has to start with letter) . Remove line continuations in the middle of strings . Add entry for sys3nid (System III/V on PDP-11 with no Ieley, to distribute it. ckwart.c . Move the #define in the txt1 string to not start on a new line. . Fix the comments printed by wart so they can't be construed as comments by the compiler that compiles wart. . Include formfeed among the skipped-over whitespace characters. . Add wart version information. ckcdeb.h (formerly ckdebu.h): Forget about typedefing LONG to be unsigned long -- it causes too many problems for PDP-11 C compilers, etc. Just let LONG be long. If symbols DEBUG and TLOG not defin getting input from a system function, call zopeni() on new ZSYSFN channel, rather than circumventing zopeni() by calling zopen(). . Clean up inlin() a little, use maxt vs MAXTRY consistently. . Change rpack,spack,rpar,spar,etc to use the new, separated send/receive packet parameters (padding,timeout,eol,soh,etc). ckcker.h (formerly ckermi.h): . Removed #include and from ckermi.h. Macintosh does not need all that... (thanks, Bill) . Remove include of ckdebu.h (now ckcdeb.h). . table stuff to other systems. . (023) Changed zopeni(), when called with new ZSYSFN channel number, to invoke zxcmd() to start a fork and get its fd; also changed zclose() and chkfn() accordingly. . (024) In zchki(), allowed 0 as well as S_IFREG as S_IFMT value for ordinary file; Sys V stat() can return either of these values for an ordinary file. Also, insert missing #else in zkself(). . (025) declare zchki() to be of type 'long', so that it can return valid file sizes for big files. Also fiAdd defs for LF and NUL. . Add def for new ZSYSFN file i/o channel. ckcpro.w (formerly ckprot.w) Protocol Module: . Add "a" state to cancel any transaction. . Remove entries for input='N', since this is now handled by input(). . Fix "a" state to not cause "OK" message when files closed. ckucmd.c (formerly ckcmd.c) Unix Command Package: . Set global cmerrp (error prefix) to be same as prompt, but with '>' stripped. . Allow interactive command continuation using trailing '\'. . Change "*bp++ == NUL;" in gx internal variables that hold size to also be long. (Same change to ckvfio.c.) Also, change ckcfns.c and ckucmd.c to declare 'long zchki();'. ckutio.c (formerly ckxunx.c and ckxbsd.c): Started from Charles Brooks's 4.2 ckxunx.c, which is the original C-Kermit release 4.2 version, to which he added 4.1bsd support. . Added the following for Pro/Venix Version 1: - Filled in msleep() using alarm(-clockticks). - Filled in conchk() and ttchk() using TIOCQCNT. - Changed default tty name (dftty) etwd() to simply "bp++;". . Test for CR as well as NL for line termination (for Apollo Aegis). . In ckucmd.h, #define getchar specially for VMS and Aegis. . In cmfld, return(0) from filling out default when ESC typed; this prevents "log trans transact.log transact.log transact.log ..." . In cmtxt, preserve pointers & counts across calls in case of reparse. . In getwd, return -1, NOT -2, if ^U (line kill) is typed. ckucon.c (formerly ckconu.c) Connect module: . When writing to session log,to be "/dev/com1.dout". - Added line locking via /usr/spool/uucp/LCK..devname and TIOCEXCL. . Changed local variable c from int to CHAR in ttinl(). . Let CEB's code to hangup line upon close in 4.1bsd also work for 4.2bsd. . Removed flock() from ttopen(), call ttlock() before trying to open tty. . Corrected some places where alarms & signals were not turned off. . Changed calling convention for ttopen() to allow it to set the "local" variable, since ttopen can call the system to figure out whether a g make some minimal attempt to recover from disk full or other i/o errors (just turn off logging flag). . Add baud and parity info to status display. ckudia.c (formerly ckdial.c) Dial command: . Support added for Racal-Vadic, Cermetek, Penril, General Datacomm. . Use msleep() for higher precision timing. ckufio.c (formerly ckzunx.c, and before that ckzbsd.c): Started from Charles Brooks's 4.2 ckzunx.c, which is the original C-Kermit release 4.2 version, to which he added 4.1bsd support. . Fixed zltor(iven device is the job's controlling tty. Also had to change all modules that call ttopen() to pass this variable by reference instead of by value. . In ttopen, copy ttname string into a static ttnmsv string global to ckutio module, rather than just copying the pointer (which is pointing at a moving target). Should fix PC/IX tthang() problem. . Add support for AT&T 3B-series under 3BX conditional; initially, it just follows UXIII conditional, but uses special uucp lock file name. ckuusr.c, ckile. . Have tinit() clear c[xz]seen and filnam to prevent bad things happening after interruption or emergency protocol exit. . Have syscmd() return 0 if called with null string. This allows single process systems like the Macintosh to act as servers, even if they can't do commands like remote directory. . Send out initial nak when doing receive, so that there will be something in the packet buffer to resend. . Check for failure return code from zchout, to catch disk full errors, etc. . When server) to only count dots after the last '/'. . Declared malloc as "char *malloc()". . Change fprintf(fp[n],s) to fputs(s, fp[n]) in zsout & zsoutl. . Added zkself() function to log self out, for use by server "bye". . Changed calling convention for zchin() to allow 68000's etc to return EOF. . Make zopeno() chown the file to self, in case program set[ug]id'd. . Changed znewn() to try not to contruct a name that is too long. . Merge in Gregg Wonderly's v7 support. . Make various changes to v7 support to fit procuus2.c, ckuus3.c (formerly ckuser.c, ckusr2.c, ckusr3.c): . all occurrences of printf(s) replaced by printf("%s",s) or puts(s). . shortening of remaining long strings. . continuation lines now allowed in commands if line ends with "\". . make "dir" command arg default to ".", not "*", to prevent recursive listing. . make "!" command with no args do system("$SHELL"). . removed redundant definitions of ncmd, nrmt, nprm. . totally redefined and rewrote screen() function. . Change send-as to use cmtxt, not cmf./usr/opt/bin/kermit/ckuv7.hlp 644 0 3 5636 5555216006 11405 ld; remove cmcfm. . Fix send command to wait for confirmation after wild filespec (this was broken by send-as change above, few people saw it). . Put 'log debug' command in #ifdef DEBUG . Put 'log transaction' command in #ifdef TLOG . Use 'transact.log' as default name for transaction log, rather than 'transaction.log', which is too long for all but 4.2bsd Unixes. . Use symbols for exit() & doexit() return codes, not hardwired 0 and 1. . Use symbol for name of init file. . Put Unix-specific messages in Date: Fri, 17 May 85 18:53:43 CDT From: Gregg Wonderly Subject: Additional C-Kermit Implementation Notes for Version 7 UNIX The Version 7 implementation takes advantage of some information present in the UNIX kernal to obtain the count of characters available for input from a particular file descriptor. The function initrawq() is used to obtain the kernal address of this value. It is a structure value that is associated with the clist for the file descriptor passed. T#ifdef's . In 'set line', put speed back to -1 if not local. . Change "*xargv++;" in cmdlin() to simply "xargv++;". . Change all "if (x = (cmcfm()) < 0)" to "if ((x = cmcfm()) < 0)". . In ckuus3, change "turnch == y" to "turnch = y"; this bug prevented "set handshake" from working. . Add code in shopar() to look up and display modem type correctly. . Change "set line" code to have ttopen() figure out local/remote mode. . Fix "set line" not to erroneously set ttname if it ttopen fails. . In remote cwd parshe struture member is the "rawq" count of characters available. The include file on our system shows this value as the first "int" in the structure. The operations in initrawq() cause the child process to "block", trying to read from the "tty" file descriptor. Then, by looking through the "proc" structures, we find the proper process, and get its "wchan" pointer. This is a pointer to the clist in question, in the kernal memory. The "wchan" address can then be used as an offset by lseing, accept CR as well as NL as password terminator. . In local directory command, use DIRCMD rather than "ls -l ". . In screen() function SCR_QE, print long argument with %ld so the ^A status report doesn't show all 0's on systems where ints and longs are different length (%ld was already used in the other screen functions). . Fix multiline 'get' parsing to allow editing (required fixes to ckucmd.c). . Add conditionals for init file name for various systems. . Phase out the following set commands: seek to select the proper address in the kernal (/dev/kmem) to read from. By reading the first "int" at this address, we obtain a count of the characters available on the raw input queue. The MAKE variables PROC, NPROCNAME, BOOTNAME, are necessary to get around different naming conventions across systems. The variable PROC is the name given to the process structure array on your system. The include file (or some facsimile) should contain a declaration of the form: extern struct prt end-of-packet, set start-of-packet, set timeout, set padding & pad-ch. Replace by set send (each of these) and set receive (each of these), to allow inbound & outbound packet parameters to be set separately. . Put new set send/receive params in show command display. . Add version info for ckudia and ckuscr to 'sho ver'. . Add init file name to 'sho param'. . Replace system("pwd") in XXCWD code with system(PWDCMD), defined in ckufio. ame for various systems. . Phase out the following set commands: seoc *proc; or extern struct proc proc[]; The name of the pointer/array, is what you are concerned with. It may be something like "_proc", "proc", or some deriviation. You should define the MAKE variable PROC to this string, whatever it may be. On our system, I use "PROC=proc". If your definition is for an array, then you should define the MAKE variable DIRECT to be "-DDIRECT", as it is in the MAKEFILE. If your definition is for a pointer to the array, then you should remove the definition of DIRECmp.h> #ifndef SIGUSR1 #define SIGUSR1 16 #endif extern int local, speed, escape, duplex, parity, flow, seslog, mdmtyp; extern char ttname[], sesfil[]; int i, active; /* Variables global to this module */ char *chstr(); #define LBUFL 100 /* Line buffer */ char lbuf[LBUFL]; /* C O N E C T -- Perform terminal connection */ conect() { int pid, /* process id of child (modem reader) */ parent_id, /* process id of parent (keyboard reader) */ n; int c; /* c is a character, but must == escape) { /* Look for escape char */ c = coninc(0) & 0177; doesc(c); } else { /* Ordinary character */ ttoc(dopar(c)); if (duplex) { /* Half duplex? */ conoc(c); /* Yes, also echo it. */ if (seslog) zchout(ZSFILE,c); /* And maybe log it. */ } } } } while (active); cancio(); conres(); printf("\r\nC-Kermit Disconnected\r\n"); return(0); } /* H C O N N E -- Give help message for connect. */ hconne() { int c; static char *hlpmsg[T, so the the line reads "DIRECT=" (no value here). This is necessary for the routine to properly locate the "proc" array. If you have an array declaration, then the call to nlist() will return the address of the array. However, if you have a pointer, then nlist() returns the address of the pointer. This requires one extra level of dereference to obtain the address of the array. The same thing applies to the variable NPROCNAME. On our system, this is defined as "NPROCNAME=nproc". This should also be signed integer to pass thru -1, which is the modem disconnection signal, and is different from the character 0377 */ char errmsg[50], *erp; if (!local) { printf("Sorry, you must 'set line' first\n"); return(-2); } if (speed < 0) { printf("Sorry, you must 'set speed' first\n"); return(-2); } if ((escape < 0) || (escape > 0177)) { printf("Your escape character is not ASCII - %d\n",escape); return(-2); } if (ttopen(ttname,&local,mdmtyp) be declared in something like: extern int nproc; This value is the number (Maximum that is) of process entries in the "proc" array. BOOTNAME is the name of the kernal image on your system. On our system, it is "/edition7". On others, it is probably "/unix", or something close. The nlist() function uses this file to look for the addresses of the kernal variables "proc", and "nproc". to the variable NPROCNAME. On our system, this is defined as "NPROCNAME=nproc". This should also < 0) { erp = errmsg; sprintf(erp,"Sorry, can't open %s",ttname); perror(errmsg); return(-2); } printf("Connecting thru %s, speed %d.\r\n",ttname,speed); printf("The escape character is %s (%d).\r\n",chstr(escape),escape); printf("Type the escape character followed by C to get back,\r\n"); printf("or followed by ? to see other options.\r\n"); if (seslog) printf("(Session logged to %s.)\r\n",sesfil); /* Condition console terminal and communication line */ if (con./usr/opt/bin/kermit/ckvcon.c 644 0 3 12664 5555216006 11307 bin(escape) < 0) { printf("Sorry, can't condition console terminal\n"); return(-2); } if (ttvt(speed,flow) < 0) { conres(); printf("Sorry, Can't condition communication line\n"); return(-2); } /* cont'd... */ /* ...connect, cont'd */ active = 1; do { int src; contti(&c, &src); if (src < 0) { /* Comm line hangup or other error */ printf("\r\nC-Kermit: Communications line failure\r\n"); active = 0; } else if (src) { /* Character from commchar *connv = "Connect Command, V4.2(007)+1 27 Jun 85"; /* C K V C O N -- Dumb terminal connection to remote system, for VMS */ /* Adapted from the Unix C-Kermit connect module by S. Rubenstein for systems without fork(). This version of conect() uses contti(&c, &src) to return when a character is available from either the console or the comm line, to allow sending/receiving without breaking connection. */ #include "ckcker.h" #include #include #include #include 0) { if (n > LBUFL) n = LBUFL; /* Get them all at once. */ if ((n = ttxin(n,lbuf)) > 0) { for (i = 0; i < n; i++) lbuf[i] &= 0177; conxo(n,lbuf); if (seslog) zsoutx(ZSFILE,lbuf,n); } } } else { /* Character from console */ c &= 0177; if (c conol(", logging to "); conol(sesfil); } } else if (c == '?') { /* Help */ hconne(); } else if (c == '0') { /* Send a null */ c = '\0'; d = dopar(c); ttoc(d); } else if (c != SP) { /* Space, ignore */ conoc(BEL); /* Invalid esc arg, beep */ } } } Connected thru "); conoll(ttname); if (seslog) { ] = { " ", /* leave a blank line */ "C to close the connection, or:", " B to send a BREAK", " H to hang up the phone", " S for status", " 0 to send a null", " ? for help", " escape character twice to send the escape character.", " ", /* leave a blank line */ "" }; conola(hlpmsg); /* Print the help message. */ conol("Command> "); /* Prompt for command. */ c = coninc(0); conoc(c); /* Echo it. */ conoll(""); doesc(c); } /* C H S T R -- Make a printable string out of a character */ char * chstr(c) int c; { static char s[8]; char *cp = s; if (c < SP) { sprintf(cp,"CTRL-%c",ctl(c)); } else sprintf(cp,"'%c'\n",c); cp = s; return(cp); } /* D O E S C -- Process an escape character argument */ doesc(c) char c; { int d; c &= 0177; if (c == escape) { /* Send escape character */ d = dopar(c); ttoc(d); } else { /* Or else look it up below. */ if (isupper(c)) c = tolower(c); if (iscntrl(c)) c += 'a' - '\001'; if (c == 'c') { /* Close connection */ active = 0; conol("\r\n"); } else if (c == 'b') { /* Send a BREAK */ ttsndb(); } else if (c == 'h') { /* Hang up the line */ tthang(); } else if (c == 's') { /* Status */ conol("\r\nConnected thru "); conoll(ttname); if (seslog) {