🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: sub.sources.os9
1 messages
1 total messages Started by Frank Kaefer Sat, 22 Jun 1991 12:46
v02i005: Ptyman 1.3 Binaries - Part 1/1
#5
Author: Frank Kaefer
Date: Sat, 22 Jun 1991 12:46
585 lines
28581 bytes
Posting-number: Volume 2, Issue 5
Submitted-by: ram@ramsys.UUCP (Reimer A. Mellin)
Archive-name: ptyman1.3_bin

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  COPYRIGHT ptyman.doc pty.uu ptydrv.uu ptyman.uu tty.uu
# Wrapped by ram@ramsys on Sun Jun 23 11:06:03 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'COPYRIGHT' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'COPYRIGHT'\"
else
echo shar: Extracting \"'COPYRIGHT'\" \(1562 characters\)
sed "s/^X//" >'COPYRIGHT' <<'END_OF_FILE'
X*        This software is copyright (C) 1989 by Reimer Mellin        *
X*                                                                    *
X*        Permission is granted to reproduce and distribute           *
X*        this package by any means so long as no fee is charged      *
X*        above a nominal handling fee and so long as this            *
X*        notice is always included in the copies.                    *
X*        Commerical use or incorporation into commercial software    *
X*        is prohibited without the written permission of the         *
X*        author.                                                     *
X*                                                                    *
X*        Other rights are reserved except as explicitly granted      *
X*        by written permission of the author.                        *
X*                Reimer Mellin                                       *
X*                                                                    *
X*                Sulenstr.8                                          *
X*                D-8000 Muenchen 71 (Federal Republic of Germany)    *
X*                                                                    *
X*           EMAIL:                                                   *
X*                mellin@lan.informatik.tu-muenchen.dbp.de            *
X*                ram@altger.UUCP                                     *
X*                ram%ramsys@chiuur.sub.org (home)                    *
X*                                                                    *
END_OF_FILE
if test 1562 -ne `wc -c <'COPYRIGHT'`; then
    echo shar: \"'COPYRIGHT'\" unpacked with wrong size!
fi
# end of 'COPYRIGHT'
fi
if test -f 'ptyman.doc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'ptyman.doc'\"
else
echo shar: Extracting \"'ptyman.doc'\" \(11966 characters\)
sed "s/^X//" >'ptyman.doc' <<'END_OF_FILE'
X                   Pseudo-Terminal (PTY) File-Manager
X                   ==================================
XOverview:
X
X        Pseudo-Terminals (PTY's) are a kind of Interprocess
XCommunication (IPC), which are known on a wide variety of UN*X
Xcomputers, mostly BSD-like systems.  They behave like any other SCF
Xdevices like terminals and printer but are in fact pseudo-devices i.e. 
Xexists only in the memory the system. 
X
X        PTY's have two distinct end-points, namely server-pty and
Xclient-pty, which behaves by default differently.  A server-pty
Xsymbolizes the terminal and a client-pty forms the connection to the
Xapplication programs.  This implies, that the server-pty provides RAW
Xinput and output whereas the client-pty can handle line-editing, echoing
Xand so on. 
X
X        With this mechanism many programms can share one real device,
Xlike a real terminal, via one server which multiplexes all connected
Xserver-pty's.  Something similar can be reached with the usage of pipes,
Xbut pipes have the disadvantage of being not a tty-device with echo,
Xline-editing, interrupt-chars etc. 
X
XExamples:
X    - virtual Terminals: one program multiplexes ptys and displays the
X      outputs on a real Terminal (there exist a programm called 'screen'
X      which does exactly this). 
X    - In a TCP/IP environment, the program 'rlogin' starts a
X      login-process on a tty on the remote machine.
X
X___________________________________________________________________________
X
X                      /***********\             /**************\
X                      *           *             *              *
X                      *   Server- * ----------> *  real Device *
X                      *    Prg.   *             *              *
X                      \***********/             \**************/
X                    ___+  +  +  +_______
X                ___/       \  \         \_______
X            ___/            \  \________        \________
X           /                 \          \_______         \__________
X          |                   |                 |                   |
X    /***********\       /***********\       /***********\       /***********\
X    *           *       *           *       *           *       *           *
X    *  1st Prg. *       *  2nd Prg. *       *  3rd Prg. *       *  4th Prg. *
X    *           *       *           *       *           *       *           *
X    \***********/       \***********/       \***********/       \***********/
X
X'|' meaning client-pty
X'+' meaning server-pty
X
XFig. 1:  Typical Server-Client Application
X
X
XImplementation:
X
X        With OS9-68000 (OSK) a own File-Manager was written, which
Xhandles both types of PTY's : the client-ptys, and the server-ptys
Xwhile using only *one* descriptor (device) for each.  Server-ptys must
Xbe opened as "/pty/any_valid_name" , client-ttys must be opened (i.e. 
Xconnected) with "/tty/any_valid_name".  PTY's can be also implemented
Xwith the usage of a special device-driver for the SCF, but this has
Xserveral draw-backs :
X
X        - A System-Global Variable has to be introduced for the rendezvous
X          of the PTY-pairs (not implementation independent). 
X
X        - For each pair of PTY's there must exist two Device-Descriptors
X          (waste of memory and Device-Table-entries).
X
X        - The number of PTY's pairs are limited !!
X
X        - Block-writes in RAW modus has still to be done on a char-by-char
X          basis with single calls to the driver, as required by the SCF
X
X        When creating a server-PTY the Filemanager searches a list of
Xalready openend server-ptys for the same name.  The name can be any
Xlegal OS-9/68000 Filename (no distinction between upper- and
Xlower-case).  When a identical name is found, the Filemanager return a
XE_CEF-error (File already exists), otherwise the Pathdescriptor (PD) is
Xinserted into this list and some initialisation is done (allocating
XData-Buffers etc.).  Then the list of client-PTYs is searched for any
Xalready opened tty; iff found, the pair is connected and a DCOn-Signal
Xis sent, if specified by the client-PTY.
X
X        When opening a client-PTY the Filemanager looks thru the above
Xmentioned list for a already openend server-pty.  If found, it sets a
Xspecial pointer pointing to the PD of the server-pty.  (the Filemanager
Xbasicly distincts server-pty's and client-pty's by the value of this
Xpointer).  If a server-PTY couldn't be found, the open-call returns, but
Xnearly any further i/o call will issue an E_HANGUP error.  Only the
Xfollowing calls will return without an error:
X    - close()
X    - getstat: SS_DevNm and SS_OPT
X    - setstat: SS_EnRTS/SS_DCOn, SS_DsRTS/SS_DCOff and SS_OPT
XIf the client-tty has specified an DCOn-signal, the later connecting pty
Xwill send it to the tty 'hanging around'.
X
XRemark:
X    There exist only *one* named server-pty but there can be many
X    client-ptys listening (although its possibly to I$DUP a
X    server-pty-fd). 
X
XA client-tty may be opened with the S_ISHARE-bit on; in this case
Xthere is only one client-tty allowed.
X
X        When closing a Server-Pty, the Filemanager searches for all
Xclient-pty's and sets the special pointer to NULL indicating a
XHANGUP-condition.  He also tries to send a SIGHUP-Signal (value is
Xchangeable via the _ss_dcoff()-Call) to the last/current user of a
Xclient-pty.  Any further I/O calls to a disconnected client-pty will
Xissue a E_HANGUP-Error!
X
X        Closing a client-pty requires no special tasks but clearing all
Xpending Signals (e.g.  pending _ss_signl() ), which is done automaticly. 
X
XIf a server-pty is opened with the S_IFDIR-bit set, further reads will
Xreturn pseudo-directory-entries for all opened server-ptys. A command
X'dir /pty' will therefore return the names of all current opened
Xserver-ptys.
X
X        Although total compatibility to a SCF-Device was intended, the
XPTY-Filemanager does differ in some small aspects from the SCF.  The
Xreason for that were some features of the SCF, which I do consider
Xfaulty e.g.  with a ReadLn-count of one the only character you can read
Xis CR and nothing else (:-( ). 
X
XDifferences:
X    - a Readln-Call with a character count of 1 will return the next
X      character available.
X
X    - The Read-Call may behave differently: kbich and kbach will
X      abort with the appropriate Error-codes. No Echo, but raw-byte-transfer.
X
X    - Any signal < 32 and > 1 (SIGWAKE) will abort a pending I/O with an
X      error-code of the signal (this should be made standard).
X
X    - A close of a server-pty will only generate a SIGHUP (see SS_DCOff)
X      and will *not* abort the reading processes (the program 'com'
X      seems to have problems with that !).
X
X    - the special IOSTOP or IOCONT SetStats blocks transmisson
X      of data in any direction (read and write). Read/Writes are still
X      possibly, but will block if the internal buffers are full.
X      Beware of Deadlocks !!!
X
XDescriptions of operation:
X
X- Read-calls:
X    absolute raw-read, ignores echo-parameter, but unterstands kbich,
X    kbach, xon, xoff and psc of the other end.
X
X- Write-calls:
X    absolute raw-write .... but sends QUIT and INT if set, and handles
X    xoff/xon and psc handling of the other side.
X
X- Writeln-calls:
X    recognizes upc(only if required via -DUPCHAR), tabch, tabs, alf,
X    pause and returns on recognizing the eor-char (normaly CR).
X    Sends QUIT and INT if set.
X
X- Readln-calls:
X    recognition of echo, upc, bso, bse, bspchar, eorchar, alf (when
X    echoing), kbich, kbach, eof, delchar, rprchar, dupchar and pause.
XCAVEAT:
X    - A final EOR in the input-stream is not necessary and this was
X      deliberatly avoided !!!
X    - The maximum readln-count is 256 Bytes (like in the SCF). You can
X      specify more but the Filemanger will cut it to 256...
X
X- GetStat-calls:
X    supported codes are: SS_Opt, SS_Ready, SS_EOF, SS_DevNm (returns the
X    complete path-name of the pty), SS_BlkRd.
X
X- SetStat-calls:
X    supported codes are: SS_Opt, SS_SSig, SS_Relea, SS_EnRTS, SS_DsRTS,
X    SS_DCOn, SS_DCOff, SS_BlkWr, SS_IOSTOP and SS_IOCONT.
X
XNot supported are null (for padding).
X
X
XDescription of GetStat-Codes:
X
X    - SS_Opt:
X        copy the first 28 Bytes of the option part to the users
X        (a0)-register.
X
X    - SS_Ready:
X        return number of chars available for reading in users d1
X        register, or return E_NOTRDY if no input is available.
X
X    - SS_EOF:
X        always returns 0 in callers d1 register (like SCF).
X
X    - SS_DevNm:
X        return the null-terminated path-name of the pty into the callers
X        (a0)-register (e.g '/tty/testtty').
X
X    - SS_BlkRd:
X        Read x (in users d2-register) Bytes into buffer, users
X        (a0)-register is pointing to.
X
X
XDescription of SetStat-Codes:
X
X    - SS_Opt:
X        copy the first 28 Byte from users (a0)-register into the option
X        part of the pathdescriptor.
X
X    - SS_SSig:
X        Send signal in users d2-register on receiving the next
X        available character. If another Process is waiting for input,
X        return an E_NOTRDY error.
X
X    - SS_Relea:
X        Clear a SS_SSig action...
X
X    - SS_EnRTS:
X        see SS_DCOn
X
X    - SS_DsRTS:
X        see SS_DCOff
X
X    - SS_DCOn:
X        if a connection between a pty/tty pair is occurring, this signal
X        will be sent (will be ignored if not set)!
X
X    - SS_DCOff:
X        Send Signal in users d2-register on closing the server-pty
X        (Carrier-lost condition). The Default signal is SIGHUP (Value: 4).
X
X    - SS_BlkWr:
X        Write x ( in users d2-register ) Bytes from buffer users
X        (a0)-register is pointing to.
X
X    - SS_Screen (Subfunction ScrOut):
X        Optional, like BlkWr. exists only on ST's (Cumana Implementation).
X 
X    - SS_IOSTOP:
X        sets a flag, which blocks any handshake. If you still write/read
X        to/from a stopped connection, deadlock may occur when the internal
X        buffers are full/empty, due to the missing handshake!!
X
X    - SS_IOCONT:
X        Reallow further handshake by activating any reading process of
X        either side.
X
XExample of SS_IOSTOP/SS_IOCONT:
X  write( tty, "Hello ", 6);       /* transfer 'Hello ' to the other side
X                                   * if a read is pending transfer it
X                                   * immediatily
X                                   */
X  _ss_iostop(tty);                /* freeze any reading from/to pty/tty
X                                   * the maximum the reading process can
X                                   * read without blocking is up to the
X                                   * string 'Hello' (not the blank)
X                                   */
X  write( tty, "World\n", 6);      /* this write will not block if there is
X                                   * enough room in the internal buffer
X                                   */
X  sleep (10);                     /* wait .. not I/O will occur */
X  _ss_iocont(tty);                /* reallow further transmission,
X                                   * any pending read will be continued;
X                                   * by completion of the read() the block on
X                                   * the writing process will be released
X                                   */
X
XFinal Thoughts:
X
X        Some tests have shown, that this Filemanager is about 100%
Xfaster than an orthodox implementation with a special device Driver for
Xthe SCF when doing readln/writeln calls.  By using only read/write calls
Xsome can expect even much more throughput (no line-editing stuff etc..). 
X
XBUGS:
X
X        This Filemanager seems to have problems in OSK-Versions lower
Xthan 2.0 (-> e.g. 1.2).  I think the 'openend-Path'-list isnt supported
Xby the Kernel (IOMan); maybe the Filemanager should do it itself ??
X
XThings to do:
X    - more lineediting (emacs-style, history ?)
X
XPlease send any suggestions/Bug-reports to:
X    Reimer Mellin
X    Sulenstr. 8
X    D-8000 Muenchen 71
X
X    UUCP: mellin@lan.informatik.tu-muenchen.dbp.de (preferred)
X          mellin@altger.UUCP
END_OF_FILE
if test 11966 -ne `wc -c <'ptyman.doc'`; then
    echo shar: \"'ptyman.doc'\" unpacked with wrong size!
fi
# end of 'ptyman.doc'
fi
if test -f 'pty.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'pty.uu'\"
else
echo shar: Extracting \"'pty.uu'\" \(204 characters\)
sed "s/^X//" >'pty.uu' <<'END_OF_FILE'
X
Xbegin 644 pty
XM2OP``0```'H````!````<@55#P"`````````````````````````````````=
XM`#]>`````````/L`9`!K```````````````<````````````````````````#
X@`````````````%!T>4UA;@!0='E$<G8`<'1Y```8?EL`0
X``
Xend
Xsize 122
END_OF_FILE
if test 204 -ne `wc -c <'pty.uu'`; then
    echo shar: \"'pty.uu'\" unpacked with wrong size!
fi
# end of 'pty.uu'
fi
if test -f 'ptydrv.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'ptydrv.uu'\"
else
echo shar: Extracting \"'ptydrv.uu'\" \(187 characters\)
sed "s/^X//" >'ptydrv.uu' <<'END_OF_FILE'
X
Xbegin 644 ptydrv
XM2OP``0```&P````!````8`55#@&@````````````````````````````````=
XM`!Y;````/``````````N`%``4`!0`%8`5@!0```````````P/```3G4R/`#0\
X2`#P``4YU4'1Y1')V````&/)TG
X``
Xend
Xsize 108
END_OF_FILE
if test 187 -ne `wc -c <'ptydrv.uu'`; then
    echo shar: \"'ptydrv.uu'\" unpacked with wrong size!
fi
# end of 'ptydrv.uu'
fi
if test -f 'ptyman.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'ptyman.uu'\"
else
echo shar: Extracting \"'ptyman.uu'\" \(9933 characters\)
sed "s/^X//" >'ptyman.uu' <<'END_OF_FILE'
X
Xbegin 644 ptyman
XM2OP``0``&YH````````;C@55#0&@```"````````````````````````````O
XM`!U`````/`````````$``%(`4@`:`!H`&@`D`"H`/@`T`$@`7`!F`'`R/`#+_
XM`#P``4YU`CS__DYU2.?__F%*8``&)DCG__YA0&``!K1(Y__^839@``>02.?_P
XM_F$L8``(($CG__YA(F```$I(Y__^81A@``BF2.?__F$.8``*4DCG__YA!&``G
XM`X(C3@`B+$D@7R`,(@U.D$J`9PY,WW__(BD`'@`\``%.=4S??_\"//_^3G5.+
XM50``2.?,\"!O``0D:``@(`IA`!DR*`!L```(</]@``,L#"H`4``!9P``#`PJ?
XM`'```68```AP`&````1P`1U``'P@;P`$(F\`!!`I``/`+@`"L"@``V<``!`M0
XM?````,L`'G#_8``"YB!O``0=:``#``(,+@`!`'QG```,""X`!P`"9@``2@PR0
XM`"](`&<``!`M?````-<`'G#_8``"L"`$4H#5P"`*80`8GB@`;0``$G`<L(1MM
XM```*2C)(`&<``!`M?````-<`'G#_8``"@'H`8```+@PR`&%8`&4``!8,,@!ZF
XM6`!B```,<.#0,E@`8```!A`R6`!![@#@$8!8`%*%NH1M`/_0(`13@$'N`.`('
XM\``'"``M1`#\""X`!P`"9@`"%DHN`'QG``#*(&X`!"!H``0F:``*8```JDHK#
XM`'QF``">0>X`X"(((#P```#@T(MA`!922H!F``"&+4L`*B9K`"Y@```D$"L`O
XM`H`N``((```&9P``$"U\````_0`></]@``'*)FL`+B`+9@#_VB!N`"HM:``NY
XM`"Y![@``(FX`*B-(`"X@;@`J2F@`=F<``"H@;@`J<``P*`!V(@!*:P`(9P``=
XM#'``,"L`"&````AP`#`K`!QA`!8R<`!@``%P)FL`%B`+9@#_5'``8``!8&``T
XM`4(@;@`$(&@`!"9H``I@```^2BL`?&8``#)![@``L<MG```H0>X`X"(((#P`O
XM``#@T(MA`!6`2H!F```0+7P```#]`!YP_V```10F:P`6(`MF`/_`(#P```(`N
XM+4``8BU``$(@+@!"80`4V"U``#9G```2("X`8F$`%,@M0`!69@``,$JN`%9GR
XM```.(BX`8B`N`%9A`!3"2JX`-F<```XB+@!"("X`-F$`%*YP_V```*X@+@`VX
XM+4``.BU``#X@+@!6+4``6BU``%X@;@`$(&@`!"9H``I@``!F#"L``0!\9@``>
XM6$'N`.`B""`\````X-"+80`4PDJ`9@``0$'N```G2``J)VX`+@`N+4L`+DIKC
XM`'9G```F<``P*P!V(@!*:P`(9P``#'``,"L`"&````AP`#`K`!QA`!3B)FL`@
XM%B`+9@#_F&```!`@;@`$(&@`!"UH``H`+G``8```!$YQ3.T/,/_H3EU.=4Y5<
XM``!(Y\#P""X`!P`"9@`!4DHN`'QG```*2JX`*F8```I![@`R8```"B!N`"I!2
XMZ`!2)$@@5S`J`!BP4&8```9":@`82FX`&F8``11*+@!\9@``9B9N`"Y@```\J
XM0JL`*DIK`'AG```,<``P*P!X8```!'`$(@!*:P`(9P``#'``,"L`"&````AP/
XM`#`K`!QA`!0B)FL`+B`+9@#_PB(N`$(@+@`V80`32B(N`&(@+@!680`3/F``;
XM`*A*K@`J9P``BB9N`"I@```80>X``+'K`"YF```()VX`+@`N)FL`+B`+9@#_8
XMYD'N```B;@`JL>D`,F8```H@;@`J0J@`,B!N`"I*J``N9@``0B!N`"I*:`!X!
XM9P``-B!N`"IP`#`H`'@B`"!N`"I*:``(9P``$"!N`"IP`#`H``A@```,(&X`B
XM*G``,"@`'&$`$VQ*K@`.9P``$"(\```!`"`N``YA`!*48```!D*N`"YP`&``!
XM``1.<4SM#P#_\$Y=3G5.50``2.?`@$J7;```$B`7(&\`!-&H``1P_V```!0@C
XM%R!O``21J``$<`!@```$3G%,[0$`__Q.74YU3E4``$CGR(!@```,(&X`+BUHT
XM`!8`+DJN`"YG```>0>X``+'N`"YG`/_D(&X`+A`N`'RP*`!\9@#_U$JN`"YG%
XM``!"(%=P(+"H``1D```(<"!@```((%<@*``$*``O!"`\````X-"N`"XB`"!O`
XM``0@*``@80`22%B/(%<A1``$8```$"U\````TP`></]@```4(&X`+BUH`!8`"
XM+G``8```!$YQ3.T!$O_T3EU.=4Y5``!(Y^"`""X`!P`"9P``#B`O``1A`/\\#
XM8```<B`780`&R$J`9P``"'#_8```8$HN`'QF```N(B\`!"0!+Q<O+P`(0>X`]
XM4B((0>X`,B`(80`'Q%"/(@)A`/[`8```,&```"PB+P`$)`$O%R\O``AP,M"NU
XM`"HB`'!2T*X`*F$`!Y90CR("80#^DF````),[0$$__A.74YU3E4``$CGX(`(G
XM+@`'``)G```.("\`!&$`_J1@``#`(!=A``8P2H!G```(</]@``"N2JX`#F8`2
XM`"P@/````0!A`!"D+4``#F8```QP_V```(Y@```0(CP```#_("X`#F$`$2@@+
XM;P`$#*@```$```1C```.(&\`!"%\```!```$2BX`?&8``"XB+P`$)`$O%R\OX
XM``A![@!2(@A![@`R(`AA``@<4(\B`F$`_=I@```P8```+"(O``0D`2\7+R\`V
XM"'`RT*X`*B(`<%+0K@`J80`'[E"/(@)A`/VL8````DSM`03_^$Y=3G5.50``I
XM2.?@@`@N``<``F<``!`M?````,L`'G#_8```<B`780`%2$J`9P``"'#_8```%
XM8$HN`'QF```N(B\`!"0!+Q<O+P`(0>X`,B((0>X`4B`(80`+9%"/(@)A`/U`S
XM8```,&```"PB+P`$)`$O%R\O``AP4M"N`"HB`'`RT*X`*F$`"S90CR("80#];
XM$F````),[0$$__A.74YU3E4``$CGX(`(+@`'``)G```0+7P```#+`!YP_V``@
XM`'(@%V$`!*Y*@&<```AP_V```&!*+@!\9@``+B(O``0D`2\7+R\`"$'N`#(B5
XM"$'N`%(@"&$`##I0CR("80#\IF```#!@```L(B\`!"0!+Q<O+P`(<%+0K@`J*
XM(@!P,M"N`"IA``P,4(\B`F$`_'A@```"3.T!!/_X3EU.=4Y5``!(Y\#@8``!5
XM:$AX``1!^@0@(@@@;P`(("@`(&$`#SY8CTHN`'QF```.(&\`!"!H`"`0O`!PH
XM+RX`_$'N`.`B""!O``@@*``@6(!A``\06(\@;P`$(&@`("`N`/Q",`@$8``!T
XM0$AX`!Q![@"`(@@@;P`(("@`(&$`#N18CV```20(+@`'``)G```(<"!@```(9
XM(#P```(`(&\`!"%```A@``$"(!=A``.02H!G```(</]@``#X8```@DHN`'QFD
XM```*0>X`,F````H@;@`J0>@`4B1(<`?`J@`49@``%B`J``B0J@`,(&\`!"%`Q
XM``1F```0+7P```#V`!YP_V```*Y@``!L(&\`!$*H``1@``!@(&\`!")O``0C,
XM:``(``0B+P`$(!=A`/PH8```@BU\````T``></]@``!T(&\`!"`\``#__\"H6
XM``0,@````/]B`/_<#````6<`_V(,```&9P#_I`P``!1G`/^H8`#_P&```#0@^
XM;P`$(#P``/__P*@`!`R`````_V(`_QQ*`&<`_M@,```"9P#^[`P```YG`/YN4
XM8`#_`G``8```!$YQ3.T'`/_T3EU.=4Y5``!(Y\#P8``"$"!O``0]:``*`'9@A
XM``)2(&\`!#UH``H`>&```D1(>``<(&\`""(H`"!![@"`(`AA``UL6(]@``(HS
XM(!=A``(Z2H!G```(</]@``(>8``!8DHN`'QF```*0>X``&````8@;@`J)D@(F
XMZP```$D(ZP```&E@``&82BX`?&8```I![@``8```!B!N`"HF2'#^P:L`1G``X
XM,"L`3"(`<``P*P!*80`-0$)K`$IP_L&K`&9P`#`K`&PB`'``,"L`:F$`#21"E
XM:P!J8``!1DHN`'QF```*0>X`,F````H@;@`J0>@`4B1(2FH`&&8```QP!\"JI
XM`!1G```0+7P```#V`!YP_V```6@@*@`(D*H`#&X``!8@5S50`!@@;P`$-6@`@
XM"@`:8```%"!O``0B*``((%=P`#`080`,L&```-9*+@!\9@``"D'N`#)@```*F
XM(&X`*D'H`%(D2"!7,"H`&+!09@``!D)J`!A@``"H(&\`!`QH`!``"F<```9@N
XM``"6(&\`!")O``0C:``,``@@;P`$(F\`!"-H``@`!"(O``0@%V$`^W!@``#(<
XM+7P```#0`!YP_V```+H@;P`$(#P``/__P*@`!`R`````R&<`_Z!B```F#```G
XM&F<`_O9B```.#```%6<`_ZA@`/_`#```&V<`_TY@`/^T#(````,!9P#^6&(`0
XM_Z8,@````P!G`/YP8`#_F&```%(@;P`$(#P``/__P*@`!`R`````)6<`_>IBL
XM```:#(`````D9P#]SF(`_@)*`&<`_>!@`/WX#(`````G9P#]Q&(`_>H,@```Q
XM`"9G`/VH8`#]W'``8```!$YQ3.T/`/_P3EU.=71T>2\``$Y5``!(YX`@)$`,5
XM+@`!`'QF$DJN`"IF#"U\````W``><`%@`G``3.T$`/_\3EU.=4Y5``!(Y\`@U
XM)$!P`&$`#$!*@&8&2FH`)F<><``P*@`F+4``'G(@LH!N"C`\`P#`:@`<9P1P=
XM_V`"<`!,[00"__A.74YU3E4``$CGS*`H`"1!2BX`A&8&<`%@``"8<``P*@`<W
XM80`*+C5\``$`'D'N```DB&`\<`?`J@`49A9P`#`J`!HB`'``,"H`&&$`"JY"4
XM:@`8(&\`(#50`!P@+P`@80#_8$J`;`1Z_V`@2FH`'&;J("H`!-"J`!"PJ@`(.
XM8[8@:@`(4JH`"!"$>@%/[?_H0FH`''`'P*H`%&86<``P*@`:(@!P`#`J`!AAC
XM``I00FH`&"`%3.T%,/_P3EU.=4Y5``!(Y^RX)$`F02!O`"P@/'_____`J``$.
XM*``@;P`L*&@`("!O`#`P*@`8L%!F$"U\````]@`>(`1$@&```/9P`#`J`!AAX
XM``E.-7P``0`:8```H"`J``0E0``,)4``"'`'P*H`%&86<``P*@`>(@!P`#`J4
XM`!QA``G&0FH`'"!O`#`U4``8("\`,&$`_GA*@&T^2FH`&&;N("H`#+"J``ADW
XMLD'N```B""!J``Q2J@`,$!`8P'0`%``@`F$`".@:`&<N8!IP`V`"<`(M0``>7
XM4X0@!$2`*`!@'D)N`'I@$@P%``-G]`P%``AGV@P%``EGV%.$2H1NHD_M_]Q"Q
XM:@`8("H`#+"J``AE*B`J``0E0``,)4``"'`'P*H`%&86<``P*@`>(@!P`#`JZ
XM`!QA``D20FH`'"`$3.T=-/_D3EU.=4Y5``!(Y^ZX)$`@;P`P(#Q_____P*@`Z
XM!"@`(&\`,"9H`"`H;@`.(&\`-#`J`!BP4&80+7P```#V`!X@!$2`8``#F'``X
XM,"H`&&$`"`XU?``!`!I@``-`("H`!"5```PE0``(<`?`J@`49A9P`#`J`!XB_
XM`'``,"H`'&$`"(9":@`<(&\`-#50`!@@+P`T80#].$J`;0`"PDIJ`!AF["`JY
XM``RPJ@`(9+`@:@`,4JH`#!H08``"K$HN`()G1"\O`#0B+P`(<``0+@"280#]&
XM0%B/)``O+P`T(B\`"'`@80#]+EB/U(`O+P`T(B\`"'``$"X`DF$`_1A8C]2`I
XM<`.P@F`8+R\`-"(O``AP`!`N`))A`/S\6(]R`;*`;@`"/E.+4XP@;P`PM^@`V
XM(&,$($M@""!O`#`@:``@)DBY[@`.8P0@3&`$(&X`#BA((&\`,+BH``1F$"!O/
XM`#`@*``$4H`H`&```C14A&```BY";@!Z%L48Q2\O`#0B+P`(<``0!6$`_(Y8)
XMCTJ`;0`!TDHN`(5G%B\O`#0B+P`(<`IA`/QR6(]*@&T``;93A&```?06A1B%`
XM<`-@!A:%&(5P`BU``!Y@``&8N>X`#F8,+7P```#3`!Y@``&(2BX`@V<``'9@I
XM:DHN`()G1"\O`#0B+P`(<``0+@"280#\&EB/)``O+P`T(B\`"'`@80#\"%B/#
XMU(`O+P`T(B\`"'``$"X`DF$`^_)8C]2`<`.P@F`8+R\`-"(O``AP`!`N`))AQ
XM`/O66(]R`;*`;@`!&%.,4H2Y[@`.8I!@,"\O`#0B+P`(<``0+@"+80#[KEB/E
XM)``O+P`T(B\`"'`*80#[G%B/U(!P`K"";@``W"!O`#`F:``@*&X`#F``_L80O
XM'!;`&@"P+@"+9@Y*+@"+9PA3BU.,8```[B\O`#0B+P`(#`4`(&0$<"Y@!'``<
XM$`5A`/M,6(]*@&T``(Y3A$J$;KY@``#"$"X`BQ:`&(`O+P`T(B\`"'``$!1AS
XM`/LB6(]*@&UF2BX`A6<4+R\`-"(O``AP"F$`^PA8CTJ`;4PL+@`.8!HO+P`T`
XM(B\`""!&<``0$&$`^NI8CTJ`;2Y2AKR,9>)@8A;%&,4O+P`T(B\`"`P%`"!D!
XM!'`N8`1P`!`%80#ZOEB/2H!L/E.$(`1$@"@`8#Q![@``(@AP`!`%80`$_%.`4
XM#(`````(8KK00#`[``9.^P`"_33^4/WF_C[_4O]*_[#^*/XP4X1*A&X`_01/:
XM[?_80FH`&"`J``RPJ@`(92H@*@`$)4``#"5```AP!\"J`!1F%G``,"H`'B(`V
XM<``P*@`<80`%,$)J`!P@!$SM'73_X$Y=3G5.50``2.?/N"1`)D$@;P`P(#Q_]
XM____P*@`!"@`(&\`,"AH`"`J$R`J``30J@`0+@!P`#`J`!QA``0^-7P``0`><
XM0>X``"2(8```YG`'P*H`%&86<``P*@`:(@!P`#`J`!AA``2\0FH`&"!O`#0U7
XM4``<("\`-&$`^6Y*@&P*(`1$@"@`8```L$IJ`!QFY+ZJ``ACN"!J``A2J@`(2
XM$!P0@!P`2H5G``"(8%P(ZP`!`!=@!@CK``(`%U.J``A@<'#[8"0@1;PH`)!F2
XM!'(#8`)R`B!%<``P*``<80`$1@@K``$`%V=*</W!JP`44ZH`"'``,"L`'B(`\
XM<``P*P`<80`$(D)K`!Q@*"(%<``0!F$``WA?@`R`````!&+"T$`P.P`&3OL`E
XM`O^&_Y[_GO^._YI3A$J$;@#_6D_M_]A":@`<("H`"+"J``QC'G`'P*H`%&868
XM<``P*@`:(@!P`#`J`!AA``/`0FH`&"`$3.T=\/_@3EU.=4Y5``!(Y\^X)$`FJ
XM02!O`#`@/'_____`J``$*``@;P`P*&@`("H3("H`!-"J`!`N`'``,"H`'&$`E
XM`LXU?``!`!Y![@``)(A@``),<`?`J@`49A9P`#`J`!HB`'``,"H`&&$``TQ"T
XM:@`8(&\`-#50`!P@+P`T80#W_DJ`;0`!YDIJ`!QF[+ZJ``ACP%)N`*`@:@`($
XM4JH`"!`<$(`<`$H&9P`!\DJ%9P``B&!<".L``0`78`8(ZP`"`!=3J@`(8'!P"
XM^V`D($6\*`"09@1R`V`"<@(@17``,"@`'&$``M0(*P`!`!=G2G#]P:L`%%.JS
XM``AP`#`K`!XB`'``,"L`'&$``K!":P`<8"@B!7``$`9A``(&7X`,@`````1B%
XMPM!`,#L`!D[[``+_AO^>_Y[_CO^:O"X`BV8``,A";@"@2BX`AV=<4FX`>G``2
XM$"X`B+!N`'IF3$)N`'IP`#`K`!AA``&J<`?`JP`49A9P`#`K`!XB`'``,"L`Q
XM'&$``CA":P`<(&\`-#=0`!@@+P`T80#VZDJ`;0``TDIK`!AF[%*K``Q*+@"%4
XM9U0@*@`$T*H`$+"J``AB.G`'P*L`%&86<``P*@`:(@!P`#`J`!AA``'F0FH`?
XM&"!O`#0U4``<("\`-&$`]IA*@&T``(!*:@`<9NP@:@`(4JH`"!"\``I3A&``J
XM`*!*+@";9P``D$HN`)IG``"(O"X`FF8``(!5CW``,"X`H%.`<@`2+@";80`!I
XMO#Z`4ZH`"&!<<`?`J@`49A9P`#`J`!HB`'``,"H`&&$``69":@`8(&\`-C50J
XM`!P@+P`V80#V&$J`;`@@!$2`*`!@,$IJ`!QFYB`J``30J@`0L*H`"&.R(&H`C
XM"%*J``@0O``@4U=*5V[@5(]3A$J$;@#][$_M_]A":@`<("H`"+"J``QC'G`'[
XMP*H`%&86<``P*@`:(@!P`#`J`!AA``#J0FH`&"`$3.T=\/_@3EU.=2\*3D``O
XM*&0*+4$`'G``)%].=2`*8/@O"B1`(`%.0``I9`HM00`></\D7TYU<`!@^$I`0
XM9PAR`$Y``"L@`4YUL#P`(&PB2@!G'B!!0>@`B7((L!AG%E')__I<B'("L!AG3
XM#'(!L!AG!D*`3G5$0=)\``DP`4YU(D`@07``(@!@!$H19Q"S"&?X4XA3B1`0%
XM$A&2@"`!3G4B0"!!("\`!!+84<C__$YU($!#^@`:$!E&``P```UG!A#`4<G_%
XM\A#`4<G__$YUWYV&WZV:EI*:C=^^T=^RFI.3EI'R`$I`9P1.0``(3G4O`G0`<
XM2H!J!$2`=`-*@6H&1($*`@`!82+B"F0"1(#B"F0"1($D'TJ`3G5AU,%!2H!./
XM=6$&P4%*@$YU2.<X`"0!9@:!_```8&Y3@6=J*`$B`+2!90QG!'``8%QP`9*"@
XM8%8F`FOVQH1F$N**=O_BBE7+__Q$@^:HPH1@/'``=O_C@FH&M(%B"F`,M(%4P
XMR__R9P12@^**1(-@!..`XHJ2@F404H!1R__T8`[C@.**TH)E\%'+__;2@DS?"
XM`!Q*@$YU3E4``$CG8(!P`$Y```I@``&V3E4``$CG8(`@;0`((A`@0"`73D``8
XM%V4``9X@;0`(((%@``&<3E4``$CG8(!.0``/8``!@N&(",``'TY5``!(YV"`"
XM3D``"F```6Q.50``2.<`P"!!(D`B+0`(3D``$65@<`!@:$Y5``!(Y\#`($!.M
XM0``09%1@2DY5``!(Y\#`($`B2!`9#```+V<:#```+F8B#!D`+F?Z$"%G+@P`[
XM`"]F$B!)8-X0&0P``"]G!@P``"YGWDY``!!E"$H`9PP@26#"+4$`'G#_8`0@P
XM"9"73.T#`O_T3EU.=4Y5``!(YV"`2.<`8"0M``P@0"`!(BT`"$Y``"5E`B`*)
XM3-\&`&```+A.50``2.=@@"!`3D``&F4``*@@`6```*!.50``2.=@@"!`3D``1
XM'V4``)`@`6```(A.50``2.=@@"!M``A.0``88```=$Y5``!(YV"`($!.0``FD
XM8```8DY5``!(YV"`",$`'V`,3E4``$CG8(`D+0`(3D``)V4``$(@`F```#I.Y
XM50``2.=@@$Y```M@```J3E4``$Y``%).74YU3E4``$CG8(`O"2!M``@B;0`,2
XM3D``&R)?8````F0,+4$`'G#_8`1E]G``3.T!!O_T3EU.=5!T>4UA;@````\O>
X!?T``_
X``
Xend
Xsize 7066
END_OF_FILE
if test 9933 -ne `wc -c <'ptyman.uu'`; then
    echo shar: \"'ptyman.uu'\" unpacked with wrong size!
fi
# end of 'ptyman.uu'
fi
if test -f 'tty.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'tty.uu'\"
else
echo shar: Extracting \"'tty.uu'\" \(204 characters\)
sed "s/^X//" >'tty.uu' <<'END_OF_FILE'
X
Xbegin 644 tty
XM2OP``0```'H````!````<@55#P"`````````````````````````````````=
XM`#]>`````````/L`9`!K```````````````<```!`0$!```8"!@-!``!%P,%P
X@"`<`````$1,)"%!T>4UA;@!0='E$<G8`='1Y```X9?(!W
X``
Xend
Xsize 122
END_OF_FILE
if test 204 -ne `wc -c <'tty.uu'`; then
    echo shar: \"'tty.uu'\" unpacked with wrong size!
fi
# end of 'tty.uu'
fi
echo shar: End of shell archive.
exit 0
-- 
| Frank Kaefer | fkk@stasys.sta.sub.org | Starnberg, Germany |
| Compuserve: 72427,2101   | Internet: fkk@Germany.Sun.COM   |
| unido!sunde!fkaefer      |    postmaster@Germany.Sun.COM   |
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads