PHONE266.PRN

93.6 KB 5bbc82af6d43842e…


























                                    OpusPhone 2.66
                        FOSSIL Compliant Extended Chat Utility
                            For Opus 1.1x and 1.2x Systems
                                   April 6th, 1991

                                   By William Beebe



          1  Introduction


          Direct comments and bug reports to William Beebe at 1:363/1.
          Thanks to Greg Martz at 1:344/59 for documentation checking.

          Thanks to Frank Cox (140/53), Bev Freed (129/104), and Greg Martz
          for testing, and testing, and testing...

          Documentation prepared with Borland's Sprint 1.01.
          Swap capabilities  provided  by  Ralf  Brown's  Spawno  routines.
          Spawno is copyright Ralf Brown.

          Capable  of  operating  with  Opus  1.1x  and  1.2x,  Opus  Phone
          (hereafter referred to as OPhone) is a split screen chat utility.
          OPhone  is modeled after the VAX/VMS  phone  utility  and  Unix's
          talk. OPhone allows the sysop and caller to type to each other at
          the same time. If  the  caller  supports ANSI screen positioning,
          then both sysop and caller will see their typing  appear  in  two
          separate 10-line windows, with the  sysop's text in the upper and
          the caller's in the lower. If the caller does  not  support  ANSI
          screen positioning then OPhone  operates  similar  to  Opus' chat
          mode.

          Usage:    Phone [switches] [bbsfile.prm]

          / or -         The forward slash or  minus  switch  types. OPhone
                         recognizes both. For clarity and simplicity, the /
                         character is used throughout, such as /k, but keep
                         in mind that -k will do the same thing.

          /d{label}      defines a label for use inside  an  OPhone control
                         script. More than  one  label can be passed on the
                         command line. Labels are case  insensitive. Please
                         see the script command section entries on if.

          /k             forces  OPhone into local keyboard mode. Use  this
                         switch  to run OPhone without a fossil  installed.
                         Data typed at  the  keyboard is echoed back in the
                         sysop window, and  all local functions are active.
                         This is for testing purposes.

                         NOTE:
                         OPhone will also behave as  if it is in local mode
                         under the  following  condition;  running  with an
                         Opus 1.1x lastuser file with the baudrate field in
                         that file equal to  zero.  That  type of record is
                         generated  by  Opus  1.1x  when  it  is  in  local
                         keyboard mode.  In either case the /k or -k switch
                         is not needed.




          OPhone 2.66                   April 6th, 1991                   2



          /p#            passes the port number to  OPhone, where # is 1 to
                         4. If the port number is not  explicitly specified
                         then OPhone will  use  the port number in the .PRM
                         file.

          /t#            passes the Opus 1.1x task number to  OPhone, where
                         # is the  task  number. This task number is merged
                         with  the  internal  file  mask   LASTUSER.DAT  to
                         produce  a  file  named LASTUS##.DAT. For example,
                         /t1 produces LASTUS01.DAT. This will ONLY occur if
                         the /u switch is not used.

                         NOTE:
                         The  /t#  switch  is  automatically passed by Opus
                         1.1x, and should not be explicitly encoded by you.

          /u{userfile}   passes  an alternate lastuser file and/or path  to
                         OPhone.  You  may  use   this   with   the  Avatar
                         extensions  to create  the  proper  LASTUSER  file
                         name,    especially    with    the   Avatar   task
                         metacharacters  (see  the  Opus 1.1x documentation
                         for further details).

          /iphone.inf    passes  an  alternate  information file to OPhone.
                         Use this if you have multiple Opus  nodes, because
                         OPhone  uses templates in the information file  to
                         search  for the capture, abort, lastuser, and  PRM
                         files.

          bbsfile.prm    passes the real Opus PRM  file  name.  The default
                         that OPhone looks for is BBS.PRM. If your PRM file
                         is named differently or is not in the current path
                         in which you run Opus and OPhone, then should pass
                         the full path  and  file  name  to  OPhone. Though
                         OPhone will run without it,  important information
                         is needed in the PRM file.

          config         allows  you  to  bring  up OPhone in configuration
                         mode. This mode allows you to start OPhone without
                         any supporting files or any loaded FOSSIL driver.

                         Example:

                         phone config


          chat           allows OPhone to be brought immediately up in chat
                         mode.

                         Example:




          OPhone 2.66                   April 6th, 1991                   3



                         phone chat [other switches/files/etc...]


          noblock
          block          blocks all caller chat requests. Use this  verb to
                         temporarily overide  any  event  settings  you may
                         have. You must use noblock  to  allow  normal chat
                         requests to work, or  bring  OPhone  up  in config
                         mode and modify the block flag  under  the Options
                         section.

                         Examples:

                         phone block    ; block caller chat requests.
                         phone noblock  ; allow caller chat requests.

          OPhone  generates  exit  codes for use in batch files. These exit
          codes are:

               0    Normal exit.
               1    FOSSIL not loaded or not captured.
               2    exit due to carrier loss while in remote node.
               3    could not open LASTUSER or LASTUS##.DAT file.































          OPhone 2.66                   April 6th, 1991                   4



          2  Changes and New Features


          OPhone 2.66 has been extensively rewritten.  The  primary changes
          include the addition of windowing routines and code to manipulate
          the user record output by Opus 1.1x in the  lastuser  data  file.
          How these changes can affect operation of your  Opus  1.1x system
          are outlined below.

              -  OPhone does not  run  on  "generic"  MS-DOS  systems. This
                 includes but is not limited to DEC Rainbows,  some  of the
                 older Epsons, and Tandy 2000 systems.

              -  OPhone does not use  the  Fossil  to gather local keyboard
                 data.  OPhone uses Turbo C++'s runtime function  bioskey()
                 to  check for and to obtain raw  keyboard  entries.  As  a
                 result you must run OPhone 2.66 on a PC clone that  is ROM
                 BIOS compatible with the  defacto  IBM  PC/XT/AT standard,
                 such as Phoenix, AMI, etc.

              -  OPhone  does  not  use  the  Fossil to write to the  local
                 screen. A custom windowing package is used  extensively to
                 write directly to screen memory.  This  requires  that you
                 run your BBS with a MDA, CGA, HERC, EGA, or VGA compatible
                 subsystem in TEXT mode. I did this for performance reasons
                 in implementing the windowing package. As a  consequence I
                 can  not  guarantee  what impact it may  have  on  systems
                 running certain multitaskers, such as DoubleDOS.

              -  OPhone uses the FOSSIL fpr serial reads and writes.

              -  OPhone is somewhat  DESQView  aware. It will check for the
                 presence of  DESQView and, if DESQView is running, it will
                 query for and  use  the  DESQView  provided  screen buffer
                 pointer to do  direct  screen writes. If OPhone is running
                 under DESQView it will  yield  idle  time back to DESQView
                 for use by other MS-DOS  applications  also  running under
                 DESQView. I have tested OPhone  2.66  under  DESQView 2.31
                 running on a 33Mhz  80386  system  with QEMM386 5.11. When
                 running under DESQView the word "DESQView" will  appear on
                 the far left of the second line on the sysop's side of the
                 screen.

              -  OPhone is somewhat Windows 3.0 aware. OPhone will only run
                 in a DOS subwindow  or  DOS full screen, but if it detects
                 the  presense  of  Windows it will release  time  back  to
                 Windows if  idle.  When  running  under  Windows  the word
                 "Windows" will appear on the far left of  the  second line
                 on the sysop's side of the screen.

              -  OPhone is an Opus 1.1x and 1.2x aware utility.



          OPhone 2.66                   April 6th, 1991                   5



              -  OPhone allows the display and editing of the caller's user
                 record in LASTUSER. If Opus 1.1x or 1.2x are configured to
                 reload the lastuser file  (via  the  SECURE PRM file verb;
                 check the Opus docs for  further  details),  then  you can
                 change a caller's record on the fly within OPhone and have
                 Opus save the changes back out to the  LASTUSER  file when
                 the caller finally leaves.

              -  OPhone  no  longer  has  an  opening   script   file.  The
                 configuration data is  now  stored in a binary file called
                 PHONE.INF. You manipulate this file with the Options menu.
                 See the section on Options for further details.

              -  DEFINEd words are no longer case sensitive.

              -  OPhone allows for a default file. The default onabort file
                 is PHONE.ABT. The default capture file is PHONE.CPT. As an
                 absolute minimum you can quickly install  OPhone  into the
                 main menu of Opus using the following:

                 _OUTSIDE Priv. !Locks "OPhone" = RUN Phone.exe

              -  OPhone 2.66 recognizes  the  '/t#'  task  switch.  It will
                 properly format the  file template "lastuser.dat" and open
                 the correct lastuser file associated with the current Opus
                 task (see usage and restrictions above).

              -  OPhone uses  the  .PRM  file  for  inportant  information.
                 Specifically it will load the task  number,  sysop's name,
                 and language  selections  as  well  as  using  the version
                 number in the file  to  determine  if  it is running under
                 Opus 1.1x or Opus 1.2x.

              -  OPhone  will  swap  to  EMS  or disk during a spawn.  This
                 feature must be enabled in the Options/Section menu; it is
                 disabled by default.

              -  OPhone will use a mouse. This feature must  be  enabled in
                 the Options/Section menu; it is disabled by default.

              -  OPhone will pass  the  high-bit on all characters. This is
                 done to  support  extended  language  character  sets,  as
                 required  by  many European languages  and  Chinese.  This
                 "fix" curtesy Doug Boone.










          OPhone 2.66                   April 6th, 1991                   6



          3  Basic Requirements


          The following is a  quick  list of items to check before bringing
          up OPhone for the first time. These are minimum requirements that
          should all be met.

          DOS            OPhone  requires  MS-DOS  3.1  or   higher.  Lower
                         versions of DOS will cause OPhone to exit.

          Memory         OPhone is written in the small  memory  model (64K
                         code, 64K data space). As a consequence  it should
                         be provided 128K of memory to run (to be exact, it
                         requires at least the current  file  length  + 256
                         bytes for the PSP +  64K for the data segment). It
                         does  not  use  the  far  heap. It is  capable  of
                         running under DESQView's small Dos (128K) window.

          Fossil         OPhone  requires a Revision 5 or higher  compliant
                         Fossil to operate.  It requires the basic services
                         to send and receive data through the  serial port,
                         ability to flush the buffers, and ability to check
                         for control C from the remote user. This includes,
                         but may not  be  limited to, Opus!Com 5.31 and X00
                         1.2x or higher. BNU has not worked for  me  in the
                         past and may not in the future.

          Hardware       OPhone uses calls to  the  ROM  BIOS  for keyboard
                         reads,  and writes directly to the video  hardware
                         in text mode  (80  character  by  25  line). Video
                         hardware can be MDA, CGA, Hercules, EGA,  VGA, and
                         MCGA.  Monochrome monitors used with VGA and  MCGA
                         may cause problems  because the autodetect code (a
                         call to  the ROM BIOS) determines that MCGA or VGA
                         are color. If a monochrome monitor is connected to
                         the VGA or MCGA output, the resultant  display may
                         not be  satisfactory. In that case you may use the
                         Colors  selection  under  Options  to  change  the
                         display to your liking.

          Files

          Phone.INF      OPhone generates  a  file  called  PHONE.INF every
                         time   it  exits.  This  file  contains  all   the
                         initialization  data required by OPhone on  start-
                         up, as well  as the sysop's operating preferences.
                         PHONE.INF is first searched for on  the  drive and
                         path from which PHONE.EXE is invoked.  If  that is
                         not  supplied,  then  PHONE.INF  must  be  in  the
                         current  subdirectory  from  which  PHONE.EXE   is
                         invoked. It is the FIRST file OPhone opens.



          OPhone 2.66                   April 6th, 1991                   7



          Prm            OPhone needs  the Opus PRM file in order to locate
                         certain information. If it does not  find  the PRM
                         file, then the language strings will  not  be read
                         in for the Language  pick  menu,  and  the sysop's
                         name (YOUR  name) will not be displayed in the top
                         menu.  Further, if a task is  not  passed  on  the
                         command line, then OPhone will default to the task
                         number in the .PRM  file.  It  should have done so
                         all along, but frankly, I just never thought to do
                         it.  The  PRM  file is now the  SECOND  file  that
                         OPhone opens (it has to open Phone.INF first).

          Lastuser       OPhone requires that it know where LASTUS##.DAT is
                         located. If  it does not find the lastuser file it
                         will abort.

          Capture        OPhone will always attempt to open a capture file.
                         If it  succeeds, the name of the capture file will
                         be    based    on    the    template     in    the
                         Options/Files/Capture string.  Logging information
                         is written to the  capture  file.  If  the Capture
                         flag is ON, then the chat  conversation  is logged
                         to the file as  well.  If  the file already exits,
                         then it will be opened in append mode. If the file
                         does not exit, it  will  be  created. If OPhone is
                         unable to open a capture file, it will continue to
                         operate.   The   default   capture  file  name  is
                         PHONE.CPT.

          Abort          If a caller's page is  blocked,  times  out during
                         normal paging limits,  or attempts to page outside
                         of the  normal  paging  limit,  then  OPhone  will
                         attempt to send a  file  to  the caller called the
                         abort file. The default is PHONE.ABT,  and  can be
                         changed  in the Options/File/Abort section of  the
                         menus.


















          OPhone 2.66                   April 6th, 1991                   8



          4  Quick Setup


          4.1  First Time Users

          To  bring  OPhone  up  the   first  time,  place  OPhone  in  the
          subdirectory you intend to invoke it from. It can  either  be  in
          the  Opus directory, or some other directory  in  your  path.  To
          configure OPhone, at the prompt type

          phone config

          to bring OPhone up in config  mode.  In this mode OPhone does not
          need the FOSSIL, lastuser, or .PRM data files. In this  mode type
          ALT O to drop the Options menu. From there you can select colors,
          determine  default  operating  modes, and set up  paths  for  the
          various  support  files  that OPhone will use. Once you've set up
          all your options, escape back to the main command  bar  and  type
          ALT Q to exit OPhone and save your preferences and options.

          Your second task is to tell Opus about OPhone,  so  that  callers
          can use it. In the Opus  control  file, in the MAIN MENU section,
          you could have the following:

               _OUTSIDE  Disgrace  "Phone" = RUN phone.exe

          This will allow anyone  with  Disgrace  priv  or higher to invoke
          OPhone by typing the letter 'P' at their prompt.  For  the  local
          side, where the sysop invokes phone, you need to create a file in
          the Opus Misc subdirectory that corresponds to a function key you
          want to start OPhone with. For example, you want to invoke OPhone
          for chat via the F1 key on your  side.  In  the  Misc subdirectoy
          create a file called F1.BBS with the following in it:

          ^L
          The sysop wishes to chat with you...
          One moment please...
          ^OCphone chat

          OPhone will pick up  the  necessary  parameters from the lastuser
          and PRM files.

          For  those  of  you who want to change or edit  the  user  record
          and/or allow for on-line time  adjustment, then you must not only
          set  the  appropriate  OPhone features, but you must tell Opus to
          read the lastuser file back in. You do this with the Opus control
          file, in the Session  Section,  Outside  information. You need to
          change or add the Secure command. Mine is "Secure 3". For further
          information please rummage through the Opus documentation.





          OPhone 2.66                   April 6th, 1991                   9



          After you have configured Opus to read the lastuser file back in,
          you may want to  configure  OPhone  to  compensate for time spent
          chatting so that when the caller returns to Opus they will not be
          penalized for time spent outside. To do this automatically, go to
          the Options/Session menu and set Time adjust and  Update  user to
          auto. Selecting Time adjust  will  also  set  Update user. If you
          want to update the  caller  only when you feel it's deserved, you
          may set Update user  back  to manual. Just remember that you must
          write the caller's record back  out before exiting, via the Write
          selection on the main user editor menu.

          4.2  Previous Users

          If  you've used previous versions of OPhone,  then  put  the  new
          binary in  the same subdirectory the previous version resides in.
          That's it.  OPhone will read the PHONE.INF file and automatically
          convert it to the current  data structure, saving nearly all your
          preferences. The only thing that  does _not_ get converted is the
          last selection of each  menu.  OPhone  remembers where the select
          bar  is on each menu, so that when you invoke that menu again you
          can quickly go to the most common portions you normally use. When
          new versions of OPhone  read  in prior .INF files, it zeroes your
          last-used menu selections.































          OPhone 2.66                  April 6th, 1991                   10



          5  Local Menus


          OPhone uses drop-down menus  on  the  sysop's  side to access its
          many functions. This allows for the organization of like features
          and the presentation of as uncluttered a screen as possible. When
          OPhone is first started, the same basic split window is presented
          to  the  sysop  and caller as  in  previous  versions.  Users  of
          previous versions may note how much faster the screen is drawn on
          the local side and how more  colorful  (if they have color) it is
          than in previous versions.

          The sysop has a command bar  at  the very top line, starting with
          the  word  ALT  and  followed  by Quit, Help, User, Dos,  Window,
          Screen, Options, and Capture. This  shows  the  range  of primary
          commands available to the  sysop  and how to invoke them, via the
          Alt Q,  Alt  H,  Alt  U, etc, key sequences. Once a menu has been
          selected in this way normal (non-ALT) keystrokes will move around
          the menus.

          5.1  Basic Menu Functionality

          Once  a  primary  menu  has  been  pulled  up, the  following  is
          generally common to them all:

              -  If a mouse is installed on your system, you may use  it to
                 move  around  the  menus. I have developed  OPhone  on  my
                 system  which  uses the Microsoft  two-button  mouse.  The
                 right button will select  an  item,  while the left button
                 will exit from a selection.

              -  Keyboard Escape or a  right  mouse  button click will exit
                 from any menu and from  any text and numeric entry fields.
                 If escaping from an entry field or the security lock, then
                 the previous contents are redisplayed.

              -  All menus have a selection bar that moves up and  down the
                 selections.

              -  Selections outside the menu select  bar  appear  as normal
                 intensity characters, with capitalized letters  or special
                 characters  as   high   intensity.   The   high  intensity
                 letters/characters are the selection characters.

              -  Menu entries may be  selected  by  typing  the highlighted
                 letter or character, by using the up and  down  arrow keys
                 to  move  the  select  bar  to that item and then  hitting
                 return, by using the up and down arrow keys  to  move  the
                 bar and then using the right arrow key to select the item,
                 or by moving  to  the  entry  with  the  mouse  cursor and
                 clicking the left button.



          OPhone 2.66                  April 6th, 1991                   11



              -  Some menus  will disappear when an item is selected. These
                 menus allow you to  pick  one item from a list of multiple
                 choices (a pick list). Some  menus allow you to alter many
                 different data items and will only  disappear  when Escape
                 is pressed or the right mouse button is clicked.

          The following sections  will  give  specific  directions  on each
          menu's use.

          5.2  Primary Command Bar

          The  primary  command  bar is the first line at the  top  of  the
          screen and  provides the functions Quit, Help, User, Dos, Screen,
          Window,  and  Capture.  These  commands  are  accessed   via  the
          ALT+character sequence, the character being highlighted.

          Quit  (Alt Q) pops up a simple button (figure 1) that asks if you
          want to Exit OPhone.  Pressing  Return will exit back to the BBS.
          Pressing Escape will return to OPhone.

                                  ┌[■]───────────┐
                                  │ Exit OPhone? │▒
                                  └──────────────┘▒
                                   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                                 Figure 1: Exit Menu
          Help (figure 2) amplifies on the basic commands  by  listing them
          with a little more text. You can access the primary commands from
          this menu by selecting the highlighted letter as  apposed  to the
          Alt letter on the primary command bar.

                              ┌[■]───────────────────┐
                              │ Exit OPhone          │▒
                              │ User record editor  »│▒
                              │ Dos shell            │▒
                              │ Window clear         │▒
                              │ Screen clear         │▒
                              │ Capture chat to file │▒
                              │ About this program  »│▒
                              └──────────────────────┘▒
                               ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                              Figure 2: Sysop Help Menu
          About is the only selection not on the primary command  bar. When
          selected, About will display a simple  information  window giving
          the  revision level and date of compilation  of  OPhone  and  the
          compiler used to compile OPhone.

          User record editor (Alt  U)  is explained in detail later in this
          document.




          OPhone 2.66                  April 6th, 1991                   12



          Dos shell (Alt D) shells to another copy of command.com  if there
          is enough room  in  the  current  Dos  TPA. From there you can do
          whatever is necessary that can't be done from  within  OPhone. If
          you have swap on shell  enabled in the Options/Session menu, then
          when you shell to dos all but 1K of OPhone  will  be swapped out.
          When you return, OPhone will swap back in again.

          Window (Alt W)  and  Screen  (Alt  S) clear keys redraw the sysop
          window and the full screen, respectively. Window and screen clear
          are  only  on  the ANSI mode screen. If the caller calls in ASCII
          mode, then the window  and  screen  clearing functions are absent
          from the command bar as well as from the help menu.

          Options (Alt O) selects  the  sections of menus that allow you to
          change   the  configurable  parameters  of  OPhone.  Options   is
          explained in detail later in this document.

          Capture (Alt C) toggle turns conversation capture to a local file
          on and off.

          The second line of the main screen contains a simple clock. It is
          updated once every second as part of the loop that scans for data
          from the local and  remote  keyboards.  The  middle of the second
          line  will  also  contain the sysop's name if in ANSI mode or the
          caller's name if in ASCII mode.





























          OPhone 2.66                  April 6th, 1991                   13



          6  User Record Editor Menu


          The User Record Editor  menu  (figure 3) is the central menu from
          which caller data is  viewed  and  altered.  This menu is entered
          directly with the ALT U command at the primary command bar or via
          the U (User) command on the sysop's Help menu.

                 ┌[■]──────────────────────────────────────────────┐
                 │ Name                                            │▒
                 │ aLias                                           │▒
                 │ Password                                        │▒
                 │ Access                                         »│▒
                 │ City                                            │▒
                 │ phone #                                         │▒
                 │ Help level                                     »│▒
                 │ Security lock  ABCDEFGHIJKLMNOPQRSTUVWXYZ012345 │▒
                 │ Remaining time (min)                            │▒
                 │─────────────────────────────────────────────────│▒
                 │ User options                                   »│▒
                 │ Matrix mail cost accounting                    »│▒
                 │ File upload/download accounting                »│▒
                 │ Write changes to user information file          │▒
                 └─────────────────────────────────────────────────┘▒
                  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                          Figure 3: User Record Editor Menu

          Five of the first six lines  of  the main User Record Editor menu
          (Name, aLias, Password,  City,  and Phone #) are text strings.You
          may edit these fields by typing the highlighted capital letter or
          character ('N' for name, 'L' for aLias, or '#' for  Phone number,
          for example)  on  the  main  menu  or  by selecting them with the
          mouse.  When  this  occurs the current field  contents  are  left
          justified,  and the full extent of the  field  is  identified  by
          blocks  going from the right end of the  string  to  the  field's
          rightmost limit. Text editing on these fields may  be  exited via
          Keyboard Escape or a right mouse button click (which abandons any
          edits)  and Return return or a left  mouse  button  click  (which
          accepts any edits). If data is entered in the text string fields,
          all  leading  and  trailing spaces are stripped,  and  the  first
          letter of each word  is  capitalized,  with  the remainder of the
          word in lower case.

          While in string field editing mode the following keys are active:

              -  The Insert key  allows  you to toggle insert or overstrike
                 mode. Overwrite mode is  acknowledged  with  a single-line
                 cursor, while insert mode  is  acknowledged  with  a full-
                 character-box cursor. The default is overwrite.




          OPhone 2.66                  April 6th, 1991                   14



              -  The Home and End keys go to the start and end of the line,
                 respectively.

              -  Destructive  backspace allows deleting of text from  right
                 to left. If backspacing  takes  place  in  the middle of a
                 string, text to the right of the string follows the cursor
                 back towards the left.

              -  The Delete key allows in  place deleting except at the end
                 of the  string, at which point it behaves like destructive
                 backspace;

              -  The  left  and   right  arrow  keys  allow  nondestructive
                 movement within the string body,  up to the very first and
                 last characters in the string.

          The Write command allows you to write the changes you've  made to
          the user record back out to the lastuser file. This is  useful if
          you have configured Opus  to  reread  the  lastuser file when the
          caller  returns  to  Opus (via Opus' PRM file verb SECURE; please
          see  the  Opus  docs for further details). When Write is selected
          you can be prompted by a single line dialogue pop up box. It will
          contain the name of the lastuser file OPhone read the information
          from. The field is  a  standard text field, so you can manipulate
          the file name text, but if you type  return  you  will  write the
          changes out to the modified file name. To abort just type Escape.




























          OPhone 2.66                  April 6th, 1991                   15



          6.1  User Access Levels

          The  Access Levels (figure 4) are selected  from  the  main  User
          menu. Access Levels allow the selection of all  the  major access
          or privilege levels. When  invoked  with  the  'A' command on the
          main menu the selection  bar  will  appear  on the current access
          level.  You  may  select  another  access  level  by  typing  the
          highlighted letter of the access you wish to give the  caller. If
          you make your selection via the letter, then the access menu will
          disappear and the new  access  will  be  displayed in the default
          field on  the  main  menu.  Of  all  the access levels, the last,
          Hidden, is an unknown to me  at  this time. I included it because
          under Opus 1.03 it was useful in keeping unwanted callers off the
          system. By marking their record as Hidden I could bounce  them as
          soon as they logged on, faster than even Twitting.

                                  ┌[■]────────────┐
                                  │ Twit          │▒
                                  │ Disgrace      │▒
                                  │ Limited       │▒
                                  │ Normal        │▒
                                  │ Worthy        │▒
                                  │ Privel        │▒
                                  │ Favored       │▒
                                  │ Extra         │▒
                                  │ Clerk         │▒
                                  │ AsstSysop     │▒
                                  │ Sysop         │▒
                                  │ Hidden        │▒
                                  └───────────────┘▒
                                   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                            Figure 4: User Access Levels

          6.2  Security Lock

          The Security Lock (figure 5) is  a  set  of bits in a 32-bit word
          that allow much finer caller  access  to  Opus  functions (please
          read the relevant Opus documentation for more details).

                 │ Security lock  ABCDEFGHIJKLMNOPQRSTUVWXYZ012345 │▒

                               Figure 5: Security Lock

          You may select the Security Lock with 'S' or with the mouse. Once
          in  the edit mode, pressing any letter or the numbers 0 to 5 will
          toggle that bit. If the letter is upper  case,  the corresponding
          bit  is set; if lower case, the bit is clear. For the numbers, if
          the  bit is set the number is visible; if clear, only a period is
          shown. You can also use the mouse to toggle these bits by placing
          the mouse cursor over  a  bit and clicking the left mouse button.



          OPhone 2.66                  April 6th, 1991                   16



          To return with the settings you have selected, click on  any part
          of "Security Lock" with the left mouse button or press  Return on
          the keyboard.  To escape and restore the previous settings, click
          with the right mouse button or press the keyboard Escape.


















































          OPhone 2.66                  April 6th, 1991                   17



          6.3  User Help Levels

          The Help Levels menu (figure 6) is selected from  the  main  menu
          with the 'H' key.  When  selected it will appear with the current
          help  level  in  the menu selection bar.  Press  the  highlighted
          letter of the help level you wish to give the caller or 'Q'uit or
          Escape  to  exit  without changing. When  a  new  help  level  is
          selected  the menu will disappear and the  new  help  level  will
          appear on the main user  menu. Expert, Regular, and Novice levels
          are  still  the  same as they were in Opus 1.03.  The  new  Hitek
          creates the  Lotus  style  menu  bar  across  the top line of the
          caller's screen. This help level seems to be working better under
          Opus 1.13. Full Tilt Boogie is something that was  added  to  the
          Opus 1.13 header file, and is included for  completeness.  I have
          no real idea what it is.

                                ┌[■]───────────────┐
                                │ Hitek            │▒
                                │ Expert           │▒
                                │ Regular          │▒
                                │ Novice           │▒
                                │ Full Tilt Boogie │▒
                                └──────────────────┘▒
                                 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                                Figure 6: Help Levels

          6.4  Session Time Control

          The Remaining time selection on the main user menu allows  you to
          adjust the caller's time left on  line.  You may change it to any
          value, and when you exit OPhone, that value will be given  to the
          caller.  Please  note  that the remaining time  is  always  being
          updated by OPhone, so that if  you  make the change early on when
          answering a page, then the value finally given to the caller will
          be that original amount  less  the time spent talking to him. The
          toggle selection beneath Remaining time, Time adjusted..., can be
          used to automatically compensate for chat time by adding the time
          spent in chat back to the caller's remaining  time.  This feature
          is  only  useful  if you have  selected  Write  changes  to  user
          information file to be Yes.













          OPhone 2.66                  April 6th, 1991                   18



          6.5  Matrix Mail Cost Accounting

          The Matrix mail cost accounting menu (figure 7) allows you to set
          the  credit  and  debit costs of sending  long  distance  netmail
          messages. The menu fields are free form and allow  the  entry  of
          money  as  dollars  and cents (US). The maximum amount allowed in
          either field is $655.35 because the  size  of the field is 16 bit
          with a max unsigned value of 65535.

                                 ┌[■]──────────────┐
                                 │ Credit  $  0.00 │▒
                                 │ Debit   $  0.00 │▒
                                 └─────────────────┘▒
                                  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                           Figure 7: Matrix Mail Cost Menu

          Select the field you wish to modify. When selected, you may enter
          data in the Credit and Debit fields as absolute values, or in the
          alternate  OMAN  method  of  prefixing  the value with a plus  or
          minus. Thus entering 10 in the credit field would fix it  at $10,
          while entering +5 would add 5 dollars to the value already there.
          Entries are accepted with a return, while escape  will  abort the
          entry.

          6.6  File Upload/Download Accounting

          The File upload/download accounting menu (figure 8) allows you to
          change caller's  upload  and  download  totals.  There  are three
          fields,  total  upload  in  K,  total download in K, and  today's
          download in K. You may change these fields to allow caller's more
          download capability if needed.

                                ┌[■]────────────────┐
                                │ Upload         0K │▒
                                │ Download       0K │▒
                                │ Today          0K │▒
                                └───────────────────┘▒
                                 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                   Figure 8: File Upload/Download Accounting Menu













          OPhone 2.66                  April 6th, 1991                   19



          6.7  User Options Menu

          The User Options menu (figure 9) is selected from the Main Caller
          Statistics menu. This  is  a flags modification menu. Selecting a
          given  flag  toggles  the flag so that it is 'Yes' or 'No'. Flags
          are  modified  by  selecting  the  item   via   it's  highlighted
          capitalized letter. Modification of the  flag  is  immediate. For
          example, typing 'H' for hex message areas will  toggle  that flag
          to 'No' if it were yes. The exception to this is the 'Video mode'
          selection, which presents another menu  ( see below ). You should
          check your Opus 1.1x documentation (if and when it should finally
          arrive) concerning what all the flags mean for the caller. Unlike
          some of the other menus, this menu will stay up until  you either
          press Escape or 'Q'uit.

                              ┌[■]────────────────────┐
                              │ Hex msg areas  Yes    │▒
                              │ IBM chars      Yes    │▒
                              │ Editor         LORE   │▒
                              │ More prompt    Yes    │▒
                              │ Video mode     Avatar»│▒
                              │ talKer         No     │▒
                              │ Formfeed       Yes    │▒
                              │ Phone verify   No     │▒
                              │ Alias used     No     │▒
                              │ Name listed    Yes    │▒
                              │ Time listed    Yes    │▒
                              │ City listed    Yes    │▒
                              │ Language     English »│▒
                              └───────────────────────┘▒
                               ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                               Figure 9: User Options





















          OPhone 2.66                  April 6th, 1991                   20



          6.7.1  User Display Menu

          The Display menu in  figure  10 is selected from the User Options
          menu with the  'V'  command.  It  allows  you  to  select between
          straight Ascii, standard Ansi, and Avatar for the display of Opus
          text and optional  colors.  As  defined  in  other documentation,
          straight  ASCII is unembellished text with no  cursor-positioning
          escape  sequences;  Ansi  provides  these escape sequences, along
          with additional  screen color information; and Avatar is the Opus
          1.1x display method in which  the oAnsi or Avatar embedded screen
          control  information   is  sent  raw  to  the  caller  for  local
          interpretation. The caller should have a terminal program capable
          of interpreting the Avatar control sequences on his  or  her end.
          When  the  Display   menu   is  shown,  the  current  default  is
          highlighted by  the selection bar. You may select another Display
          mode  by  pressing   the  appropriate  highlighted  letter.  Once
          selected, the menu disappears and the new video mode appears next
          to the 'Video mode' prompt. NOTE: Selection of  the  Display mode
          DOES  affect  operation  under OPhone. If you change from Ansi to
          Ascii you will change the local screen form two  windows  to  the
          single screen. Only two lines will  be  visible at the top on the
          local side. If you change from Ascii to Ansi you  will  go to the
          two-window mode. If you  change  the user's name in Ascii mode it
          will be reflected on both sides of the screen.

                              ┌[■]────────────────────┐
                              │ Hex msg areas  Yes    │▒
                              │ IBM chars      Yes    │▒
                              │ Editor         LORE   │▒
                              │ More prompt┌[■]─────┐ │▒
                              │ Video mode │ Ascii  │▒│▒
                              │ talKer     │ aNsi   │▒│▒
                              │ Form feed  │ aVatar │▒│▒
                              │ Phone verif└────────┘▒│▒
                              │ Alias used  ▒▒▒▒▒▒▒▒▒▒│▒
                              │ Name listed           │▒
                              │ Time listed           │▒
                              │ City listed           │▒
                              │ Language     English »│▒
                              └───────────────────────┘▒
                               ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                                 Figure 10: Display











          OPhone 2.66                  April 6th, 1991                   21



          6.7.2  User Language Menu

          Pressing L from the User Options menu selects  the  Language menu
          (figure 11).  The Language menu selects the caller's language set
          in the user  record.  The  strings  used in the Language menu are
          read from the Opus 1.1x .PRM file. Only  those  languages defined
          in the  PRM  file  are  read from the .PRM file and placed in the
          menu.  If  the  Opus .PRM file can not be opened,  then  all  six
          language selections  are displayed, but a single question mark is
          displayed in all six languages.

                                   ┌[■]─────────┐
                                   │ 1 English  │▒
                                   │ 2 French   │▒
                                   └────────────┘▒
                                    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                              Figure 11: Language Menu

          If OPhone can't find the .PRM file, then  the  following Language
          menu will be displayed (figure 12).

                                   ┌[■]─────────┐
                                   │ 1 ?        │▒
                                   │ 2 ?        │▒
                                   │ 3 ?        │▒
                                   │ 4 ?        │▒
                                   │ 5 ?        │▒
                                   │ 6 ?        │▒
                                   │ 7 ?        │▒
                                   │ 8 ?        │▒
                                   │ 9 ?        │▒
                                   │10 ?        │▒
                                   │11 ?        │▒
                                   │12 ?        │▒
                                   └────────────┘▒
                                    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                          Figure 12: Default Language Menu















          OPhone 2.66                  April 6th, 1991                   22



          7  Options Menu


          The OPhone Options menu (figure 13) allows the setting of general
          OPhone parameters.

                                ┌[■]───────────────┐
                                │ Menu colors     »│▒
                                │ Chat colors     »│▒
                                │ Session control »│▒
                                │ Ring schedule   »│▒
                                │ Files           »│▒
                                └──────────────────┘▒
                                 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                               Figure 13: Options Menu

          Menu colors  allow  you  to  change  the  colors of the pull down
          menus.

          Chat colors allow you to change the colors of the  chat window(s)
          and surrounding borders.

          Session control allows you to set/clear  automatic  caller record
          update, automatic caller time  compensate,  and  caller initiated
          chat block/open.

          Ring control allows you to set  the  ring schedule for all 7 days
          of the week, the number of times to sound the alarm, and the type
          of alarm to sound.

          Files allows you to specify the file name and path of the capture
          and abort files.





















          OPhone 2.66                  April 6th, 1991                   23



          7.1  Menu Colors

          The Menu Color menu (figure 14) allows you to set the  colors for
          the pull-down menus.

                               ┌[■]──────────────────┐
                               │ Menu background    »│▒
                               │ Border character   »│▒
                               │ Normal text        »│▒
                               │ Highlighted text   »│▒
                               │─────────────────────│▒
                               │ Select bar backgnd »│▒
                               │ Select bar text    »│▒
                               │ Off bar background »│▒
                               │ Off bar text       »│▒
                               └─────────────────────┘▒
                                ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                               Figure 14: Menu Colors

          Menu background selects the menu background for all the menu text
          and the menu border.

          Border character selects the menu border character color when the
          menu is active.

          Normal text selects the non-highlighted text in the menu.

          Highlighted text selects the  color  for  the capital letters and
          special characters that help select a menu option.

          Select  bar  background  sets the background color  of  the  menu
          select bar text.

          Select bar text sets the text color of the menu select bar.

          Off bar background selects the background color of  the  menu bar
          when you have selected that menu item.

          Off bar text sets the text forground color of the menu select bar
          when you have selected that menu item.

          If  any  colors  are  changed,  the  change  becomes  immediately
          apparent on the Menu Color menu, and the color changes take place
          as you move back up the menu chain to the primary command bar.

          If  you  change  any  of  the  menu  colors  (except the menu bar
          foreground or  background colors), then when you exit the Options
          menu,  OPhone  will  redraw both the local and remote screen, and
          present a fresh screen on both sides.




          OPhone 2.66                  April 6th, 1991                   24



          7.2  Main Screen Colors

                               ┌[■]──────────────────┐
                               │ Window background  »│▒
                               │ Sysop window text  »│▒
                               │ Caller window text »│▒
                               │─────────────────────│▒
                               │ Border background  »│▒
                               │ Label text         »│▒
                               │ Information text   »│▒
                               │ Flag text          »│▒
                               └─────────────────────┘▒
                                ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                            Figure 15: Main Screen Colors

          Windows background allows  you  to set the local background color
          of the sysop and caller windows.

          Sysop  window text allows you to set the  color  of  the  sysop's
          local text.

          Caller window text allows you to set the color  of  the  caller's
          local text.

          Border background allows you to set the background  color  of the
          upper and  lower  bars  that  border  the  windows as well as the
          center bar when the caller is in ansi mode.

          Label  text allows you to set the text color of the labels on the
          bottom line of the local screen.

          Information text allows you to set the text color of the caller's
          name, the sysop's  name,  and the information displayed along the
          bottom line of the local screen.

          Flag text allows you to set the color of the "DESQview" and other
          (future) special text that appears on the local screen.
















          OPhone 2.66                  April 6th, 1991                   25



          7.2.1  Color Menu

          The background and foreground  color  menu  (figure 16) allow the
          selection of all sixteen  colors  for  background  and foreground
          text and characters. Selections are made via number or menu bar.

                                 ┌[■]─────────────┐
                                 │ 0 Black        │▒
                                 │ 1 Blue         │▒
                                 │ 2 Green        │▒
                                 │ 3 Cyan         │▒
                                 │ 4 Red          │▒
                                 │ 5 Magenta      │▒
                                 │ 6 Brown        │▒
                                 │ 7 Lightgray    │▒
                                 │ 8 Darkgray     │▒
                                 │ 9 Lightblue    │▒
                                 │ A Lightgreen   │▒
                                 │ B Lightcyan    │▒
                                 │ C Lightred     │▒
                                 │ D Lightmagenta │▒
                                 │ E Yellow       │▒
                                 │ F White        │▒
                                 └────────────────┘▒
                                  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                                Figure 16: Color Menu

          Please note that only on EGA and VGA can you  show  all 16 colors
          in the background. For example, you can have blue  letters  on  a
          white background. If you select such a combination for CGA, mono,
          or Hercules mon cards, then such colored text will flash.






















          OPhone 2.66                  April 6th, 1991                   26



          7.3  Basic Session Control

          Session control (figure 17)  allows  you  to  set flags that will
          allow automatic time adjust for  time  spent  in  chat, automatic
          update of the user's LASTUSER file on exit, and if OPhone is open
          to chat requests per  the  hours  specified  in the Ring Schedule
          menu.

                              ┌[■]───────────────────┐
                              │ Time adjust: manual  │▒
                              │ Update user: manual  │▒
                              │ Caller ring: open    │▒
                              │ Verify quit: yes     │▒
                              │  Mouse used: no      │▒
                              │  Shell swap: no      │▒
                              └──────────────────────┘▒
                               ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                             Figure 17: Session Control

          Time  adjust  allows  OPhone to add the time spent in chat to the
          time the caller must be off the system. This keeps the  chat time
          from impacting the total  time  a caller is allowed on line. When
          in  manual,  you  can add time to the caller's time from the User
          Record Editor menu. When in  auto,  this  is  done automatically.
          Please  note that when time adjust is in  auto,  the  time  left,
          displayed  on  the  lower right corner, is not updated. Also note
          that when you toggle time adjust from manual to  auto,  that  you
          also toggle update user from manual to auto. It makes no sense to
          toggle one without toggling the other, and OPhone  does  this for
          you. However, if you do not want update  user  in  auto,  you may
          then toggle update user back to manual.

          Update user  allows OPhone to automatically write the user record
          back out when OPhone exits. This is useful on those  Opus systems
          configured to read the  user  record back in again (see your Opus
          documentation for further details). If  you  do  not  have update
          user  in  auto  and you make changes to the user record, you must
          use the write command on the User Record Editor menu to save your
          changes.

          Caller  ring  allows  you  to  block  all  caller  chat  requests
          regardless of the settings  in  your  schedule  file. You can set
          this flag from the command line with the "phone block" and "phone
          noblock" commands, or you can do it here. When open, caller's can
          request a chat. When blocked, caller's are blocked.

          Verify quit turns on or off the verify button when you  press ALT
          Q. If you don't want the  hassle  of being queried every time you
          exit, then turn off this traning wheel.




          OPhone 2.66                  April 6th, 1991                   27



          Shell swap allows you to swap most of OPhone out  to  disk or EMS
          when you shell to dos, thus reclaiming all that memory  for other
          use.  It  allows  you  to  shell  on  systems with  tight  memory
          constraints  or  in  small  multitasker  partitions.  If  EMS  is
          present, and if there is enough, then all but about 1K is swapped
          to EMS. If  EMS is not present, then it is swapped to a temp disk
          file  at the root of the current disk.  IF  THIS  FEATURE  CAUSES
          PROBLEMS TURN IT OFF.














































          OPhone 2.66                  April 6th, 1991                   28



          7.4  Ring Schedule Control

          OPhone contains its on  internal  schedule  structure.  This menu
          allows  you  to  manipulate  that  on the fly with Ring  Schedule
          (figure 18).

                           ┌[■]─────────────────────────┐
                           │ Sun 10:00 22:00  6 Silent »│▒
                           │ Mon 10:00 22:00  6 Silent »│▒
                           │ Tue 10:00 22:00  6 Silent »│▒
                           │ Wed 10:00 22:00  6 Silent »│▒
                           │ tHu 10:00 22:00  6 Silent »│▒
                           │ Fri 10:00 22:00  6 Silent »│▒
                           │ sAt 10:00 22:00  6 Silent »│▒
                           │ Global (all days)         »│▒
                           └────────────────────────────┘▒
                            ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                              Figure 18: Ring Schedule

          You can modify any day of  the  week  or all days with the Global
          selection. With Global you  can  set the start time for all days,
          and then pick those days you want different. In all instances you
          get another menu, Daily Events.

          7.4.1  Daily Event Editor

          Daily  Events (figure 19) allows you to set  the  Start  and  End
          times when a chat is allowed, how many  Times  to  signal  on the
          local side, and the type of Alarm. Start and end time are entered
          in  military  time,  and  can  range from 00:00 to 23:59.  Values
          outside of this range are ignored. Times can range from 1  to 99.
          The alarm type is  chosen  from the pick list menu Alarms (figure
          20).

                                 ┌[■]─────────────┐
                                 │ Start: 10:00   │▒
                                 │   End: 22:00   │▒
                                 │ Times:  6      │▒
                                 │ Alarm: Silent »│▒
                                 └────────────────┘▒
                                  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                               Figure 19: Daily Events

          At initial startup  the  default  start  time  is  10:00  and the
          default end time is  22:00.  The default alarm type is Silent for
          six alarms. Please note at this time that the start time  may not
          be  greater  than the end time, and  that  times  may  not  cross
          midnight, i.e. the end may not be greater than 23:59.




          OPhone 2.66                  April 6th, 1991                   29



          7.4.2  Alarm Selection

                                     ┌[■]─────┐
                                     │ Silent │▒
                                     │ Bells  │▒
                                     │ Phone  │▒
                                     │ Flynt  │▒
                                     │ Dive   │▒
                                     └────────┘▒
                                      ▒▒▒▒▒▒▒▒▒▒

                             Figure 20: Alarm Selection










































          OPhone 2.66                  April 6th, 1991                   30



          7.5  OPhone File Configuration

          The OPhone Files menu  allows  you  to  specify the capture file,
          abort file, lastuser, and  PRM  names.  You may use environmental
          variables and metacharacters  in  their names (see section on use
          of environmental variables and metacharacters).

          ┌[■]──────────────────────────────────────────────────────────┐
          │ Capture Phone.Cpt...........................................│▒
          │ Abort   Phone.Abt...........................................│▒
          │ Lastuse Lastus$N.Dat........................................│▒
          │ Prm     Bbs.Prm.............................................│▒
          └─────────────────────────────────────────────────────────────┘▒
           ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

                        Figure 21: OPhone File Configuration

          Figure 21 shows the default file names.

          The Capture file is the path and/or file name OPhone will open on
          startup.  In this file is written the log  of  the  current  chat
          session, as well as any captured conversation.

          The Abort file is  the  path and/or file name OPhone will execute
          if the caller  attempts  to  chat  outside of the time limits, is
          blocked by sysop action, or times out during regular chat hours.

          The Lastuser file is  the  path and/or file name OPhone will read
          in when it starts up. This file is written out by Opus, and is of
          the form  LASTUS##.DAT, where '##' is the hexadecimal task number
          for  that  instance  of   Opus.   The   default  string  has  the
          metacharacter '$N'. OPhone will replace this with the task number
          passed to it or read from the Opus parm file.

          The Prm file is the path and/or file name OPhone will read in for
          additional operating information. The  PRM  file  is  Opus' prime
          configuration file.

















          OPhone 2.66                  April 6th, 1991                   31



          8  The Remote (Caller) Side


          The caller's side of OPhone  is either identical to standard Opus
          chat if the caller is in ascii mode (no Ansi  screen  codes) or a
          limited  monochrome  version  of the local side of the screen. At
          the top of the caller's screen is a line of caller commands. They
          are currently  limited to control W (^W), which re-displays their
          bottom window, and control  L  (^L)  which re-displays the entire
          screen. Their actions are reproduced on both sides of the screen.
          The  next  line  down is your name, followed by 10 lines for your
          window, followed by the line with the caller's name, and then the
          caller's window. There  is  currently no other information on the
          caller's side of the screen.








































          OPhone 2.66                  April 6th, 1991                   32



          9  Script Language


          OPhone's control file uses a  simple  script  language.  There is
          usually one command per  line,  followed  by  one or more command
          parameters. The commands can be prefaced with whitespace (tabs or
          spaces), and white space is  used  to  delineate  the parameters.
          This simple scripting feature allows you some flexible control on
          how OPhone operates. The current commands are:

          9.1  Script Commands

          9.1.1  Dos

          dos            Provides a way to  execute  programs  and commands
                         external   to   OPhone.   These  commands  can  be
                         intrinsic to COMMAND.COM, an external  executable,
                         or a  batch file. OPhone performs a shell with the
                         command. This provides the external  child process
                         with a full set of file handles. The child process
                         inherits  OPhone's   environment   variables,  and
                         executes  in  whatever  system  memory   is  left.
                         Remember, however,  that  OPhone  is  still memory
                         resident when it does this.  When  the  command is
                         finished it should return back to  OPhone  on it's
                         own. You should NOT execute a  child  process that
                         requires user input to exit  unless  it  is Fossil
                         aware or you provide I/O redirection to the serial
                         port.

                         There are two ways to  run a dos program; with and
                         without quoting. You use  quoting  around  the dos
                         string  if  the  external program requires passing
                         additional command line parameters, as in

                         dos "foo /a /b /c input.dat output.dat"

                         If the program can be executed without any command
                         line parameters you can use

                         dos foo

                         to execute  the program. If you have swap on shell
                         enabled in the Options/Session menu, then when you
                         shell to dos via  the  dos  command  all but 1K of
                         OPhone will  be  swapped  out.  When  you  return,
                         OPhone will swap back in again.







          OPhone 2.66                  April 6th, 1991                   33



          9.1.2  Dosexit

          dosexit        Provides  a  way  to  exit  back  to  DOS with  an
                         errorlevel that can then be used  in  batch files.
                         It is meant to be used with a conditional test, as
                         in the following example:

                         if timelimit dosexit 10

                         If the caller is calling outside  of  regular chat
                         hours, then OPhone will  exit  back  to DOS (and a
                         batch file) with errorlevel 10.

          9.1.3  Print

          print          Send a quoted  string  of text, usually out to the
                         caller.  This  string  must  be enclosed in double
                         quotes.

                         Examples:

                         ; standard print command.
                         print "This is a test"
                         ; print the time with a metacharacter.
                         print "The time is $T."
                         ; print an environmental variable.
                         print "The temp drive is %tmp%."

          9.1.4  Implied print

                         The implied  print is a single double quote at the
                         start of  a string. It must be the first character
                         on the line to be  sent to the caller. The implied
                         print   is   for   use  with  oAnsi/Avatar  escape
                         sequences,  but  can  be  used  in  place  of  the
                         explicit print command. Do NOT put a closing quote
                         on the end of the string.

                         Example:

                         "This string will print.

          9.1.5  Include

          include        Allows you to include another file.  You  may nest
                         include files eight deep. Included files should be
                         other OPhone script files.

                         Example:

                         include d:\OPhonedir\standard.scr



          OPhone 2.66                  April 6th, 1991                   34



          9.1.6  Exit

          exit           Allows you  to exit from a script file before end-
                         of-file.
                         Example:

                         exit

          9.1.7  Define

          define         defines a label. Used with the if conditional test
                         below.  For  example, if "define  thislabel"    is
                         encountered,   then "thislabel" is stored  in  the
                         label  list.  If  the command  "if thislabel"   is
                         encountered, then the command block following  the
                         if test will be executed. This has the same  exact
                         function    as  the  -d{label}  command    switch.
                         Defined  labels  are  case insensitive, as is  the
                         test  for  them. A test  for  "ThisLabel"  is  the
                         same as a test for "THISLABEL".

          9.1.8  If conditional tests

          if             tests certain internal conditions flags or for the
                         existence of a  defined string flag. IF statements
                         can take two broad  forms.  The  first is a single
                         line command that will only  execute  one  line if
                         the test is true.

                         Example:

                         if <test> command

                         The second is when executing more than  one script
                         instruction.  Note the required use of then  after
                         the if test.

                         Example:

                         if <test> then
                         command
                         command
                         ...
                         endif

                         NOTE
                         If the test is missing a matching command or then,
                         then  the error message "Invalid if  construction"
                         is issued to   the   console  and the script where
                         the error occurred is aborted. If the error occurs




          OPhone 2.66                  April 6th, 1991                   35



                         in the   root  script, then Phone is terminated or
                         the next script on the command line is executed.

                         If the test is true or the string flag exists then
                         the line following the test or all commands in the
                         command    block  after  the  then  to  the   next
                         balanced  endif  are  executed. If  the  condition
                         is  false,  the  command  after  the  test  or all
                         commands in the command block  after  the  then to
                         the    next  balanced    endif  are  ignored.  The
                         conditional   test can include the ! or not negate
                         test as a prefix  to the test. In  this  test,  if
                         the  condition  is    false,  then  the  block  of
                         commands  to  the    next    balanced  endif    is
                         executed.

                         Examples:

                         if !day mon print "This is not Monday."
                         if not day mon print "This is also not Monday."

                         ; if the phone capture file is not in the
                         ; current directory then open it elsewhere.
                         if !file phone.cpt open c:\phonfile\phone.cpt

                         NOTE
                         The last test in a string of if tests on a similar
                         action  will have the final outcome if  the  final
                         conditional  is true. For example, be  careful how
                         many times you test and then set the event time.

          if day         will  execute  if it is a given day  of  the  week
                         according  to  the time of day clock.  An  example
                         test  would be "if day mon". All the days  of  the
                         week    must  use  the  first  three  letters. For
                         example, 'mon' for Monday, 'tue' for Tuesday, etc.
                         The spelling is case insensitive.

                         Example:

                         ; set event times for Saturday.
                         ; allow from noon to 6 pm.
                         if day sat event 12:00 18:00

          if !day        will execute if it is not a given day of the week.

          if weekday     will execute if it is Monday through Friday

          if !weekday    will execute if it  is  the  weekend,  Saturday or
                         Sunday.




          OPhone 2.66                  April 6th, 1991                   36



          if file        will execute if a  given  file  exists. The  wild-
                         card characters  '*'  and  '?' can be used in  the
                         test,  and    a    drive  and  path  can  also  be
                         specified.    An  example    would  be   "if  file
                         lastus??.dat". In  this instance, a test for Opus'
                         lastuser file is  made, and  the '?'  is  a  wild-
                         card that will test  even    if  Opus is being run
                         multiline.

          if !file       will execute if a given file does not exist.

          if timelimit   will execute if the caller is trying to phone  you
                         outside  the time limits specified with  event  or
                         using Phone's defaults of 10 am to 10 pm. You  can
                         use  this to bracket those lines in  your  onabort
                         file  so that they only see the Phone time   limit
                         when the time limit is exceeded.

          if !timelimit  the reverse of above. Will execute in the  onabort
                         file if within the timelimit.

          if timeout     will execute if the caller's page timed out during
                         normal paging hours.

          if blocked     will execute if the caller's page was blocked with
                         the block command  or  by the sysop pressing Alt Q
                         at the alarm pop-up window.

          if <label>     will  execute  if a given label has  been  defined
                         with  the  define verb or the  -d    command  line
                         switch.  This test is case insensitive. An example
                         would be "if    MyLabel"    and  would  execute if
                         'MyLabel'   had  been defined  with define MyLabel
                         or  -dMyLabel    on the command line. This feature
                         allows custom flags to  be  passed to script flags
                         using  conditional execution.   It    is  also the
                         method  by   which    the  Yabbs utilities will be
                         able to discriminate their part  of a large config
                         file from other applications.

                         NOTE
                         The   default label is YPHONE.   Use    this  with
                         other Y  utilities  to  separate  sections  of   a
                         single control file dedicated for each utility. As
                         each  utility  is released, it will have  its  own
                         uniquely   defined  internal  label  so  that  all
                         control files can be combined into one master list
                         if you so desire.

          if !<label>    will   execute  if a given label  has  not    been
                         defined.



          OPhone 2.66                  April 6th, 1991                   37



                         NOTE
                         If statements can  be nested. Multi-line if blocks
                         (if... then )  must  have an endif. Single line if
                         statements do not need an endif.

          9.1.9  Endif

          endif          indicates the end of an if test.














































          OPhone 2.66                  April 6th, 1991                   38



          10  Metacharacters


          Metacharacters are special  two character combinations that allow
          you to substitute information into a given string. Metacharacters
          begin  with  the dollar sign, '$', and are  followed  by a single
          letter. When a metacharacter sequence is found in a line, it   is
          replaced with one  or  more  characters  that    it   represents.
          Metacharacters  should  be   considered  very  simple    internal
          constants. You can never set them to a particular value,  but you
          can read them and use them. The list of metacharacters are:

          $B             the port's  baud rate is inserted in the line. For
                         example, "1200" would be inserted for $B.

          $D             the system's date is  inserted  in  the  line. For
                         example, "Apr  15, 1989" would be inserted for $D.
                         Month names are    truncated  to  the  first three
                         characters.

          $E             the  system's  event limits are  inserted  in  the
                         line.   For  example,  if  you  have  defined   an
                         allowable event  window from  10:00 to 22:00 hours
                         (10 am to 10 pm),  then  the  string  "10:00am  to
                         10:00pm" is inserted in the line  in place of $E.

          $F             the   caller's first name is inserted in the line.
                         For  example,  caller  John  Doe would have "John"
                         inserted in the line.

          $L             the language number, which currently ranges from 1
                         to 6 for Opus 1.1x and 12 for Opus 1.2x.  Use this
                         in a file  name  to specify which language file to
                         open for a given caller.

          $N             the task number is inserted in the string. This is
                         the task number passed via the '/t#'  command line
                         switch from Opus when OPhone  is  invoked,  or the
                         default  task found in the PRM  file  if  no  task
                         number is passed. The  string  is  two characters,
                         padded  with  a  zero  if  less than 0Fh,  and  is
                         hexadecimally based.

          $P             the  port Phone  is  active on is inserted in  the
                         line. For example, if  Phone  is  on com1:, '1' is
                         inserted place of $P.

          $T             the  system's  current  time  is  inserted  in the
                         line    in  HH:MM:SS  format. The  hour  field  is
                         packed with a zero if the hour is less than 10.




          OPhone 2.66                  April 6th, 1991                   39



          $U             the caller's full name is inserted in the line.


          11  Environmental Variables


          In    addition  to  the   metacharacter,   Phone   can  reference
          environmental  variables  and  insert them into the  script  line
          or   file   templates.     When  referenced,  the  name  of    an
          environmental variable  is placed between two percent signs. This
          is   the    same  feature  found in MS-DOS (v3.3 and later) batch
          files. For  example,  you  might  reference  the  path  where you
          open  your  capture file with an environmental variable, thus:

               %bbspath%phone.cpt

          and you would then have the following in your autoexec.bat file:

               set bbspath=d:\bbs\capture\

          so that when the open statement is executed, it will expand to:

               d:\bbs\capture\phone.cpt

          Environmental  variable references allow you a greater degree  of
          flexibility in your use of Phone. Any environmental variable  can
          be  referenced. If you reference an environmental  variable  that
          does not exist, Phone will substitute the null string, just  like
          MS-DOS.

          If  you need to use a  percent  sign,  then  you  can  escape the
          percent  sign by  putting  two in succession. For example, if you
          had the line:

               print "This is a percent sign: %%"

          then when it is printed, it would display as

               "This is a percent sign: %"

          You should do the same with the dollar sign, '$', if you need  an
          explicit  '$' character in your script. Putting  two  dollar sign
          in succession will escape the second one.











          OPhone 2.66                  April 6th, 1991                   40



          12  Using Metacharacters and Environmental Variables


          Metacharacters and environmental variables are most useful in the
          file strings under the Options menus and in the abort  file. Here
          are several examples for the file section.

          First, consider an entry for the capture file in the Options/File
          menu.

               %tmp%phone$n.cpt

          The environmental variable %tmp%,  if  initialized  with  the SET
          command in a batch file, will expand to whatever it is set to. If
          set to  "f:\foo\",  then  the  first  part  of the file name will
          expand to

               f:\foo\phone...

          The metacharacter $N will expand to the current  task  number. If
          phone is invoked by Opus with  a  '/t1' on the command line, then
          the file name will fully expand to

               f:\foo\phone01.cpt.

          Assuming that the subdirectory 'f:\foo' exists, and that there is
          space, then the file 'phone01.cpt' will be opened (or created, as
          the case may be).

          Second, consider an entry for the abort file.  Opus  provides the
          ability to  specify the caller's language. You can take advantage
          of this by including the $L metacharacter in the abort file name,
          such as

               phone$l.abt.

          When the file name  is  expanded,  the  caller's language will be
          inserted where the $L is located in the file name.  Assuming that
          the caller's language  is  English, and English corresponds to 1,
          then if an abort takes place phone will attempt to apologize with
          the file

               phone01.abt.

          Finally, OPhone will recognize and expand environmental variables
          in the /u<lastuserfile> command line switch. For  example, assume
          you have explicitly coded

               phone /ulastus%task%.dat ...





          OPhone 2.66                  April 6th, 1991                   41



          Normally, if a standard system  call  is  made  with COMMAND.COM,
          then  COMMAND.COM  will  parse the command line  and  expand  the
          environmental variables.  But Opus does an exec (after doing only
          a parse). As such the environmental variables are  passed  to the
          child process. If  an  environmental variable is passed to OPhone
          in the /U command  line  variable,  then  OPhone will replace the
          variable with the proper value. If for example you

               set task=01

          then OPhone will translate lastus%task% to lastus01. This feature
          is  useful  in multitasking Opii where a  ^OC  is  used  to  call
          OPhone, such as from one of the function key BBS files. This is a
          last line of defense, as it appears the '#' Avatar character does
          not always work.







































          OPhone 2.66                  April 6th, 1991                   42



          13  Opus Ansi or Avatar Control Codes


          OPhone supports a subset of  the oAnsi control codes. These codes
          can be incorporated into the  abort  file  to  provide additional
          colors and screen placement. You  can  incorporate  these control
          codes in print quote strings, or you can use them  stand-alone as
          long as the string is preceded with a double quote.  This implied
          print  must not be enclosed with a  matching  double  quote.  The
          matching double quote will simply be printed out  to  the caller.
          For further information please see the example abort file.

          ^F^B           User's full name.

          ^F^C           User's city and state/province.

          ^F^E           Current date.

          ^F^F           User's first name.

          ^F^R           Current time.

          ^L             Clear screen.

          ^V^A           Set color.

          ^V^B           Blinking on.

          ^V^C           Move cursor up one line.

          ^V^D           Move cursor down one line.

          ^V^E           Move cursor left.

          ^V^F           Move cursor right.

          ^V^G           Clear to the end of the line.

          ^V^H           Set cursor position.

          ^Y             Replicate [char] [number of times].

          Please check the relevant Opus documentation for further details.











          OPhone 2.66                  April 6th, 1991                   43









                                    Contents


                  1  Introduction  . . . . . . . . . . . . . . . . . 2
                  2  Changes and New Features  . . . . . . . . . . . 5
                  3  Basic Requirements  . . . . . . . . . . . . . . 7
                  4  Quick Setup . . . . . . . . . . . . . . . . . . 9
                     4.1  First Time Users . . . . . . . . . . . . . 9
                     4.2  Previous Users . . . . . . . . . . . . .  10
                  5  Local Menus . . . . . . . . . . . . . . . . .  11
                     5.1  Basic Menu Functionality . . . . . . . .  11
                     5.2  Primary Command Bar  . . . . . . . . . .  12
                  6  User Record Editor Menu . . . . . . . . . . .  14
                     6.1  User Access Levels . . . . . . . . . . .  16
                     6.2  Security Lock  . . . . . . . . . . . . .  16
                     6.3  User Help Levels . . . . . . . . . . . .  18
                     6.4  Session Time Control . . . . . . . . . .  18
                     6.5  Matrix Mail Cost Accounting  . . . . . .  19
                     6.6  File Upload/Download Accounting  . . . .  19
                     6.7  User Options Menu  . . . . . . . . . . .  20
                        6.7.1  User Display Menu . . . . . . . . .  21
                        6.7.2  User Language Menu  . . . . . . . .  22
                  7  Options Menu  . . . . . . . . . . . . . . . .  23
                     7.1  Menu Colors  . . . . . . . . . . . . . .  24
                     7.2  Main Screen Colors . . . . . . . . . . .  25
                        7.2.1  Color Menu  . . . . . . . . . . . .  26
                     7.3  Basic Session Control  . . . . . . . . .  27
                     7.4  Ring Schedule Control  . . . . . . . . .  29
                        7.4.1  Daily Event Editor  . . . . . . . .  29
                        7.4.2  Alarm Selection . . . . . . . . . .  30
                     7.5  OPhone File Configuration  . . . . . . .  31
                  8  The Remote (Caller) Side  . . . . . . . . . .  32
                  9  Script Language . . . . . . . . . . . . . . .  33
                     9.1  Script Commands  . . . . . . . . . . . .  33
                        9.1.1  Dos . . . . . . . . . . . . . . . .  33
                        9.1.2  Dosexit . . . . . . . . . . . . . .  34
                        9.1.3  Print . . . . . . . . . . . . . . .  34
                        9.1.4  Implied print . . . . . . . . . . .  34
                        9.1.5  Include . . . . . . . . . . . . . .  34
                        9.1.6  Exit  . . . . . . . . . . . . . . .  35
                        9.1.7  Define  . . . . . . . . . . . . . .  35
                        9.1.8  If conditional tests  . . . . . . .  35
                        9.1.9  Endif . . . . . . . . . . . . . . .  38
                  10  Metacharacters . . . . . . . . . . . . . . .  39
                  11  Environmental Variables  . . . . . . . . . .  40



                                          i



                  12  Using Metacharacters and Environmental
                      Variables  . . . . . . . . . . . . . . . . .  41
                  13  Opus Ansi or Avatar Control Codes  . . . . .  43



















































                                         ii









                                    Figures


               Figure 1: Exit Menu . . . . . . . . . . . . . . . . .12
               Figure 2: Sysop Help Menu . . . . . . . . . . . . . .12
               Figure 3: User Record Editor Menu . . . . . . . . . .14
               Figure 4: User Access Levels  . . . . . . . . . . . .16
               Figure 5: Security Lock . . . . . . . . . . . . . . .16
               Figure 6: Help Levels . . . . . . . . . . . . . . . .18
               Figure 7: Matrix Mail Cost Menu . . . . . . . . . . .19
               Figure 8: File Upload/Download Accounting Menu  . . .19
               Figure 9: User Options  . . . . . . . . . . . . . . .20
               Figure 10: Display  . . . . . . . . . . . . . . . . .21
               Figure 11: Language Menu  . . . . . . . . . . . . . .22
               Figure 12: Default Language Menu  . . . . . . . . . .22
               Figure 13: Options Menu . . . . . . . . . . . . . . .23
               Figure 14: Menu Colors  . . . . . . . . . . . . . . .24
               Figure 15: Main Screen Colors . . . . . . . . . . . .25
               Figure 16: Color Menu . . . . . . . . . . . . . . . .26
               Figure 17: Session Control  . . . . . . . . . . . . .27
               Figure 18: Ring Schedule  . . . . . . . . . . . . . .29
               Figure 19: Daily Events . . . . . . . . . . . . . . .29
               Figure 20: Alarm Selection  . . . . . . . . . . . . .30
               Figure 21: OPhone File Configuration  . . . . . . . .31
























                                         iii