Article View: net.micro.atari16
Article #947GEM-Kermit (Part 1 of 6)
From: axel
Date: Fri, 20 Jun 1986 03:02
Date: Fri, 20 Jun 1986 03:02
1118 lines
46349 bytes
46349 bytes
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
# README.first
# README
# kermrsc.uuc
# ibmtty.uuc
# ibmtty
# This archive created: Fri Jun 20 03:39:26 1986
export PATH; PATH=/bin:/usr/bin:$PATH
if test -f 'README.first'
then
echo shar: "will not over-write existing file 'README.first'"
else
cat << \SHAR_EOF > 'README.first'
GEM-Kermit for ATARI ST
This is the first distribution of GEM-Kermit, an implementation
of the well known kermit file-transfer protocol, with a user-interface,
which uses the capabilities of GEM. This Program was developed on
and for the Atari ST.
GEM-Kermit was implemented by Bernhard Nebel of Technical University
Berlin, W-Germany (nebel@db0tui11.bitnet).
The main difference to the kermit program supplied with the
Atari development kit, is the support of IBM-communication and
a *much* nicer user-interface.
The GEM Kermit distribution consists of 6 Parts. Five of them
are shell-archives, one (Part 2) is the uuencoded kermit-program
itself. Gemkermit requires the kermit.rsc (resource) to be
present, when invoked. The uuencoded kermit.rsc is contained
in Part 1.
The filename-extension "uuc" marks uuencoded files. All the
resource and .def -files, that come with kermit are uuencoded.
The easiest way to put kermit to work is, to bring kermit.uuc, kermrsc.uuc
and - if you're going to talk to IBMs - ibmtty.uuc on your Atari
and uudecode them there. How to do the download without kermit
already running on the ST ? If you don't want to type in the whole
stuff by hand, you better find somebody who is already able to download
files from a host to the atari.
The remaining files are the sources for GemKermit - in case you
like to fiddle around with them.
To unpack everything, create a directory "kermit", cd to it, and
off you go. After "un-shar"-ing, there should be two subdirectories
(rsc and ibmtty) - besides a couple of ordinary files, of course.
I hope this information will enable you to find your way to
GEM-Kermit.
...and now enjoy installing the stuff.
ciao, axel@coma
SHAR_EOF
fi
if test -f 'README'
then
echo shar: "will not over-write existing file 'README'"
else
cat << \SHAR_EOF > 'README'
Known problems with GEM-Kermit:
- during transfer, it happens sometimes, that the ST thinks some
button is depressed and starts an awful klicking (provided,
keyklick is enabled). After depressing any key the noise
disappears.
- in the RS232 configuration, character size has to be 8. If
cs is 7, all opening braces ('{') get lost (nobody knows why - yet).
When communicating with IBM mainframes, make sure the following
conditions are met:
- binary transfer requires both kermits to be in binary mode.
- select character size 8 bits/char (see above).
- turn XON/XOFF-processing off. This is necessary, because XON is
the handshake-character for half-duplex comm.-lines.
- run your accoustic-coupler in full-duplex mode if it tends
to echo in half-duplex mode.
NOTE: some of the distributed files come multiple times !
\SRC\STKOBJ.H = \RSC\STKOBJ.H
\RSC\STKOBJ.H = \RSC\STKOBE.H (is neccessary !)
\PRG\KERMIT.RSC = \RSC\STKOBE.RSC
\PRG\DKERMIT.RSC= \RSC\STKOBJ.RSC (this is the german version of
the resource, you can ignore it)
Send your bugreports, cheers, complaints, suggestions, hate-mail .....
to:
nebel@db0tui11.bitnet
Aw rite - enjoy !
SHAR_EOF
fi
if test -f 'kermrsc.uuc'
then
echo shar: "will not over-write existing file 'kermrsc.uuc'"
else
cat << \SHAR_EOF > 'kermrsc.uuc'
begin 777 kermit.rsc
M 9P!(T$C02-!'< "01VP +@ V 4 $4 !8 "Y0($1E<VL@ "!&
M:6QE( @5')A;G-F97(@ "!/<'1I;VYS( @($M%4DU)5"U);F9O "TM+2TM
M+2TM+2TM+2TM+2TM+2TM " @1&5S:R!!8V-E<W-O<GD@,2 @ " @1&5S:R!!
M8V-E<W-O<GD@,B @ " @1&5S:R!!8V-E<W-O<GD@,R @ " @1&5S:R!!8V-E
M<W-O<GD@-" @ " @1&5S:R!!8V-E<W-O<GD@-2 @ " @1&5S:R!!8V-E<W-O
M<GD@-B @ " @1&5L971E+BXN " @4F5N86UE+BXN " @475I= M+2TM+2TM
M+2TM+2TM+2TM+2T ("!4>7!E+BXN " @1G)E92!3<&%C92XN+@ @(%-E;F0N
M+BX ("!296-E:79E+BXN " @4'5T*%-E<G9E<BDN+BX +2TM+2TM+2TM+2TM
M+2TM+2TM+0 @($=E="A397)V97(I+BXN " @475I="A397)V97(I " @3&]G
M;W5T*%-E<G9E<BD +2TM+2TM+2TM+2TM+2TM+2TM+0 @($)I;F%R>2!4<F%N
M<V9E<@ @(%-E<W-I;VX@3&]G+BXN "TM+2TM+2TM+2TM+2TM+2TM+2TM+2T
M("!$96)U9R!,;V<N+BX ("!3879E(%-T871E+BXN "TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2T ("!&:6QE($YA;64@5V%R;FEN9P @(%!A9&1I;F< ("!)0DT@
M36]D90 @($-H86YG92!087)A;65T97)S+BXN " @3&]A9"!3=&%T92XN+@ @
M(%1I;65O=70 1&5L971E("XN+@!296YA;64@+BXN $YE=R!.86UE("XN+@!+
M15)-250@0V]M;75N:6-A=&EO;B!087)A;65T97)S 4V5N9 %)E8V5I
M=F4 !086-K970@3&5N9W1H 7U\ 7U\ .3D 7U\ 7U\ .3D 5&EM96]U
M="AS96,N*0 %]? %]? #DY %]? %]? #DY %)E=')I97,H8V]U;G0I
M7U\ 7U\ .3D 14],*&AE>&-O9&4I 7U\ 7U\ 3DX 7U\ 7U\ 3DX 4&%D
M9&EN9RAH97AC;V1E*0 %]? %]? $Y. %!A9&1I;F<H;&5N9W1H*0 %]?
M %]? #DY %!A8VME="!3=&%R="AH97AC;V1E*0 %]? %]? $Y. %]? %]?
M $Y. $AA;F1S:&%K92AH97AC;V1E*0 %]? %]? $Y. %%U;W1E*&-H87)A
M8W1E<BD !? %\ 6 !? %\ 6 !/2P!!0D]25 !396YD 4F5C96EV90
M %]?7U]?7U]?7U]?7U]?7U]?7U]?7U\ 7U]?7U]?7U]?7U]?7U]?7U]?7U]?
M7P!86%A86%A86%A86%A86%A86%A86%A8 $9I;&4Z 7U]?7U]?7U]?7U]?
M7U]?7U]?7U]?7P!?7U]?7U]?7U]?7U]?7U]?7U]?7U]? %A86%A86%A86%A8
M6%A86%A86%A86%@ 3&]G+B!N86UE.@ %]?7U]?7U\ 7U]?7U]?7P!86%A8
M6%A8 $9I;&5S(" @=')A;G-F97)R960Z 7U]?7U\ 7U]?7U\ 6%A86%@
M0GET97,O<V5C+CH !?7U]?7P!?7U]?7P!86%A86 !%<G)O<G,Z 7U]?
M7U\ 7U]?7U\ 6%A86%@ 5&EM96]U=',Z 7U]?7U]?7P!?7U]?7U]? %A8
M6%A86%@ 0GET97,@("!T<F%N<V9E<G)E9#H !?7P!?7P!86 !086-K970@
M:60Z 04)/4E0 7U]?7U]?7P!?7U]?7U]? %A86%A86%@ 4&%C:V5T<R!T
M<F%N<V9E<G)E9#H !'970H4V5R=F5R*0 %!U="A397)V97(I 5$E-
M14]55 !214%$60!1=6ET*%-E<G9E<BD !,;V=O=70H4V5R=F5R*0
M $]+ $Y%0D5,0$1",%1523$Q+D))5$Y%5 $)E<FYH87)D($YE8F5L
M#@\@1T5-+4M%4DU)5 'AX>'@ 5F5R<VEO;E]?+E]? #DY.3D >'AX>'AX
M %]?+5]?+5]? #DY.3DY.0!4:&ES('!R;V=R86T@:7,@<'5B;&EC(&1O;6%I
M;@ '-O9G1W87)E(&%N9"!I<R!D:7-T<FEB=71E9"!F<F5E;'DN 5&AE
M($M%4DU)5"!P<F]T;V-O;"!W87,@9&5V96QO<&5D 870@0V]L=6UB:6$@
M56YI=F5R<VET>2P@3F5W(%EO<FLN 5&AE(')E;6]T92!H;W-T('-T;W!P
M960@=')A;G-F97)R:6YG 86YD('-E;G0@=&AE(&9O;&QO=VEN9R!M97-S
M86=E.@ %]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?
M7U]?7U\ 7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]?
M7P!86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A8 $]+
M %1Y<&4@+BXN "TM+2!-3U)%("TM+0 M+2T@14]&("TM+0!3=&%R="!S96YD
M:6YG+B!0871H/2<E<R<L1FEL93TG)7,G %-E;F1I;F<@<W5C8V5S<V9U;&QY
M(&-O;7!L971E9"X *BHJ3F\@<W5C:"!&:6QE+@ J*BI%<G)O<B!M97-S86=E
M(&9R;VT@<F5M;W1E(&AO<W0Z("5S+@!396YD:6YG(&%B;W)T960N %-004-+
M.B!T>7!E/25C+"!L96X])3)D+"!N=6T])3 R> !34$%#2SH@9&%T83U\)7-\
M "HJ*D-H96-K<W5M(&5R<F]R.B!R96,N/24P,G@@97AP+CTE,#)X "HJ*E5S
M97(@86)O<G1E9"X 5&EM96]U="!W:&EL92!R96-E:79I;F<N %-7251#2#H@
M<W1A=&4])6,@;G5M/24P,G@ *BHJ4F5M;W1E(&AO<W0@9&]E<R!N;W0@<F5S
M<&]N9"X *BHJ1F%T86P@<W1A=&4@97)R;W(N $9I;&4@)R5S)R!O<&5N960@
M9F]R('-E;F1I;F<N "HJ*D9I;&4@8V%N;F]T(&)E(&]P96YE9"X 1FEL92 G
M)7,G('=I;&P@8F4@<V5N="!A<R G)7,G+@!&:6QE("<E<R<@8V]M<&QE=&5L
M>2!T<F%N<V9E<G)E9"X 4E!!0TLZ('1Y<&4])6,L(&QE;CTE,F0L(&YU;3TE
M,#)X %)004-+.B!D871A/7PE<WP 3&]O:VEN9R!F;W(@;F5X="!F:6QE("XN
M+@!.97AT(&9I;&4@=VEL;"!B92 G)7,G+@ J*BI&871A;"!P<F]T;V-O;"!E
M<G)O<BX *BHJ1FEL92 G)7,G(&-A;FYO="!B92!C<F5A=&5D+@!&:6QE("<E
M<R<@97AS:7-T<RX@3F5W(&YA;64Z("<E<R<N %)E8V5I=FEN9R!S=6-C97-S
M9G5L;'D@8V]M<&QE=&5D+@ J*BI&871A;"!F:6QE($DO3R!E<G)O<BX 1FEL
M92 G)7,G('=I;&P@8F4@<F5C96EV960@87,@)R5S)RX (" M/B!S96YT.B \
M,'@E,#)X/B!\)6-\ $YO(&AA;F1S:&%K92!C:&%R86-T97(@<F5C96EV960N
M " @+3X@9FQU<VAE9#H@/#!X)3 R>#X@?"5C? !3=&%R="!R96-E:79I;F<N
M(%!A=&@])R5S)RP@1FEL93TG)7,G+@!296-E:79I;F<@86)O<G1E9"X (" M
M/B!A9G1E<B E9"!S96,N(')E8W8N.B \,'@E,#)X/B!\)6-\ " @+3X@<&%D
M9&EN9SH@)60@*B \,'@E,#)X/@ @("T^('=A:71I;F<@9F]R(&AA;F1S:&%K
M92 \,'@E,#)X/B!\)6-\ " @+3X@2&%N9'-H86ME(&-H87)A8W1E<B!R96-E
M:79E9"X ($9I;&4@)7,@<F5Q=65S=&5D("A0871H/25S+"!&:6QE/25S*2X
M1V5T=&EN9R!S=6-C97-S9G5L;'D@8V]M<&QE=&5D+@!1=6ET=&EN9RA397)V
M97(I(')E<75E<W1E9"X 1V5T=&EN9R!A8F]R=&5D+@!35%))3D< 475I='1I
M;F<H4V5R=F5R*2!A8F]R=&5D+@!,;V=O=70H4V5R=F5R*2!R97%U97-T960N
M %%U:71T:6YG*%-E<G9E<BD@<W5C8V5S<V9U;&QY(&-O;7!L971E9"X 3&]G
M;W5T*%-E<G9E<BD@<W5C8V5S<V9U;&QY(&-O;7!L971E9"X 3&]G;W5T*%-E
M<G9E<BD@86)O<G1E9"X 4V%V92!S=&%T92 N+BX 3&]A9"!S=&%T92 N+BX
M4V5N9" N+BX 4F5C96EV92 N+BX 4'5T("XN+@!'970@+BXN $]P96X@9&5B
M=6<@;&]G("XN+@!/<&5N('-E<W-I;VX@;&]G("XN+@!! $9R964@9&ES:R!S
M<&%C92!O;B!?.@!& %]?7U]?7U]? %]?7U]?7U]?($)Y=&5S #DY.3DY.3DY
M $]+ $=E="!F<F]M(')E;6]T92!H;W-T 7U]?7U]?7U]?7U]?7U]?7U]?
M7U]?7U]?7U]?7U]?7U]?7U]?7U]?7P!?7U]?7U]?7U]?7U]?7U]?7U]?7U]?
M7U]?7U]?7U]?7U]?7U]?7U]? %A86%A86%A86%A86%A86%A86%A86%A86%A8
M6%A86%A86%A86%A86%@ 1V5T(&9O;&QO=VEN9R!F:6QE(&9R;VT@<F5M;W1E
M(&AO<W0Z 3TL 04)/4E0 6S-=6T5R<F]R(&]N('=R:71I;F=\=&\@<W1A
M=&4@9FEL92Y=6T%"3U)470!;,UU;5&AI<R!F:6QE(&%L<F5A9'D@97AI<W1S
M+EU;04)/4E1= %LS75M4:&ES(&9I;&4@9&]E<R!N;W0@97AI<W0N75M!0D]2
M5%T 6S-=6TYO="!Y970@:6UP;&5M96YT960N75M33U)265T 6S!=6T9I;&4@
M<F5N86UE9"Y=6T]+70!;,%U;1FEL92!D96QE=&5D+EU;3TM= %LS75M%<G)O
M<B!W:&EL92!D96QE=&EN9R!F:6QE+EU;04)/4E1= %LS75M%<G)O<B!W:&EL
M92!R96YA;6EN9RY=6T%"3U)470!;,UU;4F5M;W1E(&AO<W0@9&]E<R!N;W0@
M<F5S<&]N9"Y=6T%"3U)470!;,%U;1&5B=6<@;&]G(&-L;W-E9"Y=6T]+70!;
M,%U;4V5S<VEO;B!L;V<@8VQO<V5D+EU;3TM= %LS75M%<G)O<B!W:&EL92!O
M<&5N:6YG(&9I;&4N75M!0D]25%T 6S!=6U-T871E('-A=F5D+EU;3TM= %LR
M75M296%L;'D@86)O<G0@=')A;G-F97(_75M#3TY424Y517Q!0D]25%T 6S!=
M6U-T871E(&QO861E9"Y=6T]+70!;,%U;1&5B=6<@;&]G('-T87)T960N?$QE
M=F5L(&]F(&QO9V=I;F<Z75M086-K971S?$-H87)A8W1E<G-= %LP75M397-S
M:6]N(&QO9R!S=&%R=&5D+EU;3TM= %LS75M&871A;"!E<G)O<B!I;B!P<F]T
M;V-O;"Y=6T%"3U)470!;,UU;1FEL92!C86YN;W0@8F4@8W)E871E9"Y=6T%"
M3U)470!;,UU;1F%T86P@97)R;W(@=VAI;&5\9&]I;F<@9FEL92!)+T\N75M!
M0D]25%T 6S-=6U%U:71T:6YG(&]F(%-E<G9E<B!A8F]R=&5D(" @(" @('QB
M96-A=7-E(&]F('1R86YS;6ES<VEO;B!E<G)O<G,N75M!0D]25%T 6S-=6TQO
M9V]U="!O9B!397)V97(@86)O<G1E9" @(" @(" @?&)E8V%U<V4@;V8@=')A
M;G-M:7-S:6]N(&5R<F]R<RY=6T%"3U)470 .? #J@ [. .]
M#Q4 \L /0P #VH ^, /M@ #]$ _N 0% $"H !!6 0
M;0 $*L !#) 0[@ $1( !% 1C@ J( +" "PP # 8 A&
M #__@ @ $ +$ "R0 LH P & (1@ __\ !0 ! "RP M,
M +4 , !@ "$8 /__ @ 0 M4 +C "Y # 8 !& #__P .
M $ +E "Z NL P & 1@ P # "[@ O$ +T ,
M!@ $8 , P O< ,% #!@ # 8 !& #__P . $ ,'
M #"@ PT P & 1@ P # #$ Q, ,6 , !@ $8
M , P QD ,H #*0 # 8 !& #__P / $ ,J #+0
M S P & 1@ P # #,P T -! , !@ $8 /__ T
M 0 T( -% #2 # 8 !& # , -+ #3@ U$ P &
M 1@ P # #5 V4 -F , !@ $8 /__ !$ 0 V<
M -J #;0 # 8 !& # , -P #@ X$ P & 1@
M__\ $ ! #@@ X4 .( , !@ $8 , P XL .A #
MH@ # 8 !& #__P 6 $ .C #I@ ZD P & 1@ P #
M #K Z\ .R , !@ $8 , P [4 /( #R0 # 8
M !& #__P 3 $ /* #S0 ] P & 1@ P # #TP
M ^0 /E , !@ $8 /__ !$ 0 ^8 /H #Z@ # 8 !&
M " ( /L #[@ _ P & 1@ @ " #^P ! 0!
M , !@ "$8 /_^ 4 0 ! ( 0* $"P # 8 A& #__@ ( $
M 0, $(P !#H P & $1@ __\ %P 7 $40 !%< 18 , !@
M$8 /__ 8 0 !%D 1P $AP # 8 1& #__P 7 !< 2> $
MJ0 !*H P & 1@ __\ "P ! $JP !+, 2[ , !@ !$8 /__
M @ " !,, 38 $V0 # 8 !& #__P 5 $ 3: $X !.8
M P & $1@ __\ !@ & $[ !/@ 3Y , !@ $8 /__ P 0
M!/H 4 %!@ # 8 1& #__P & 8 4, %% !14 P & 1
M@ __\ " ! %%@ !1P 4B , !@ !$8 /__ 8 !@ !2@ 4R
M %,P # 8 !& #__P * $ 4T %/ !40 P & $1@ __\
M" ( %3 !6$ 5B , !@ $8 /__ !4 0 !6, 5F %:0 #
M 8 !& #__P # , 5L %=P !7@ P & 1@ __\ "P ! %
M?P !8< 6/ , !@ !$8 /__ @ " !9< 6L %K0 # 8 !&
M #__P 5 $ 6N %N@ !;L P & (1@ __X # ! %O !<@
M 7) , !@ "$8 /_^ P 0 !=@ 7E %Y@ # 8 A& #__@ -
M $ 7G %]@ !?< P & (1@ __X #P ! %^ !?D 7Z ,
M!@ $8 /__ $ 0 !?X 84 &%0 % 8 A& #__P 6 $ 86
M &)0 !B8 !0 & (1@ __\ #P ! &)P !C4 8V , !@ "$'
M /__ X 0 !C< 8\ &20 # 8 A& #__P % T 9. &50
M!EX P & (1@ __\ !P ) &90 !H, :$ 4 !@ $8 /__ !X
M 0 !H4 :I &J@ % 8 !& #__P D $ :K &S0 !LX !0 &
M 1@ __\ (@ ! &SP !O$ ;R 4 !@ $8 /__ "( 0 !O,
M <8 '&0 # 8 !& #__P E $ <: '.@ !SL P & 1@
M__\ ( ! '/ !ST <^ , !@ $8 /__ $ 0 !S\ =H '
MD0 # 8 1& #__P I "D U\ -?@ #90 P & 1@ __\ @ 6
M -E@ #9\ VN , !@ !$8 /__ D #P #;H W/ -T # 8
M A& #__@ 5 $ W1 -^@ #B, P & 1@ __\ *0 I .3
M#G$ YR , !@ "$8 /__ "4 ?__ $ !P 9 %
M&0 ' ( @ 4 $0 % " 0 ! , !@ 9 @
M !\# 0 $_____P @ "0 8# 0 %_____P @ "L
M!@ 8# 0 &_____P @ #( # H# 0 "_____P @
M #T %@ D# 0 @ (0 9 ,! % $P 1 D $ 4
M #_$0 @ !0 " *_____P < $< !0 0 +_____P <
M " %4 ! !0 0 ,_____P < &H " !0 0 -____
M_P < '\ # !0 0 ._____P < )0 $ !0 0 /
M_____P < *D % !0 0 0_____P < +X & !0
M 0 (_____P < -, ' !0 0 8 !( %P 4 #_$0 "
M !( !@ 3_____P < .@ !( 0 4_____P < /0
M ! !( 0 5_____P < 0 % !( 0 6_____P < "
M 0< $ !( 0 7_____P < 1H " !( 0 1_____P <
M 20 # !( 0 A !D ( 4 #_$0 #@ !, " :_____P <
M 30 !, 0 ;_____P < 3X ! !, 0 <____
M_P < 4L # !, 0 =_____P < " 5P " !, 0 >
M_____P < 7 $ !, 0 ?_____P < 8$ & !,
M 0 @_____P < 9 ' !, 0 8_____P < " :$ %
M !, 0 ' "( +0 4 #_$0 & !8 # C_____P < ;4
M !8 0 D_____P < << & !8 0 E_____P < "
M =@ ( !8 0 F_____P < >\ ' !8 0 G_____P <
M ?X * !8 0 H_____P < " @X % !8 0 I_____P <
M B4 ! !8 0 J_____P < CD # !8 0 K____
M_P < D, " !8 0 L_____P < DX ) !8 0 M
M_____P < F4 + !8 0 A_____P < " G4 $ !8
M ?__ $ 0 4 $ "$0 !PH% 0 _____P < " G\$ ,
M H ?__ $ 0 4 $ "$0 @L' 0 _____P < " HH#
M 4 H ?__ $ 0 4 $ "$0 ! T' 0 _____P < "
M I4% 0 P ?__ $ ' 4 $ "$0 "X $0 "_____P 6
M( $C0 !P ! !\ 0 #_____P 6 $E & # < 0 $_____P 6
M $FP 'P # D 0 ' 4 !@ 6 $H@ !@ $ "( 0 &____
M_P > @ $J0 %P ( 0 $_____P > @ $L ( ( 0 *
M @ "0 6 $MP !@ % "( 0 )_____P > @ $O@ %P (
M 0 '_____P > @ $Q0 ( ( 0 , L "P 6 $S !@ &
M "( 0 *_____P > @ $TP ( ( 0 / T #@ 6 $V@
M!@ ' "( 0 ._____P > @ $X0 %P ( 0 ,_____P > @
M$Z ( ( 0 1 ! $ 6 $[P !@ ( "( 0 /_____P > @
M $]@ %P ( 0 3 !( $@ 6 $_0 !@ ) "( 0 1_____P >
M @ %! %P ( 0 6 !0 %0 6 %"P !@ * "( 0 5____
M_P > @ %$@ %P ( 0 3_____P > @ %&0 ( ( 0 8
M !< %P 6 %( !@ + "( 0 6_____P > @ %)P ( (
M 0 ; !D &@ 6 %+@ !@ , "( 0 :_____P > @ %-0 &
M $ 0 8_____P > @ %/ (0 $ 0 <_____P : < _(
M!@ . @ 0 _____P : "4 _4 ( . @ ?__ $ ) 4 $ "
M$0 "8 $@ "_____P 6 ( ( %0P !P ! !< 0 #_____P 6 (
M( %2@ !P ! !< 0 & 0 !0 4 #_$0 P # " 0 %_____P =
M @ %40 "@ !8 0 #_____P 5 %6 4 0 ) <
M" 4 #_$0 P $ " 0 (_____P = @ %7P "@ !8 0 &
M_____P 5 %9@ H 0 , H "P 4 #_$0 P & "
M 0 +_____P = @ %;0 &0 < 0 )_____P 5 %=
M !0 0 / T #@ 4 #_$0 P * " 0 ._____P = @ %>P
M&P 4 0 ,_____P 5 %@@ L 0 2 ! $0 4 #_
M$0 P + " 0 1_____P = @ %B0 &P 4 0 /_____P 5
M %D < 0 5 !, % 4 #_$0 P , " 0 4_____P =
M @ %EP &P 4 0 2_____P 5 %G@ D 0 8 !8
M%P 4 #_$0 P ( " 0 7_____P = @ %I0 &0 < 0 5
M_____P 5 %K !0 0 ; !D &@ 4 #_$0 P - "
M 0 :_____P = @ %LP '@ ( 0 8_____P 5 %N@
M H 0 <_____P : $ !7D &@ / D 0 ? !T '@ 4 #_$0
M P ' " 0 >_____P = @ %P0 &0 < 0 <_____P 5
M%R !0 0 @_____P 6 ( ( %SP !P ! !< 0 A_____P 6 (
M( %U@ !P ! !< 0 B_____P : $ !<H #P / D 0 C_____P :
M < " !=( P / D 0 D_____P 6 ( ( %W0 !P ! !< 0 ____
M_P 6 * ( %Y !P ! !< ?__ $ #0 4 $ "$0 !"$+#@ "
M_____P = @ %ZP "@ # L 0 #_____P : < !?L$# L, @
M 0 $_____P 5 %\@ ( "$ 0 %_____P 5 %^0 '
M "$ 0 ' 8 !@ 4 $ #$?$ !P ! !, @ %_____P 5 &
M P@ T 0 (_____P = &!P" 8$!" " 0 )_____P =
M&#@# D% R " 0 *_____P 9 $ "$0 $! P# 1@&!0 +_____P 5
M &%0!! H)!A4& ,_____P 5 &' !! 0* AH& -_____P 5
M &(P!! T*!A@& _____P 5 " &*@!! 8+!A@& /__ $
M!0 4 $ "$0 #( "@ "_____P 5 &,0 !P ! "0 0 #
M_____P 5 &. "@ " !\ 0 $_____P = @ &/P "@ # L
M 0 %_____P > @ &1@ !0 % "@ 0 _____P : "< ![H % (
M @ ?__ $ 0 4 $ "$0 @D' 0 _____P < " ![T%
M 0 @ ?__ $ *P 4 "$0 $X %0 "_____P <
M!\8 P 0 #_____P < !], ! L 0 $_____P <
M !]\ " "( 0 %_____P < " ( $ !\ 0 &_____P <
M ""( # ! 0 '_____P < "#, & "8 0 (____
M_P < "%H % ! 0 )_____P < "&L ' "$ 0 *
M_____P < "(T ( ! 0 +_____P < ")X + "8
M 0 ,_____P < ",4 , ! 0 -_____P < "-8 -
M !@ 0 ._____P < ".\ . !D 0 /_____P < "0D
M / " 0 0_____P < "2H 0 !4 0 1_____P <
M"4 1 !T 0 2_____P < "5X 2 !D 0 3_____P <
M "7@ 3 !\ 0 4_____P < "9@ 4 "$ 0 5_____P <
M ";H ) "$ 0 6_____P < "=P * ! 0 7____
M_P < ">T *0 $ !D 0 8_____P < "@< *0 # !< 0 9
M_____P < "A\ *0 " !@ 0 :_____P < "C@ )0 !\
M 0 ;_____P < "E@ )0 ! "( 0 <_____P < "GL *0 %
M "$ 0 =_____P < "IT *0 & !@ 0 >_____P < "K8
M*0 ' ", 0 ?_____P < "MH *0 + !@ 0 @_____P <
M"O, *0 * " 0 A_____P < "Q0 *0 , !L 0 B_____P <
M "S (P ( "8 0 C_____P < "U< *0 ) !( 0 D_____P <
M "VH (P - "< 0 E_____P < "Y( *0 . !L 0 F____
M_P < "ZX (@ / "@ 0 G_____P < "]< *0 0 "( 0 H
M_____P < "_H (P 1 "8 0 I_____P < #"$ )0 2 !\
M 0 J_____P < #$$ *0 4 !L 0 K_____P < #%T )@ 3
M ! 0 "P ,0 4 #_$0 $X %0 M_____P < #&X
M % 8 0 N_____P < #'4 ! !D 0 O_____P <
M#(\ " !D 0 P_____P < #*D "@ 0 Q_____P <
M #-( # "8 0 K_____P < " #/D $ !< ?__ $ 0 4
M $ "$0 !P\& 0 _____P < " #1$% , X ?__ $
M 0 4 $ "$0 !P\& 0 _____P < " #2 0, X ?__
M $ 0 4 $ "$0 H& 0 _____P < " #2\" 0, @
M ?__ $ 0 4 $ "$0 ! P& 0 _____P < " #3@& (
M L ?__ $ 0 4 $ "$0 ! D' 0 _____P < " #40"
M 0, < ?__ $ 0 4 $ "$0 !0@' 0 _____P < "
M#4P& , < ?__ $ 0 4 $ "$0 !Q,( 0 _____P < "
M #50' , !( ?__ $ 0 4 $ "$0 !14' 0 _____P <
M " #6<' 0 !0 ?__ $ P 4 $ "$0 !L "0 "____
M_P = @ &30 P ! !4 0 #_____P = &5 !@ # X 0
M_____P : "< #;< "0 & @ ?__ $ !0 4 $ "$0 #$
M# "_____P 6 ( &6P #0 ! !8 0 #_____P = @ &8@ ! &
M "@ 0 $_____P 5 &:0 !@ $ "0 0 %_____P : < #G,
M!P ) @ 0 _____P : "4 #G8 ( ) @ 0 &< !X0 >0
M'G !Z@ A6 )- "8@ FL )N "N0 KP *_ "P@ L
54 +( "RP LX +1 "UP
end
SHAR_EOF
fi
if test -f 'ibmtty.uuc'
then
echo shar: "will not over-write existing file 'ibmtty.uuc'"
else
cat << \SHAR_EOF > 'ibmtty.uuc'
begin 777 ibmtty.acc
M8!H !4, #N %\X 8@ "Y\ <R$ZY -%BZ\
M $Y!(B\ !# \ ,A.0DYU3E;_^BZ\ >"B\\ G?"\\ GZB\\ HADZY
M 30M_\ ##/ HB#U\ '__F 4,&[__M'(T?P ">>,+P 5)N__X,
M;@ *__YMY#/\ ( ">R+KP "?L+SP "B(+SP ">>3KD \84(\NO
M*&(O/ *(PO/ *, O/ *+X_/ $0F=.N0 %'#?_ !!.7DYU3E;_
M_$*7/SP! $ZY 3A%2/80 P$I 9@9"0& +(^N0 *&(_.0 *(P_.0
M*, _.0 *+Y"9TZY 3R%"/,\ "B*/KD "AB/SD "B,/SD "C /SD
M "B^/SD !X*/SD "=\/SD "C /SD "B^3KD !*>W_P ./KD "AB
M/SD "B,/SD "C /SD "B^/SD "B*3KD !0"4(\^N0 *(A.N0 #K0^
MN0 *(A.N0 #50^N0 *(A.N0 #H)P 4Y>3G5.5O_\+KP "?L0F<_.0
M*(A.N0 $"18CS Y G[%) ,\ !SJ,_D "C <[# Y <ZNA ,\
M !SN0GD !SP+KP "?L/SP 3\Y HB$ZY 0)%B/,_D "?T <\C Y
M <ZN9 P?D !SLP?D !SR(\ "BV(#P "C"(\ !SF(\ !9H0KD
M "5H2KD !9H9A8NO %K0_/ !3KD !)\5(]"0&!N0D SP '0(SP
M'/I"0#/ =!#/ <_# Y <ZE- ,\ !T&,\ !S^,#D "C 4T S
MP '0@SP '0 NO '.8O/ )6@O/ '/H_/ #/SD "B(3KD !"8
MW_P ,< %.7DYU3E;__#ZY HB$ZY -*DY>3G5.5O_\/KD "B(3KD
M [F85@^N0 *(I.N0 %#P^N0 *(I.N0 %%8^N0 *&(_.0 *(P_.0
M*, _.0 *+X_.0 '@H_.0 )WP_.0 *, _.0 *+Y.N0 $O#?_ Y.
M7DYU3E;__"Z\ E:"\\ <YB\\ <^C\\ ,_.0 *(A.N0 $)C?_
M Q"ES\\ 0%.N0 $X14CTY>3G5.5O_\/JX "#\\ 9.N0 %/Q4CTY>3G5.
M5O_\+JX "#\Y HB$ZY -ZE2//KP #6',/KP "F'&3EY.=4Y6__P^N0
M*(A.N0 #50^N0 *(A.N0 #H(NO %N1AMBZ\ 6^V&N+KP !<28:8N
MO %REAGBZ\ 7*F&6+KP !=888XNO %XAAABZ\ 7JV$ _WXNO
M%\UA /]T+KP !?W80#_:BZ\ 8*6$ _V NO &%YA /]6+KP !B+80#_
M3"Z\ 8M&$ _T).7DYU3E;__& */KP TZY 4_#Z\ !).N0 %/Q*@&;H
M3EY.=4Y6__P^O #_/SP !DZY 4_%2/2H!F[$Y>3G5.5O_X(&X "$(0/KP
M_S\\ 9.N0 %/Q4CRU __QG(" N__S O /\B;@ ,$H @+O_\<A#BH")N
M @2@&!,/KP $DZY 4_$J 9SX^O #3KD !3\+4#__" N__S O '\B
M;@ ,$H @;@ ,#! ?FX6(&X #! 02( ^@&$ _F0S_ ! E9B!N A*$&<
M_W!.7DYU3E;_^CZ\__\_//__/SS__S\\__\_//__/SS__S\\ ].N0 %-S?
M_ QR$.*@P+P #_'4#__CZ\__\0+O_^2( _ !7 @_//__/SS__S\\
M__\_//__/SP #TZY 4W-_\ #$)7/SP"[DZY 26E2//KS__Q N__Y(
M@#\ /SS__S\\__\_//__/SS__S\\ ].N0 %-S?_ Q.7DYU3E;__#Z\
M =A /V:3EY.=4Y6__8NCEV7+PY9ES\Y HB$ZY /WER//6X "/_^8!@P
M;O_^(FX #! PF !(@#Z 80#]8%)N__XP+O_^L&X "F_>/KD "B(3KD Y0
M/J[_^C\N__P_.0 *(A.N0 $/18CTY>3G5.5O_\/KD "B(3KD VX3EY.
M=4Y6__@NCEF7+PY5ES\Y HB$ZY /F%R/,"[__+!N AM##ZY HB$ZY
M -ADY>3G5.5O_Z/6X "O_^8!P@;@ ,,F[__M')(FX ##1N__[3RA%1 %3
M;O_^,"[__K!N ALVDY>3G5.5O_Z/6X "/_^8!P@;@ ,,F[__M')(FX ##1N
M__[3RA"I %2;O_^,"[__K!N IOVDY>3G5.5O_Z0F[__F :(&X ##)N__[1
MR2)N @T;O_^T\H0D5)N__X,;@!0__YMWDY>3G5.5O_\(&X "%-0; H@;@ (
M<!,P@& &(&X "# 03EY.=4Y6__P@;@ (4E P$+!\ !1M"B!N AP #" 8 8@
M;@ (,!!.7DYU3E;_\D)Y E9D)N__X@;@ (0E NCEF7+PY=ES\Y HB$ZY
M /WER/8 $ BZ.49<O#@:7____]F$ _-Y8CTIY E9F=,+HY9ER\.79<_
M.0 *(A.N0 #]Y<CRZN P@;@ (/Q!35T)G80#]_EB//J[__# N__[15S\N
M__H_.0 *(A.N0 $/18CT)Y E9DHN__AG %*#"X (/_X;0 = PN '[_
M^&YJ(&X " Q0 %!M!F$ _:)@5BZN P@;@ (/Q!35S\N__YA /Y.6(\@;@ ,
M,F[__M')$*[_^"ZN P@;@ (/Q _+O_^80#]>EB/(&X "# 0(FX "%)14F[_
M_CZN__PP+O_^T5=A /W$8 RA N__A(@& *@^O -80#ZV' !8 #!$IN
M__YF!F$ _21@0#ZN__PP+O_^T5=A /VB+JX #"!N A34# 0/P!3;O_^/R[_
M_F$ _?)8CRZN P@;@ (/Q!35S\N__YA /ST6(]@8B!N @P$+!N__YF!F$
M_-!@+BZN P@;@ (4U P$#\ /R[__F$ _;!8CRZN P@;@ (/Q!35S\N__YA
M /RR6(]@(&$ _)I@&F 8L'P "&< _V*P? -9P#_3+!\ ']GH&#@8 "3! N
M__9(@& BQ"0& D!*;O_^9@9A /Q@8!(^KO_^,"[__-%780#\WE-N__Y@
M (:(&X "# 0L&[__F8&80#\.& 2/J[__C N__S15V$ _*)2;O_^8 !\B\N
M @O/ 'R1A /UP6(\P0-'((GP "B.,#"8 "!?,( ]0/_^+JX ## Y ?
M),'\ %#0O 'R8O &$ _0Y8CSZN__P_+O_Z/SD "B(3KD !#T6(\NK@ ,
M(&X "#\04U="9V$ ^\98CSZN__PP+O_^T5<_+O_Z/SD "B(3KD !#T6(]@
M %F+RX ""\\ ?)&$ _018CS! T<@B? *(XP,)@ (%\P@#U __XNK@ ,
M,#D !\DP?P 4-"\ ?)B\ 80#\@EB//J[__#\N__H_.0 *(A.N0 $/18
MCRZN P@;@ (/Q!35T)G80#[.EB//J[__# N__[15S\N__H_.0 *(A.N0
M$/18CV -IA /CF+HY9ER\.79<_.0 *(A.N0 #]Y<CRZN P@;@ (/Q!3
M5T)G80#Z[%B//J[__# N__[15S\N__H_.0 *(A.N0 $/18CV (P^KO_\
M/R[_^C\Y HB$ZY 0]%B//KD "B(3KD Y0(&X "' ,( ]0/_^80#Y
MX#/\ $ "5F8$X^KO_\/R[_^C\Y HB$ZY 0]%B//KD "B(3KD Y0
M(&X "' ,( ]0/_^8!YA /I*8!A@%DC ('P !9L<@BPF%?)__P@: @3M!@
M /O^3EY.=4Y6__I";O_^8" P;O_^(FX "A PF !(@#Z /SP !$ZY 4_%2/
M4F[__C N__ZP;@ (;=8^O -/SP !$ZY 4_%2/3EY.=4Y6_ZH^O ;80#W
M>#Z\ '=A /=P80#WJF$ ^$1A /AB8 >BZ.!I?___^P+PX&E____ZYA /M,
M6(]*0&=@+HX&E____[ _+O^N80#_;%2/2F[_KF<\,'D "=^T<C1_ *(XP
MKO^N,#D "=^P?P 4-"\ ?)BZ +PX&E____[!A /J(6(\NO )WYA /K,
M,_D "=^ ?)&"&3EY.=4Y6__PNO &+4_.0 *&1.N0 $Z94CS/ <
MY$Y>3G5.5O_H8$PNC@:7____[$ZY 20 QN "C_[&8V,"[_]+!Y <Y&8J
M/KP 4ZY 4PF$ \RYA //,2D!G"&$ _OQA /7280#UND)73KD !3"8+).
M7DYU3E;__$ZY 1S&$ _WIAF$Y>3G5.5O_\,_P 90 *&9">0 *&A">0
M*&PS[@ ( H<DZY 13$Y>3G5.5O_\,_P !0 *&9">0 *&A">0 *&PS
M_ ( H<#/N @ "AR3KD !%,3EY.=4Y6__PS_ % H9D)Y H:$)Y
M H;#/\ < "AP,^X " *').N0 $4Q.7DYU3E;__#/\ 4 "AF0GD
M "AH0GD "AL,_P !@ *' S[@ ( H<DZY 13$Y>3G5.5O_X+7P !T*
M__P@;@ *$!!(@")N__PR@%*N I4KO_\2D!FYC/\ 4 "AF0GD "AH("[_
M_)"\ ="H'\ )(P%- ,\ "AL,_P # *' S[@ ( H<DZY 13$Y>
M3G5.5O_\,_P !0 *&9">0 *&A">0 *&PS_ * H<#/N @ "AR3KD
M !%,3EY.=4Y6__PS_ % H9D)Y H:$)Y H;#/\ D "AP,^X "
M*').N0 $4Q.7DYU3E;__#/\ 4 "AF0GD "AH0GD "AL,_P P *' S
M[@ ( H<DZY 13$Y>3G5.5O_\,_P !0 *&9">0 *&A">0 *&PS_ "
M H<#/N @ "AR3KD !%,3EY.=4Y6__PC[@ ( <T"/N ! !S8("X
M$-"\ 6B/ <W#/\ &0 "AF0GD "AH,_P "P *&P@;@ ,,] "AR
M3KD !%,(&X ##"Y H<B/\ ="@ '- C_ '@P !S8(_P "9\ <
MW"/\ E? '-1.7DYU3E;__#/\ 4 "AF0GD "AH0GD "AL,_P 0
M*' S[@ ( H<DZY 13"!N HPN0 '@P@;@ .,+D !X.3EY.=4Y6__PS
M_ % H9D)Y H:$)Y H;#/\ \ "AP,^X " *').N0 $4P@;@ *
M,+D !X,(&X #C"Y >#DY>3G5.5O_\(_P !T* <T"/\ E? '-0C
M[@ , <V" N S0O %HCP '-PS[@ * ="C/\ &8 "AF0GD "AH
M,_P 0 *&PS[@ ( H<DZY 13"/\ ># '-@C_ )GP !S<3EY.
M=4Y6__PS[@ * ="BZN !!.N0 $3@NK@ 43KD !%"(^X # '-0S_ !M
M H9C/\ 0 "AH,_P 0 *&PS[@ ( H<DZY 13"/\ E? '-1.
M7DYU3E;__#/N H !T*,^X # '0PS_ % H9D)Y H:#/\ ( "AL
M,_P "P *' S[@ ( H<DZY 13$Y>3G4C[P $ H=$YU(^\ ! *'A.
M=2/\ H9@ ',PB/ ',QP<TY"3G5.5O_V,^X " )[0P+@ (T'S_]L'\
M -(P-"\ 5#"U __H]? !__Y@'B!N__H0$$B ,F[__M/)T_P ">T,H!2
MKO_Z4F[__@QN 3__FW:+KD "A>3KD 40D P.0 )]Q.7DYU3E;_^B/\
M GM 'PPC_ )X !\0(_P ">\ ?%"/\ GW 'Q@C_ *'X
M !\<(_P "BZ ?("/\ ?# *%X^O *80#_1C/Y GW *&1P 4Y>
M3G5.5O_\/KP $V$ _RIP 4Y>3G5.5O_\(^X " *'X^O 73KD !%B3EY.
M=4Y6__PS[@ ( GO#/N H ">^/KP &$ZY 18DY>3G5.5O_\,^X "
M)[PC[@ * H?CZ\ #1.N0 $6).7DYU3E;__#/N @ ">\,^X "@ )[XS
M[@ , GP#/N X "?",^X $ )\0S[@ 2 GQC/N !0 "?(,^X %@
M)\H^O !)3KD !%B3EY.=4Y6__PS[@ ( GO#/N H ">^,^X # )\ S
M[@ . GPC/N ! "?$,^X $@ )\8S[@ 4 GR#/N !8 "?*/KP 2DZY
M 18DY>3G5.5O_\/KP 34ZY 18B!N @PN0 )]X@;@ ,,+D "?@(&X
M$#"Y GXB!N !0PN0 )^1"0# Y GW$Y>3G5.5O_\,^X " )[PC[@ *
M H?CZ\ $Y.N0 $6).7DYU3E;__#/N @ ">\(^X "@ *'X^O C3KD
M !%B3EY.=4Y6__PS[@ ( GO#/N H ">^,^X # )\ S[@ . GPC/N
M ! "?$/KP 9$ZY 18DY>3G5.5O_\,^X " )[PS[@ * GOC/N P
M "? ,^X #@ )\(S[@ 0 GQ#Z\ &5.N0 $6).7DYU3E;__#/N @ ">\
M/KP 9DZY 18DY>3G5.5O_\,^X " )[P^O !G3KD !%B3EY.=4Y6__PS
M[@ ( GO#/N H ">^/KP :$ZY 18B!N PPN0 )]X@;@ 0,+D "?@
M(&X %#"Y GXB!N !@PN0 )^1"0# Y GW$Y>3G5.5O_\,^X " )[P^
MO !K3KD !%B3EY.=2/? <X$Y.+SD !S@3G4CWP '.!.32\Y <X$YU
M(]\ !S@3D$O.0 '.!.=0 ! (! 0(! 0 ! 0(! 0$! 0 !
M ! ,% 4% ! 0(! ! ' 0(! $! 0(! 0(! 0(! 0$!
M @$! 0 (! 0$! 08! 00! 0$# 0(! 00" 0@! 0
M $! 0D! 0$! 0$! % 0
M 0# @# 8! @! @! 0! 0,! 0 % $! 0 %
M ! 0 ! 0 " @
M 4! 4! $! $! (% 8! (! $! 8%
M ! 0 ! (! (! 0$! 0 ! @,! @$! 0$! 0 !
M 0 ! @ !' 2 $L !- 4 %( !A 8@
M L@ )N@ "7 F2 *1@ "UP EJ *T@ "XQ;,5U;3FEC:'0@
M9V5N=6<@4W!E:6-H97)P;&%T>B!V;W)H86YD96Y=6T%B;W)T70 J*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ "H@24)-($)L;V-K(%1E<FUI;F%L("H *BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*@ 0D%#2U-004-%(" @(" @(" @(" M(&QE='IT
M97,@6F5I8VAE;B!LE'-C:&5N $1%3$5412 @(" @(" @(" @(" @+2!A:W1U
M96QL97,@6F5I8VAE;B!LE'-C:&5N $E.4T525" @(" @(" @(" @(" @+2!L
ME'-C:&4@6F5I;&4 4D5455).('5N9"!%3E1%4B @(" M('-E;F1E(%IE:6QE
M $-,4B!(3TU%(" @(" @(" @(" @+2!S96YD92!"4D5!2R!397%U96YZ %!F
M96EL92!L:6YK<R]R96-H=',@+2!#=7)S;W(@:6X@9&5R(%IE:6QE(&)E=V5G
M96X 4&9E:6QE(&]B96XO=6YT96X@(" M(&QE='IT92]NA&-H<W1E(%IE:6QE
M(&5D:71I97)E;@!(14Q0(" @(" @(" @(" @(" @("T@075S9V%B92!D:65S
M97(@365L9'5N9P!53D1/(" @(" @(" @(" @(" @("T@>G5R@6-K('IU;2!$
M97-K=&]P @($E"32!497)M:6YA; !?8W)Y<W1A;*( %%]C=')L7V-N
MI !4,7V)U9F9?;&^D %FA?;W!E;E]V9*( (%]I;FET7W1EH@
M #"7W-A=F5?;66B 99?8VQO<V5?=J( "P%]E>&ET7W1EH@ +4
M7W)E<W1O<F6B SY?=F1I7V-H *( #?%]V9&E?;&ENH@ .47VAE
M;' "B [I?9FQU<VA?<J( $6%]F;'5S:%]TH@ 1Z7W=A:71?
M9F^B !)9?<V5N9%]B<J( %,%]R:6YG7V)EH@ 787W)E9&ES<&RB
M !>A?;6]V95]R::( &4E]M;W9E7VQEH@ 9F7W-H:69T7W*B
M!II?<VAI9G1?;*( &T%]C;W!Y7V)UH@ <&7V1E8U]E;G2B !S9?
M:6YC7V5N=*( '5E]G971?;&ENH@ =\7W-E;F1?;&FB "[)?=&5R
M;6EN8:( +^E]I;FET7V%CH@ R<7VAA;F1L95^B #+Y?;6%I;@
M *( -%E]V7V-L<W9WH@ TJ7W9?8W5R:&^B #51?=E]C=7)L9:(
M -AE]V7V-U<G)IH@ VX7W9?8W5R=&6B #>I?=E]E96]L *( .
M4%]V7V5E;W, H@ Z"7W9?96YT97*B #K1?=E]E>&ET7Z( .YE]V
M7V]P;G9WH@ \87W9Q7V-H8V6B #YA?=G%?8W5R8:( /WE]V<5]E
M>'1NH@ ! D7W9R;U]C<'FB $)A?=G-?8W5R8:( 0]%]I7W!T<@
MH@ !$X7VE?<'1R,@"B $4)?9W-X,0 *( 13%]G<W@R H@
M !%,7VEI;V9F "A '-!?:6]O9F8 *$ <V%]P:6]F9@ H0 !S4
M7W!O;V9F "A '-Q?=F1I *( 13%]C<GES7VEFH@ !%B7V%P
M<&Q?:6ZB $<Q?87!P;%]E>*( 2+E]E=FYT7VUEH@ !) 7V5V;G1?
M=&FB $EI?9F]R;5]A;*( 2?%]G<F%F7V=RH@ !*>7V=R869?<VBB
M $O!?9W)A9E]H8:( 30E]G<F%F7VUOH@ !.$7VUE;G5?<F6B
M$Z9?=VEN9%]C<J( 3R%]W:6YD7V]PH@ !0"7W=I;F1?8VRB %#Q?
M=VEN9%]D9:( 45E]W:6YD7V=EH@ !1P7W=I;F1?=7"B %,)?9V5M
M9&]S *( 4_%]B:6]S H@ !3L7WAB:6]S "B %-Q?;65N=5]I
M9*$ <Y%]S879E7VUFH0 !SF7W!X>0 "A '/I?:6YT:6X *$
M ="E]G;%]H8F]XH0 !X*7VEN=&]U= "A '@Q?8P *$ ?
M#%]L87-T7V5NH0 !\D7W)I;F=?8G6A 'R9?875X7W)E8Z$ E9E]S
M8W)N7VUFH0 "5H7W!T<VEN "A )7Q?<'1S;W5T *$ F?%]G;%]W
M8F]XH0 "=\7VYE>'1?96ZA )WY?9VQO8F%L *$ G@%]W;W)K7VEN
MH0 ">>7V-O;G1R;VRA )[1?:6YT7VEN *$ GO%]I;G1?;W5TH0
M "?<7V=L7VAC:&&A )^I?=V]R:U]O=:$ G[%]A9%]C H0 "A>
M7VAD97-K "A *&)?9VQ?87!I9*$ H9%]C;VYT<FP H0 "AF7V%D
M9')?:6ZA *'Y?9VQ?=V-H8:$ HAE]V9&E?:&%NH0 "B(7W=I7VAA
M;F2A *(I?=V1E<VL *$ HC%]R:6YG7V9IH0 "B.7V)U9F9?<VFA
M *+9?861D<E]O=:$ HNE]X9&5S:P H0 "B^7WED97-K "A
M*,!?;65N8F)U9J$ HP@ (&'@8&!@8,%!@&!@8&" 8&!@P:%@8&!@@(
M!@8&!@8&!@8&# 8&!@8&" 8&!@8&$ @&" @&! 8(!@8*!@@$!@@&!@8&!@8&
M" H.!@@&!@@&!@@&!@8&"@86!@X&" 8&!@8&!@8&!@8&!A0&!@H&$A@4!AP&
M!@8&" @(" @(" H*"@H*"A@*&B(R#C0T/A(H+ 8R!@X&$ 86!A(&\!@&'A &
M*@8( ;80%@H6!BH&$! 6"A8&*@88!BH&% 8(!A@0!@@&'CH>8@@*"A8*!! &
M!@@8$@P@$!8&!@@&$ 8&" @&$ 8&" @&$ 8&" @&#B0&"@X(" 80!@8(" 80
M!@8(" 80!@8(" 80!@8(" 80"! (!@@*!@H&! 8$!@0&!! &!@@(!@H*$ 8&
M" @&"@H.! 8$"! (" 8(" 8&! 8$$ H*" @(" @&!@00" @&" @(!@P*" 0&
M$A0@& 8(#@0&! 8$!@0&! 8$!@0.!"0*$ @*$ @*$ @(" @(" @*$ @(" @(
M" @*$@H*"@H($ @*$ @*$ @(" @*$ @(" @*$ H0"A ("@H*"@H($ H*" @(
-" @!C 0$! 0$! 0$ @*
end
SHAR_EOF
fi
if test ! -d 'ibmtty'
then
mkdir 'ibmtty'
fi
cd 'ibmtty'
if test -f 'ascii.h'
then
echo shar: "will not over-write existing file 'ascii.h'"
else
cat << \SHAR_EOF > 'ascii.h'
/********************/
/* some ASCII codes */
/********************/
#define NUL 0x00 /* ^@ */
#define SOH 0x01 /* ^A */
#define ETX 0x03 /* ^C */
#define BEL 0x07 /* ^G */
#define BS 0x08 /* ^H */
#define HT 0x08 /* ^I */
#define LF 0x0A /* ^J */
#define VT 0x0B /* ^K */
#define FF 0x0C /* ^L */
#define CR 0x0D /* ^M */
#define DC1 0x11 /* ^S */
#define DC3 0x13 /* ^Q */
#define SUB 0x1A /* ^Z */
#define ESC 0x1B /* ^[ */
#define DEL 0x7F
/*******************/
/* Some Scan Codes */
/*******************/
#define CLR_HOME_KEY 0x47
#define UP_KEY 0x48
#define LEFT_KEY 0x4B
#define RIGHT_KEY 0x4D
#define DOWN_KEY 0x50
#define INSERT_KEY 0x52
#define UNDO_KEY 0x61
#define HELP_KEY 0x62
SHAR_EOF
fi
if test -f 'ibmtty.c'
then
echo shar: "will not over-write existing file 'ibmtty.c'"
else
cat << \SHAR_EOF > 'ibmtty.c'
/*********************************/
/* IBM Block Terminal Emulation */
/* written by B. Nebel, March 86 */
/* Version 1.2 of 5/10/86 */
/*********************************/
/* include files */
/*****************/
#include "define.h" /* common C defintions */
#include "osbind.h" /* binding of TOS */
#include "gemdefs.h" /* GEM defintions */
#include "ascii.h" /* ASCII codes and keyboard scan codes */
/* global constant parameters */
/******************************/
#define ACCESSORY YES
#define MENU_NAME " IBM Terminal" /* name of menu entry */
#define MAX_LL 80 /* line length */
#define MAX_BUF 20 /* ring buffers */
/* external functions */
/**********************/
/* GEMDOS (osbind.h) */
/* Crawio, Cauxin, Cauxout, Cauxis, Malloc, Mfree */
/* XBIOS (osbind.h) */
/* Rsconf */
/* VDI */
extern int v_opnvwk();
extern int v_clsvwk();
extern int v_enter_cur();
extern int v_exit_cur();
extern int v_curright();
extern int v_curleft();
extern int v_curhome();
extern int v_eeos();
extern int v_eeol();
extern int vs_curaddress();
extern int vq_curaddress();
extern int v_curtext();
extern int vq_chcells();
extern int vro_copyfm();
/* AES */
extern int appl_init();
extern int appl_exit();
extern int graf_handle();
extern int graf_mouse();
extern int graf_growbox();
extern int menu_register();
extern int evnt_mesag();
extern int evnt_timer();
extern int wind_create();
extern int wind_open();
extern int wind_close();
extern int wind_delete();
extern int wind_get();
extern int wind_update();
extern int form_alert();
extern int gl_apid;
/* Global Variables */
/********************/
int menu_id, vdi_handle, wi_handle; /* some handles */
int gl_hchar, gl_wchar, gl_wbox, gl_hbox; /* sizes given back by VDI */
int xdesk, ydesk, hdesk, wdesk; /* desktop size and loc. */
int last_entry, next_entry; /* ptr to ring buffer */
char ring_buffer [MAX_BUF] [MAX_LL]; /* the ring buffer */
int ring_filled[MAX_BUF]; /* fill counter for ring buf */
int aux_received; /* if <> 0 someth. rec. by aux */
FDB scrn_mfdb; /* mfdbs for saving menu bar */
FDB save_mfdb;
int work_in[11]; /* params for vdi_opnvwk */
int work_out[57];
int pxy[8]; /* param for raster copy */
long int buff_loc = NIL; /* save buffer for menu bar */
long buff_size; /* buffer size */
int menbbuf[1000]; /* buffer for menu bar */
/* static allocation because
Malloc allocates too much */
int contrl[12]; /* VDI/AES glob. params */
int intin[128];
int ptsin[128];
int intout[128];
int ptsout[128];
/**********************************/
/* Initializations & Terminations */
/**********************************/
open_vdi()
/* open virtual work station */
{
int i;
vdi_handle = graf_handle(&gl_wchar, &gl_hchar, &gl_wbox, &gl_hbox);
for (i = 1; i < 10; i++)
{ work_in[i] = 1; }
work_in[10] = 2;
v_opnvwk(work_in, &vdi_handle, work_out);
wind_get(0,WF_WORKXYWH,&xdesk,&ydesk,&wdesk,&hdesk);
}
int init_terminal()
/* init virtual workstation as a terminal */
{
graf_mouse(M_OFF,NIL);
if (!(save_menu_bar())) return FALSE;
wi_handle = wind_create(0,xdesk,ydesk,wdesk,hdesk);
graf_growbox(xdesk,ydesk,gl_wbox,gl_hbox,xdesk,ydesk,wdesk,hdesk);
wind_open(wi_handle,xdesk,ydesk,wdesk,hdesk);
v_enter_cur(vdi_handle);
v_curhome(vdi_handle);
v_eeos(vdi_handle);
return TRUE;
}
int save_menu_bar()
/* save menu bar in a area to be allocated */
{
vq_extnd(vdi_handle, 0, work_out);
save_mfdb.fd_w = work_out[0] + 1;
save_mfdb.fd_h = ydesk;
save_mfdb.fd_wdwidth = save_mfdb.fd_w >> 4;
save_mfdb.fd_stand = 0;
vq_extnd(vdi_handle, 1, work_out);
save_mfdb.fd_nplanes = work_out[4];
buff_size = (save_mfdb.fd_w >> 3) * save_mfdb.fd_h * save_mfdb.fd_nplanes;
buff_loc = save_mfdb.fd_addr =
/* ((buff_loc == NIL) ? (Malloc(buff_size)) : buff_loc);
* I use static allocation because Malloc stole me 50 K!
*/
&menbbuf[0];
scrn_mfdb.fd_addr = 0;
if (buff_loc == NIL)
{form_alert(1,"[1][Nicht genug Speicherplatz vorhanden][Abort]");
return FALSE;};
pxy[0] = pxy[4] = 0;
pxy[1] = pxy[5] = 0;
pxy[2] = pxy[6] = save_mfdb.fd_w - 1;
pxy[3] = pxy[7] = ydesk - 1;
vro_cpyfm(vdi_handle,3,pxy,&scrn_mfdb,&save_mfdb);
return TRUE;
}
close_vdi()
/* close virtual workstation */
{ v_clsvwk(vdi_handle);}
exit_terminal()
/* exit terminal mode */
{
v_exit_cur(vdi_handle);
restore_menu_bar();
wind_close(wi_handle);
wind_delete(wi_handle);
graf_shrinkbox(xdesk,ydesk,gl_wbox,gl_hbox,xdesk,ydesk,wdesk,hdesk);
#if !ACCESSORY
graf_mouse(M_ON,NIL);
#endif
}
restore_menu_bar()
{
vro_cpyfm(vdi_handle,3,pxy,&save_mfdb,&scrn_mfdb);
/* Mfree(buff_loc); Do not free because it doesn't work right! */
graf_mouse(M_ON,NIL);
}
/*****************/
/* VDI Functions */
/*****************/
vdi_ch(ch)
int ch;
{Crawio(ch);}
vdi_line(string)
char string[];
{
v_curtext(vdi_handle,string);
vdi_ch(CR);
vdi_ch(LF);
}
/**********************/
/* Terminal Functions */
/**********************/
help()
{
v_curhome(vdi_handle);
v_eeos(vdi_handle);
vdi_line("**********************");
vdi_line("* IBM Block Terminal *");
vdi_line("**********************");
vdi_line("");
vdi_line("BACKSPACE - letztes Zeichen lschen");
vdi_line("DELETE - aktuelles Zeichen lschen");
vdi_line("INSERT - lsche Zeile");
vdi_line("RETURN und ENTER - sende Zeile");
vdi_line("CLR HOME - sende BREAK Sequenz");
vdi_line("Pfeile links/rechts - Cursor in der Zeile bewegen");
vdi_line("Pfeile oben/unten - letzte/nchste Zeile editieren");
vdi_line("HELP - Ausgabe dieser Meldung");
vdi_line("UNDO - zurck zum Desktop");
vdi_line("");
}
flush_rs232_buffer()
{while (Cauxis() != 0) Cauxin();}
flush_terminal_buffer()
{while (Crawio(0xFF) != 0);}
wait_for_char(scan_code,ch)
char *scan_code,*ch;
{
long result;
do {*scan_code = NUL;
if ((result = Crawio(0xFF)) != 0)
{
*ch = result & 0xFF;
*scan_code = result >> 16 ;
}
else
{if (Cauxis() != 0)
{result = Cauxin();
*ch = result & 0x7F;
if (*ch <= '~')
{
vdi_ch(*ch);
aux_received = YES;
};
};
};
}
while (*scan_code == NUL);
}
send_break()
{char tsr;
tsr = (Rsconf(-1,-1,-1,-1,-1,-1) >> 16) & 0xFF;
Rsconf(-1,-1,-1,-1,(tsr | 0x08),-1);
evnt_timer(750,0);
Rsconf(-1,-1,-1,-1,tsr,-1);
}
ring_bell()
{vdi_ch(BEL);}
redisplay(from,to,line)
int from, to;
char line[];
{
int i,r,c;
vq_curaddress(vdi_handle,&r,&c);
for (i = from; i <= to; i++) vdi_ch(line[i]);
v_eeol(vdi_handle);
vs_curaddress(vdi_handle,r,c);
}
move_right(dummy)
int dummy;
{v_curright(vdi_handle);}
move_left(vcol)
int vcol;
{
int r,c;
vq_chcells(vdi_handle,&r,&c);
if (c >= vcol) v_curleft(vdi_handle);
}
shift_right(from, to, line)
int from, to;
char line[];
{
int i;
for (i = to ; i >= from ; i--) line[i+1] = line[i];
}
shift_left(from, to, line)
int from, to;
char line[];
{
int i;
for (i = from; i <= to; i++) line[i] = line[i+1];
}
copy_buf_entry(src,dst)
char src[];
char dst[];
{
int i;
for (i = 0; i < MAX_LL; i++) dst[i] = src[i];
}
int dec_entry(e)
int *e;
{return ((--(*e) < 0) ? (*e = MAX_BUF - 1) : (*e));}
int inc_entry(e)
int *e;
{return ((++(*e) >= MAX_BUF) ? (*e = 0) : (*e));}
int get_line(filled, line)
int *filled;
char line[];
{
int pos, scol, srow;
char ch, scan_code;
aux_received = NO;
pos = 0;
*filled = 0;
vq_curaddress(vdi_handle,&srow,&scol);
while (TRUE)
{
wait_for_char(&scan_code,&ch);
if (aux_received)
{vq_curaddress(vdi_handle,&srow,&scol);
redisplay(0,*filled-1,line);
vs_curaddress(vdi_handle,srow,scol+pos);
aux_received = NO;
};
if (ch != NUL)
{if ((ch >= ' ') && (ch <= '~'))
{if (*filled >= MAX_LL)
ring_bell();
else
{shift_right(pos, (*filled)-1, line);
line[pos] = ch;
redisplay(pos,*filled,line);
(*filled)++;
pos++;
move_right(scol+pos);
};
}
else
switch (ch)
{case CR: vdi_ch(CR); return TRUE;
case BS: if (pos == 0)
ring_bell();
else
{move_left(scol+pos);
shift_left(--pos,--(*filled),line);
redisplay(pos,(*filled)-1,line);
};
break;
case DEL: if (pos == *filled)
ring_bell();
else
{shift_left(pos,--(*filled),line);
redisplay(pos,(*filled)-1,line);
};
break;
default: ring_bell(); break;
};
}
else
switch (scan_code)
{case UNDO_KEY:
return FALSE;
case LEFT_KEY:
if (pos == 0) ring_bell(); else move_left(scol+pos--);
break;
case RIGHT_KEY:
if (pos == *filled) ring_bell(); else move_right(scol+pos++);
break;
case UP_KEY:
pos = *filled = ring_filled[dec_entry(&last_entry)];
copy_buf_entry(ring_buffer[last_entry],line);
vs_curaddress(vdi_handle,srow,scol);
redisplay(0,(*filled)-1,line);
vs_curaddress(vdi_handle,srow,scol+pos);
break;
case DOWN_KEY:
pos = *filled = ring_filled[inc_entry(&last_entry)];
copy_buf_entry(ring_buffer[last_entry],line);
vs_curaddress(vdi_handle,srow,scol);
redisplay(0,(*filled)-1,line);
vs_curaddress(vdi_handle,srow,scol+pos);
break;
case HELP_KEY:
help();
vq_curaddress(vdi_handle,&srow,&scol);
redisplay(0,*filled-1,line);
vs_curaddress(vdi_handle,srow,scol+pos);
break;
case CLR_HOME_KEY:
vs_curaddress(vdi_handle,srow,scol);
v_eeol(vdi_handle);
pos = *filled = 0;
send_break();
aux_received = TRUE;
break;
case INSERT_KEY:
vs_curaddress(vdi_handle,srow,scol);
v_eeol(vdi_handle);
pos = *filled = 0;
break;
default: ring_bell(); break;
};
};
}
send_line(filled,line)
int filled;
char line[];
{
int i;
for (i = 0; i < filled; i++) Cauxout(line[i]);
Cauxout(CR);
}
terminal()
{
char this_line[MAX_LL];
int this_fill;
vdi_ch(ESC);
vdi_ch('w');
help();
flush_rs232_buffer();
flush_terminal_buffer();
while (TRUE)
{if (!get_line(&this_fill,this_line)) break;
send_line(this_fill,this_line);
if (this_fill != 0)
{ring_filled[next_entry] = this_fill;
copy_buf_entry(this_line,ring_buffer[next_entry]);
inc_entry(&next_entry);
};
last_entry = next_entry;
};
}
init_accessory()
{menu_id = menu_register(gl_apid,MENU_NAME);}
handle_events()
{
int mbuf[10];
while (TRUE)
{evnt_mesag(mbuf);
{if ((mbuf[0] == AC_OPEN) && (mbuf[4] == menu_id))
{wind_update(BEG_UPDATE);
open_vdi();
if (init_terminal())
{terminal ();
exit_terminal();
};
close_vdi();
wind_update(END_UPDATE);
};
};
};
}
main()
{appl_init();
#if ACCESSORY
init_accessory();
handle_events();
#else
open_vdi();
if (init_terminal())
{terminal();
exit_terminal();};
close_vdi();
appl_exit();
#endif
}
SHAR_EOF
fi
cd ..
exit 0
# End of shell archive
Technical Details
Message-ID:
<600010@coma.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!ulysses!allegra!princeton!caip!ut-sally!seismo!mcvax!unido!coma!axelShow Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!ulysses!allegra!princeton!caip!ut-sally!seismo!mcvax!unido!coma!axel From: axel@coma.UUCP Newsgroups: net.micro.atari16 Subject: GEM-Kermit (Part 1 of 6) Message-ID: <600010@coma.UUCP> Date: Thu, 19-Jun-86 23:02:00 EDT Article-I.D.: coma.600010 Posted: Thu Jun 19 23:02:00 1986 Date-Received: Sat, 28-Jun-86 01:05:37 EDT Sender: notes@unido.UUCP Lines: 1119 Nf-ID: #N:coma:600010:000:45680 Nf-From: coma!axel Jun 20 04:02:00 1986