termio man page on Xenix

Man page or keyword search:  
man Server   1130 pages
apropos Keyword Search (all sections)
Output format
Xenix logo
[printable version]



     TERMIO(M)		      XENIX System V		     TERMIO(M)

     Name
	  termio - General terminal interface.

     Description
	  All asynchronous communications ports use the same general
	  interface, no matter what hardware is involved.  The
	  remainder of this section discusses the common features of
	  this interface.

	  When a terminal file is opened, it normally causes the
	  process to wait until a connection is established.  In
	  practice, users' programs seldom open these files; they are
	  opened by getty(M) and become a user's standard input,
	  output, and error files.  The very first terminal file
	  opened by the process group leader of a terminal file not
	  already associated with a process group becomes the for that
	  process group.  The control terminal plays a special role in
	  handling quit and interrupt signals, as discussed below.
	  The control terminal is inherited by a child process during
	  a fork(S).  A process can break this association by changing
	  its process group using setpgrp(S).

	  A terminal associated with one of these files ordinarily
	  operates in full-duplex mode.	 Characters can be entered at
	  any time, even while output is occurring, and are only lost
	  when the system's character input buffers become completely
	  full, which is rare, or when the user has accumulated the
	  maximum allowed number of input characters that have not yet
	  been read by some program.  Currently, this limit is 256
	  characters.  When the input limit is reached, all the saved
	  characters are thrown away without notice.

	  Normally, terminal input is processed in units of lines.  A
	  line is delimited by a newline (ASCII LF) character, an
	  end-of-file (ASCII EOT) character, or an end-of-line
	  character.  This means that a program attempting to read
	  will be suspended until an entire line has been entered.
	  Also, no matter how many characters are requested in the
	  read call, one line will be returned at most.	 It is not,
	  however, necessary to read a whole line at once; any number
	  of characters may be requested in a read, even one, without
	  losing information.

	  Erase and kill processing is normally done during input.  By
	  default, a Ctrl-H or BACKSPACE erases the last character
	  typed, except that it will not erase beyond the beginning of
	  the line.  By default, a Ctrl-U kills (deletes) the entire
	  input line, and optionally outputs a newline character.
	  Both these characters operate on a key-stroke basis,
	  independent of any backspacing or tabbing that may have been
	  done.	 Both the erase and kill characters may be entered
	  literally by preceding them with the escape character (\).

     Page 1					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

	  In this case, the escape character is not read.  The erase
	  and kill characters may be changed (see stty(C)).

	  Certain characters have special functions on input.  These
	  functions and their default character values are summarized
	  as follows:

	  INTR	  (Rubout or ASCII DEL) Generates an interrupt signal
		  which is sent to all processes with the associated
		  control terminal.  Normally, each such process is
		  forced to terminate, but arrangements may be made
		  either to ignore the signal or to receive a trap to
		  an agreed-upon location; see signal(S).

	  QUIT	  (Ctrl-\ or ASCII FS) Generates a quit signal.	 Its
		  treatment is identical to the interrupt signal
		  except that, unless a receiving process has made
		  other arrangements, it will not only be terminated,
		  but a core image file (called core) will be created
		  in the current working directory.

	  SWTCH	  (ASCII NUL) Is used by the job control facility,
		  shl(C), to change the current layer to the control
		  layer.

	  ERASE	  (Ctrl-H) Erases the preceding character.  It will
		  not erase beyond the start of a line, as delimited
		  by a NL, EOF, or EOL character.

	  KILL	  (Ctrl-U) Deletes the entire line, as delimited by a
		  NL, EOF, or EOL character.

	  EOF	  (Ctrl-D or ASCII EOT) May be used to generate an
		  end-of-file from a terminal.	When received, all the
		  characters waiting to be read are immediately passed
		  to the program, without waiting for a newline, and
		  the EOF is discarded.	 Thus, if there are no
		  characters waiting, which is to say the EOF occurred
		  at the beginning of a line, zero characters will be
		  passed back, which is the standard end-of-file
		  indication.

	  NL	  (ASCII LF) Is the normal line delimiter.  It cannot
		  be changed or escaped.

	  EOL	  (ASCII NUL) Is an additional line delimiter, like
		  NL.  It is not normally used.

	  STOP	  (Ctrl-S or ASCII DC3) Temporarily suspends output.
		  It is useful with CRT terminals to prevent output
		  from disappearing before it can be read.  While
		  output is suspended, STOP characters are ignored and

     Page 2					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

		  not read.

	  START	  (Ctrl-Q or ASCII DC1) Resumes output which has been
		  suspended by a STOP character.  While output is not
		  suspended, START characters are ignored and not
		  read.	 The START/STOP characters cannot be changed
		  or escaped.

	  The character values for INTR, QUIT, SWTCH, ERASE, KILL,
	  EOF, and EOL may be changed to suit individual tastes.  The
	  ERASE, KILL, and EOF characters may be escaped by a
	  preceding backslash (\) character, in which case no special
	  function is carried out.

	  When the carrier signal from the dataset drops, a signal is
	  sent to all processes that have this terminal as the control
	  terminal.  Unless other arrangements have been made, this
	  signal causes the processes to terminate.  If the hangup
	  signal is ignored, any subsequent read returns with an end-
	  of-file indication.  Thus, programs that read a terminal and
	  test for an end-of-file can terminate appropriately when
	  hung up on.

	  When one or more characters are written, they are
	  transmitted to the terminal as soon as the previously typed
	  characters have been entered.	 Input characters are echoed
	  by putting them in the output queue as they arrive.  If a
	  process produces characters more rapidly than they can be
	  typed, it will be suspended when its output queue exceeds a
	  given limit.	When the queue has drained down to the given
	  threshold, the program is resumed.

	  Several ioctl(S) system calls apply to terminal files.  The
	  primary calls use the following structure, defined in the
	  file <termio.h>:

	  #define      NCC  8
	  struct       termio {
		unsigned    short   c_iflag;/* input modes */
		unsigned    short   c_oflag;/* output modes */
		unsigned    short   c_cflag;/* control modes */
		unsigned    short   c_lflag;/* local modes */
		char	    c_line; /* line discipline */
		unsigned    char    c_cc[NCC];/* control chars */
	  };

	  The special control characters are defined by the array
	  c_cc.	 The relative positions and initial values for each
	  function are as follows:

     Page 3					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

	  0   VINTR	   DEL
	  1   VQUIT	   FS
	  2   VERASE	   Ctrl-H
	  3   VKILL	   Ctrl-U
	  4   VEOF/VMIN	   EOT
	  5   VEOL/VTIME   NUL
	  6   VEOL2	   EOL
	  7   VSWTCH	   NUL

	  The c_iflag field describes the basic terminal input
	  control:

	  IGNBRK  0000001  Ignores break condition
	  BRKINT  0000002  Signals interrupt on break
	  IGNPAR  0000004  Ignores characters with parity errors
	  PARMRK  0000010  Marks parity errors
	  INPCK	  0000020  Enables input parity check
	  ISTRIP  0000040  Strips character
	  INLCR	  0000100  Maps NL to CR on input
	  IGNCR	  0000200  Ignores CR
	  ICRNL	  0000400  Maps CR to NL on input
	  IUCLC	  0001000  Maps uppercase to lowercase on input
	  IXON	  0002000  Enables start/stop output control
	  IXANY	  0004000  Enables any character to restart output
	  IXOFF	  0010000  Enables start/stop input control

	  If IGNBRK is set, the break condition (a character framing
	  error with data all zeros) is ignored, that is, not put on
	  the input queue and therefore not read by any process.
	  Otherwise, if BRKINT is set the break condition will
	  generate an interrupt signal and flush both the input and
	  output queues.  If IGNPAR is set, characters with other
	  framing and parity errors are ignored.

	  If PARMRK is set, a character with a framing or parity error
	  which is not ignored is read as the 3-character sequence:
	  0377, 0, X, where X is the data of the character received in
	  error.  To avoid ambiguity in this case, if ISTRIP is not
	  set, a valid character of 0377 is read as 0377, 0377.	 If
	  PARMRK is not set, a framing or parity error which is not
	  ignored is read as the character NUL (0).

	  If INPCK is set, input parity checking is enabled.  If INPCK
	  is not set, input parity checking is disabled.  This allows
	  output parity generation without input parity errors.

	  If ISTRIP is set, valid input characters are first stripped
	  to 7-bits, otherwise all 8-bits are processed.

	  If INLCR is set, a received NL character is translated into
	  a CR character.  If IGNCR is set, a received CR character is
	  ignored (not read).  Otherwise, if ICRNL is set, a received

     Page 4					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

	  CR character is translated into a NL character.

	  If IUCLC is set, a received uppercase alphabetic character
	  is translated into the corresponding lowercase character.

	  If IXON is set, start/stop output control is enabled.	 A
	  received STOP character will suspend output and a received
	  START character will restart output.	All start/stop
	  characters are ignored and not read.	If IXANY is set, any
	  input character will restart output which has been
	  suspended.

	  If IXOFF is set, the system will transmit START characters
	  when the input queue is nearly empty and STOP characters
	  when nearly full.

	  If CTSFLOW or RTSFLOW are set, IXON and IXANY should not be
	  set (or vice versa) so that these two types of flow control
	  do not interfere with each other.

	  The RTS and CTS lines for the RS-232 (i.e. serial) interface
	  were originally intended as handshaking signals between a
	  Data Terminal Equipment (DTE) device (computer, printer,
	  etc,) and a Data Communications Equipment (DCE) device
	  (almost always a modem).  The RTS (Ready To Send) line is
	  asserted by the DTE when it is ready to send data to the
	  DCE. The DCE asserts the CTS (Clear To Send) line when it
	  was ready to receive data. If the CTS line goes low, then
	  the DTE should stop sending data until CTS goes high again.
	  The initial input control value is all bits clear.

	  The c_oflag field specifies the system treatment of output:

	  OPOST	  0000001  Postprocesses output
	  OLCUC	  0000002  Maps lowercase to uppercase on output
	  ONLCR	  0000004  Maps NL to CR-NL on output
	  OCRNL	  0000010  Maps CR to NL on output
	  ONOCR	  0000020  No CR output at column 0
	  ONLRET  0000040  NL performs CR function
	  OFILL	  0000100  Uses fill characters for delay
	  OFDEL	  0000200  Fills is DEL, else NUL
	  NLDLY	  0000400  Selects newline delays:
	  NL0	  0
	  NL1	  0000400
	  CRDLY	  0003000  Selects carriage return delays:
	  CR0	  0
	  CR1	  0001000
	  CR2	  0002000
	  CR3	  0003000
	  TABDLY  0014000  Selects horizontal tab delays:
	  TAB0	  0
	  TAB1	  0004000

     Page 5					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

	  TAB2	  0010000
	  TAB3	  0014000  Expands tabs to spaces
	  BSDLY	  0020000  Selects backspace delays:
	  BS0	  0
	  BS1	  0020000
	  VTDLY	  0040000  Selects vertical tab delays:
	  VT0	  0
	  VT1	  0040000
	  FFDLY	  0100000  Selects form feed delays:
	  FF0	  0
	  FF1	  0100000

	  If OPOST is set, output characters are post-processed as
	  indicated by the remaining flags, otherwise characters are
	  transmitted without change.

	  If OLCUC is set, a lowercase alphabetic character is
	  transmitted as the corresponding uppercase character.	 This
	  function is often used in conjunction with IUCLC.

	  If ONLCR is set, the NL character is transmitted as the
	  CR-NL character pair.	 If OCRNL is set, the CR character is
	  transmitted as the NL character.  If ONOCR is set, no CR
	  character is transmitted when at column 0 (first position).
	  If ONLRET is set, the NL character is assumed to perform the
	  carriage return function and the column pointer is set to 0
	  and the delays specified for CR will be used.	 Otherwise,
	  the NL character is assumed to perform the linefeed
	  function; the column pointer will remain unchanged.  The
	  column pointer is also set to 0 if the CR character is
	  actually transmitted.

	  The delay bits specify how long transmission stops to allow
	  for mechanical or other movement when certain characters are
	  sent to the terminal.	 In all cases, a value of 0 indicates
	  no delay.  If OFILL is set, fill characters will be
	  transmitted for delay instead of a timed delay.  This is
	  useful for high baud rate terminals which need only a
	  minimal delay.  If OFDEL is set, the fill character is DEL,
	  otherwise NUL.

	  If a form feed or vertical tab delay is specified, it lasts
	  for about 2 seconds.

	  Newline delay lasts about 0.10 seconds.  If ONLRET is set,
	  the carriage return delays are used instead of the newline
	  delays.  If OFILL is set, 2 fill characters will be
	  transmitted.

	  Carriage return delay type 1 is dependent on the current
	  column position, type 2 is about 0.10 seconds, and type 3 is
	  about 0.15 seconds.  If OFILL is set, delay type 1 transmits

     Page 6					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

	  2 fill characters, and type 2 transmits 4 fill characters.

	  Horizontal tab delay type 1 is dependent on the current
	  column position.  Type 2 is about 0.10 seconds.  Type 3
	  specifies that tabs are to be expanded into spaces.  If
	  OFILL is set, 2 fill characters will be transmitted for any
	  delay.

	  Backspace delay lasts about 0.05 seconds.  If OFILL is set,
	  1 fill character will be transmitted.

	  The actual delays depend on line speed and system load.

	  The initial output control value is all bits clear.

	  The c_cflag field describes the hardware control of the
	  terminal:

	  CBAUD	  0000017  Baud rate:
	  B0	  0	   Hang up
	  B50	  0000001  50 baud
	  B75	  0000002  75 baud
	  B110	  0000003  110 baud
	  B134	  0000004  134.5 baud
	  B150	  0000005  150 baud
	  B200	  0000006  200 baud
	  B300	  0000007  300 baud
	  B600	  0000010  600 baud
	  B1200	  0000011  1200 baud
	  B1800	  0000012  1800 baud
	  B2400	  0000013  2400 baud
	  B4800	  0000014  4800 baud
	  B9600	  0000015  9600 baud
	  EXTA	  0000016  External A
	  EXTB	  0000017  External B

	  CSIZE	  0000060  Character size:
	  CS5	  0	   5 bits
	  CS6	  0000020  6 bits
	  CS7	  0000040  7 bits
	  CS8	  0000060  8 bits
	  CSTOPB  0000100  Sends two stop bits, else one
	  CREAD	  0000200  Enables receiver
	  PARENB  0000400  Parity enable
	  PARODD  0001000  Odd parity, else even
	  HUPCL	  0002000  Hangs up on last close
	  CLOCAL  0004000  Local line, else dial-up
	  LOBLK	  0010000  Block layer output
	  CTSFLOW 0020000  Enables CTS protocol for a modem line
	  RTSFLOW 0040000  Enables RTS signaling for a modem line

	  The CBAUD bits specify the baud rate.	 The zero baud rate,

     Page 7					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

	  B0, is used to hang up the connection.  If B0 is specified,
	  the data-terminal-ready signal will not be asserted.
	  Without this signal, the line is disconnected if it is
	  connected through a modem.  For any particular hardware,
	  impossible speed changes are ignored.

	  The CSIZE bits specify the character size in bits for both
	  transmission and reception.  This size does not include the
	  parity bit, if any.  If CSTOPB is set, 2 stop bits are used,
	  otherwise 1 stop bit.	 For example, at 110 baud, 2 stops
	  bits are required.

	  If PARENB is set, parity generation and detection is enabled
	  and a parity bit is added to each character.	If parity is
	  enabled, the PARODD flag specifies odd parity if set,
	  otherwise even parity is used.

	  If CREAD is set, the receiver is enabled.  Otherwise no
	  characters will be received.

	  If HUPCL is set, the line will be disconnected when the last
	  process with the line open closes it or terminates.  That
	  is, the data-terminal-ready signal will not be asserted.

	  If CLOCAL is set, the line is assumed to be a local, direct
	  connection with no modem control.  The data-terminal-ready
	  and request-to-send signals are asserted, but incoming modem
	  signals are ignored.	If CLOCAL is not set, modem control is
	  assumed. This means the data-terminal-ready and request-to-
	  send signals are asserted.  Also, the carrier-detect signal
	  must be returned before communications can proceed.

	  If LOBLK is set, the output of a job control layer will be
	  blocked when it is not the current layer.  Otherwise the
	  output generated by that layer will be multiplexed onto the
	  current layer.

	  The initial hardware control value after open is B9600, CS8,
	  CREAD, HUPCL.

	  The c_lflag field of the argument structure is used by the
	  line discipline to control terminal functions.  The basic
	  line discipline (0) provides the following:

	  ISIG	  0000001  Enable signals
	  ICANON  0000002  Canonical input (erase and kill processing)
	  XCASE	  0000004  Canonical upper/lower presentation
	  ECHO	  0000010  Enables echo
	  ECHOE	  0000020  Echoes erase character as BS-SP-BS
	  ECHOK	  0000040  Echoes NL after kill character
	  ECHONL  0000100  Echoes NL
	  NOFLSH  0000200  Disables flush after interrupt or quit

     Page 8					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

	  XCLUDE  0100000 Exclusive use of the line

	  If ISIG is set, each input character is checked against the
	  special control characters INTR, SWTCH, and QUIT.  If an
	  input character matches one of these control characters, the
	  function associated with that character is performed.	 If
	  ISIG is not set, no checking is done.	 Thus, these special
	  input functions are possible only if ISIG is set.  These
	  functions may be disabled individually by changing the value
	  of the control character to an unlikely or impossible value
	  (e.g., 0377).

	  If ICANON is set, canonical processing is enabled.  This
	  enables the erase and kill edit functions, and the assembly
	  of input characters into lines delimited by NL, EOF, and
	  EOL.	If ICANON is not set, read requests are satisfied
	  directly from the input queue.  A read will not be satisfied
	  until at least VMIN characters have been received or the
	  timeout value VTIME has expired and at least one character
	  has been input.  This allows fast bursts of input to be read
	  efficiently while still allowing single character input.
	  (See the discussion of VMIN and VTIME below.)

	  The VMIN and VTIME values are stored in the position for the
	  EOF and EOL characters respectively. VMIN and VTIME are
	  interpreted as EOF and EOL if ICANON is set. Default VMIN
	  and VTIME values are stored in the /usr/include/sys/termio.h
	  file. To change these values, set ICANON to off and use
	  stty(C) to change the VMIN and VTIME values as represented
	  by EOF and EOL.  The TIME value represents tenths of
	  seconds.

	  If XCASE and ICANON are set, an uppercase letter is accepted
	  on input by preceding it with a \ character, and is output
	  preceded by a \ character.  In this mode, the following
	  escape sequences are generated on output and accepted on
	  input:

	       For:  Use:
	       `     \'
	       |     \!
	       ~     \^
	       {     \(
	       }     \)
	       \     \\

	  For example, A is input as \a, \n as \\n, and \N as \\\n.

	  If ECHO is set, characters are echoed as received.

	  When ICANON is set, the following echo functions are
	  possible.  If ECHO and ECHOE are set, the erase character is

     Page 9					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

	  echoed as ASCII BS SP BS, which will clear the last
	  character from a CRT screen.	If ECHOE is set and ECHO is
	  not set, the erase character is echoed as ASCII SP BS.  If
	  ECHOK is set, the NL character will be echoed after the kill
	  character to emphasize that the line will be deleted.	 Note
	  that an escape character preceding the erase or kill
	  character removes any special function.  If ECHONL is set,
	  the NL character will be echoed even if ECHO is not set.
	  This is useful for terminals set to local echo (so-called
	  half duplex).	 Unless escaped, the EOF character is not
	  echoed.  Because EOT is the default EOF character, this
	  prevents terminals that respond to EOT from hanging up.

	  If NOFLSH is set, the normal flush of the input and output
	  queues associated with the quit and interrupt characters
	  will not be done.

	  If XCLUDE is set, any subsequent attempt to open the TTY
	  device using open(S) will fail for all users except the
	  super-user.  If the call fails, it returns EBUSY in errno.
	  XCLUDE is useful for programs which must have exclusive use
	  of a communications line.  It is not intended for the line
	  to the program's controlling terminal. XCLUDE must be
	  cleared before the setting program terminates, otherwise
	  subsequent attempts to open the device will fail.

	  VMIN represents the minimum number of characters that should
	  be received when the read is satisfied (i.e., the characters
	  are returned to the user). VTIME is a timer of 0.10 second
	  granularity used to time-out bursty and short-term data
	  transmissions.  The four possible values for VMIN and VTIME
	  and their interactions are:

	  VMIN > 0, VTIME > 0
	  In this case, VTIME serves as an inter-character timer
	  activated after the first character is received, and reset
	  upon receipt of each character. VMIN and VTIME interact as
	  follows:

	       As soon as one character is received the inter-
	       character timer is started.

	       If VMIN characters are received before the inter-
	       character timer expires the read is satisfied.

	       If the timer expires before VMIN characters are
	       received the characters received to that point are
	       returned to the user.

	       A read(S) operation will sleep until the VMIN and VTIME
	       mechanisms are activated by the receipt of the first
	       character; thus, at least one character must be

     Page 10					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

	       returned.

	  VMIN > 0, VTIME = 0
	  In this case, because VTIME = 0, the timer plays no role and
	  only VMIN is significant.  A read(S) operation is not
	  satisfied until VMIN characters are received.

	  VMIN = 0, VTIME > 0
	  In this case, because VMIN = 0, VTIME no longer serves as an
	  inter-character timer, but now serves as a read timer that
	  is activated as soon as the read(S) operation is processed.
	  A read(S) operation is satisfied as soon as a single
	  character is received or the timer expires, in which case,
	  the read(S) operation will not return any characters.

	  VMIN = 0, VTIME = 0
	  In this case, return is immediate.  If characters are
	  present, they will be returned to the user.

	  The initial line-discipline control value is all bits clear.

	  The primary ioctl(S) system calls have the form:

	       ioctl (fildes, command, arg)
	       struct termio *arg;

	  The commands using this form are:

	       TCGETA	 Gets the parameters associated with the
			 terminal and stores them in the termio
			 structure referenced by arg.

	       TCSETA	 Sets the parameters associated with the
			 terminal from the structure referenced by
			 arg.  The change is immediate.

	       TCSETAW	 Waits for the output to drain before setting
			 the new parameters.  This form should be used
			 when changing parameters that will affect
			 output.

	       TCSETAF	 Waits for the output to drain, then flushes
			 the input queue and sets the new parameters.

	  Additional ioctl(S) calls have the form:

	       ioctl (fildes, command, arg)
	       int arg;

	  The commands using this form are:

	       TCSBRK	 Waits for the output to drain.	 If arg is 0,

     Page 11					      (printed 2/7/91)

     TERMIO(M)		      XENIX System V		     TERMIO(M)

			 then sends a break (zero bits for 0.25
			 seconds).

	       TCXONC	 Starts/stops control.	If arg is 0, suspends
			 output; if 1, restarts suspended output.

	       TCFLSH	 If arg is 0, flushes the input queue; if 1,
			 flushes the output queue; if 2, flushes both
			 the input and output queues.

     Files
	  /dev/tty

	  /dev/tty*

	  /dev/console

     See Also
	  fork(S), ioctl(S), mapchan(F), mapchan(M), read(S),
	  setgprp(S), signal(S), stty(C), tty(M)

     Page 12					      (printed 2/7/91)

[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Xenix

List of man pages available for Xenix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net