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