NAME
       Seyon - X11 Telecommunications Package.

SYNOPSIS
       seyon  [-option	...]  [-toolkit_option	...]  [-- -emula-
       tor_option ...]

DESCRIPTION
       Seyon is a complete full-featured telecommunications pack-
       age for the X Window System. Some of its features are:

	      * Dialing directory that supports an unlimited num-
	      ber of entries. The directory is fully mouse-driven
	      and  features  call progress monitoring, dial time-
	      out, automatic redial,  multi-number  dialing,  and
	      circular	redial	queue.	Each  item in the dialing
	      directory can be configured with its own baud rate,
	      bit  mask,  and script file.  The dialing directory
	      uses a plain-text phone book  that  can  be  edited
	      from withen Seyon. Seyon also supports manual dial-
	      ing.

	      * Terminal emulation window  supporting  DEC  VT02,
	      Tektronix	4014, and ANSI. Seyon delegates its ter-
	      minal emulation to xterm, so all the familiar xterm
	      functions	such as the scroll-back buffer, cut-and-
	      paste utility, and visual bell are availabe through
	      Seyon's terminal emulation window. Using xterm also
	      means that Seyon has a more complete  emulation  of
	      VT102 than other any Unix or DOS telecommunications
	      program. Other terminal emulation programs can also
	      be  used	with  Seyon  to suit the user's need; for
	      example, color xterm can be used to provide  emula-
	      tion  for color ANSI (popular on many BBS systems),
	      and xvt can be used if memory is a bit tight.

	      * Script language to automate tedious tasks such as
	      logging  into  remote  hosts. Seyon's script inter-
	      preter uses plain-text files and has a syntax simi-
	      lar  to  that  of sh, with a few extra addtions. It
	      supports many familiar statements	such  as  condi-
	      tional  branching	by  if-else and looping by goto.
	      Scripts may be assigned to  items	in  the  dialing
	      directory	for  automatic execution after a connec-
	      tion is made.

	      * Unlimited  number  of  slots  for  external  file
	      transfer protocols.  Protocols are activated from a
	      mouse-driven transfer console that  uses	a  plain-
	      text file, editable from withen Seyon, for protocol
	      configuration. Seyon prompts the user for filenames

								1

	      only  if	the chosen protocol requires filenames or
	      if the transfer operation is an upload,  for  which
	      Seyon  also  accepts  wildcards.	Multiple download
	      directories can  be  specified  for  the	different
	      transfer slots.

	      *	Support  for Zmodem auto-download. Seyon detects
	      incoming Zmodem signature and  automatically  acti-
	      vates  a	user-specified zmodem protocol to receive
	      incoming files. Zmodem transfers can thus	be  com-
	      pletely automatic and require no user intervention.

	      *	Translation  modes.  Seyon  can  perfrom  useful
	      trasnlations  on	the  user's  input. From example,
	      Seyon can translate backspace to delete (useful  on
	      may Unix systems), newline to carriage return (use-
	      ful on many BBS hosts), and my favorite,	meta  key
	      tranlation:  to  send  keys  pressed while the meta
	      (ALT) key is held down as an escape (ESC)	followed
	      by  the  key  press.  The latter mode simulates the
	      meta key on hosts that do not  support  8-bit-clean
	      connections  and makes possible the use of the meta
	      key in programs like Emacs on such hosts.

	      * Other features: interactive  setting  of  program
	      parameters,  on-line help, software (XONN/XOFF) and
	      hardware (RTS/CTS) flow control, session capture to
	      a	file,	and temporary running of a local shell in
	      the terminal emulation window.

       Seyon is intended to be both simple and	extensively  con-
       figurable.  Almost every aspect of Seyon can be configured
       via the resources to suit the user's taste.

OPTIONS
       Besides the toolkit options, Seyon recognizes the  follow-
       ing command-line switches:

       -modems <device-list>
	      Overrides	the	resource  modems.  Refer  to  the
	      description of that  resource  below.   Unlike  the
	      resource,	however,  the list here has to be quoted
	      if it consists of more than one entry.

       -emulator <terminal-emulation-program>
	      Instructs Seyon to use the specified program as the
	      terminal	emulator.  If Seyon fails to execute that
	      program, it will fall back to xterm. If this option
	      is  not  given,  Seyon  will  try to use seyon-emu,
	      which should be a link to	your  favorite	terminal
	      emulation program. Seyon will fall back to xterm in

								2

	      this case as well if it fails to execute seyon-emu.

       --     This switch instructs Seyon to pass the rest of the
	      command-line to the terminal emulation program. All
	      options	following  this	switch	will  be  passed
	      blindly to the emulator. This switch cannot be com-
	      bined with -noemulator.

       -nodefargs
	      Seyon  usually  invokes the terminal emulation pro-
	      gram with some options to set the application  name
	      and  window  and icon titles (those are -name Seyon
	      -T "Seyon Terminal Emulator" -n Terminal). If  this
	      switch  is given, Seyon will not pass those options
	      to the emulator.	This is to  accommodate	terminal
	      emulation	programs  that	use a different command-
	      line syntax than xterm -- like xvt, cmdtool, shell-
	      tool,  ..etc.  You  can use the '--' switch to pass
	      your own options to the emulator.

       -noemulator
	      This option is valid only if Seyon is invoked  from
	      withen  a	terminal  emulation program in the fore-
	      ground of an interactive shell session.  If  given,
	      Seyon  will not launch a new terminal emulator, but
	      will use the existing one instead. You  cannot  use
	      the '--' switch if this option is given.

       -script <script-file>
	      Causes  Seyon  to automatically executes the speci-
	      fied script after the startup script  is	run.  The
	      specified	script file will be looked for according
	      to the rule mentioned under the description of  the
	      resource scriptDirectory below.

       -entries <entries-list>
	      Overrides	the  resource defaultPhoneEntries. Refer
	      to the description of that resource  below.  Unlike
	      the  resource,  however,	the  list  here has to be
	      quoted if it consists of more than one entry.

       -dial, -nodial
	      Overrides the resource dialAutoStart and sets it to
	      'on' and If both -dial and -nodial are specified on
	      the command-line, the override value  will  be  set
	      according	to  the  last of the two on the command-
	      line.

RESOURCES
       Besides the toolkit resources, Seyon defines the following
       proprietry resources:

								3

       autoZmodem (boolean)
	      Specifies whether Seyon is to look for Zmodem auto-
	      download signature.  If enabled, Seyon will  detect
	      Zmodem  signature	and  execute the action given by
	      the resource autoZmodemAction (typically to start a
	      local  rz).  Otherwise,  Zmodem  signature  will be
	      ignored.	Default value: on

       autoZmodemAction (string)
	      Specifies a simple or compound action that will  be
	      executed	when  Zmodem  auto-download  signature is
	      detected. This action will be executed only if  the
	      resource	autoZmodem  is enabled (see above). Refer
	      to the section entitled SeQuickKeys for a	descrip-
	      tion  of	available actions.  Default value: Shell-
	      Command($rz);

       backspaceTranslation (boolean)
	      Whether to translate user's  backspace  to  delete.
	      When  the remote host is a Unix system, it's better
	      to set this to on, since many Unix systems are  not
	      happy with backspace.  Default value: off

       captureFile (string)
	      The  name of capture file. Seyon will write session
	      captures to this file when capture is enabled. This
	      file  will  be placed in Seyon's default directory.
	      The capture file will not be overwritten by succes-
	      sive  capture sessions. Seyon will merely apped new
	      capture to its end.  Default value: capture

       connectString (string)
	      The modem connect string. This the string	response
	      the  modem  gives	when  a connection is made after
	      dialing.	Default value: CONNECT

       defaultBits (int)
	      The default number of bits (character size).  Seyon
	      will  set	the  number  of  bits	to  this value on
	      startup and will use it for items	in  the  dialing
	      directory	for  which  no	such parameter is given.
	      Valid values are 5, 6, 7, and 8.	Default value: 8

       defaultBPS (string)
	      The default baud rate. Seyon will set the baud rate
	      to  this value on startup and will use it for items
	      in the dialing directory for which no baud rate  is
	      given.  Default value: 9600

       defaultDirectory (string)
	      Seyon's  default	directory.  When  looking for its
	      files, Seyon will first try this default directory,
	      then the current directory. Seyon will also put the
	      capture file in  this  directory.	Default  value:

								4

	      ~/.seyon

       defaultParity (int)
	      The  default  parity.  Seyon will set the parity to
	      this value on startup and will use it for items  in
	      the  dialing  directory for which no such parameter
	      is given. Valid values are 0 (no	parity),  1  (odd
	      parity), and 2 (even parity).  Default value: 0

       defaultPhoneEntries (int array)
	      This  resource  specifies	a list of numbers corre-
	      sponding to the order the entries	in  the  dialing
	      directory	appear at. Seyon will highlight (select)
	      those entries on startup	and  whenever  you  click
	      ``Default''  from	the  dialing  directory. This is
	      useful if there is a set of entries that	you  most
	      frequesntly  dial	that want to be highlghted auto-
	      matically instead of doing that every time by hand.
	      You can override this resource by the -entries com-
	      mand-line switch.	Unlike the command-line  switch,
	      however, the list here should not be quoted. Phone-
	      book entries numbering starts at one.   No  default
	      value.

       defaultStopBits (int)
	      The default number of stop bits. Seyon will set the
	      number of stop bits to this value	on  startup  and
	      will  use it for items in the dialing directory for
	      which no such parameter is given. Valid values  are
	      1 and 2.	Default value: 1

       dialAutoStart (boolean)
	      This  resource  specifies	that  Seyon should start
	      dialing  the  entries  specified	by  the	resource
	      defaultPhoneEntries  (or	its override command-line
	      switch) on startup.  Seyon  will	commence  dialing
	      those  entries  after  executing the startup script
	      and any script specified at  the	command	line.	A
	      more convenient way of automatic dialing on startup
	      is to use the override command-line  switch  -dial,
	      which  overrides	this resource and enables. If the
	      resource is enabled, it can be disabled at the com-
	      mand  line by the override switch -nodial. Refer to
	      the description of these switches	above.	Default
	      value: off

       dialCancelString (string)
	      The string Seyon sends to the modem to cancel dial-
	      ing while in progress.  Default value: ^M

       dialDelay (int)
	      How long in seconds Seyon should wait after no con-
	      nection  is made withen dialTimeOut before ciculat-
	      ing to the next number.  Default value: 10

								5

       dialDirFormat (string)
	      This is a format string that specifies  the  layout
	      of  the  dialing	direcotry.  The default is '%-15s
	      %-15s  %6s  %1c%1c%1c  %1c%1c  %s'   (no	quotes).
	      Briefly:	the  fields represent the host name, num-
	      ber,  the	baud  rate,  bits,  parity,  stop  bits,
	      whether  there  is a custom prefix, suffix, and the
	      script name. You	can  understand	more  what  each
	      field  refers  to	by comparing with dialing direc-
	      tory, fields that use the current setting (via  the
	      keyword CURRENT) are designated by a question mark.
	      Notice that you cannot change the order  the  items
	      in  the  dialing directory appear at, only the for-
	      mat. For example, if the numbers you call	are  all
	      7-digits,	your host names are short, you never use
	      baud rates above 9600, and you like dashes  between
	      the  baud rate, bits, parity, and stop bits fields,
	      then you may prefer to use the format string '%-10s
	      %-8s  %5s-%1c-%1c-%1c  %1c%1c  %s',  which would be
	      narrower than the default format.	Default  value:
	      %-15s %-15s %6s %1c%1c%1c %1c%1c %s

       dialPrefix (string)
	      The  string  Seyon  sends	to  the modem before the
	      phone  number.  To  use  pulse  dialing,	set  this
	      resource to .IR ATDP .  Default value: ATDT

       dialRepeat (int)
	      How  many	times Seyon should try dialing a number.
	      Seyon will give up on dialing a number if	no  con-
	      nection  is  made	after	this many tries.  Default
	      value: 5

       dialSuffix (string)
	      The string Seyon sends to the modem after the phone
	      number.  This  string  has  to  contain  a carraige
	      return or the number will never  get  sent  to  the
	      mode.  Default value: ^M

       dialTimeOut (int)
	      How long in seconds Seyon should wait for a connec-
	      tion to made after dialing is complete. Seyon  will
	      cancel  the dialing if no connection is made withen
	      this period.  Default value: 45

       exitConfirm (boolean)
	      Whether Seyon should prompt for hanguping up before
	      exiting.	If  off-line  and  the	resource  ignore-
	      ModemDCD is set to 'off', Seyon will not prompt for
	      hanging  up  upon	exiting even if this resource is
	      set to Default value: on

       funMessages (string array)
	      The fun messages to be displayed when Seyon has  no

								6

	      other important information to show. This should be
	      a list of double-quoted [funny] sentences.  Default
	      value: varies, version-dependent

       funMessagesInterval (int)
	      The temporal interval in seconds between successive
	      fun messages.  Default value: 15

       idleGuard (boolean)
	      If set to on, Seyon  will	send  a  string  to  the
	      remote  host  whenever the terminal session is idle
	      (no keyboard input) for a given amount of time. The
	      resources	idleGuardInterval  and  idleGuardString
	      specify the above time interval and the  string  to
	      be  sent to the remote host when idle. It is useful
	      to enable this features to keep the  session  alive
	      when  one	is  away  from	the computer for a while
	      (e.g.  to prevent auto-logout).  Default value: off

       idleGuardInterval (int)
	      The  amount of time in seconds Seyon is to consider
	      the session idle when there is no keyboard activity
	      at  the  terminal for that long.	Seyon will send a
	      string to the remote host every  such  interval  as
	      long as the session is idle.  Default value: 300

       idleGuardString (string)
	      The  string  to be sent to the remote host when the
	      session is idle.	This string will  be  sent  at	a
	      regular  interval	as  long  as the sesiion remains
	      idle. Note that the current  translations	will  be
	      used  in	sending	this  string;	for  example,  if
	      backspaceTranslation is enabled, then  the  default
	      string  <Space><BS>  will	be sent as <Space><DEL>.
	      Default value: \s^H (space then backspace)

       ignoreModemDCD (boolean)
	      If this resource is set  to  'on',  the  modem  DCD
	      (Data  Carrier Detect) status will be ignored. Some
	      of the consequences of setting this to 'on' is that
	      Seyon   will  always  prompt  for	hangup	(if  the
	      resource exitConfirm is set to 'on')  even  if  the
	      modem DCD status indicates that it is off-line, and
	      dialing will be attempted even  if  the  modem  DCD
	      status  indicates	that it is on-line. It is highly
	      recommended that you keep this set to 'off'  unless
	      your  modem  does	not  honor the DCD line. Consult
	      your modem's  manual  for	more  details.	Default
	      value: off

       hangupBeforeDial (boolean)
	      When set to on, Seyon will hangup the line (if con-
	      nected) before dialing the phone number. Otherwise,
	      the  number  will be dialed without hanging up, and

								7

	      it is the user's responsibility to ensure that  the
	      line   is	clear	(no  connection)  when	dialing.
	      Default value: on

       hangupConfirm (boolean)
	      Whether Seyon should ask	for  confirmation  before
	      hanging up the phone Default value: on

       hangupViaDTR (boolean)
	      When  enabled,  Seyon  will  hangup up the modem by
	      dropping DTR. This is much quicker than hanging  up
	      by  sending a Hayes-like hangup string to the modem
	      and waiting to allow for escape  guard  time.  How-
	      ever, some modems and serial drivers choke on drop-
	      ping DTR and others just don't hangup when  DTR  is
	      dropped,	so  in these cases it should be disabled.
	      If disabled, Seyon will hangup the modem by sending
	      the  string  specified  by the resource modemAtten-
	      tionString,  followed  by	that  specified  by  the
	      resource modemHangupString.  Default value: off

       metaKeyTranslation (boolean)
	      Whether  to  transmit  keys  pressed while the meta
	      (ALT) key is held down as an escape (ESC)	followed
	      by  the  key press. Most hosts do not support 8-bit
	      sessions, and hence do not recognize the meta  key.
	      Therefore,  this translation mode has to be enabled
	      when connected to such hosts to take  advantage  of
	      the  meta	key in programs that make use of it like
	      Emacs.  Default value: on

       modemAttentionString (string)
	      The string to send to the modem to get  its  atten-
	      tion  (switch to command mode). This string will be
	      sent to the modem before	the  hangup  string  when
	      hangupViaDTR is disabled.	Default value: +++

       modemHangupString (string)
	      The  hangup  string  to  send  to	the  modem  when
	      hangupViaDTR is disabled.	Default value: ATH^M

       modems (string)
	      A list of modem  devies  to  use.	Seyon	will  try
	      modems  in  this	list one after the other until it
	      finds an available modem or the list is  exhausted.
	      No default value.

       modemStatusInterval (int)
	      This  resource controls the amount of time (in sec-
	      onds) between updates to the modem  status  toggles
	      (including the clock). The default is five seconds,
	      but you can set it to one second (or any other num-
	      ber)  if	you  want  the toggles to be updated more
	      frequently. Even if you set this to a large number,

								8

	      Seyon  is	intellegent enough to update the toggles
	      after each connect or hangup.  Default value: 5

       modemVMin (int)
	      This resource specifies the minimum number of char-
	      acters that should be in the buffer before the read
	      process is satified. The	read  process  will  wait
	      until  that number of incoming characters is in the
	      buffer  or  0.1  second  has  elapsed  between  the
	      receiption  of two characters before displaying the
	      data in the buffer. This results in the data  being
	      displayed in chunks and speeds up the terminal dis-
	      play. The speedup would be most noticeable on  slow
	      machnes with fast modems.

	      Leave this resource at its default (1) or set it at
	      a low value (6) if you  have  a  slow  modem  (e.g.
	      2400bps). Otherwise you might set it to the maximum
	      value, which is  platform-dependent  but	generally
	      255.  If	you set it to any number greater than the
	      maximum value, it will be truncated to the  maximum
	      value.  Default value: 1

       newlineTranslation (string)
	      When  the	Enter	key is pressed, newline character
	      (\n) is generated.  This resource	determines  what
	      to  translate  this  character  to. Three modes are
	      possible: no translation (newline), carriage return
	      (\r), and carriage return / line feed. Unix systems
	      usually expect newline or carrage return, DOS  sys-
	      tems  expect  carraige  return or carriage return /
	      line feed. The three keywords corresponding to  the
	      above  modes are nl, cr, and cr/lf.  Default value:
	      cr

       noConnectStringX [X = 1-4] (string)
	      The response strings given by the modem  when  con-
	      nection  fails.	Default	values:  NO  CARRIER, NO
	      DIALTONE, BUSY, VOICE (respectively)

       phonelistFile (string)
	      The name of  the	phone  list  (dialing  directory)
	      file.  See  the  included example to learn how this
	      file should be formatted.	Default value: phonelist

       postConnectAction (string)
	      Specifies	a simple or compound action that will be
	      executed after a connection to  a	remote	host  is
	      made.  This  action will be executed before running
	      any script attached to that  host	in  the  dialing
	      directory. All actions here have to be synchronous.
	      Refer to the section entitled SeQuickKeys below for
	      a description of available actions.  Default value:
	      Beep();

								9

       protocolsFile (string)
	      The name of the protocols	file.	This  file  tells
	      Seyon  what  file transfer protocols are available.
	      The user will be promted with a list based on  this
	      file   when  file	transfer  is  to  be  initiated.
	      Default value: protocols

       quickKeyX
	      Refer to the section entitled SeQuickKeys below.

       rtsctsFlowControl (boolean)
	      Whether Seyon should turn on RTS/CTS hardware  flow
	      control.	Make sure the modem is set to use this as
	      well.  Default value: off

       scriptDirectory (string)
	      Seyon's script directory. When looking for scripts,
	      Seyon  will  first  try this script directory, then
	      the current directory.  Default  value:  defaultDi-
	      rectory

       showFunMessages (boolean)
	      Whether to display funny messages when Seyon has no
	      other important information  to  show.  Seyon  will
	      display  those messages at an interval specified by
	      the funMessagesInterval resource when there  is  no
	      other  important information to convey to the user.
	      To  disable  the	display	of  fun  messages,  this
	      resource has be set to off.  Default value: on

       startupAction (string)
	      Specifies	a simple or compound action that will be
	      executed on startup. This action is executed  prior
	      to  running  any script (in case the -script switch
	      is given) or  dialing  any  entry	of  the  dialing
	      directory (in case the -dial switch is given or the
	      resource dialAutoStart is enabled).  You	can  make
	      Seyon  open  the dialing directory automatically on
	      startup  by  using  the  simple  action  ``OpenWid-
	      now(Dial);''  as	a  constituent	of  this  complex
	      action stack.  Note that running the startup script
	      is  just	a special case of this resource. Refer to
	      the section entitled SeQuickKeys for a  description
	      of   available   actions.	Default   value:  Run-
	      Script(startup);

       startupFile (string)
	      Seyon's startup file. Seyon will execute	all  com-
	      mands in this file upon startup. This file can have
	      any commands acceptable  as  script  commands.  The
	      most useful command to put here is the set command,
	      to  set  the  various  communications   parameters.
	      Default value: startup

							       10

       stripHighBit (boolean)
	      Whether  to strip the high (eights) bit from incom-
	      ing characters. If set to on, the high bit  of  all
	      incoming	characters  will  be stripped, which will
	      make an  8-N-1  setting  behave  like  7-N-1,  even
	      though  eight  bits  are	used  for each character.
	      Default value: off

       xonxoffFlowControl (boolean)
	      Whether Seyon should turn on XON/XOFF software flow
	      control.	Default value: off

SEQUCKKEYS
       Seyon  allows  the  user	to  have  custom buttons, called
       SeQuickKeys  (z	quickies),  to	which  actions	can   be
       attached.  SeQuickKeys  provide a convenient way via which
       the user can invoke frequently-used operations by a  singe
       mouse   click.	SeQuickKeys  are  specified  through  the
       resources quickKeyX, where X is an  integer  corresponding
       to  the order at which that SeQuickKey is to appear on the
       command center.	Relevant subparts of  that  resource  are
       visible, action, and label. Here is an example:

	      Seyon*quickKey3.visible: on
	      Seyon*quickKey3.action: FileTransfer(1,file); Beep();
	      Seyon*quickKey3.label: Upload

       The  first line specifies that SeQuickKey3 should be visi-
       ble. The second line specifies the  action  bound  to  the
       SeQuickKey  (in	this  case,  a	compound action), and the
       third line specifies the label for that SeQuickKey's  but-
       ton.  Other  subparts  can  also be specified in a similar
       fashion (e.g.  background, foreground, ..etc.)

       Actions can be  either  simple  or  compound.  A	compound
       action  consists	of  a stack of simple actions and can be
       used as simple mini-script.  Examples:

       +o Set(idleGuard,on); DialEntries(Default);
       +o Echo("Uploading files..."); Transmit(rz); \
	     FieTransfer(1,"*.ico $HOME/acct.wks"); Echo(Done);
       +o OpenWindow(Dial); DialEntries("2 5 6");
       +o Echo("Goodbye.."); Hangup(); Quit();
       +o Set(baud,9600); ManualDial("555-5555");
       +o Echo("Will upload..."); ShellCommand("$sz *.wks");
       +o Set(parity,0); RunScript(login.scr); Echo(Finished);

       The following is a list of actions  Seyon  currently  sup-
       ports. Asterisks designate asynchronoous actions. Brackets
       designate optional arguments.

							       11

       Beep();
	      Rings the bell making a short beep.

       CloseWindow(window [,...]);
	      Closes (dismisses) the given windows. Currenly  the
	      only  valid  argument to this action is Dial, which
	      corresponds to the dialing idrectory window.  Exam-
	      ple: CloseWindow(Dial);

       DialEntries(entries-list);*
	      Dials  entries in the dialing directory correspond-
	      ing by order to the given	list.	Entries	will  be
	      dialed  as  if  the  user	had selected them on the
	      dialing directory. Entries will be  dialed  without
	      opening  the  dialing  directory.	You  can use the
	      action  ``OpenWindow(Dial);''  and  stack	the  two
	      actions  in a compound action if you want the dial-
	      ing directory to be opened.

	      The list must be quoted if it consists of more than
	      one entry, and entries should be separated by white
	      space, not commas.  If the list  consists	of  just
	      the word ``Default'', then the entries given by the
	      resource defaultPhoneEntries will be dialed,  refer
	      to  the  description  of	that  resource	for  more
	      details.

	      The most common use of this action is  attach  fre-
	      quesntly-dialed  hosts to SeQuickKeys, making dial-
	      ing those hosts  a  one-click  operation.	If  this
	      action  is not the last in a compound action stack,
	      actions specified by the resource postConnectAction
	      may  not	work properly.	Examples: DialEntries(2);
	      DialEntries("2 4 5"); DialEntries(Default);

       DivertFile([file]);*
	      Sends the given file to the remote host as  a  text
	      upload.  If  the	optional argument ``file'' is not
	      specified, Seyon will pop up a  dialog  box  asking
	      for  the	file name. In the latter case this action
	      is similar to clicking Divert from the Misc window.
	      Examples:	DivertFile("/tmp/acct.wks");	Divert-
	      File();

       Echo([string]);
	      Echos the given string to the  terminal.	Does  not
	      send  it	to  the modem (use Transmit for that). If
	      the string consists of more than one word, it  must
	      be  quoted.  Note	that unlike the shell command of
	      the same name, this command does	not  accepts  the

							       12

	      switch -n but always appends newline to the string.
	      If the argument is omitted, an empty line	will  be
	      echoed. Examples: Echo(Hello); Echo("Hello there");
	      Echo();

       FileTransfer(entry, [file-list]);*
	      Executes the  transfer  protocol	corresponding  by
	      order  in	the  trasfer console (protocols file) to
	      ``entry''. If that protocol requires  a  file  name
	      and  file-list is omitted, Seyon will pop up a dia-
	      log box asking for the  file.  Otherwise	file-list
	      will  be	passed to that protocol. The list must be
	      quotes if it consists of more  than  one	word  and
	      items  in it should be separated by white space. It
	      can contain wild cards and shell	variables.  Exam-
	      ples:   FileTransfer(1);	FileTransfer(2,acct.wks);
	      FileTransfer(2,"*.wks $HOME/acct.wks");

       Hangup();
	      Disconnects the line. Does not pop up  a	confirma-
	      tion box.

       IconifyWindow(window [,...]);
	      Iconifies	the  given  windows.  Valid arguments to
	      this action are Main, Dial, and Term, corresponding
	      respectively  to the command center, dialing direc-
	      tory, and terminal emulator windows. When the argu-
	      ment  is	Term,  this  action will work only if the
	      terminal emulator	sets  the  envirenment	variable
	      WINDOWID,	like  xterm  does. Examples: IconifyWin-
	      dow(Main,Dial,Term); IconifyWindow(Dial);

       ManualDial([number]);*
	      Dials a number as if the	Manual	button	had  been
	      clicked  from  the dialing directory. If ``number''
	      is specified, it will be	dialed	directly  and  no
	      dialog box will be popped up asking for the number.
	      Examples: ManualDial(555-5555); ManualDial();

       Message([string]);
	      Echos the	given	string	to  the	message  box  of
	      Seyon's command center (main window). If the string
	      consists of more than one word, it must be  quoted.
	      If  the  argument is omitted, an empty line will be
	      echoed.  Examples:  Message(Hello);  Message("Hello
	      there"); Message();

							       13

       OpenWindow(window [,...]);
	      Opens  each  of  the given windows by popping it if
	      closed or de-iconifying it if in an  iconic  state.
	      Valid  arguments to this action are Main, Dial, and
	      Term, corresponding  respectively	to  the  command
	      center,  dialing	directory,  and terminal emulator
	      windows. When the argument  is  Term,  this  action
	      will  work  only	if the terminal emulator sets the
	      envirenment variable  WINDOWID,  like  xterm  does.
	      Examples:	OpenWindow(Main,Dial,Term);	OpenWin-
	      dow(Dial);

       Quit();
	      Exits Seyon completely and returns  to  the  shell.
	      Does not pop up a confirmation box.

       RunScript([script-name]);*
	      Executes	the script given by the file script-name.
	      The script will be executed  as  if  the	user  had
	      selected	it  via the Script button. If script-name
	      is omitted, a dialog box will be popped  up  asking
	      for  the	script	name.  This  is	a very versatile
	      action, as many remote and local commands or series
	      of commands can be performed by attaching appropri-
	      ate  scripts   to	SeQuickKeys.	Examples:   Run-
	      Script(login.scr); RunScript();

       Set(parameter, value);
	      Sets  the	specified  parameter to the given value.
	      Can be  used  to	set  the  various  communications
	      parameters.  Available  parameters are listed under
	      the    script    command	``set''.	Examples:
	      Set(baud,9600);  Set(parity,0); Set(idleGuard,off).

       ShellCommand(shell-command);*
	      Executes the given shell	command	via  the  user's
	      shell pointed to by the SHELL environment variable,
	      or /bin/sh if that environment variable is not set.
	      Note that the command must be quoted if it consists
	      of more than one word. If the first non-space  let-
	      ter  of  the  command  is the character ``$'', then
	      standard input and standard output  will	be  redi-
	      rected  to to the modem. This action can be used to
	      execute any external  program  from  withen  Seyon.
	      Example: ShellCommand(ls); ShellCommand("$cd $HOME;
	      sz -vv *.wks");

       Transmit(string);
	      Transmits the given string to the remote host.  The

							       14

	      string  must  be quoted if it consists of more than
	      one word. The string is transmitted as is (no  case
	      conversions are performed). No newline character or
	      carriage return is appended to the string, use  the
	      prefix  characters  for that (e.g. ^M, ^J). See the
	      discripttion of the script command ``transmit'' for
	      more details. Example: Transmit(ls^M); Transmit("ls
	      -CF^M");

SCRIPT LANGUAGE
       Script files can automate some tedious tasks such as  log-
       ging  into  a system.  A script file is an ascii text file
       and may be entered or edited using any standard text  edi-
       tor.

       The  script  file is read line by line.	Empty lines (con-
       sisting of white space only) are	ignored.   Comments  are
       lines whose first non-space character is a pound sign (#).

       The script processor  reads  each  script  line,	ignoring
       leading	white  space,  into  words.  A word is defined as
       either:

	      +o a  sequence  of	characters  delimited	by  white
	      space, or
	      +o	a  sequence  of characters enclosed in single or
	      double quotes.

       The first word of a script file is considered the  command
       word.   If  the	last  character	of the command word is a
       colon (:), the line is  considered  to  be  a  label  (the
       object  of a goto statement).  Otherwise, it is assumed to
       be a script command and is interpreted  as  such.  Command
       words are case insensative.

       Some commands take one or more arguments. Each argument is
       parsed as a single word as defined above.  If  blanks  are
       required in an argument, the argument must be quoted using
       single or double quotes.

							       15

   Script Command List
       Below is the description of all commands that may be  used
       in the Seyon script language:

       capture on|off (currently may not work)
	      The  command  capture  on	will enable capture. All
	      characters received during waitfor processing  will
	      be  appended  to the capture file. The command cap-
	      ture off will close the capture file.  This setting
	      does  not	currently  extend to terminal mode. This
	      may be offered in a later release.

       debug on|off
	      If the argument is on, all subsequent command lines
	      processed	will  be  displayed on the local screen.
	      The exception to this is lines containing a  trans-
	      mit  command.  These  lines  will just print TRANS-
	      MIT..., so that passwords, etc. can  be  protected.
	      If  the  argument is off, scripts will execute qui-
	      etly (this is the default setting).

       dial <number>
	      Dial the specified number.  Seyon supports  generic
	      "Hayes"  compatible  modems for dialing.	Note that
	      this command requires an actual phone  number.  The
	      phonebook is not used for this function.

       echo <string>
	      Echos  the  given	string to the terminal. Does not
	      send it to the modem (use transmit  for  that).  If
	      the string contains spaces, it must be quoted. Note
	      that unlike the shell command  of	the  same  name,
	      this  command  does  not	accepts the switch -n but
	      always appends newline to the string.

       exit   Terminates the script file  prior	to  the  end  of
	      file. Returns to terminal mode.

       flush  Flushes  the  modem,  i.e. discards data written to
	      the modem but not transmitted and data received but
	      not read.

       goto <label>
	      Goes  to the specified label in the script file and
	      continues execution from that point. The label  may
	      either precede or follow the actual goto statement.
	      A label is any command word whose last character is

							       16

	      a colon (:).

       hanup  Hangups up the line and disconnects from the remote
	      host.

       if, else, endif
	      Syntax:
	      if <condition>
		      <statements>
	      [else
		      <statements>]
	      endif

	      Conditionally executes statements based  on  speci-
	      fied condition. Seyon supports the following condi-
	      tions:

	      waitfor: true if the last waitfor command was  suc-
	      cessful.
	      linked:  true  if this script was executed from the
	      dialing directory.

	      Conditions may be negated using the prefix  not  or
	      the character !:

	      !waitfor:	true  If  the last waitfor command timed
	      out.
	      not waitfor: same as !waitfor above

	      The else and endif keywords must	appear	on  their
	      own lines. If statements may not be nested.

       pause <time>
	      Suspends	execution of the script for the specified
	      number of seconds.  This is usually used for timing
	      considerations;  for  example,  waiting a couple of
	      seconds after receiving  the  connect  message  and
	      typing ^C to CompuServe.

       purge  Reads  and  discards all data coming from the modem
	      for the duration of one second.

       quit   Terminates the script and exits the  whole  program
	      (returns to the shell).

							       17

       redial Redials  the last number dialed using the dial com-
	      mand.

       send_break
	      Sends a BREAK signal to te remote host.

       set <parameter> <value>
	      Sets the specified parameter to  the  given  value.
	      Can  be  used  to	set  the  various communications
	      parameters for each host. The follwoing is  a  list
	      of the set keywords that Seyon recognizes. Keywords
	      marked with an asterisk set the  current	parameter
	      only, not the default one. Refer to the corresponig
	      resource (in parentheses below) for details of  the
	      function of each keyword.

	      baud* (defaultBPS)
	      bits* (defaultBits)
	      parity* (defaultParity)
	      stopBits* (defaultStopBits)
	      stripHighBit (stripHighBit)
	      newlineTranslation (newlineTranslation)
	      del (backspaceTranslation)
	      meta_tr (metaKeyTranslation)
	      xoff (xonxoffFlowControl)
	      rtscts (rtsctsFlowControl)
	      autozm (zmodemAutoDownload)
	      idleGuard (idleGuard)

	      Boolean  keywords	accept	on or off as their argu-
	      ment, other keywords accept the same  arguments  as
	      the corresponding resources.

       shell <shell-command>
	      Executes	the  given  shell  command via the user's
	      shell pointed to by the SHELL environment variable,
	      or /bin/sh if the environment variable SHELL is not
	      set. Note that the command must  be  quoted  if  it
	      consists	of  more than one word. If the first non-
	      space letter of the command is the  character  '$',
	      then  standard  input  and  standard output will be
	      redirected to to the modem.  This	command  can  be
	      used  to	execute	any external program from withen
	      Seyon. Example: shell "cd /usr/dl; rz -vv".

       transmit <text>
	      Transmits the specified text to  the  remote  host.
	      The text argument should be quoted (using single or

							       18

	      double quotes) if there are spaces to be	transmit-
	      ted. The text is transmitted as is (no case conver-
	      sions are performed).

	      Prefix characters:

	      ^ is the Control character prefix: the next charac-
	      ter  is made into a control character. For example,
	      ^M is carriage return  (0x0D)  and  ^J  is  newline
	      (0x0A).
	      \	is quote prefix: the next character is transmit-
	      ted verbatim. For example, \^ would transmit a lit-
	      eral ^.

       tty on|off
	      This  command  specifies	whether or not characters
	      received from the modem will be  displayed  on  the
	      local  terminal.	Since	the  only  time	that the
	      script processor looks at the receive queue is dur-
	      ing waitfor processing, the displays may look a bit
	      erratic.	Use the tty off command to disable  local
	      display  of  received characters during script pro-
	      cessing.

       waitfor <text> [timeout]
	      Waits for the specified text  to	appear	from  the
	      modem.  The  text	argument should be quoted (using
	      single or double quotes) if there are spaces to  be
	      transmitted.

	      Special  characters are interpreted the same as for
	      transmit.	If the timeout	argument  is  specified,
	      Seyon  will  wait	that  number  of seconds for the
	      string to appear.	If no timeout	is  given,  Seyon
	      defaults to 30 seconds.

	      During  waitfor processing, characters received (up
	      to and including the last character  found  in  the
	      text  or	in the timeout) can be captured to a disk
	      file (if capture on is specified), and/or displayed
	      to the screen (if tty on is specified).

       when [<string-to-expect> <string-to-send>]
	      Sends string-to-send whenever it encounters string-
	      to-expect while waiting in a waitfor command, what-
	      ever   the  number  if  times  string-to-expect  is
	      encountered.

	      This is is useful if the order of prompts	expected
	      is  not  known  before  hand. For example, some BBS
	      systems  (notably	PCBoard)  change   the	prompts

							       19

	      depeding on the time of call, and a complete script
	      for such boards cannot  be  written  using  waitfor
	      only.

	      As  many	number of when commands as desired can be
	      specified. A when command with no arguments  clears
	      all  outstanding	when  commands.	waitfor commands
	      take precedence over when commands if  they  expect
	      the same string.

	      A typical use of this command would be:

		      when "Continue?"	"y^M"
		      when "More?"	   "n^M"
		      waitfor "BBS Command?"
		      when

	      The  above script keeps sending "y^M" to every Con-
	      tinue?" prompt and "n^M" to  every  "More?"  prompt
	      until the the string "BBS Command?" is encountered.
	      The lasy when clears all outstanding when commands.

FILES
       The default Seyon files are startup, phonelist, and proto-
       cols.  These have to be in the current directory,  Seyon's
       default	directory  (~/.seyon),	or the user's home direc-
       tory. The default  script  directory  is	Seyon's  default
       directory. All of these files and directories can be over-
       ridden by  setting  the	appropriate  resources.	See  the
       description  of those resources as well as the description
       of the files above.

SEE ALSO
       xterm(1), resize(1)

COPYRIGHT
       Seyon is Copyright (c) 1992-1993 of  Muhammad  M.  Saggaf.
       Seyon  is  not public domain. Permission is granted to use
       and distribute Seyon freely for any use and to sell it  at
       any  price  without  reference to the copyright owner pro-
       vided that in all above cases Seyon is intact and  is  not
       made  part  of  any program either in whole or in part and
       that this copyright notice is included with Seyon. Permis-
       sion  is	also granted to modify the source as long as the
       modified source is not distributed.

BUGS
       The script command 'set port' is	not  supported	in  this
       release.	If  the  action DialEntries is not the last in a
       compound action stack, actions specified by  the	resource

							       20

       postConnectAction may not work properly.

       If  Seyon  is  hung,  it	can  be  made to exit cleanly by
       killing its main	process  by  signal  15  (SIGTERM)  from
       another	shell.	Seyon's	main process is the one that has
       the lowest PID (Process ID) number.  For	example,  if  ps
       shows:

		1100 p0 S     0:04 seyon -noemulator
		1101 p0 S     0:00 seyon -noemulator
		1102 p0 S     0:38 seyon -noemulator

       Then  ``kill -15 1100'' or ``kill 1100'' would cause Seyon
       clean up and exit gracefully.

AUTHOR
       Muhammad M. Saggaf, alsaggaf@mit.edu. Snail Mail: Muhammad
       Saggaf, Box 9863, Dhahran 31311, SAUDI ARABIA. I apologize
       that I may not be able to respond to all correspondence	I
       receive.

       xcomm 2.2 was written by Eric Coe and Larry Gensch.

ACKNOWLEDGEMENT
       David  Boyce for helpuful suggestions, the Imake file, and
       patches for clean build under gcc -Wall; Joaquim Jorge for
       the  lex/yacc parsing routines contributed by him; and the
       many people who sent me	patches	for  various  platforms:
       Fred  Appleman  (SVR4),	atae@spva.dnet.nasa.gov (Ultrix),
       Alain Hebert (SVR3.2),  Peter  Davies  (Sun  Sparc),  Eric
       Schmidt	(Apollo),  David  Sanderson (AIX), Jonathan Bayer
       (Sun), Jeff Johnson (SVR4), Glenn Geers (SVR4-Esix),  Tony
       Vincent-Sun-Vienna  (Solaris),  Bob  Smith  (SunOS 3.x and
       sgtty interface). (pardon me if I forgot to mention  you).
       I'm  also thankful to all the nice people who sent me sug-
       gestions or bug reports.

       The MultiList widget used  in  the  dialing  directory  is
       written	by the Free Widget Foundation. You can get it and
       other FWF widgets by ftp from a.cs.uiuc.edu.

							       21

=======================================

   Seyon Copyright (c) 1992-1993 Muhammad M. Saggaf. Seyon has its
   roots in xcomm 2.2.

=======================================

Help: Gives you this help.

Set: Sets the program parameters. Parameters can also be set in the
    startup file, in the directory file, and in a script file.

Dial: Takes you to the dialing directory. Double click on an item to
    choose it. Clicking once highlights the item(s). Once the dialer
    takes over, you can interrupt the dialing or script execution at
    any time by pressing 'Cancel'.

Transfer: Takes you to the transfer console. You can double-click on
    item to choose it and you will be promted for a file name if the
    protocols needs one. Refer to the FAQ for a description of the
    format of the protocols file.

Shell: Accepts a command for to be passed to the shell. If the command
    starts with '$', stdio will be redirected to the modem. You can
    use this to do file transfer as well.

Misc: Takes to some miscelaneous utilities, you can send a break by
    choosing 'Break' under this button. You can also refresh
    (restart) the terminal process by choosing 'Refresh' from here
    this will not restart the terminal window, just the process).

Hangup: Hangs up the modem.

Exit: Exits Seyon.

=======================================

   The name of the Seyon directory is '~/.seyon'. The startup file is
   'startup'. That of the dialing directory is 'phonelist' and that of
   the protocols file is 'protocols'.  These have to be in the
   current, Seyon, or home directoy. Three examples (startup,
   phonelist, and protocols) are included.

=======================================

   Send success stories and bug reports to alsaggaf@mit.edu. If you
   like Seyon, send me email to that effect. This will give me the
   incentive to continue maintaining it.

-----------------------------------------------------------------------------

		   F R E Q U E N T LY   A X E D   Q U E S T I O N S

-----------------------------------------------------------------------------

	Thanks to Johann Miranda for his help in maintainig this FAQ.

-----------------------------------------------------------------------------

    Warning: Some of the things below are terribly outdated. Tha
    manual page, though, is always up-to-date.

-----------------------------------------------------------------------------

Q: How can I obtain Seyon?

A: Well, the best way is to ftp to one of the following sites:

         sipb.mit.edu:/pub/seyon
         export.lcs.mit.edu:/contrib
         nic.funet.fi
         sunsite.unc.edu

   The *newes* version of Seyon can be found at sipb.mit.edu. Beta
   versions can found at: 

	     sipb.mit.edu:/pub/seyon/new-beta

   and context diffs against previous versions at:

	     sipb.mit.edu:/pub/seyon/new-beta/DIFFS

   You may have to hunt around in other sites to find the most recent
   release.

-----------------------------------------------------------------------------

Q: How do I build and install Seyon?

A: Seyon comes with a file called 1-INSTALL, which basically tells you
   what you need to do to install it. You should also create a
   directory with the name ".seyon" in your home directory. Copy the
   files ``startup'', ``phonelist'' and ``startup'' to this directory
   (the make file will probably do that automatically for you) and
   edit them to your heart's content; or better yet, run Seyon and
   modify these these files from the command center. Once you have
   installed Seyon, you may wish to browse through the man page, it is
   complete and up-to-date.

-----------------------------------------------------------------------------

Q: How do I use Seyon?

   This is easy. After installation, just type "seyon -modems
   <modem-device> &" to invoke Seyon. From the command center you can
   set up your modem parameters, line parameters, scripts, phone
   numbers, transfer protocols, to wit anything you are likely to
   need.  Afterwards, customaize Seyon to your needs by putting the
   appropriate resources in your ~/.Xresources or ~/.Xdefaults file
   (at least to avoid typing the -modems switch every time).

-----------------------------------------------------------------------------

Q: Where can I send bug reports and suggestions? Where can I get more
   information about the development and use of Seyon? Where can I
   participate in general discussions about Seyon? Where can I get the
   most up-to-date announcements about official and test releases?

A: Join the Seyon mailing list. Send a message to

            linux-activists-request@joker.hut.fi

   with the following as one of the headers:

            X-Mn-Admin: join Seyon

   That should do it. To get more information about how to use the
   mailing list and send to it, send a message to the above address
   with the single word ``help'' as the subject and the body of the
   message.

-----------------------------------------------------------------------------

Q: Yesterday I compiled Seyon 2.12, however when I tried to run it,
   it gave me "Dial Arborted: Online". So I hangup first, the message
   now is "Line disconnected", then I dialed again, still "online".
   I quit and run kermit immediately and it works fine. This 'Online'
   problem happens even I hard-boot my system and run seyon at once.
   Has anybody have the same experience ? Any help will be appreciated.

A: Seyon is smarter that kermit (well, at least it tries to). Before
   dialing a number, Seyon first checks to see if the modem is already
   on-line. It does so by querying the status of the DCD flag (Data
   Carrier Detect). If DCD is asserted, Seyon concludes that the modem is
   on-line and refuses to dial the number.

   Two resources govern this behavior. The first is hangupBeforeDial. If
   this resource is enabled (set to ``on'') and DCD is asserted, Seyon
   hangs up the line before dialing. The second is ignoreModemDCD. If
   this resource is enabled, Seyon ignores the status of DCD and 1)
   always hangs up befoe dialing if hangupBeforeDial is enabled, and 2)
   proceeds to dial even if DCD is asserted.

   In your case I think that your modem is asserting DCD all the time,
   even if the modem is off-line. When dialing, Seyon finds that DCD is
   asserted and hangs up. However, after hanging up, it finds that DCD is
   still asserted, and since the default for ignoreModemDCD is ``off'',
   it refuses to dial.

   To fix that, you have two options. The first is to tell your modem not
   to assert DCD all the time. The command for that in my modem is
   ``AT&C1'' (AT&C0 does the opposite), but might be different in yours.
   If you don't wish to do that, set the resource ignoreModemDCD to
   ``on''. This way Seyon will ignore DCD and behave just like kermit. To
   set the resource, put the line:

             Seyon.ignoreModemDCD: on

   in your ~/.Xresource file.

   The on-line clock at the top left corner of Seyon's command center
   will tell you whether DCD is asserted (clock running, button light or
   depressed) or not (clock not running, button dark or raised). The
   manual has more details and explanations of the above resources.

-----------------------------------------------------------------------------

Q: I get the messages

>> Warning: could not execute 'seyon-emu'.
>> Warning: falling to 'xterm'.

   when I start Seyon.

A: When Seyon s invoked. It looks first for seyon-emu and uses it as
   the terminal emulator. seyon-emu has to be a link to you favorite
   terminal emulation program (xterm, color xterm, xvt, mterm, Emu,
   cmdtool, ..etc). This allows for more flexibility in choosing the
   terminal emulator. If Seyon doesn't find seyon-emu, it just uses
   xterm as the terminal emulator. This warning is harmless. To get
   rid of it, make seyon-emu a link to xterm.

Q: How do I use the meta (ALT) key with Seyon?

A: If the remote host supports 8-bit-clean communications, you should
   be able to use it automatically (most hosts don't).  Otherwise, you
   can make Seyon send ESC before a character when the meta key is
   pressed with that character.  You can do that in two ways:

   1) Set Meta->ESC translation to ``on'' using one of the following:
      a) the resource metaKeyTranslation 
      b) from the ``Set'' console
      c) in a script: ``set meta_tr on''

   2) if you're using xterm as Seyon's terminal emulator, use

      Seyon.vt100.eightBitInput: off

-----------------------------------------------------------------------------

Q: When I dial, the modem says CONNECT and I get a Connection Complete
   message. To wake the remote host up, I first hit Enter a few times.
   But the host soon hangs up, apparently seeing a dead line. What's
   wrong?

A: Try setting <nl mode> in the Set console. The Seyon default is to
   send a \n when you press Enter. Many hosts expect a \r; you get
   that when <nl mode> is selected.

   (contributed by Sakari Aaltonen, <sakaria@vipunen.hut.fi>)

   NOTE: starting from version 1.5, the defaults is to enable NL->CR
   translation.

=======================================

Q: In the 'Set' console, which color means that the parameter is
   active?

A: Black means active, otherwise inactive.

=======================================

Q: How do I send an initialization string to my modem.

A: put the command

       transmit "AT(whatever)^M"

   in Seyon's startup file. Most modern modems do not need an
   initialization string though, since they store their setup in
   non-volitile memory.

=======================================

Q: How do I tell the remote host about the size of my terminal window?
   I want the applications to take advantage of the lerger size.

A: If the remote host is a Unix machine (or any other machine that
   supports X-windows), issue the command 'resize' (if that doesn't
   help, try 'eval `resize`'. If the remote host is a BBS, set the
   page length by the appropriate command (e.g. 'p' on a BBS running
   PCBoard).

=======================================

Q: What's this Xdefaults file you keep talking about?

A: It is usually named ~/.Xresources. If that doesn't exist. the
   Xserver uses the file ~/.Xdefaults. Do 'man X' to learn how to
   customize the resources in this file.

=======================================

Q: When I use 'Edit' to edit the phonelist or protocols files, the
   dialing directory and the transfer console do not reflect the
   changes I made, what's wrong?

A: You have to use 'Reread' to update the the dialing directory and
   the transfer console.

=======================================

Q: How do I make sz/rz work?

A: The following is from the readme file included with minicom. I used
   it, and it has always worked for me:

   If you are using a new version if Chuch Forsenberg's zmodem, it is
   possible that it will not run OK in a window. This is because the
   new versions *don't* use stdin and stdout, but without mercy they
   just open /dev/tty. Ai! I changed the following in the file
   "rbsb.c" and now things work allright. You might want to change
   this also.  Here is the particular function I'm talking about:

---------------------------------------
/* Line 336 */
/* Initialize tty device for serial 
   file xfer */
inittty()
{
#ifndef HVM
    Tty = open("/dev/tty", 2);
    if (Tty < 0) {
       perror("/dev/tty");  exit(2);
    }
#else
    Tty = 1;
#endif
    Ttystream = fdopen(Tty, "w");
    setbuf(Ttystream, xXbuf);        
}
---------------------------------------

   And to get the Logging output to the
   screen instead of to /tmp/szlog,
   change the following in sz.c :

---------------------------------------
if (npats < 1 && !Command && !Test) 
    usage();
if (Verbose) {
/* Line 403 of sz.c */
#ifndef HVM
    if (freopen(LOGFILE, "a", stderr)==NULL) {
        printf("Can't open log file %s\n",LOGFILE);
        exit(2);
    }
#endif
    setbuf(stderr, NULL);
}
vfile("%s %s for %s\n", Progname, VERSION, OS);
---------------------------------------

   You might want to change the same in the file "rz.c" also, around
   line 249.  It is now possible to use the -v[vv] flag with rz/sz and
   see the debugging output appear in the status window!

   You have to define 'HVM' to make the change effective, ofcourse!

   NOTE (for Seyon users): Once you have done that, use '$rz -vv' as
   your zmodem command (or '$sz -vv').

=======================================

Q: What are Seyon's configuration files? and where should they be put?

A: Those are 'startup', 'phonelist', and 'protocols'. Seyon looks for
   them in the current directory, then the default Seyon directory
   ('~/.seyon'), and finally in the user's home directory. The names
   of these files as well as that of the default directory can be
   overridden by setting the appropriate resources. Refer to that in
   another answer somewhere in this file.

=======================================

Q: Can I put the scripts somewhere else other than in my home
   directory?

A: Yes, use the resource 

        Seyon.scriptDirectory:

   (default is defaultDirectory). Seyon will look for scripts in the
   current directory, then in the script directory, and finally in the
   user's home directory.

=======================================

Q: I'd like to start a local shell but I don't want to start another
   xterm, can I have a shell in the Seyon's terminal emulation window?

A: Yes, click the 'Shell' button and instead of giving it a usual
   shell command, use the name of your shell (i.e. tcsh, sh, ..etc).
   This will start the shell of your choice in the terminal window.

=======================================

Q: Do I have to specify the BITS and BPS fileds for each entry in the
   phonelist directory?

A: No. Seyon will use the default BPS rate and bit mask if none is
   specified in the phonelist entry.

=======================================

Q: Can I specify an alternate location and name for the help file?

A: You can, but it's highly discouraged unless you have no write
   permission to the default location (determined automatically at
   compile-time). Use the resource

            Seyon.helpFile:

   You have to specify the complete file path and name.

=======================================

Q: Seyon comes up tiny and with overlapping buttons, what's wrong?

A: The app-defaults file must be installed properly or Seyon will not
   function properly. Use 'make install' to install the app-defaults
   file in the proper place and make sure it is installed properly and
   is not corrupt.

=======================================

Q: I get 'killed by siganl 11' when I start seyon.

A: You must be using old versions of libraraies. Test that by using

            ldd seyon-cmd

   This will tell you what libraries you have linked Seyon with. If
   you get anything other than

      /lib/XawVen.so.2.1 (Classic 2.1)
      /lib/libX11.so.2.1 (Classic 2.1)
      /lib/libc.so.4 (Jump table 4.1)

   it's time to upgrade to newer libraries.

   (This question is for linux only, for platforms it may be a bug.
   Report it.)

=======================================

Q: How does the dialer work?

A: Click on an item to toggles it. Once you have selected all the
   items you want, click on 'Go'. The dialer will dial each number
   until a connection is made. once a connection is made, that item is
   unselected automatically. Double-clicking on an item will select
   that item, unselect all others, and dial that item. You can
   interrupt the dialing or the script execution at any time by
   chossing 'Cancel'. 'Can. & hangup' will additionally hangup the
   line.

-----------------------------------------------------------------------------

Q: How do I use pulse dialing?

A: Use the resources. Set

       Seyon.dialPrefix: ATDP

   There is also a simialr resource: dialSuffix.

-----------------------------------------------------------------------------

Q: How can I setup the ZMODEM autodownload feature or disable it?

THIS ANSWER IS WRONG, READ THE MANUAL

A: Via the resources. The resource

     Seyon.zmodemAutoDownload: off

   will disable it (default is 'on'). The resource

   Seyon.zmodemAutoDownloadCommand: $cd /usr/dl; rz -vv

   tells Seyon what command to use to for ZMODEM (default is 'rz').
   The format of the command is the same as that of the shell and
   transfer commands.

-----------------------------------------------------------------------------

Q: Does Seyon support the V32 protocol?

A: V32 is not a software protocol, it is used at the hardware level by
   the modem to communicate with modems at the remote end. Hence, it
   is transparent to comm programs, and they have nothing to do with
   it.

   This is along the lines of "your modem will talk to my modem at the
   best speed and level they can. How yor modem talks to your computer
   is your business" (See above)

-----------------------------------------------------------------------------

Q: How do I turn off the 'fun' messages or make them less frequent?

A: The resource

           Seyon.showFunMessages: off

   will turn them off (default is 'on'). The resource

        Seyon.funMessagesInterval: 30

   specifies that the messages should appear every 15 seconds (unless
   Seyon has something more important to say, like a real message).
   Default interval is 1 minute.

=======================================

Q: How can tell seyon what port to use?

A: There are two ways to do that:

   1) Specify it in your Xdefaults file, something like:
             
             Seyon.modems: /dev/ttys0

   2) Invoke Seyon by the the switch -modems, e.g.
             
             seyon -modems /dev/ttys0

=======================================

Q: How can I control the bahavior of the terminal emulation winow?

A: You can do that via the resources of the vt100 widget of xterm. he
   following is an example of what you can put in your Xdefaults file:

     Seyon.vt100.foreground: black
     Seyon.vt100.background: white
     Seyon.vt100.geometry: 80x25+50+250
     Seyon.vt100.saveLines: 100
                        .            
                        .
                        .

   Refer to the xterm manual page for the full set of the resources.

=======================================

Q: The resourecs I put in my Xdefaults file do not seem to work, why?

A: You have to use xrdb to load the resourecs or restart your X
   server.  Also, you have to use the class name 'Seyon' and not the
   instance 'seyon' in your Xdefaults file.

=======================================

Q: How shoud the protocols file be formatted?

A: Here is an example:

    regu_zm_dl  "$ cd /dl; rz -vv" n
    "reg zm ul" "$sz -vv"          y
    graphic_zm_dl grz              No
    xrz3D       $cd /dl; xrz"      NO

   The first field is the title of the protocol. You can anything in
   there for your refrence as long as it is either one word or quoted.

   The second field is the actual command that will be executed.
   Again,if the command is more than one word, it has to be quoted.
   Notice how 'cd' is used to have one or more download or upload
   directories. If the command begins with '$', the standard input and
   standard outpt will be redirected to the modem.

   The last field tells Seyon whether it should prompt for a file name
   or not. this field can be either a yes or a no. Normally, you would
   put yes for an upload and no otherwise.

=======================================

Q: How can tell Seyon about the non-standard responses of my modem?

A: Use the following resources:

       Seyon.connectString
       Seyon.noConnectString1
       Seyon.noConnectString2
       Seyon.noConnectString3
       Seyon.noConnectString4

   Refer to what the defaults are for these resources in another
   answer in this file.
       
=======================================

Q: When I choose an item in the dialing direcory or from the transfer
   protocols directory it get highlighted but nothing happens, why?

A: Clicking once on an item only highlightes it. You have to
   double-click on it to choose it. You can highlight multiple items
   in the dialing directory and then click 'Go' to dial them
   (circulate) until a connection is made.

=======================================

Q: How can I control the dialer behavior?

A: Via the following resources:

       Seyon.dialTimeOut
       Seyon.dialDelay
       Seyon.dialRepeat

   Dial timeout is the time given for each try (default is 45
   seconds), dial delay is the time between tries (default is 10
   seconds), and dial repeat is the number of tries Seyon attempts
   before up (default is 5 seconss).

=======================================

Q: How can disable the confirmation popups for hangup and exit?

A: Via the resources hangupConfirm and exitConfirm. Put the following
   in your Xdefaults file:

           Seyon.hangupConfirm: off
           Seyon.exitConfirm: off

=======================================

Q: What do I do if the terminal is stuck?

A: Choose 'Refresh' under the 'Misc' button. This will restart the
   terminal process (not the terminal window).

=======================================

Q: How can I use hardware flow control (RTS/CTS)?

A: Use the rtscts mode. It is enabled by default. You disable it in
   the startup file, in a script, or interactively from the 'Set'
   console.

=======================================

Q: How can I make Seyon send delete instead of backspace?

A: Put the line

       set del "on"

   in the startup file or in the script. or set the parameter
   interactively by the 'Set' button.

=======================================

Q: Can Seyon do ANSI color that most BBS systems use?

A: Yes, but yu have to get color xterm.  Patches for that are on
   export.lcs.mit.edu.

=======================================

Q: Where can I get the latest copy of Seyon?

A: By ftp from sipb.mit.edu at the directory /pub/seyon.

=======================================

Q: How can I help?

A: 1) Send your impression of he program after each upgrade.
   2) Send suggestions for improvement (even the little details).
   3) Send any pretty color customization you do.
   4) If you implement an extra feature, send it to be included in the
      standard release.

=======================================

Q: How can I send bug reports?

A: Use the form included in the file BUGS. If you don't, I cannot
   guarantee that I'm going to look into it. Sending me something like
   'the dialer doesn't work' doesn't tell anything. I have to know
   more.

=======================================

Q: How can I contact the author?

A: Send him (that's me!) email at alsaggaf@mit.edu

=======================================

								   