home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
adptdc1d.zip
/
AdeptXBBS.INF
(
.txt
)
next >
Wrap
OS/2 Help File
|
1997-04-07
|
543KB
|
16,321 lines
ΓòÉΓòÉΓòÉ 1. About AdeptXBBS ΓòÉΓòÉΓòÉ
AdeptXBBS
Bulletin Board for IBM 32-bit OS/2
Copyright (c) 1993 - 1996 by AdeptSoft
portions Copyright (c) 1991-1994 M. Kimes
All Rights Reserved
AdeptSoft, AdeptXBBS, GateKeeper,
are trademarks of AdeptSoft.
"XBBS" Copyright (c) 1988 - 1994 by M. Kimes. The "XBBS" name is a
Trademark of M. Kimes.
About this document...
ΓòÉΓòÉΓòÉ 2. Introduction ΓòÉΓòÉΓòÉ
Introduction:
AdeptXBBS is an OS/2 bulletin board program written in
'C' and compiled with the WATCOM C32 Optimizing Compiler
Version 10.0. AdeptXBBS fully exploits all the features
that make OS/2 the operating system of the future and
today. AdeptXBBS is extremely well threaded in order to
give you that 'instant' response you expect from OS/2.
What is AdeptXBBS ? AdeptXBBS is a 32-bit,
Multi-thread, Multi-user, PM BBS for 32-bit OS/2.
AdeptXBBS incorporates the best that is OS/2! AdeptXBBS is
designed to give you speed, reliability, power and
flexibility in one package. Almost everything about
AdeptXBBS can be customized. All the text displayed in the
PM system, to every prompt and menu. AdeptXBBS gives you
robust support for DOS and OS/2 doors using the DOOR.SYS
and Session Info (ask us about Session Info) drop file.
ΓòÉΓòÉΓòÉ 2.1. Features ΓòÉΓòÉΓòÉ
Features Of AdeptXBBS:
The AdeptXBBS file system has support for:
Multi-CD Rom changers
FILE_ID.DIZ
File Tagging
Virus Checking
Archive Conversion
Archive Viewing/Extraction
Files.BBS importing
Password protected files and file areas
Age limited files, and file areas
Extensive file security and area security
Xmodem, Ymodem, Ymodem-G, Sealink, Zmodem and
ZedZap protocols
User configurable file lists
Mark files as offline (single CD-ROM, multiple
CD-ROM support)
Mark files as hidden by downloadable
The AdeptXBBS message base system has support for:
Password Protection
Extensive security features
Context sensitive searches
Message tagging
.QWK, Bluewave, FidoNet Point and Text exporting
Last Read Pointer Manipulation
Unlimited Message Areas, Message Per Area and
Message Size.
Full Screen and Text Message Editors
Full Reply Linking/Threading
On the fly compression of messages.
Message encryption
The AdeptXBBS mailer has support for:
Read/Write of PATH, SPTH, INTL, TOPT, FMPT,
SEEN-BY, MSGID and MSGTO Kludges
Reading/Processing of ASSOC, EID and VIA
(Stripping)
FTS-001 through FTS-009 FidoNet standards
Around 20 additional FSC proposals
File Attaches, File Requests
WAZOO, EMSI and DietIFNA mail sessions
Complete events handling, with external program
support
FidoNet v7 Nodelist support
Auto Execution of a Fax program for FAX connects
AREAFIX with auto add and auto forward
capabilities
TIC processing with forwarding
Completely and seamlessly integrated into the BBS
software
The AdeptXBBS BBS has support for:
DOS and OS/2 Doors, using the DOOR.SYS and
Session Info drop files
The ability to run redirected OS/2 programs
Completely custom Menu system
Completely custom Prompts system
Multi-Lingual support
TTY, ANSI, AVATAR, ANSI-TE2 graphics, auto ANSI
and ANSI-TE2 detection
Multi-node, multi-user chat
Internet Support
Named Pipe Support
Internal REXX program processing and execution
Limitations:
DOS doors/games do not work over the Internet,
most OS/2 doors/games should work over Telnet.
(The DOS limitation does not exist if you are
using SIO's VMODEM).
Feature requests:
At the moment we have locked down the current
feature set. If a suggestion comes along that we
feel really should be in a future version, we
will do our best to add it. If the feature you
want is not in the current version, please fill
out the wish form included with this package.
ΓòÉΓòÉΓòÉ 2.2. System Requirements ΓòÉΓòÉΓòÉ
System Requirements:
Requirements:
AdeptXBBS requires OS/2 v2.0, v2.1, v2.11, v2.99 or OS/2 Warp+
in order to run.
OS/2 v3 or IBM TCP/IP required for the Internet capabilities.
AdeptXBBS requires 2 Mb of Free RAM, the BBS however, only uses
about 100Kb per node.
At least 5 Mb of free Hard Disk space.
The MODEM is optional.
Note: AdeptXBBS requires a HPFS partition.
Multi I/O Requirements:
AdeptXBBS has been tested with the following boards.
DigiBoard Nonintelligent series works with Ray Gwinn's SIO
drivers. The intelligent series works well with
the BBS, but does not have DOS support.
Equinox No DOS support with SIO, but handles more nodes
better than the G-TEK boards.
G-TEK Has DOS support with SIO. Currently being used on
the support BBS.
ΓòÉΓòÉΓòÉ 2.3. AdeptXBBS Releases ΓòÉΓòÉΓòÉ
AdeptXBBS Releases:
AdeptSoft Major Releases:
Wide Beta version 0.90 was released January 17, 1995
Version 0.94 - Mar 15th, 1995
Version 0.96 - May 7th, 1995
Version 0.97 - May 29, 1995
Version 0.98 - Aug 5th, 1995
Version 1.00 - Aug 7th, 1995
Version 1.01 - Aug 8th, 1995
Version 1.04 - Sep 2nd, 1995
Version 1.05 - Oct 7th, 1995
Version 1.06 - Dec 22th, 1995
Version 1.07 - Feb 28th, 1996
Version 1.07f - Apr 20th, 1996
This is the final
release by AdeptSoft
as a company. This is
freeware 16 nodes,
Fidonet, Internet
E-mail, Newsgroups,
inbound Telnet and
more. This is
considered by some to
be the most stable
version available,
albeit slightly
outdated. You will
need this package to
setup your base BBS
structure. After
installing this
version you can
upgrade to later
releases.
Steven Tower's Alpha VAC Releases: 1.08axx -
(Uses
Binary
BIN
Menus)
Mario Dulisse's "Hagar" WatCom586 Releases: 1.08axx,
1.08aHxx,
1.09.xx -
(Uses
Steven
Towers
Alpha
style BIN
Menus)
Chris Freeze's "Betel" VAC Releases: 1.08.xx -
(Uses
1.07 ANS,
ASC style
Menus)
ΓòÉΓòÉΓòÉ 2.3.1. Steven Tower Releases ΓòÉΓòÉΓòÉ
AdeptXBBS Tower Releases:
Steven Tower's (tower@sound.net) Alpha VAC Releases: 1.08aX (as
of 1.08a5, uses Binary BIN Menus)
Version 1.08a1 - Jun 30th, 1996
This is the first
version of
AdeptXBBS build
with VisualAge.
Version 1.08a2 - Jul 1st, 1996
Version 1.08a3 - Jul 6th, 1996
Version 1.08a4 - Jul 9th, 1996
Incorporates all
the changes that
where in Gordon's
VAC1 build.
Version 1.08a5 - Jul 12th, 1996
The Menu System has
been rewritten.
Version 1.08a6 - Jul 13th, 1996
Version 1.08a7 - Jul 13th, 1996
Will only run under
OS/2 Warp and
above.
Version 1.08a8 - Jul 14th, 1996
Version 1.08a9 - Jul 15th, 1996
Version 1.08a10 - Jul 16th, 1996
Version 1.08a11 -
Version 1.08a12 -
Version 1.08a13 -
Added command
parameter "/FTP" -
Starts the Adept
FTP server.
Added FTP Server
support.
Version 1.08a14 -
Added Menu type,
1002. "Logoff and
Relog on". This
will display prompt
#935 (currently
unused) and display
the file
RelogIn.Asc/Ans/Avt
to the user before
commencing with the
relogin.
Added the Rexx
function
AdeptSetRelogin(line,
TRUE/FALSE)
Added the Rexx
function
AdeptCheckForRelogin(line)
Version 1.08a15 -
Added Meta "{ZZ"
don't convert any
metas in this
string past this
one.
Added Meta "{PQ"
Displays press any
key to continue if
the displayed
amount of lines is
more then the users
screen length.
Added line #435 to
Language.Text, User
currently not
available for chat.
I.E. Writing a
message or marked
as busy.
IRC_IDLETIMEOUT if
the user idle's out
The "ESC" key or
"Q" key will quit
the chat server
instead of having
to press "^BREAK"
anymore.
Version 1.08a16 -
Added the Rexx
function
AdeptSysChatMsg(line,
Text)
The BBS will now
look for the file
"ExtFSE#.CMD" or
"ExtLE#.CMD" before
loading the full
screen or line
message editor.
The BBS will now
execute
"MsgToUserOn.CMD"
when a message is
posted by an on
line user user on
another online user
(Mail Waiting..)
Added Metas:
{DA Who the
message
was to
{DB The
Message
Subject
{DC Area name
message
was
posted to
{DD Node
number of
receipient
{DE Area
number
the
message
was
posted to
Version 1.08a17 -
Version 1.08a18 -
Version 1.08a19 -
Added the Rexx
function
AdeptNodeLink(NodeFrom,
NodeTo)
Version 1.08a20 -
Version 1.08a21 -
Version 1.08a22 -
Version 1.08a23 -
Version 1.08a24 -
Version 1.08a25 -
This version
released by Steven
Tower has all the
features of Version
1.07f plus a few
features that make
it nice if you
decide to utilize
the Alpha versions.
This is an upgrade
to 107f.
Version 1.08a26 -
This is Steven
Towers Alpha series
Alpha 26 version of
Adept. This
version is reported
to have a couple
small errors if you
use it to pull in
newsgroups. If you
experience troubles
while importing
newsgroups you may
want to consider
another version.
This is an upgrade
to 1.07f or Alpha
25.
Version 1.08a27 -
Steven Tower has
released Alpha 27,
it is reported to
have a bug that
causes calls to a
Type 51 menu to
trap. This is the
.EXE file only, so
you should have
installed Alpha 25
or Alpha 26 first.
This should be the
last release by
Steven Tower by
himself. Further
releases should be
a group effort by
the folks that are
working on it after
this release.
ΓòÉΓòÉΓòÉ 2.3.2. Mario Dulisse's Releases ΓòÉΓòÉΓòÉ
AdeptXBBS _HAGAR_ Releases:
Mario Dulisse's (IRC "_Hagar_") WatCom586 Releases: (Uses
Steven Towers Alpha style BIN Menus)
If you haven't used any of the v1.08a .Exe's (Note the 'a'
not to be confused with 1.08.02 or any other Exe out
there.) Please note that there are drastic changes and the
the menus need to be converted to a new format. (If you
have been running 108a series exe's you've already
converted your menus and there is no need to do it again!!
However you do need to delete *.Menu.BIN in your menus dir,
Adept needs to recompile a fresh set of binary menu files.
Just delete the BIN files and Adept will automatically
recompile them.
Version 1.08a35 -
Version 1.08a36 -
The BBS will now
display the
security file
"ToLow.Asc".
The BBS will now
display the age
files "ToYoung.Asc"
and "ToOld.Asc".
Version 1.08a37 -
Version 1.08a38 -
Version 1.08a39 -
Added User option
to update LMR
Pointers.
Version 1.08a40 -
Switched to using
Betel's (1.08.xx)
DLL's.
Added line #908 to
"Language.Text",
Update your
LastRead Msg
Pointers?
Version 1.08a41 -
Added a Status
message to the
OffLine mail Import
function, how many
messages were
successfully
imported, and log
it in the
System\Line#.Log.
Version 1.08a42 -
Version 1.08a43 -
Added some code to
prevent files with
the same name from
being tagged for
download, (only the
first one will be
tagged).
Version 1.08a44 -
If AutoLogoff the
LMR's are
automatically
updated and the
system starts
logoff counter.
Version 1.08a45 -
Now tags only the
first file, and on
download will put
*EVERY* file that
matches into the
editable download
list.
Version 1.08a46 -
Version 1.08a47 -
Version 1.08a48 -
Extended the Binary
menus "PROMPT"
field from 128
chars to 512 chars.
Added "System
Started At" and
"System UpTime" on
the status screen.
Version 1.08a49 -
Added "Version
Number", "System
Boot Time" to the
Adept status
screen.
Made a change to
the user editor to
allow up to year
3000.
Version 1.08a50 -
Version 1.08aH1 -
Changed Alpha build
based version
numbering so that
all future builds
will end in H#
where # is the
build number
(Hagar).
The The BBS will
now display the
system Event file
"TimeAdjusted.Asc".
Version 1.08aH2 -
Version 1.08aH3 -
The BBS now looks
for
"LogIn#.Asc/Ans"
where # is the node
number.
The BBS now looks
for
"Welcome#.Asc/Ans"
where # is the node
number.
Version 1.08aH4 -
Replaced the 107f
REXX library with
Tower's code
Version 1.08aH5 -
Version 1.08aH6 -
Version 1.08aH7 -
Shutdown menu is
now disabled till
Adept has started
the OutBound
window.
Version 1.08aH8 -
Version 1.08aH9 -
Version 1.08aH10 -
Version 1.08aH11 -
Added the FTPName
field to the PM
File editor.
Version 1.08aH12 - Mar 17 1997
Changed Metas
"{A9","{AA" from 20
chars to 40 (for
UseNet address)
Version 1.08aH14 - Mar 21 1997
Added Adept Color
support
(Colors.Ctl)
ReEnabled the close
button.
Version 1.08aH15 - Mar 22 1997
Version 1.08aH16 - Mar 23 1997
Version 1.08aH17 - Mar 25 1997
Turned on *ALL*
optimization
options in the
Watcom compiler.
Version 1.08aH18 - Mar 27 1997
Version 1.08aH19 - Mar ?? 1997
Added limited
Squish message
bases support.
Version 1.08aH20 - Mar 30 1997
Adept will only
adjust users time
if the Event flag
"Force" is set.
Version 1.09.00 - Mar 31 1997
Changed Build
version numbering
(no longer
Alpha/Beta/Hagar)
Added support to
reply to *any*
message with a
netmail (e-mail).
Changed
"Language.Text"
line number #901 to
"[Str]NPOAR][.KMCL/\#DU=SW@!
X*~" (Added the *
and ~)
Version 1.09.01 - Mar 31 1997
Recompiled Rexx and
Adept from scratch.
Version 1.09.02 - Apr 1 1997
Added Menus 119,
120 - Read tagged
Areas.
Added Menus 121,
122 -
Quick/Detailed scan
of tagged areas.
Added Command line
switch "/NOSTAT"
(No Status Screen
on Startup)
Version 1.09.03 - Apr 2 1997
Version 1.09.04 - Apr 3 1997
Removed 1.07 binary
Event subsystem,
and replaced it
with Tower's
updated Event
system.
Version 1.09.05 - Apr 4 1997
Version 1.09.06 - Apr 6 1997
Events editor
working again.
Added code to force
IFConfig lo
127.0.0.1 loopback
when Adept starts.
Version 1.09.07 - Apr 6 1997
Recent Events now
logs Line 0 (local)
activity.
ΓòÉΓòÉΓòÉ 2.3.3. Chris Freeze's Releases ΓòÉΓòÉΓòÉ
AdeptXBBS CFreeze Releases:
Chris Freeze's (IRC "BETEL") VAC Releases: 1.08.0X (Uses 1.07
style ASC, ANS Menus)
Doug Kushner and I continued to lobby after the break up of
AdeptSoft and the Wizard team to get the source code to
AdeptXBBS released. After many months we finally were
given authorization to work with the AdeptXBBS 1.08 Alpha
source code. I continued to work with this code to iron
out the many bugs introduced in the Alpha series. The code
base of the 1.08Alpha series was highly unstable and I
found myself fixing more of the bugs introduced in the
Alpha series than fixing bugs left in the 1.07 base code.
Soon we were given the 1.07 base code to work with on a
conditional basis. Now what does all this mean?
Development on the 1.08Alpha code (1.08aXX) had been
stopped, and we have returned to the 1.07 base code. But
to stop as much of the confusion I have kept the version
number of 1.08, but changed it to 1.08.xx (where xx is the
build number).
Version 1.08.01 - Feb 15, 1997
Added the
AdeptPrint() Raw
meta fix back in.
Included a new
DLL, GenXL.DLL.
Version 1.08.02 - Feb 17, 1997
Added
DorInfo1.DEF drop
file support.
(\System\Line{LN\DorInfo.Def)
Version 1.08.03 - Feb 19, 1997
Added External
Editor Support
New Chat Server
"CServer.Exe"
Added MenuTypes
52,53, and 55
Added several
AdeptREXX Chat
Functions
Added support for
Remote SysOp's to
import local
files.
Added support for
Nathan William's
MenuManager
directly into
Adept.
Version 1.08.03f - Feb 22, 1997
The latest
version of
AdeptXBBS to be
released. It is
not a full
release so you
must load 1.07f,
then upgrade to
the 108 series
before loading
this. It has
been reworked by
Chris Freeze
(Betel) and Mario
Dulisse (_Hagar_)
and recompiled by
Betel using the
IBM VAC compiler.
This should be
extremely stable,
and most
functions that
have been
documented should
work correctly.
This version has
been quite stable
so far.
Version 1.08.04 - Mar 14, 1997
.Added line #908
to
"Language.Text",
Update your
LastRead Msg
Pointers?
Added
FPassChng.ASC
(When forcing an
user to change
their password.)
Added BadAge.ASC
(When failing the
too young or too
old BBS
settings.)
Added
TooYoung.ASC
(When Users are
older than the
BBS MinAge
setting.)
Added TooOld.ASC
(When Users are
older than the
BBS MaxAge
setting.)
"Adept.Wav" is
now played during
startup.
Removed the
Minimize option
on all menus.
Removed the PM
Shutdown button.
Added more stats
to the Status
Window.
Valid dates can
now go to the
year 3000.
Added FTP
directory name
"FTPNAME".
ΓòÉΓòÉΓòÉ 2.4. Copyright Information ΓòÉΓòÉΓòÉ
Copyright Information:
AdeptXBBS and it's support programs are not to be modified or
distributed in modified form without the express written permission
of AdeptSoft.
AdeptSoft, AdeptXBBS, GateKeeper and are trademarks of AdeptSoft.
"XBBS" Copyright (c) 1988 - 1994 by M. Kimes. The "XBBS" name is a
Trademark of M. Kimes.
AdeptSoft holds an exclusive license to develop and distribute
shareware and commercial versions of the XBBS-OS/2 BBS program by M.
Kimes.
All support programs Copyright 1993-96 AdeptSoft, except where
otherwise noted. All other trademarks and copyrights belong to their
respective owners.
Disclaimer
There is no warranty, period. Even if there was, we are NOT
responsible for its actions. If the mailer dials Iraq and sits on
the line for hours, AT&T will be very happy with you. If the BBS
hiccups and all of a sudden you have 3 Gigs of free disk space when
you originally had 5 Megs free, consider yourself lucky for having a
large hard drive. i.e. We cannot take responsibility for what this
program does. We have tried in well over a year of beta testing to
remove as many of the bugs as possible and it has not to our
knowledge done either of the above things, but who knows.
3rd Party Developers
If you are looking to develop a door game for OS/2 BBS's please
contact us. Or if you are looking at writing a AdeptXBBS specific
module.
We include in this archive v0.99 of our File System .DLL's with basic
documentation, including examples of how to make use of the AdeptXBBS
File System. ALL the functions in the fSys DLL's are also duplicated
in the latest revision of the REXX engine.
Acknowledgments
All the people acknowledge below in some way or another contributed
to this program. I tried to remember everyone I could and I am sure
I missed a few. If you feel your name should be here please contact
us and we will add it. Thanks to everyone who have helped me out
over the last year a half, helped beta test this program and
contributed ideas and suggestions. And thanks to those who remained
the programs biggest critics, yet at the same time it's greatest
supporters.
Special thanks to Mark Kimes.
Stefan Andersson Scott Baldwin Kimberly Bobrow Vince Coen
Vicci Conway Mario Dulisse Brady Flowers Chris Griffin
Mike Hammers Rich Hawley Jason Klank Koen Koster
Joe Lemere Scott Livingston Paul Lockley Andrew Lozier
Pam Lunsford Eddy Matthews Barry Mcmenomy Julie Niesen
Eric Miller Fred Miller Steve Mohacey David Moskowitz
Pete Norloff Jim Mullins Jason Perlow Dan Polivy
David Prentice Ronen Raz Graham Reid Kevin Royalty
Bill Schaeffer Jason Schuster Horace Skinner Joey Snell
Brian Snyder Brent Pranger Mark Wheeler Scott Wilkos
ΓòÉΓòÉΓòÉ 2.5. AdeptXBBS is Freeware ΓòÉΓòÉΓòÉ
Adept is "Freeware" (April 20, 1996)
The developers of AdeptXBBS have made the difficult decision to stop
selling AdeptXBBS. On April 30, 1996 our underlying license with
Mark Kimes will lapse and we will no longer have the right to sell
AdeptXBBS. We have decided that if we can't sell AdeptXBBS, we will
give it away.
AdeptSoft of Boca Raton, Florida today announced the "Freeware"
release of AdeptXBBS with AdeptREXX.
In the near future, AdeptSoft will release limited source code to the
public domain to enable 3rd party developers to expand the
functionality of AdeptXBBS. AdeptSoft will continue to hold the
copyright to AdeptXBBS.
AdeptSoft will periodically release new versions of the Freeware
product to fix known bugs.
AdeptSoft will discontinue its official online support concurrent
with the freeware release. The AdeptSoft Support BBS
(bbs.adeptsoft.com) will close on April 30th.
A 16 node freeware version will be released on public FTP sites.
This version will be fully functional. 'AdeptXBBS' Internet module
will be released as Demoware. This module is in the process of being
rewritten and the completed Internet module will be distributed at no
cost to registered sysops. The Internet Module will be made
available for sale to non-registered sysops.
It is our hope that a Freeware product will find a "market" that the
shareware product was unable to establish.
The developers of AdeptXBBS wish to thank the users, both registered
and unregistered, who have helped and supported us through the
development and launch of AdeptXBBS. Developing AdeptXBBS has been a
labor of love of over 6 man years. We wish that our "baby" had found
more homes but AdeptXBBS has been on artificial support for 12 of the
last 15 months. We are no longer in the position to devote our lives
to developing a product that cannot support itself in the
marketplace. We would have gladly continued if it weren't for the
stark reality of underlying license agreements, license payments,
computer costs, Internet lines, telephone costs, etc.
John Morris, Gordon Zeglinski and John Lawlor
ΓòÉΓòÉΓòÉ 2.6. AdeptXBBS's Wizards ΓòÉΓòÉΓòÉ
Announcing the Wizards of Adept (1.06 README.NOW file)
Boca Raton, Florida - December 24, 1995
AdeptSoft today announced the formation of The Wizards of Adept, an
independent AdeptXBBS Sysop group led by Julie Strietelmeier, head of
AdeptXBBS Tech Support.
John Morris, Senior VP, Software Engineering continued, "In a world
of FidoNet 'standards' that are seldom 'standard', the Wizards will
also provide an independent point of view to establish which feature
requests are necessary to be added to AdeptXBBS."
"The Wizards were formed as a way of creating better communication
with AdeptXBBS Sysops. By validating bugs and evaluating FidoNet
feature requests, the Wizards bring a strong Sysop perspective to
decisions that are traditionally left completely to a product's
developers. The result will be a company that is responsive to the
industry needs, not just to the 'squeeky wheels' that shout loudly
when their personal 'feature' is not supported," added John Lawlor,
CEO of AdeptSoft. "The Wizards have been instructed to 'kick us in
the backside' if they feel that we are not listening."
Who are the individual Wizards?
Julie Strietelmeier head of AdeptXBBS Tech Support
Koen Koster independent AdeptXBBS Sysop
Doug Kushner independent AdeptXBBS Sysop
Bill Seward independent AdeptXBBS Sysop
Chris Freeze independent AdeptXBBS Sysop
The Wizard group is closed and there will be no additions in the
foreseeable future. The Wizards are paid a commission on new
sales - they are rewarded for helping to make the product better
and more stable.
Why were these people chosen?
Julie Strietelmeier is an active and vocal AdeptXBBS Sysop
in addition to being our head of AdeptXBBS Tech Support.
The other Wizards are long time Sysops and valued Beta
testers. Each has consistently provided excellent feedback
and shown long term interest that has helped us to improve
the product.
How to communicate with the Wizards?
All tech support questions and communications will continue
to be handled by Julie Strietelmeier
(support@adeptsoft.com).
The other Wizards will continue to participate in the echos
and IRC at their own discretion but will not be answering
questions to tech support.
Tech Support questions will be continue to be answered by
Julie.
Julie Strietelmeier emphasized that "The only way to ensure that a
bug gets the treatment that it deserves is to fill_out_a _bug-report_
completely and e-mail it to julies@adeptsoft.com.
The Wizards provide excellent support. Seek them out.
Contacting AdeptSoft:
FTP ftp.adeptsoft.com
WWW WWW.adeptsoft.com
ΓòÉΓòÉΓòÉ 3. Installation ΓòÉΓòÉΓòÉ
Installing AdeptXBBS:
First Time Install:
Create a directory called "Adept" at the root of your hard
drive. Remember that this has to be an HPFS formatted drive.
Copy the "Adept.Zip" file into a temporary directory. Unzip
this file with PkUnzip or OS/2's Info-Zip. If you don't have
Info-Zip, it can be downloaded or FTP'd from many locations
including the support FTP site at "ftp.adeptsoft.com".
Run the installation program, "Install.Cmd" from your temporary
subdirectory. Choose the "Install a full copy of AdeptXBBS"
from the menu.
After the install program runs you can click on the AdeptXBBS
icon in the new AdeptSoft folder that has been created on your
Desktop. All setup options will be available from the "Config"
and "Edit" pull down menus.
One of the first things that you want to do with your new bbs is
to configure the Com-Ports that your BBS will use. To do this,
click on the "Config->Active Line->General Setting" pull down
menu and fill in the Com Port field.
Upgrading From Previous Versions:
Note: It is always best to backup your existing BBS software Before you
install a new version.
Copy the archive file to a temporary directory and unzip it.
Run the "Install.Cmd" file and chose the Upgrade a Previous
Version of AdeptXBBS. Be sure to pay particular attention when
the program asks you if you want to install the default menus.
If you answer "YES", it will overwrite any customizing that you
may have done to files in the "\Adept\Text" and "\Adept\Menus"
directories. You will also want to back up your "Language.Text"
file if you have made any modifications to it.
ΓòÉΓòÉΓòÉ 3.1. Command Line Parameters ΓòÉΓòÉΓòÉ
Command Line Options:
Note: All command line options should be proceeded by a '/' or '-', you
can mix and match the two.
/NODES ## This specifies the number of nodes to bring
on-line.
/NOINIT ## This specifies a node number not to initialize
on startup. This can be repeated as many times
as you want in the command line. This option
is great for if you want to bring all the
nodes on-line, but are using one of the com
ports, so you can specifically tell the
BBS/Mailer not to try to access that port
until you want it to.
/SETUP Will bring the software up in Setup mode. It
will not try to access any com ports. This is
like using /NOINIT for all nodes.
/VERSION Will display the current version information.
/HELP or /? Will display a help dialog with commands and
our contact information.
/NOHELP Turns off the loading of the PM help
subsystem.
/NOEXCEPT Run Adept without exception handling.
/DONTSTARTCHAT Don't start up the chat server.
/DONTSLAM Start up nodes in a slow manner to keep the
CPU from being hit hard.
/SHOWEMSI Will enables a verbose logging of EMSI
handshaking for debugging purposes only.
/FTP Starts the Adept FTP server. (1.08.?x)
/NOUPGRADE Startup AdeptXBBS without upgrading the system
directories and files to the new 1.08aX
formats. (1.08.ax)
/NOSTAT Startup AdeptXBBS without displaying the BBS
Status Window. (1.09.02)
ΓòÉΓòÉΓòÉ 3.2. Environment Variables ΓòÉΓòÉΓòÉ
Environment Variables:
XMSG Changes the default message base location from
"X:\Adept\Message_Bases" to whatever you
specify.
Example: "SET XMSG=H:\Adept\MsgBases"
XXMSG Tells uNuke to also search these directories
(plural is okay) for more "*.LMR" files.
Separate multiple directories with semicolons.
Example: "SET XXMSG=H:\Adept\Messages;M:\Message_Bases;"
XPATH Used by many third party utilities to find
AdeptXBBS files. Separate multiple
directories with semicolons.
XOUTBOUND Tells AdeptXBBS and many third party utilities
where the outbound directory is.
XNODELIST Tells AdeptXBBS and many third party utilities
where the nodelist directory is.
XTEXT Tells AdeptXBBS where the text file directory
is.
XMENU Tells AdeptXBBS where the menu directory is.
ΓòÉΓòÉΓòÉ 3.3. Converting to Adept ΓòÉΓòÉΓòÉ
Converting from other BBS programs:
Conversion programs included with AdeptXBBS.
\Adept\Convert\Mxtoadp.zip Maximus User Conversion Utility
\Adept\Convert\Ratoadp.zip Remote Access User Conversion Utility
\Adept\Convert\Wc2adpt.zip WildCatPro User Conversion Utility
ΓòÉΓòÉΓòÉ 3.4. Multilingual Support ΓòÉΓòÉΓòÉ
AdeptXBBS Multi Language Support:
The AdeptXBBS software includes Multi-Lingual support. The Languages
file is the configuration file for the multilingual support. The
languages file has three fields delimited by a comma. The first
parameter is the name of the language, the second is the Identifier
for the language and the third is the root directory in which that
language resides. You can have up to 36 languages. If the need
arises we can expand this number, but in order to assure that the
mailer is still operational on all levels we decided to limit it to
the keys 1-0 and A - Z. The following is a example 'Languages' file.
-- BEGIN: 'Languages' file ---
English ,ENG,D:\Adept\
French ,FRN,D:\Adept\French\
Spanish ,SPN,D:\Adept\Spanish\
Finish ,FIN,D:\Adept\Finish\
-- END: 'Languages' file ---
If the user chooses French the BBS will look in the following
directories for the language support files:
\Adept\French\System
\Adept\French\Menus
\Adept\French\Text
You should place all the files that you would normally put in the
"\Adept\System, \Adept\Menus and \Adept\Text" sub-directory in the
language directories corresponding to the language they refer to. If
a user chooses a language and the BBS cannot find the Language.text
file in the "\Adept\Languagename\System" sub-directory it will
default to the "Language.Text" in the "\Adept\System" directory.
Note: Language.text - Contains some clues on how to edit the
Language.Text file.
ΓòÉΓòÉΓòÉ 3.5. CD-Rom Support ΓòÉΓòÉΓòÉ
AdeptXBBS CD-ROM & Multi-Changer CD-ROM Support:
AdeptXBBS has built in support for CD-ROM drives. As users select
files they wish to download, a special file queue automatically takes
the needed files from the CD-ROMS, places them in a temp directory,
for you to download. This is all done in the background and will
prevent the constant disk swapping that sometimes occurs on Multi-CD
Rom changers especially when 2-5 users all want different files from
different drives. The area or file should be marked for 'Copy from
Drive' in order to activate this feature.
Note: When listing files from inside Adept on a large system when a
user does a "[S]earch" or "[W]ide area search" or more commonly when
the caller accidentally chooses "Continuous display", they can abort
the scan by pressing "Ctrl-K" or "Ctrl-S". "p.
ΓòÉΓòÉΓòÉ 4. Configuring Adept ΓòÉΓòÉΓòÉ
General Settings:
Accessed from: Config->Active Line->General Settings...
v - Drops DTR
^ - Raises DTR
~ - 1 Second Delay
` - 1/10th of a Second
| - Carriage Return
\\ - Escape Character
Answer This is the string to send
to the modem to make it
answer the phone when a
call comes in.
Init This is the string
transmitted to the modem to
initialize it. AdeptXBBS
will not work properly if
the modem is set to Auto
Answer.
Dial Prefix Dialing prefix, this is the
string to send to the modem
to dial a number.
Dial Suffix Dialing suffix, this is the
string to send to the modem
to finish a dialing
sequence.
Port Name This can be a Com port or a
named pipe. AdeptXBBS will
work with any valid
communications serial port
and or named pipe.
Answer on Ring This is the number of rings
to answer the modem on. You
can choose any number. If
there is a 10-15 second
delay between rings
AdeptXBBS will reset the
counter.
Ring Response This is the 'RING'
statement to look for from
the modem. For example if
you have distinctive ring
you can have the BBS look
for 'RING1' instead of
'RING'
Initial BPS This is the initial baud
rate to initialize the
modem at.
Min BPS Minimum BPS to allow users
to connect at.
Min Mail BPS Minimum BPS to allow mail
sessions.
Min Call BPS Minimum BPS to initiate a
mail session.
Max Call BPS Maximum BPS to initiate a
mail session.
Locked Check this box to lock the
port at the initial BPS.
Logon Security... This will bring up a dialog
of Security settings a user
must meet in order to be
allowed on this node.
Fax Setup... This will bring up a dialog
of Fax Modem settings for
that node.
Use Internet Timers This option tells the
Mailer/BBS to use a
completely different set of
timing sequences for Telnet
and VMODEM sessions.
No Carrier Detection This option is used if you
are configuring this node
to be an internet node for
your BBS. If people will be
telneting into it instead
of dialing into it, use
this option.
Use Socket Port This option should be used
if you are using this node
as an internet node for
people to telnet into. If
you are using VMODEM for
this node, do not check
this box.
Use Telnet Port This option should be used
if you are using this node
as an internet node for
people to telnet into. If
you are using VMODEM for
this node, do not check
this box.
ATO on Data This option is recommended
if you are using AdeptXBBS
to send/receive faxes with
a modem other than a CLASS
2 fax modem.
Testing Your AdeptXBBS setup using Named Pipes:
If you would like to test your configuration of Adept, but do not
have another modem or phone line to call in to your own system, you
can use NAMED PIPES. To do this, you'll need a terminal program that
supports this. One such program is LiveWire. Other term programs
probably support this, but I don't know of any others at this time.
To set this up, do the following steps in Adept:
Select line x
Config
Active line
General Settings
Port Name ( Type in: \Pipe\AnyNameYouWant)
Initial BPS (57600 or whatever)
Okay
Shutdown
The "\Pipe\AnyNameYouWant" establishes the communications channel but
at this point it is open ended. Now the communications package must
be configured to provide the other end. Instead of selecting a
normal COM port select Pipe and duplicate the Pipe_name entry from
the BBS setup in the Pipe name under LiveWire. Make sure you type in
the entire entry as you did in Adept (\Pipe\AnyNameYouWant). After
you do this, you should see yourself logged on your BBS.
Note: DOS doors will not work while connected via a Pipe. Most OS/2
doors should though.
ΓòÉΓòÉΓòÉ 4.1. Fax Modem Setup ΓòÉΓòÉΓòÉ
Fax Setup:
Accessed from: Config->Active Line->General Settings->Fax Setup...
First you need to have the following 3rd party programs:
BGFAX (BGFAX150.ARJ)
Ray Gwinn's SIO Drivers (SIO160.ZIP)
Both of these programs can be found from the same places
you download or FTP other OS/2 shareware.
Modify your Config.SYS:
REM **** Directory where BGFAX is installed.
SET BGFAX=X:\BBSFAX
REM **** Log extra info about what BGFAX does.
SET FAX=DEBUG
REM **** SIO Drivers - Adjust for your Ports / IRQ's
DEVICE=X:\SIO\SIO.SYS (COM2:57600,02F8,3,-) (COM3:57600,03E8,5,-)
DEVICE=X:\SIO\VSIO.SYS
REM ****
Modify AdeptXBBS modem Init's as in the following 3
examples using different modems under Adept:
1. Hayes Optima 288 V34 (COM2):
Answer: AT+FAE=1;A| (Adaptive answering for
Class-1 Modems)
Init: ATH0|~AT+FCLASS=1|~AT&C1&D2S95=43|
Dial: AT+FCLASS=0DT
Modify or create: "X:\Adept\Fax1.CMD" has the
following: (Fax1.CMD)
REM **** Fax1.CMD for Node 1 - Hayes Optima V34 - Locked 57600
SU LOCK 0
X:\BBSFax\BGFax2.EXE /FHAY:965_252_1974 X:\FAXWORKS h%1 q
SU LOCK 57600
REM **** End Fax1.CMD
2. Class 2.0 USRobotics Courier V.Everything (COM4)
Make sure the following three items are true before
proceeding...
a. Your modem is not set to "Auto Answer" mode
(Register S0 must equal 0)
b. DIP switch #5 is in the "Suppress Auto Answer"
position.
c. You have already put all relevant DATA commands
for the BBS into NVRAM.
Note: Generally fax (AT+F) commands CANNOT be stored
in NVRAM.
From the Adept main window: Config->Active
Line->General Settings make the following entries in
the fields indicated:
Answer: AT+FAA=1;A|~AT+FNR=1,1,1,1|
Init: v~~~ATZ|AT=FCLASS=2.0|~AT+FLI="301
808 1099"|
Dial Prefix: AT+FCLASS=0DT
Dial Suffix: |
Answer on Ring: 2
RING Response: RING
Note: "ATO on Data" should NOT be checked.
Modify or create: "X:\Adept\Fax2.CMD has the
following: (Fax2.CMD)
REM **** Fax2.CMD for Node 1 - USR Courier V.Everything - Locked 115200
X:\BBSFax\BGFax2.EXE /FCO:04 X:\FAXWORKS h%1 F
REM **** End Fax2.CMD
If you have trouble receiving Faxes, you may need to
adjust the /FCO:nn value to maybe /FCO:02 or /FCO:08
depending on your computer speed.
X:\FAXWorks is the directory that the Faxes will be
received in. If you have FaxWorks on your system,
FaxWorks will perform any of its operations on this
received Fax file as if it had been received by
FaxWorks.
Note: The "FAXTYPE" parameter, "F" above, is set in
this case to receive Faxes in TIFF Class F format
which is compatible with FaxWorks for OS/2. - See
the BGFAX documentation for further information and
options.
Information:
+FCLASS=0DT Enables data mode operation on
outgoing calls
+FCLASS=2.0 Enables FAX mode operation
+FLI="123 346 7890" Sets your FAX ID (up to 20
characters)
+FNR=1,1,1,1 Tells modem to let BGFAX know
connect speed, etc.
If you make use of any of the special dial strings in
Config->Active Line->Dial Strings, they too must start
with "AT+FCLASS=0" followed by any Special modem
commands, then followed by the "DT" dial command. The
suffix can remain "|".
Note: After making the changes you will need to do a
"ShutDown" of ADEPT.
3. Class 2 type modems: (Supra v.32bis, PPI, ZOOM, ect.)
Answer: ata|
Init: v~^~atz|
v~^~at+fcr=1;+fdcc=1,3,0,2,0,0,0,0|
v~^~at+faa=1;+flid="512 926 5152"|
DialPref: v~^~ATDT
DialSuf: |
Note: Do Not check> "ATO"....!
Modify or create the following: X:\Adept\Fax1.CMD has
the following: (Fax1.CMD)
REM **** Fax1.CMD for a Class 2 type modem - Locked 38400
SU 2 LOCK 0
BGFAX2 /FAX X:\FAXWORKS h%1 z - or -
BGFAX2 /FAX X:\BGFAX h%1 f
SU 2 LOCK 38400
REM **** End Fax1.CMD
Information:
+fcr=1 Enables fax reception (Not
required for CLASS 2.0)
+flid="713 555 1212" Sets your FAX ID, up to 20
characters
+fli="713 555 1212" For a CLASS 2.0 modem
+fdcc=1,5,0,2,0,0,0,0 Enable high resolution,
14400, 1D compression
+fdcc=1,3,0,2,0,0,0,0 Enable high resolution,
9600, 1D compression
+fdcc=1,5,0,2,1,0,0,0 Enable high res, 14400, 1D
and 2D compression
Note: Do not attempt to give a 9600 maximum speed
Send/Receive "Fax Modem" the "+fdcc=1,5" string, as it
will cause unpredictable results.
ΓòÉΓòÉΓòÉ 4.2. Dial Strings Setup ΓòÉΓòÉΓòÉ
Dial Strings:
Accessed from: Config->Active Line->Dial Strings...
v Drops DTR
^ Raises DTR
~ 1 Second Delay
` 1/10th of a Second
| Carriage Return
\\ Escape Character
ΓòÉΓòÉΓòÉ 4.3. CPU Priorities Setup ΓòÉΓòÉΓòÉ
CPU Priorities:
Accessed from: Config->Active Line->CPU Priorities...
CPU priorities determine how much CPU time certain functions of
the BBS are given.
OS/2 uses two numbers in every priority setting. The first
number is the priority class. The first slider corresponds to
the priority class setting.
There are four different classes:
(Idle Time) The function will only get CPU time if the
rest of the system is idle.
(Regular) The function gets the system default
priority. A majority of functions receive
this priority class.
(Time Critical) This is the highest possible priority, and
any function set to this priority will get
CPU time before functions set at any other
priority. This setting should rarely be
used.
(Fixed High) This priority level fits in between class 2
and class 3. It should be used where it is
desirable that the function not be too
sensitive to OS/2's dynamic priority
variation.
The second number is the level for the class you set. The second
slider corresponds to the level setting.
There are 32 possible priority levels, 0 to 31.
Recommended Levels. Most functions should be set to the Regular
priority class. Most functions should have a level from 0 to 25.
Communications functions should have a priority level between 26
and 31.
By default, Adept uses the regular priority class at a level of
0 or 1 for most functions. When sending and receiving files
Adept has a default of fixed-high class, and a level of 2.
These function priorities have been found to use very little CPU
time, and Adept should barely touch your CPU under normal
circumstances.
Feel free to experiment with CPU priorities to find the perfect
settings for your system.
ΓòÉΓòÉΓòÉ 4.4. User Window Interface ΓòÉΓòÉΓòÉ
Edit User Window Interface:
Accessed from: Pressing right mouse button on user window.
ΓòÉΓòÉΓòÉ 4.5. File Areas ΓòÉΓòÉΓòÉ
Configuring the File Areas:
Accessed from: Edit->File Areas...
Currently Adept has support for up to 10240 File
areas.
Name Place the name of
the file area in
this field.
# (number) Place the File Area
number for the
selected file area
in this field.
Desc This is where you
can place the
description of the
file area.
Addr This field is not
yet currently used,
but will be used
for internal TIC
processing at some
point.
DL Path This is the default
path for files in
the current area.
UL Path This is the default
path for uploads to
the current area.
UL Time Bk This is for Upload
Time Back.
FTP Name This is the FTP
Name. (1.08.?x)
Free Downloads Check this box to
make all downloads
free in this area.
No Uploads Check this box to
turn upload off for
this area.
No Downloads Turn off downloads
for this area.
Down Back Give back the users
download time.
Up Back Give back the users
upload time.
Charge for Files This is not fully
implemented but you
will be able to
assign a cost on a
per file basis to
be taken from the
users credit.
ULs Not Listable Uploads will not
show up in file
listing.
ULs Not Downloadable Enabling this will
make new uploads
non-downloadable.
No File List Check this box to
disable the file
list for this area.
Common File List Default
Upload Blindly If the user has
Zmodem, Ymodem or
Sealink chosen it
will let them
upload the files
before asking them
for a description.
Copy From Drive Copy files from
download path.
(This is useful for
CD-Rom areas).
No New File Scan When this is
checked, this file
area will not be
included in a new
file scan. (Useful
for large CD-Rom
file areas).
ΓòÉΓòÉΓòÉ 4.5.1. File Area Security ΓòÉΓòÉΓòÉ
Configuring File Area Security:
Accessed from: Edit->File Areas->File Area Security...
Password Password required to
upload a file into this
area.
Age Minimum age required to
upload or download in
area.
Download Security: Sec Level 1 & Sec Level
2
Set security level #1 &
#2 to the minimum
security level required
to Download from the
current area. Mark the
flags you will require
the user to have in
order to download files
in this area. Both the
flags and the security
levels must pass in
order to download files.
Upload Security: Sec Level 1 & Sec Level
2
Set security level #1 &
#2 to the minimum
security level required
to upload from the
current area. Mark the
flags you will require
the user to have in
order to upload files in
this area. Both the
flags and the security
levels must pass in
order to upload files.
SysOp Security: Sec Level 1 & Sec Level
2
Set security level #1 &
#2 to the minimum
security level required
to gain access to the
sysop functions in the
current area. Mark the
flags you will require
the user to have in
order to gain access to
the sysop functions in
this area. Both the
flags and the security
levels must pass in
order to use the sysop
functions.
Note: SysOp functions in the file area are not
completely finished. But will include such
options as:
- Set file costs.
- Set Download paths.
- Set file passwords.
- Set individual file security levels and flags.
ΓòÉΓòÉΓòÉ 4.6. Message Areas ΓòÉΓòÉΓòÉ
Configuring the Message Areas:
Accessed from: Edit->Message Areas...
Currently Adept has support for up to 10240
Message areas.
Name Place the name of
the message area in
this field.
# (number) Place the number
for the selected
message area in
this field.
Desc This is where you
can place the
description of the
message area.
Addr FidoNet Address for
this area. 5D
style.
Origin Origin line to use
for this message
area (eg: The
Fret Board BBS)
Force To Name to force all
messages in this
area to.
Usenet Tag Usenet conference
name for this area
to. (1.08.?x)
Path Path to message
base files (if not
using the default
X:\Adept\Message_Bases).
Msg Time Back Give the user the
time amount back
for posting a
message.
EchoMail Check this if this
is a FidoNet
EchoMail Area
NetMail Check this if this
is a FidoNet
NetMail Area
UseNet Check this if this
is a UseNet
Newsgroup
Internet E-Mail Check this is this
is a Internet
E-mail Area
(GroupMail)
Force Public Force All Messages
Public
Force Private Force All Messages
Private
Note: Check Force
Public and Force
Private to give the
user a choice.
Allow Anonymous Msgs Allow anonymous
messages
No Origin Lines Don't add a Origin
and tear line to
messages
Compression Turn on the fly
compression on.
ANSI Color Required User requires ANSI
color to read this
area.
Macros in Text Allow Adept META
Commands in the
text.
Require Real Name Require the users
real name, or else
uses their handle.
Assoc. w/ File Area Associated with a
file area.
Force to Same Name For To: forcing to
same name.
ΓòÉΓòÉΓòÉ 4.6.1. Message Area Security ΓòÉΓòÉΓòÉ
Configuring Message Area Security:
Accessed from: Edit->Message Areas->Message Area Security...
Password Password required to
enter a message into
this area.
Age Minimum age required to
post or read messages in
area.
Read Security: Sec Level 1 & Sec Level
2
Set security level #1 &
#2 to the minimum
security level required
to read messages in the
current area. Mark the
flags you will require
the user to have in
order to read messages
in this area. Both the
flags and the security
levels must pass in
order to read messages.
Write Security: Sec Level 1 & Sec Level
2
Set security level #1 &
#2 to the minimum
security level required
to write messages in the
current area. Mark the
flags you will require
the user to have in
order to write messages
in this area. Both the
flags and the security
levels must pass in
order to write messages.
SysOp Security: Sec Level 1 & Sec Level
2
Set security level #1 &
#2 to the minimum
security level required
to gain access to the
sysop functions in the
current area. Mark the
flags you will require
the user to have in
order to gain access to
the sysop functions in
this area. Both the
flags and the security
levels must pass in
order to use the sysop
functions.
ΓòÉΓòÉΓòÉ 4.7. Configuring Users ΓòÉΓòÉΓòÉ
Configuring Users:
Accessed from: Edit->Users...
Name The name of the user you
are currently viewing.
Handle The Handle, or Alias of
the user.
Address User's Address, line 1.
Address 2 User's Address, line 2.
Address 3 User's Address, line 3.
City New user's City name.
State User's State mnemonic.
ZipCode User's ZipCode.
Gender User's gender, male or
female.
Birthdate User's Date Of Birth.
Home Number User's Home Phone
Number.
Data Number User's Data Phone
Number.
Work Number User's Work Phone
Number.
Fax Number User's Fax Phone Number.
Time Used Today Time that the user has
been online today.
Bank Time The amount of time the
user has in the
TimeBank.
Time Per Day The maximum amount of
time that the user is
allowed to stay online
each day.
Time Per Call The maximum amount of
time that the user is
allowed to stay online
each call.
Inactivity Timeout The maximum amount of
time that the user is
allowed to be idle
before Adept logs them
off. By default, this
is 0 ( 5 mins).
Time Used Today The amount of time that
the user used on their
last call.
Interests The user's Interests as
they filled out when
logging on (if you have
set it up to do so).
Comment The SysOp's comment
about the user.
Computer The Type of computer the
user has. The number
refers to the line in
the file "Computers" in
the "X:\Adept\System\"
directory.
User ID The numerical UserID of
the user.
Point ID The Fidonet Technology
Network (FTN) Point of
the user. It is used as
a point off of your
system for downloading
and uploading mail.
Credit The amount of credit (in
cents) left for the
user. Credit is used
when sending Netmail and
at other times.
Max Bank Time The maximum amount of
time the user can have
in the TimeBank.
Group The Security Group the
User belongs to.
Password The user's Password. It
is BLANK because of
Adept-XBBS' security
features. Once a user
has entered a password,
there is NO way to find
it out. Entering a new
password here will
overwrite the old one.
Note: User info is Not saved until you select
"Save".
ΓòÉΓòÉΓòÉ 4.8. User Groups ΓòÉΓòÉΓòÉ
Configuring User Groups:
Accessed from: Edit->User Groups...
Name Name of Group
Number Number of Group
Password Password for Group
Max U/L K Per Day Maximum Kbytes that a
user can upload per day
if they belong to this
group.
Max D/L K Per Day Maximum Kbytes that a
user can download per
day if they belong to
this group.
Ratio Credit Gives you the ability to
give users with this
group level a credit of
bytes or files.
D/L to U/L Ratio This is a ratio of X to
1 in files or bytes that
is given to a user with
this group. The Ratio
on Bytes option
determines if this ratio
is per bytes or files.
Ratio On Bytes Select this option if
you want the ratio to be
on Kbytes instead of
files.
Mins. Per Day How many minutes per day
that a user in this
group is allowed.
Mins. Per Call How many minutes per
call that a user in this
group is allowed.
Max Time Bank The maximum amount of
minutes that a user is
allowed in the time
bank.
Days Before Number of days before
user is expired to
another group level. Set
to 0 if you don't want
to use this option.
Expire to Group # Group level number to
expire to. Set to 0 if
you don't want to use
this option.
Flags Overwrite Check this box if you
want the info in the
group setup to overwrite
the defaults.
Security Overwrite Check this box if you
want the info in the
group setup to overwrite
the defaults.
Time Overwrite Check this box if you
want the info in the
group setup to overwrite
the defaults.
Sec Level 1 Security Level #1 for
this group.
Sec Level 2 Security Level #2 for
this group.
Flags1 Set the flags that this
group level has.
Flags2 Set the flags that this
group level has.
ΓòÉΓòÉΓòÉ 4.8.1. Setting Ratios (Ul/Dd) ΓòÉΓòÉΓòÉ
Configuring User Group UpLoad/DownLoad Ratios:
Setting up ratios:
File ratios work in one of two ways - Either works as a per
byte ratio or a per file ratio, but not both at once.
For ratios to work, the user must be in a user group.
Second, the group must have a ratio set. (ie. it must be
non-zer0...)
Once you have that set, you can give the user a 'ratio
credit'. In other words, the SysOp can start the user out
with something other than 0 uploaded bytes (or files). For
instance, if the SysOp used a byte ratio (byte ratio is in
K-bytes) The SysOp could give the user a ratio credit of
say, 500 (or 500Kb) and that would count as 500Kb uploaded
by the user. This helps them get past the first few file
transfers.
Lets say the user had a record that looked like the
following, the SysOp has set up a per file ratio or 10
Downloads to 1 Upload, and the user has entered a single
filename at the prompt.
Example 1:
User: UL=0 files DL=5 files
Group: Ratio=10 (or 10 to 1) Credit=0
In this case, Adept will add 1 to the DL (to check the
ratio as if they were going to download the file). The DL
number is then divided by the upload number (to avoid
division by 0, the smallest number of uploads for the
calculation will be 1). So in this case, the users download
ratio would be 6 to 1.. which meets the 10 to 1 criteria,
and the file is added to the download list.
Example 2:
User: UL=4 files DL=43 files
Group: Ratio=10 Credit=0
User enters a filename, Adept adds 1 to the DL number..
which becomes 44 for the ratio calculation. The ratio
calculation would be 44/4 this yields 11 which is invalid,
it exceeds the 10 to 1 ratio, and the user will not be able
to add the file to the download list.
Example 3:
User: UL=2 files DL=51 files
Group: Ratio=8 Credit=5
User enters filename, Adept adds 1.. 52 files.. user has
uploaded 2 files plus has a credit of 5.. 7 ULs.. 52/7 = 7
Or 7 to 1 which passes the 8 to 1 ratio test.
Note: The same numbers will work for byte ratios. Just
make the numbers a wee bit larger. But the calculations
are exactly the same. Ratios are always in effect if they
are turned on in a user group. They aren't temporarily off
until a set amount is exceeded.
ΓòÉΓòÉΓòÉ 4.9. Mailer Setup ΓòÉΓòÉΓòÉ
Configuring Line Specific Mailer Settings:
Accessed from: Config->Active Line->Mailer Settings...
Phone # Phone number to be
displayed during a
EMSI session.
BPS Rate This is the Maximum
BPS rate, it is
displayed during a
EMSI session.
Flags These are the flags
for your system
passed during a
EMSI session.
No Mailer Turns the Mailer
On/Off (enabled for
Off)
Version 7 Nodelist Tells XBBS to use a
version 7 Nodelist,
XBBS also supports
a version 6
Nodelist.
Call collision detection Detect call
collision.
Mail Proc. Cmd This is the
filename to run for
mail processing.
Mx. Mail K Maximum size of
mail in K to send
from this node.
This is also used
to set the maximum
K that someone can
FREQ from this
node.
Mx. Mail Secs Time limit is
seconds to
disconnect a
stalled transfer.
Mx. Resyncs Maximum number of
transfer resyncs
before aborting a
transfer
Mx. Xfer Errs Maximum number of
transfer errors
before the mailer
aborts the session
Recv. From unknown Tells XBBS it's Ok
to receive mail
from unlisted
nodes.
Send to unknown Tells XBBS it's Ok
to send mail to
unlisted nodes.
ΓòÉΓòÉΓòÉ 4.10. Address Setup ΓòÉΓòÉΓòÉ
Configuring Mailer Address Settings:
Accessed from: Config->Active Line->Mailer Addresses...
Used to input all your net addresses. You can
also manually edit the file this screen creates
which is the "X:\Adept\System\Addresses" file. If
you have more than one node and each node is
assigned different addresses, you can create an
Addresses.1, Addresses.2 ect... FidoNet specs
only allow for 8 character max domain names. Any
domain name over 8 characters is not to fido
specs, and Gate Keeper may not operate as you
expect. Use large domain names at your own risk.
At least the first 8 characters must be unique.
Nodelist Information:
AdeptXBBS uses and supports the FidoNet Version 7
nodelist. AdeptXBBS does not come with it's own
internal nodelist compiler. There are several
nodelist compilers that can produce a Version 7
nodelist, these can be obtained from our support
BBS or FTP sites. (QNODE and FASTLST are two
such compilers.)
ΓòÉΓòÉΓòÉ 4.11. Internet Support ΓòÉΓòÉΓòÉ
Configuring Adept's Internet Support:
AdeptXBBS offers seamless integration into the Internet for E-MAIL,
TELNET, FTP, FINGER, NEWSGROUPS, IRC, mailing list services and
others as they come along. At the current moment the Internet package
for AdeptXBBS includes:
NNTP Import of newsgroups
NNTP Posting
E-Mail SMTP
Telnet
IRC
FTP (1.08.?x)
Those of you who purchase the Internet capabilities will have access
to the beta versions of all of our internet modules. The finished
Internet package will include: E-MAIL, TELNET, FTP, FINGER,
NEWSGROUPS, IRCII and the mailing list capabilities. AdeptXBBS's
Internet modules requires a TCP/IP stack in order to function
properly. The AdeptXBBS host BBS 1:18/210.0@Fidonet will provide
seamless FidoNet/Internet gating for registered AdeptXBBS SysOp.
Telnet Telnet is a function that you can use to access other
computers on the Internet like a BBS or a weather
server or game. Once you have opened a Telnet
connection to another computer you can access the
files and run programs on the remote computer. To
telnet to a computer, you need to know it's name.
This can either be in words, like "bbs.Adeptsoft.com"
or as a numeric address, like 197.227.51.1
FTP FTP stands for file transfer protocol. FTP allows you
to copy files from a remote computer to your local
host. Thousands of sites provide anonymous FTP
service, allowing you to download everything from
FAQ's : online books, to updates an drivers for
operating systems, to public domain and shareware
utilities and games etc.etc.
UseNet or
Newsgroups Usenet is the set of people who exchange articles
tagged with one or more universally-recognized labels,
called "newsgroups" (or "groups" for short). If the
above definition of Usenet sounds vague, that's
because it is! It is almost impossible to generalize
over all Usenet sites in any non-trivial way. Usenet
encompasses government agencies, large universities,
high schools, businesses of all sizes,home computers
of all descriptions, etc, etc.
Note: Messages posted in the Internet Newsgroups
areas from either QWK or Bluewave will also be
exported to the Net via NNTP. There are no special
configuration options needed, no special changes need
to be made to your QWK or Bluewave utilities.
IRC IRC stands for "Internet Relay Chat" a service where
users can "talk" via typing to people around the
world. IRC is a multi-user chat system, where people
convene on "channels" (a virtual place, usually with
a topic of conversation) to talk in groups, or
privately.
ΓòÉΓòÉΓòÉ 4.11.1. Telnet & Sockets ΓòÉΓòÉΓòÉ
Configuring Nodes for Telnet & Sockets:
Accessed from: Config->BBS->Internet Options...
Full Domain Your Fully qualified
Domain.Name.
Telnet Server Enable/Disable Telnet
support.
Socket Server Enable/Disable Sockets
support.
Telnet Port # Telnet server Port
number. The default
server is on Port 23.
Sockets Port # Sockets server Port
number. The default
server is on Port 6530.
After setting up the Telnet and Socket options
you can then pick one of the nodes to be the
recipient of the Telnet and Socket connects. To
do this, go to the Config->Active Node->General
Settings and check the "Telnet" and the "Socket"
options, also check the "Use Telnet Timers" box.
Any node can support both a Telnet and a Socket
connect!
If you only want to allow Telnet or Sockets on
that node check the one you wish to allow. But
it is recommended that you allow both. It is also
recommended that you keep the Sockets on port
6530 so that anyone using a terminal that
supports Sockets can 'call' your BBS. Sockets
are faster and cleaner then Telnet. They are
also binary by nature and will allow clean file
transfers, something not always possible over
Telnet.
Note: The "Initial BPS" & "Max. Call BPS" is
usually the same as the locked speed of the
Dialup modem that is connected to the Internet,
and the Port name (\Pipe\AnyNameYouWant).
ΓòÉΓòÉΓòÉ 4.11.2. NNTP Support (news) ΓòÉΓòÉΓòÉ
Configuring NNTP Support: (news)
Accessed from: Config->BBS->Internet Options...
Full Domain Your Fully qualified
Domain.Name.
NNTP Client Enable/Disable NNTP News
support.
NNTP Server DNS name of your ISP's
NNTP News server.
Poll Time period in minutes
between update requests
to the NNTP News server
for new messages.
Available Groups News groups available on
the NNTP News server.
Active Groups News groups made
available to your BBS
users.
Note: For NNTP Posting, a Domain.Name (or Static
#IP depending on the Internet providers
configuration) is required. If you do not have a
dedicated SLIP or PPP line, you can still receive
newsgroups though.
1. Fill in your Fully qualified Domain.Name and
name of your NNTP News.Server. This name
will be specified by your Internet provider.
For example your fully qualified Domain.Name
might look like: "Adeptbbs.hsonline.net",
and your NNTP News.Server might look like
"news.hsonline.net"
2. Click on The NNTP Client option checkbox.
(It is best that you already have your SLIP,
PPP or TCP/IP network running with the news
server available). The BBS should be able
to handle it if you are not connected to the
to the Internet.
Note: If you do not have a dedicated SLIP
or PPP line, you can still receive
newsgroups. First, Shut-down Adept. Then
connect to your SLIP or PPP account. After
you are connected, start up Adept with the
"/NOINIT 1" (assuming that line 1 is the
line that we don't want to use because it's
in use by the Internet Dialer). Then go
into the Config->BBS->Internet Options and
fill in your NNTP News.Server. This name
will be specified by your Internet provider.
3. When the software first connects to the
server it will pull down the available
newsgroup list. This could take 5-10
minutes. After you have the list it is
recommended that you then decide what
newsgroups you would like to get.
There will be a file in the "X:\Adept\Usenet" dir
called "Available.List" that will also contain a
list of available newsgroups. You can pick the
newsgroups to turn on and off from the
Config->BBS->Internet Options Menu.
Note: After setting up the NNTP options you have
to save the new settings with the ShutDown
On/Off-Hook option in the Pull Down Menus
Before turning on the newgroups that you want to
receive, First configure and add the newsgroups
via the pulldown menu's Edit->Message Areas and
make sure that you turn the option [X] UseNet for
the newsgroup areas ON.
Note: The "\Adept\System\Message_Areas" file,
has a typical UseNet newsgroup configuration.
ΓòÉΓòÉΓòÉ 4.11.3. SMTP Support (e-mail) ΓòÉΓòÉΓòÉ
Configuring SMTP Support: (e-mail)
Accessed from: Config->BBS->Internet Options...
Full Domain Your Fully qualified
Domain.Name.
SMTP Send Enable/Disable SMTP
e-mail Support.
SMTP Server DNS name of your ISP's
SMTP E-Mail server.
Message Area # Number of local
Message_Area to place
your SMTP E-Mail into.
Setting up SMTP Support:
1. Add the following lines to your "Config.SYS"
(note the lack of trailing backslashes):
SET ADEPT=X:\ADEPT
SET TZ=MST7MDT
SET XMSG=X:\ADEPT\Message_Bases
SET XOUTBOUND=X:\ADEPT\MAILER\OUTBOUND_MAIL
SET XNODELIST=X:\ADEPT\MAILER\NODELIST
2. Create a "IMail" subdirectory in your
"X:\Adept" directory.
"X:\Adept\IMail"
3. Add at the end of the "*.Cmd" file that you
use to start your PPP/SLIP connection -
or Create another "*.Cmd" file to run
"SendMail.Exe" after your have established
your PPP/SLIP connection.
"SendMail -bd -q30m -d"
4. Edit the sample "SendMail.CF" included with
Adept. (Use an editor that does not expand
Tabs. eg: "E" or "QEdit".)
Note: Do not change anything that you don't
know about.
a. Change line numbers 34 and 35 to match
your Host.Name. For example:
# My host name
DwAdeptbbs
CwAdeptbbs
b. Change line number 59, to match your
Domain.Name. For example:
# My domain name
DDhsonline.net
c. Search for all instances of :\ (colon
blackslash) and confirm that the
correct path is set for your system.
d. At line number 457, change the paths to
match your system. The "SMTP2Adept.Exe"
is located in the "X:\Adept" directory
by default.
5. Determine where to put the "SendMail.CF".
From a OS/2 command prompt type: "SET ETC"
Copy your edited "SendMail.CF" to this
directory.
6. Create Adept Internet Email Message Area for
receiving and sending SMTP Mail. From the
Edit->Message Areas pulldown menu, Add a new
message area for Internet Email. Check the
"Internet E-Mail, Force Private, No Origin
Lines, and Compression" options. Be sure to
click on Save Changes.
Note: Do not try to combine both Private
and Internet E-Mail into one message base)
7. Fill in your Fully qualified Domain.Name and
name of your SMTP E-Mail.Server. This name
will be specified by your Internet provider.
For example your Domain.Name might look
like: "Adeptbbs.hsonline.net", and your SMTP
E-Mail.Server might look like
"mail.hsonline.net"
8. Specify which Message Base number is the
Internet Email Message Area, and then Enable
the "SMTP Send" option.
9. Shutdown Adept (Do not just close the
program, do an orderly shutdown.)
10. Reboot your computer to make sure the
"Config.SYS" changes take effect.
11. Connect to your Internet Provider, Start
Adept.
Adept should now have SMTP up and running.
Note: You may have to notify your SMTP provider
to have him forward your mail to your domain.
Note, that the nature of SMTP is that if you are
not connected to the Internet, mail may be
returned.
Adept's naming convention is either the users
name or handle. All mail addressed to your
domain will be imported into the Internet E-Mail
area, but users will only be able to read that
mail which is addressed to either their name or
handle. SMTP outbound converts all spaces to
periods, and does the reverse on inbound to the
board. So "Julie Strietelmeier" on the BBS
"Adeptbbs.hsonline.net" will be converted to
"Julie.Strietelmeier@Adeptbbs.hsonline.net"
Note: SMTP does not like periods in SMTP mail.
It will convert "Steven P. Crandall" to
"Steven.P..Crandall" (2 ".." after the "P"), Upon
return mail, it will address it to "Steven P
Crandall" (two spaces). Have the users change
their name/handle to remove the space to correct
this problem.
ΓòÉΓòÉΓòÉ 4.11.4. IRC2 Support (chat) ΓòÉΓòÉΓòÉ
Configuring IRC2 Chat Support: (chat)
The sample AdeptXBBS menu's already contains a working
Internet Menu, called "Internet.Menu" located in the
"\Adept\Menus" directory.
The "Menu Commandline" for IRC is "I, 11,[I]RC,irc2.cmd,0"
The "IRC2.CMD" is available, and is a "Working and Ready to
Go" REXX script with some IRC Servers already listed.
irc.escape.com (NYC)
irc.texas.net (Texas-Net)
irc-2.mit.edu (M.I.T.)
irc.ecn.uoknor.edu
cs-pub.bu.edu
Note: If you're located outside the U.S. it's advisable to
edit this script and replace the IRC servers with some
servers that are located in your own country or nearby,
else there could be a long startup time because of the lags
on the Internet.
ΓòÉΓòÉΓòÉ 4.11.5. FTP Support (File X-Fer) ΓòÉΓòÉΓòÉ
Configuring FTP Support: (File X-fer) (1.08.?x)
Adept now has a FTP server built into the BBS software.
Users log into the server with the name that they use on
the BBS. If you wish to allow Anonymous users you need to
create a account on the BBS called Anonymous.
The Server will use the Anonymous accounts settings in
order to decide what areas and files the user has access
to. The server will honor users time and file and age
limits.
The tag "FTPNAME" in the File_Areas file, allows you to
define the name of the directory shown to represent that
area on the server. If FTPNAME isn't specified, it will
use the area name.
To start the FTP Server add the "/FTP" Command line option
to Adept. "Adept.EXE /FTP"
Note: Uploading of files is not permitted with this build
of the server for security reasons.
Note: This is the first Alpha that it is available. The
Server always has an exception handler guarding it for now
since it is Alpha.
I also plan on building file lists on the fly that they can
ftp off the server just like listing files from the BBS. I
will also extend the server to allow users to be assigned
standard file directories that they can access but that is
still a few weeks off.
I will be adding features to the server like for the root
dir to auto create a file called dir.lst that will
basically be the 'area' list used in the BBS that they can
FTP.
ΓòÉΓòÉΓòÉ 4.12. DOORs Support ΓòÉΓòÉΓòÉ
Configuring DOORs Support:
DOS and OS/2 Doors can be run successfully under Adept.
Doors are online games that your users can play against
other users or computer players. These instructions assume
that you have at least a limited knowledge of how to set up
doors.
First you need Ray Gwinn's SIO comm drivers for OS/2.
These can be downloaded or FTP'd from various sources.
After you install them, you need to make sure that the
undocumented '-' feature is used. Here's what the
appropriate lines in your Config.SYS should look like:
REM DEVICE=C:\OS2\BOOT\COM.SYS
REM DEVICE=C:\OS2\MDOS\VCOM.SYS
REM *************************************
REM *** Ray Gwinn's SIO Com drivers *****
REM *************************************
DEVICE=C:\SIO\SIO.SYS (1, 3F8, 4,-)
DEVICE=C:\SIO\VSIO.SYS
DEVICE=C:\SIO\VX00.SYS
Here, OS/2's original Com drivers have been commented out
and the SIO drivers are used with the '-' switch. In this
example, only COM1 is setup. Consult SIO's documentation
for more information on setting up these drivers for your
system.
Ray Gwinn's SIO drivers are also important if you use the
AdeptXBBS Internet module and want to allow users that
Telnet into your system to be able to play doors. To allow
doors to be accessible to users that have Telneted in, you
have to setup and run VMODEM which comes in the SIO Zip
file.
To setup VMODEM under Adept, set up the node as usual but
instead of having "InterNet Timing", "Use Telnet Port", and
"Use Socket Port" options enabled under the Config->Active
Node->General Settings menu, just enable the "InterNet
Timing" option.
Note: For more information please read the VMODEM
documentation.
The following are the steps that would be used to set up
the popular game Trade Wars 2002 for DOS.
1. Unzip the game into its own directory and install it
according to the directions.
2. Add the following entry to your "Door.Menu" file:
1 ,801,,cmd.exe /c twar.bat {LN {H0,0
Pressing 1 will now start the door, passing it the
Line number and the User's handle.
3. Create a file called "TWar.Bat" in your "X:\Adept"
directory.
Below is a sample of what your TWar.Bat should look
like. Edit it to use your drive and path information.
Notice that Door.SYS is copied from the
"X:\Adept\System\Line%1" The Door.SYS file is created
by Adept and placed in the Line%1 directory. The %1
is the current node. So, if someone started the door
on node 2, a '2' would be substituted for the '%1'
character. If your door game does not support the
Door.SYS drop file, then you must obtain a drop file
converter. These can be downloaded or FTP'd from
other BBS's.
4. If you run a multinode system, you must tell the door
which directory to look in for your Door.SYS drop
file. Do not use the batch files below that copy the
drop file to the door game directory if you are
running a multinode system. If you do, things will
not work correctly when more than one user is playing
the same door at the same time. Usually multinode
compatible doors will have config files that must be
made that tell where to look for the drop file.
Examples:
Sample Batch Files for Single Node Systems:
REM ****** Trade Wars 2002 for DOS TWar.BAT ****
D:
Cd \Doors\TW
Del Door.SYS
Copy C:\Adept\System\Line%1\Door.SYS
TW2002 NOEMS
Del Door.SYS
C:
Cd\Adept
REM ********************************************
Note: You also need to add the following line to
your AUTOEXEC.BAT file:
SET TWNODE=1 REM ** This is just for setting up Tradewars **
Here are some other examples of batch files that run
door games:
REM ****** Barren Realms Elite Batch file ******
D:
Cd \Doors\BRE
Del Door.SYS
Copy C:\Adept\System\Line%1\Door.SYS
SRDOOR
BRE
Del door.sys
C:
Cd \Adept
REM ********************************************
REM ****** Mines of Gorr Batch file ************
D:
Cd \Doors\MOG
Del Door.SYS
Copy C:\Adept\System\Line%1\Door.SYS
GORR DOOR.SYS
Del Door.SYS
C:
Cd \Adept
REM ********************************************
REM ****** Iron Ox (OS/2 Version) Cmd file *****
D:
Cd \Doors\OX
Copy C:\Adept\System\Line%1\Door.SYS
/IronOX /PORT
Del Door.SYS
C:
Cd\Adept
REM ********************************************
ΓòÉΓòÉΓòÉ 5. Directories ΓòÉΓòÉΓòÉ
Directories Used By Adept:
The following directory entries are defaults and some can be
changed:
.\ (default) Where configuration
files are kept.
.\Logfiles Where logfiles are
kept.
.\Events Where Adept keeps
its Events Files.
.\Files Where Adept keeps
its B-Tree style
File system.
.\Help Where Adept keeps
its Help files.
.\Convert Where Other BBS
-to- Adept
Converters are
kept.
.\Samples Sample menus and
rexx files.
.\Mailer Where Adept keeps
all its mailer
related files.
.\Mailer\Aborted_Files Where aborted mail
files are kept.
.\Mailer\NodeList Where the node list
is kept.
.\Mailer\Outbound_Mail Where outbound mail
is kept.
.\Mailer\Packets Where packets are
kept (unused at
this point).
.\Mailer\Password_Inbound_Mail (see Mailer
section).
.\Mailer\Public_Inbound_Mail (see Mailer
section).
.\Mailer\Unlisted_Inbound_Mail (see Mailer
section).
.\Mailer\Flags Where flag files
are kept.
.\Mailer\Hold Where GateKeeper
places outbound
.TIC files.
.\Mailer\Scripts Not yet used.
.\Menus Where Menus and
REXX scripts are
kept. (Main.Menu,
Main#.Menu menus,
Main.Cmd Main#.Cmd,
AtEnd.Cmd,
AtEnd#.Cmd REXX
scripts).
.\Message_Bases Where all message
bases are kept.
.\Personal_Mail This is where
AdeptXBBS stores
it's PMI message
Indexes.
.\System Where system
related files are
kept.
(Message_Areas,
File_Areas,
Library_Areas,
Addresses,
Archivers,
Computers,
Language.Text,
Groups).
.\System\Line# Where temporary
data files are kept
for each node (#
digit represents
the node number).
.\System\MiscNews Where miscellaneous
News is kept.
.\System\SysNews Where system News
is kept.
.\Temp_Directories Where temporary
files are kept (for
example, when
viewing archive
files)
.\Text Where Text files
are kept (*.ASC,
*.ANS, *.RIP,
*.AVT).
ΓòÉΓòÉΓòÉ 6. Text Files ΓòÉΓòÉΓòÉ
Text Files Used By Adept:
AdeptXBBS Text Filenames and where they are shown.
Text files have a name and extension. The regular filename
extension is .ASC which means this is a regular ASCII text file.
If the user has ANSI color turned on, Adept will look for a file
with the same name, but with the extension .ANS. If the user
has Avatar support turned on, a text file with the extension
.AVT is search for. If the user has RIP graphics support
enabled, a text file with the extension .RIP is searched for.
If the files with the alternate extensions (.ANS .AVT .RIP) are
not found, then the default .ASC file is used. If any of these
files are not found, the file is not shown and the error is
ignored. You as the Sysop must create these text files if you
wish them to be displayed. These files may use meta variables.
DupePhone.ASC Shown when the phone number
entered is found to be a duplicate
of another users phone number.
Upload.ASC Shown before a user starts an
upload.
Download.ASC Shown before a user starts a
download.
LockedOut.ASC Shown when a user is locked out of
the system.
Login.ASC Shown when the user first logs on,
before they enter their name.
Login#.ASC Shown when the user first logs on,
before they enter their name,
Where # represents the node
number. (If not found, BBS will
use "LogIn.ASC") (1.08.?x)
LogonMsg.ASC Shown before the user enters their
first logon message (only if the
'first logon message' bit is set)
ReLogin.ASC Displayed after Prompt #935, prior
to Logoff, and the Relogin.
(1.08.?x)
Preregister.ASC Shown to a new user when the
system only accepts pre-registered
users.
NoRoom.ASC Shown to a new user when there is
no room for new users.
CantFind.ASC Shown when the users name is not
found.
GetPassword.ASC Shown before the user types in
their password.
BadPassword.ASC Shown every time after a user
types in the wrong password.
BadPass.ASC Shown before the user is logged
out after they have failed to
enter the proper password after
'Max Attempts' attempts. Shown
before 'BadPass.Menu' menu is
auto-executed.
HappyBirthday.ASC Shown when it is the users
birthday.
Welcome.ASC Shown after the user has entered
their password and before the news
files are shown.
Welcome#.ASC Shown after the user has entered
their password and before the news
files are shown, Where #
represents the node number. (If
not found, BBS will use
"Welcome.ASC") (1.08.?x)
News.ASC Shown after Welcome.ASC
Bullet.ASC Shown after News.ASC
MsgAreas.ASC If this file exists, then it is
shown in place of the default
message area listing.
MsgAreas###.ASC If this file exists, it will be
shown before the MsgAreas.ASC
would have been shown. ### is the
security level to show to.
FileAreas.ASC If this file exists, then it is
shown in place of the default file
area listing.
FileAreas###.ASC If this file exists, it will be
shown before the FileAreas.ASC
would have been shown. ### is the
security level to show to.
NewUser.ASC Shown to new users before they
enter their user info. (text line
#194 is shown immediately after
this file)
ReAsk.ASC Shown before ReAsk.Menu is
executed. The ReAsk text file and
menu are executed if the user
exists and the users 'ReAsk' flag
is false. The 'ReAsk' system is
used to fill in missing fields in
the user record.
FPassChng.ASC Shown when forcing an user to
change their password. (1.08.04
Only)
BeforeNew.ASC Shown after 'NewUser.ASC' (and
text line #194) (text line #21 is
shown immediately after this file)
NewBirthday.ASC Shown before the user enters their
birthdate.
BadAge.ASC Shown when the users age is too
young or too old.
ToYoung.ASC Shown after BadAge.ASC, when a
users age is less than that
required to access a particular
menu. (1.08.?x)
ToOld.ASC Shown after BadAge.ASC, when a
users age is greater than that
required to access a particular
menu. (1.08.?x)
FixUser.ASC Shown before the edit new user
menu (EditYou.MNU) is executed.
xxx.Rules Shown when "U" is pressed while
reading messages in a certain
message area. Typically used to
post echo mail area rules. Where
'xxx' is the message area name.
This file should be located in the
same directory as the
Message_Bases.
xxx.Desc Shown before reading messages in a
certain message area. Typically
used to describe the contents of
the message area. Where 'xxx' is
the message area name. This file
should be located in the same
directory as the Message_Bases.
Trashcan.ASC Shown when the users name has been
found in the 'Trash can' file.
PhoneCan.ASC Shown when the users phone number
has been found in the phone 'trash
can' file.
PageSysop.ASC Shown just before the Sysop is
paged for a chat request.
TooManyPages.ASC Shown when a user has paged the
Sysop too many times. This checks
the Max Page Attempts field found
in the config pull-down menus.
NoMoreTime.ASC Displayed before carrier is
dropped on a user that has run out
of time.
TimeAdjusted.ASC Shown when a users time is greater
than the time until the next BBS
Event. (1.08.?x)
Quotes Shown upon login, logoff or before
a new menu is displayed.
GoodBye.ASC Shown when with Menu Type 1000
logoff.
DumbUser.ASC Shown when user can't figure out
how to type their name correctly
after 'Max Attempts' attempts.
Shown before 'DumbUser.Menu' menu
is auto-executed if it exists.
NoNewUsers.ASC Shown when the new users security
level is below that necessary to
log into a node (login security)
NoAccess.ASC Shown when a regular users
security level is below that
necessary to log into a node
(login security)
ToLow.ASC Shown when a user tries to access
a menuitem that his security does
not allow him to use. (1.08.?x)
Levelxx.ASC Where 'xx' is the users security
level #1 Shown after correct
password has been type in.
xxxx.ASC Where 'xxxx' is the name of the
user group the user belongs to.
Shown after Levelxx.ASC (if it
exists) ie. After successful
password input.
YouMoron.ASC Shown when SysOp logs user out
with the moron menu item. This
could be used in several ways, for
instance, the SysOp could put a
message in 'YouMoron.ASC' that
says 'SysOp needs system now.
Logging you off'
FunctionKeyxx.ASC Where 'xx' is a function key
number corresponding to the press
of a function key by the SysOp.
This is not tested and may not be
working, but the code is in there.
Note: We have been told that .RIP graphics does work in Adept
and has been tested. In v0.94.10 I added a new multi-threaded
display that will display the rip screen remotely while
displaying the ANSI version of the screen locally. This should
be a nice change from seeing all those wonderful .RIP codes fly
across your local screen. If a .RIP screen does not exist, the
.ANS or .ASC equivalent of that file will be shown instead. For
a user to see the .RIP screens, the Sysop must toggle the RIP
option in the user's record. This is found in the USER EDITOR
for each user.
ΓòÉΓòÉΓòÉ 6.1. TrashCan File ΓòÉΓòÉΓòÉ
The TRASHCAN File:
By creating a trashcan file, you can limit the number of crank
BBS callers. This file will be scanned when a new user logs in.
It will look at the name they enter and refuse them entry if
their name is found in the trashcan.
Location: X:\Adept\System\Trashcan
Format:
; Comment
: Compares Last Name
! Look in name
<sp> Exact Compare
Example:
;This is the Trashcan File
:Butthead
!Hacker
John Doe
In the example above, the first line is a comment, the 2nd line
tells AdeptXBBS to compare the user's last name to 'Butthead',
if it matches, this user won't be allowed to login. The 3rd
line tells AdeptXBBS to look anywhere in the name for a match of
'Hacker'. So, if the user logged with the name Joe Hacker,
Hacker Bob, or Joe Hackerson, he wouldn't be granted access.
The last line will look for an exact match. So, if the person
logs in with the name John Doe, they won't be granted access. If
they log in with the name Johnny Doe, they will get access.
ΓòÉΓòÉΓòÉ 6.2. PhoneCan File ΓòÉΓòÉΓòÉ
The PHONECAN File:
By creating a phonecan file, you can limit the number of crank
BBS callers. This file will be scanned when new user logs in.
It will look at the phone number they enter and refuse them
entry if their number is found in the trashcan.
Location: X:\Adept\System\Phonecan
Format:
; Comment
! Look in number
<sp> Exact Compare
Example:
;This is the Phonecan File
!911
!1-800
!1-900
555-1212
1-800-111-2222
In the example above, the first line is a comment, the 2nd line
tells AdeptXBBS to look in the number for a match of '911', any
phone number that has this pattern in it will match. So, if the
user inputs 342-9110, it will match. The 3rd line will look for
a match of '1-800' anywhere in the number that the user has
typed in. Same for the 4th line. The 5th and 6th lines will look
for an exact match of those numbers.
ΓòÉΓòÉΓòÉ 6.3. Quotes File ΓòÉΓòÉΓòÉ
The QUOTES File:
By creating a quotes file, you can send your users a quote when
they logoff your BBS.
Location: X:\Adept\System\Quotes
Format:
%% Quote line separator
Example:
%%
Quote of the day - We have nothing to fear but fear
itself...
%%
Quote of the day - A penny saved is a penny earned...
%%
Quote of the day - Make new friends but keep the old. Some
are silver and the others are gold
%%
ΓòÉΓòÉΓòÉ 6.4. News Files (ASC, ANS, RIP, AVT) ΓòÉΓòÉΓòÉ
Setting Up NEWS Files:
By creating News files, you can have news items shown to the
user when they login. News will be shown to the user if the
user's last login date precedes the date of the *.News.ASC file.
The *.News.ASC file is required. The .ANS, .RIP or .AVT files
are optional.
Note: The date comparison is always made between the user's
record and the .ASC file, even if the .ANS file is displayed.
To have the news file display for at least a week, date the
*.News.ASC file a week into the future.
Location: X:\Adept\System\SysNews\AnyNameYouWant.News.ASC
(.ANS,.RIP or .AVT)
X:\Adept\System\MiscNews\AnyNameYouWant.News.ASC
(.ANS,.RIP or .AVT)
Format:
ASCII Text data
Example:
---------------------------------------
Notice to all users:
The new BBS numbers will be:
555-5555 and
555-5554 (28800 and above)
As of 15 Mar 1997
---------------------------------------
To enable News:
From the pull-down CONFIG->BBS->BBS Action Flags menu, add
the USE ANSI NEWS option.
From the pull-down CONFIG->BBS->New User Defaults menu, add
the SEE SYSTEM RELATED NEWS option.
ΓòÉΓòÉΓòÉ 6.5. Prompts File ΓòÉΓòÉΓòÉ
Setting Up LANGUAGE.TEXT: (BBS Prompts file)
Language.Text is the prompts file, but with the low ASCII chars
eliminated as control chars. (the need to edit them is
eliminated) In place of the single ASCII chars are 5 character
strings which take their place.
Note: The strings are in the format: [xxx] the 'xxx's denote
a type of command for that line of text. There are currently 23
possible command types:
Location: X:\Adept\System\Language.Text
Format:
Execution Commands:
Note: These should be the last command before
the text on the line, because they cause that
command to be executed immediately.
[Str] Return the string to the calling
subroutine. (normally string is
sent to user) When a line has [Str]
in it, DO NOT remove it. If the
line does not have [Str] in it, DO
NOT add it.
[Log] Log this line to the log screen.
[Loc] Show this line locally only.
[Run] Try to execute the rexx program
specified on this line.
[Fil] Show this file. * NOT IMPLEMENTED
*
[Cmd] Send this line to CMD.EXE. * NOT
IMPLEMENTED *
[Hlp] Show help file. * NOT IMPLEMENTED
*
[Mnu] Execute this menu. * NOT
IMPLEMENTED *
[Rem] Send this line to the remote end
only.
[Slg] Write to screen log. (this may be
backwards with [Log])
[Sts] Write this to Adept screen in
status window.
[Wav] Play a .WAV sound file. The
filename follows the [Wav] command.
Wildcards OK. MMPM/2 should be
installed.
Special Commands:
Note: Any text following these commands is
ignored.
[Pse] Pause at this line.
[Cls] Clear the screen.
Convert Commands:
Note: These commands change the text on the
line.
[Mta] Will cause all 'Smart Text' or Meta
Variables commands such as {M0,
{U3, {L1 to be converted to the
proper text.
[Cvt] Will cause string 'literals' to be
converted. A string literal is the
same as a 'C' string literal such
as \x1B (ESCape), \r (return), \n
(new line) If a line doesn't have
'smart text' or string 'literals'
then you don't need to use these
commands, because they can slow the
display of the text down.
Flag Commands:
Note: These command determine who should see the
line. ANSI is considered different than ANSI
color because some terminals support ANSI cursor
movement, but not color. If you have an ANSI line
it would probably be okay to turn on highlighting
"[1m" because highlighting is usually supported
even on dumb terminals. You can put the flag
commands in front of the Execution, Special or
Convert commands. You can use a combination of
these flags to determine which lines are sent to
the user. Any order is okay and a user has to
match all flags on a line to be shown that line.
If the line were: " [Ans][Clr][8bt]Hello there! "
Then the user would have to have ANSI, Color and
high ASCII chars turned on to see that line!
[Ans] Show this line to users with ANSI
cursor movement on.
[Asc] This line is for ASCII users only.
(ANSI is not on)
[Clr] Show this line to users that have
color on.
[8bt] This line contains high ASCII
characters.
[Exp] Show this line to experts only.
[Twt] Show this line to Twits only.
[Nov] Show this line to novice users
only.
Example:
#99
[Mta]\r\n\r\nThe Light leaves you. Darkness..\r\n\r\n
#100
[Log]New user login
#102
[Cvt]\r\nBye.\r\n
[Log]Bounced forgetful user
#117
[Cvt]Bad password...noted.
#118
[Mta]\r\nNo messages in area \"{M0\".\r\n
#119
[Asc][Cvt]\r\nMask: ;
[Ans][Cvt]\x1b[K\r\n\x1b[KMask: ;
#257
[Ans][Mta][Str]\r\n
From :
;
[Asc][Cvt][Str]\r\nFrom : ;
In 'Language.Text' you use the format: #xx to start a line of
text. Language.Text is the Multi-Lingual file you edit. When
Adept runs and sees a new Language.Text file, it will compile
Language.Text into the file Language.Text.Compiled then Adept
will create an index file called Language.Text.Index
Note: The length of the menu Prompt field was extended from 128
chars to 512 chars in Adept 1.08.?x.
ΓòÉΓòÉΓòÉ 6.6. Menu Files ΓòÉΓòÉΓòÉ
Creating Adept Menus: (1.07, 1.08.0x - ASCII Only)
Location: X:\Adept\Menu\AnyNameYouWant.Menu
Format: <Prompt text>,<Color>,<Menu filename>,<Flags>
Note: The first line of the menu file describes
the prompt, the file to be displayed, color and
flags of the menu.
<Prompt text> Text that is used as a
prompt for the user.
<Color> Menu Color if not using
<Menu filename>
<Menu filename> Usually a *.ASC or *.ANS
file that has a
graphical representation
of your menu.
<Flags> Menu option Flags.
All lines that follow are used to describe menu
options available at the current menu. The lines
have the following format:
<Key>, <Command#>, <Output String>, <Data
String>, <Color>, <MinAge>, <MaxAge>, <Sec1>,
<Sec2>, <Flags1>, <Flags2>, <StartTime>,
<EndTime>, <Gender>, <MinCredit>, <MaxCredit>,
<MinTime>, <MaxTime>, <MinCall>, <MaxCall>,
<MinPosts>, <MaxPosts>, <MinUpl>, <MaxUpl>,
<MinDl>, <MaxDl>, <Group>, <PortFlags>
Note: Everything after Data String is optional.
They are compared against the same fields in the
user record, if the user doesn't have the access
then that menu item is not accessed.
<Key> What the user should type
to invoke this command.
<Command#> The Menu Type command
number to execute.
<Output String> The text that is shown to
the user for this command
if the <Menu filename>
field of the first line is
blank.
<Data String> Data used by certain
command functions. It can
be used to change the
behavior of some commands.
See the command function
list to see which commands
use the data string field.
<Color> Color to display the
'output string' in. The
only time these colors are
used is when the <Menu
Filename> option is blank
on the first line of the
.menu file. If a color is
used for a menu item, this
color will be used for
each successive menu item
until the color is changed
in another menu item.
<MinAge> Minimum age required to
access this menu item.
<MaxAge> Maximum age required to
access this menu item.
<Sec1> Minimum user Security
level 1 needed to access
this menu item.
<Sec2> Minimum user Security
level 2 needed to access
this menu item.
<Flags1> &
<Flags2> Correspond to the two sets
of flags in the user
record. The ones that have
32 bit flags each. The
flags in the menus need to
be represented by an
integer value. So if the
sysop wanted to set bits
2, 4, and 5 which have a
value of 2, 8, and 16
then the integer value
(flag) would be 26.
<StartTime> The starting time in which
this menu item is
available to users. Time
format is 'HR:MN', 13:30 =
1:30pm.
<EndTime> The time at which this
menu item is closed to
users. Time format is
'HR:MN', 23:30 = 11:30pm.
<Gender> F or M. User's gender has
to match in order for them
to have access to this
menu item.
<MinCredit> Minimum credits that the
user must have in order to
access this menu item.
<MaxCredit> Maximum credits that a
user can have and still
access this menu item.
<MinTime> Minimum time that the user
must have left in order to
access this menu item.
<MaxTime> Maximum time that the user
can have left and still
have access this menu
item.
<MinCall> Minimum number of calls to
the BBS that the user must
have placed before they
have access to this menu
item.
<MaxCall> Maximum number of calls to
the BBS that the user has
placed and can still
access this menu item.
<MinPosts> Minimum number of message
posts that the user has
placed before they can
access this menu item.
<MaxPosts> Maximum number of message
posts that the user has
placed and can access this
menu item.
<MinUpl> Minimum number of uploads
that the user must have
made before they have
access to this menu item.
<MaxUpl> Maximum number of uploads
that the user has made and
still has access to this
menu item.
<MinDl> Minimum number of
downloads that the user
must have made before they
have access to this menu
item.
<MaxDl> Maximum number of
downloads that the user
has made and still has
access to this menu item.
<Group> Group name that the user
must be a member of in
order to have access to
this menu item.
<PortFlags> Add the numbers together
to come up with the
accessible port types.
1 Accessible by Comm
Ports (Modem, TA's,
any Serial Devices)
2 Accessible by Named
Pipes
4 Accessible by Telnet
Ports
Note: This field is
optional, if this is not
set, the BBS software
assumes there is no
limitation as to what type
of port can use a specific
command.
Example 1:
Choice:,2,MainMenu.asc,Main Menu,4
| | | | |
| | | | Execute next menu item
| | | | if user presses ENTER
| | | |
| | | Area where user is located (shown
| | | in Who Is On command menutype 42)
| | |
| | Menu file located in \Adept\Text directory
| |
| Color of menu if <Menu Filename> is not used
|
Prompt text
If you don't want a color or text menu displayed, then leave the
field blank.
Example 2:
Main Prompt: ,,,
This leaves all fields blank except the prompt text.
Example 3:
\n ,12,Files.ASC,File Menu,4
? ,51 ,,Help-Files.Asc,0
! ,0 ,,Door.Menu
M ,1 ,Gosub main menu,Message.Menu
- ,2 ,Return to previous menu,,0
,2 ,Return to previous menu,,0
* ,3 ,,Main.Menu,0
\ ,3 ,,Main.Menu,0
G ,1 ,[G]oodbye/LOGOFF ,LOGOFF.Menu,0
~ ,1001,,,0
L ,70 ,[L]ist File In This Area ,,15
X ,10 ,[L]ist Files (Current Area),E:\Adept\Menus\AdeptFile.Erx
N ,74 ,[N]ew files ,,15
S ,71 ,[S]earch current Area ,,15
W ,76 ,[W]ide area search ,,15
A ,61 ,[A]rea Selection ,,15
D ,85 ,[D]ownload file(s) ,,15
P ,146 ,[P]rotocol Selection ,,15
U ,90 ,[U]pload file(s) ,,15
> ,65 ,[>] Next file area ,1,15
] ,65 ,[]] Next file area ,1,15
< ,65 ,[<] Previous file area ,-1,15
[ ,65 ,[[] Previous file area ,-1,15
V ,84 ,[V]iew Archive contents ,,15
E ,670 ,[E]dit Files List ,,0
T ,670 ,[T]ag Files List ,,0
C ,201 ,Comment to the Sysop ,Sysop;Comment from {U0;2;1,0
@ ,935 ,,,0
Extra Notes About .MENU Files:
A menu file may have comments in it if the first character
on the line is a semi-colon ';'.
Maximum commands in a single menu is 80. A menu that big
would probably be pretty user unfriendly anyway!
If there is not a menu file in the first line of the menu
description, then the 'output strings' of every command are
displayed in the order that they appear.
Meta Variables can be place in the data field for each menu
item. This allows for great flexibility in creating menu
commands.
Menus should have a file extension of '.MENU'. If the user
has the RIP graphics flag set, Adept will look for '.RENU'
if the user has ANSI color turned on, Adept will look for
'.CENU' and if the user has ANSI cursor movement turned on
(not color) then Adept will look for '.GENU' Those files
are looked for in that order. If none of the other
optional files are found, '.MENU' will be used by default.
There should be (in almost every case) a Main.MENU (or
Main?.MENU for a particular node number.) This is the menu
which is started after the user logs into the system.
Adept will look for a Main?.MENU first and if one is not
found for that line, then Main.MENU is used.
If you have a Main?.Cmd or Main.Cmd REXX script in the
.\Menus directory it will be used instead of Main.MENU.
Adept uses a 'New User' menu called, appropriately enough,
NewUser.MENU This is an auto-execute menu that is called
right after the NewUser.ASC and BeforeNew.ASC files are
shown to the user. All the commands in this menu will be
executed in the order that they are found. If you don't
want a question to be asked, feel free to delete that line.
Be creative! If you have an 'EditYou.MENU' file it will be
executed after NewUser.MENU
'EditYou.MENU' can be created if you want to give the new
user a chance to edit their info before it is saved.
Adept supports a special menu which helps a SysOp get
complete information from a user after they have converted
to Adept from another BBS. ReAsk.MENU is an auto-execute
menu which is run if ReAsk.MENU exists and the 'ReAsked'
flag in the user record is set to false. Each command in
this menu is executed one after another. When the menu is
complete the 'ReAsked' flag is set to true. Also, the file
'ReAsk.ASC' is shown before the menu is executed.
ΓòÉΓòÉΓòÉ 6.6.1. Menu Files (Binary) ΓòÉΓòÉΓòÉ
Creating Adept Menus: (Tower's, 1.08aH, 1.09.0x - ASCII & BINary)
The Tower's Menu engine replaces the 1.07f style Text based
menus. The new menu engine will scan the "*.Menu" files and
produce a binary "*.Menu.BIN". If a change is made to a
"*.Menu" file, the corresponding "*.Menu.BIN" file will be
recompiled "on-the-fly" the next time that menu is chosen, it
will not take effect until after you exit that menu and then
re-enter it. The new Menu Engine is 100% faster than the old
ASCII menu engine, supporting new menu options not available in
the old menu engine.
Note: The compiled BIN menu files are not editable.
Location: X:\Adept\Menu\AnyNameYouWant.Menu
Menu Function Keywords:
BEGINMENU Mark the begining of a menu. (Anything
prior to this menu header is ignored by the
menu parser.)
PROMPT Menu Prompt Text
PROMPTCOLOR Menu Prompt Color
DISPLAYFILE File to display to users instead
of menu item text. Usually a
*.ASC or *.ANS file that has a
graphical representation of your
menu.
MENULOCATION Currently location on the BBS
MENUFLAGS Menu option flags.
BEGINMENUITEM Begin Item Definition
Note: All of the following
functions are only available
within the "MenuItem"
definition. All of the below
are relayed to the 'KEY'
keyword. The 'KEY' keyword
contains the key that
represents the menu item.
KEY Key to assign to the
menu item.
MENUCOMMAND "Command" to execute
when the 'KEY' is
pressed.
DISPLAYSTRING String to display to
user when displaying the
menu items along with or
without a Display File.
DISPLAYCOLOR Initial color for the
display string
DATAOPTION Optional data for the
menu command
MINAGE Minimum age allowed to
use this command
MAXAGE Maximum age allowed to
use this command
MINSEC1 Minmum security level
(based on users security
#1) to use command
MAXSEC1 Miximum security level
(based on users security
#1) to use command
MINSEC2 Minmum security level
(based on users security
#2) to use command
MAXSEC2 Miximum security level
(based on users security
#2) to use command
FLAGS1 User flag comparison for
access to this command
flags #1
FLAGS2 User flag comparison for
access to this command
flags #2
GENDER Gender allowed to access
this command. (ie: "MFO"
- "Male", "Female",
"Other" as defined in
Language.Text)
STARTTIME Start time that this
command becomes
available. (24hr)
ENDTIME Ending time that this
command becomes
unavailable. (24hr)
MINONLINETIME Minimum time user is
online before they can
use this command.
MAXONLINETIME Maximum time a user can
be online before command
becomes unavailable.
MINCALLS Minimum calls that the
user has made to the BBS
before command becomes
available.
MAXCALLS Maximum calls that the
user has made to the BBS
before command becomes
unavailable.
MINPOSTS Minimum number of
messages posted before
user can access this
command.
MAXPOSTS Maximum number of
messages posted before
command becomes
unavailable.
MINUPLOADS Minimum number of
uploads needed to access
this command.
MAXUPLOADS Maximum number of
uploads before command
becomes unavailable.
MINDOWNLOADS Minimum number of
download needed to
access this command.
MAXDOWNLOADS Maximum number of
downloads before command
becomes unavailable.
GROUP Group number that the
user needs to belong to
to access command.
PORTFLAGS Type of port needed
(TCP, Comm, Pipe) to
access command.
NEWLOCATION Location to set when
user executes this
command for calls to
items/functions that do
not set the system
location.
ENDMENUITEM End Item Definition
ENDMENU Mark the end of a menu. (Anything
after this menu header is ignored by
the menu parser.)
All of the above may exist between the "BEGINMENUINITEM"
and "ENDMENUITEM" headers in any particular order.
Note: To make the transition from 107f to this version,
there is a MenuCvt.CMD Rexx script included with the zip
file, simply place it in your "X:\Adept\Menus" dir and
execute it. It will convert your existing 107f style menus
to the new format. The 107f menus will be saved as
*.Menu.Old files, You should manually check the newly
converted menus, as MenuCvt.CMD is not very intelligent.
Example:
BEGINMENU
PROMPT \n
PROMPTCOLOR 12
DISPLAYFILE Files.ASC
MENULOCATION File Menu
MENUFLAGS 4
BEGINMENUITEM
KEY ?
MENUCOMMAND 51
DISPLAYCOLOR 0
DATAOPTION Help-Files.Asc
ENDMENUITEM
BEGINMENUITEM
KEY !
MENUCOMMAND 0
DATAOPTION Door.Menu
ENDMENUITEM
BEGINMENUITEM
KEY M
MENUCOMMAND 1
DISPLAYSTRING Gosub main menu
DATAOPTION Message.Menu
ENDMENUITEM
BEGINMENUITEM
KEY -
MENUCOMMAND 2
DISPLAYSTRING Return to previous menu
DISPLAYCOLOR 0
ENDMENUITEM
BEGINMENUITEM
KEY
MENUCOMMAND 2
DISPLAYSTRING Return to previous menu
DISPLAYCOLOR 0
ENDMENUITEM
BEGINMENUITEM
KEY *
MENUCOMMAND 3
DISPLAYCOLOR 0
DATAOPTION Main.Menu
ENDMENUITEM
BEGINMENUITEM
KEY \
MENUCOMMAND 3
DISPLAYCOLOR 0
DATAOPTION Main.Menu
ENDMENUITEM
BEGINMENUITEM
KEY G
MENUCOMMAND 1
DISPLAYSTRING [G]oodbye/LOGOFF
DISPLAYCOLOR 0
DATAOPTION LOGOFF.Menu
ENDMENUITEM
BEGINMENUITEM
KEY ~
MENUCOMMAND 1001
DISPLAYCOLOR 0
ENDMENUITEM
BEGINMENUITEM
KEY L
MENUCOMMAND 70
DISPLAYSTRING [L]ist File In This Area
DISPLAYCOLOR 15
ENDMENUITEM
BEGINMENUITEM
KEY X
MENUCOMMAND 10
DISPLAYSTRING [L]ist Files (Current Area)
DATAOPTION E:\Adept\Menus\AdeptFile.Erx
ENDMENUITEM
BEGINMENUITEM
KEY N
MENUCOMMAND 74
DISPLAYSTRING [N]ew files
DISPLAYCOLOR 15
ENDMENUITEM
BEGINMENUITEM
KEY S
MENUCOMMAND 71
DISPLAYSTRING [S]earch current Area
DISPLAYCOLOR 15
ENDMENUITEM
BEGINMENUITEM
KEY W
MENUCOMMAND 76
DISPLAYSTRING [W]ide area search
DISPLAYCOLOR 15
ENDMENUITEM
BEGINMENUITEM
KEY A
MENUCOMMAND 61
DISPLAYSTRING [A]rea Selection
DISPLAYCOLOR 15
ENDMENUITEM
BEGINMENUITEM
KEY D
MENUCOMMAND 85
DISPLAYSTRING [D]ownload file(s)
DISPLAYCOLOR 15
ENDMENUITEM
BEGINMENUITEM
KEY P
MENUCOMMAND 146
DISPLAYSTRING [P]rotocol Selection
DISPLAYCOLOR 15
ENDMENUITEM
BEGINMENUITEM
KEY U
MENUCOMMAND 90
DISPLAYSTRING [U]pload file(s)
DISPLAYCOLOR 15
ENDMENUITEM
BEGINMENUITEM
KEY >
MENUCOMMAND 65
DISPLAYSTRING [>] Next file area
DISPLAYCOLOR 15
DATAOPTION 1
ENDMENUITEM
BEGINMENUITEM
KEY ]
MENUCOMMAND 65
DISPLAYSTRING []] Next file area
DISPLAYCOLOR 15
DATAOPTION 1
ENDMENUITEM
BEGINMENUITEM
KEY <
MENUCOMMAND 65
DISPLAYSTRING [<] Previous file area
DISPLAYCOLOR 15
DATAOPTION -1
ENDMENUITEM
BEGINMENUITEM
KEY [
MENUCOMMAND 65
DISPLAYSTRING [[] Previous file area
DISPLAYCOLOR 15
DATAOPTION -1
ENDMENUITEM
BEGINMENUITEM
KEY V
MENUCOMMAND 84
DISPLAYSTRING [V]iew Archive contents
DISPLAYCOLOR 15
ENDMENUITEM
BEGINMENUITEM
KEY E
MENUCOMMAND 670
DISPLAYSTRING [E]dit Files List
DISPLAYCOLOR 0
ENDMENUITEM
BEGINMENUITEM
KEY T
MENUCOMMAND 670
DISPLAYSTRING [T]ag Files List
DISPLAYCOLOR 0
ENDMENUITEM
BEGINMENUITEM
KEY C
MENUCOMMAND 201
DISPLAYSTRING Comment to the Sysop
DISPLAYCOLOR 0
DATAOPTION Sysop;Comment from {U0;2;1
ENDMENUITEM
BEGINMENUITEM
KEY @
MENUCOMMAND 935
DISPLAYCOLOR 0
ENDMENUITEM
ENDMENU
ΓòÉΓòÉΓòÉ 6.6.2. ASCII Menu (ASC) ΓòÉΓòÉΓòÉ
The AdeptASCII Menu: (*.ASC)
Default regular ASCII Text file. (ASC extension)
Note: These menu Text files may use Meta Variables.
Location: X:\Adept\Text\AnyNameYouWant.ASC
Format:
ASCII Plain text graphical menu
Example:
Line: {LN Baud: {S8 (LOGOFF MENU) [ {T0 minutes left]
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé [G]oodbye/Logoff Γöé
Γöé Γöé
Γöé [R]eturn to BBS .... Γöé
Γöé Γöé
Γöé Γöé
Γöé Γöé
Γöé [C]omment/Feedback Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
ΓòÉΓòÉΓòÉ 6.6.3. ANSI Menu (ANS) ΓòÉΓòÉΓòÉ
The AdeptANSI Menu: (*.ANS)
Enhanced ANSI color text menu file. (ANS)
Note: These menu Text files may use Meta Variables.
Location: X:\Adept\Text\AnyNameYouWant.ANS
Format:
ANSI Enhanced color text graphical menu
Example:
C
ΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûä
C
Γûê
GoodBye/Logoff Γûê
C
Γûê ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γûê
C
Γûê Γöé
Γöé Γûê
C
Γûê Γöé
[
G
]
oodBye - Logoff now
Γöé Γûê
C
Γûê Γöé
[
R
]
eturn to BBS ...
Γöé Γûê
C
Γûê Γöé
Γöé Γûê
C
Γûê Γöé
[
C
]
omment to the Sysop
Γöé Γûê
C
Γûê Γöé
Γöé Γûê
C
Γûê Γöö
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
Γöÿ Γûê
C
Γûê
Γûê
C
ΓûÇ
ΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇ
1H
ΓòÉΓòÉΓòÉ 6.7. Events File ΓòÉΓòÉΓòÉ
The EVENTS File:
Events are interruptions during the normal BBS day. Such
interruptions might include polling for mail or door
maintenance.
Note: Comments begin with semicolons and can be on any line.
Any text after a semicolon is ignored.
Location: X:\Adept\Events\Events.Text.N (Where 'N'
represents the node number)
Format:
EVENTBEGIN Begins description of an
event.
EVENTEND Ends description of an event.
LASTRAN Indicates to Events system
what day the event was last
run. (1.09.04 Only)
NAME Name of the event
START Starting time of event in
HH:MM format.
END Ending time in HH:MM format.
(Temporary)
LENGTH Length of event in minutes
COMMAND Command to spawn at beginning
of event. If this is a .CMD
file, that file should be
located in the \Adept
directory.
FLAGS Flags to control event
1 Forced (event must
run)
2 Recv Mail only
(doesn't call out)
4 Send mail only
(doesn't answer
ring)
8 No File REQuests
16 BBS calls allowed
32 Send Crash Mail
64 Send Crash Mail no
matter what the cost
is
128 Cost must be less
than MAXCOST
256 Cost must be more
than MINCOST
512 Cost must equal
MAXCOST
1024 Wait for COMMAND to
finish before
continuing
2048 Clear outbound call
counters at
beginning of event
4096 Reboot OS/2 at
beginning of event
8192 Reserved (not
currently used)
16384 Close com port
before running
COMMAND and open
upon return
32768 Shutdown Adept at
beginning of event
Note: Add numbers
together to combine
flags. Example: 24
= 8 (no FREQs) and
16 (BBS calls OK)
MINCOST Minimum cost (see flags)
MAXCOST Maximum cost
DAYOFWK Day of week to execute
1 Sunday
2 Monday
4 Tuesday
8 Wednesday
16 Thursday
32 Friday
64 Saturday
256 Weekdays (Mon. thru
Fri.)
512 Weekends (Sat. -n-
Sun.)
1024 All Days
Note: Add numbers to
combine days.
DAYOFMONTH Day of month to execute. Use
w/ MONTH
MONTH Month to execute. Use w/
DAYOFMONTH (Using these
combined can cause execution
to happen on a certain day of
a certain month. If day of
month is set and month is not
set (0) then it event will
occur on that day every month.
CALLTIME Time (in seconds) between
calls
MAXBAD Max bad calls
MAXTRIES Maximum connects allowed
Example:
EVENTBEGIN
START 00:00
END 00:05
DAYOFWK 1024
FLAGS 2048
COMMAND Cmd.Exe /c BBSMaint.Cmd
NAME Daily Midnight Maintenance
MINCOST 0
MAXCOST 10000
MAXBAD 10
MAXTRIES 200
EVENTEND
EVENTBEGIN
START 00:06
END 04:59
DAYOFWK 1024
FLAGS 80
COMMAND Cmd.Exe /c Mail.Cmd
NAME My regular BBS mail event
MINCOST 0
MAXCOST 10000
MAXBAD 10
MAXTRIES 200
EVENTEND
EVENTBEGIN
START 05:00
END 06:00
DAYOFWK 1024
FLAGS 10
COMMAND Cmd.Exe /c Poll.cmd
NAME Poll for mail
MINCOST 0
MAXCOST 10000
MAXBAD 10
MAXTRIES 200
EVENTEND
EVENTBEGIN
START 06:01
END 23:59
DAYOFWK 1024
FLAGS 80
COMMAND Cmd.Exe /c Mail.Cmd
MINCOST 0
MAXCOST 10000
MAXBAD 10
MAXTRIES 200
EVENTEND
ΓòÉΓòÉΓòÉ 6.7.1. Events Q & A ΓòÉΓòÉΓòÉ
Events File Questions & Answers:
Questions & Answers About the Events File:
Q. Must the event items cover a 24 hour
contiguous period? The docs do not state
this.
A. If a time is not covered during a 24 hour
period Adept will do nothing. It won't have
any current flags or parameters to work with,
so it would be best to cover the 24 hour
period.
Q. What is the purpose of the length entry? What
happens if it's value does not equal [
EVENTEND - EVENTBEGIN ]? When should it not
be equal to [ EVENTEND - EVENTBEGIN ]?
A. LENGTH was originally used, and is only there
for compatibility. START and END actually
determine the length of the event.
Q. MIN/MAXCOST - What are these? How do you
determine what the value should be?
A. It determines the minimum, and the maximum
amount of money per unit of time before a call
will be placed to a remote system. For
instance, if you specified that a system costs
20 cents a minute to call, and you have the
max cost set at 15 cents, Adept will not call
that system. But if your max cost is set at
30, then the call would be placed. You set
the cost of the call with the nodelist
compiler.
Q. It looks like some entries for EVENT FILE
CONFIGURATION are not required. Which are
required and which are not?
A. If an entry in the event is '0' then it is not
necessary to save it in the event file. 0 is
default. The entries are not saved to
conserve some disk space. Also some entries
have other defaults if not included. These
are: Maxbadcalls=5 Maxtries=30
AveTimeBetweenCalls=1800
Q. Is the value for the unstated seconds part of
START is 00 and 59 for END. Is this a correct
assumption? Are they both 00 and 00?
A. Events are granular by the minute, not by the
second. You can put seconds in there, but
they will be ignored for the START and END So
in the context of the question. They are both
00.
Q. If CALLTIME is not specified what algorithm
does the program use?
A. Default is 1800 seconds, or 30 minutes.
Q. In what situation is value zero valid for the
FLAG and DAYOFWK fields?
A. If the DAYOFWK is set to 0, then event won't
occur. If FLAGS is set to 0, then the mailer
would work OK (very plain operation but it
should work) , but BBS calls would not be
allowed.
Q. Explain what a flag value 1024 means.
A. 1024 means wait until the COMMAND is done
executing before resuming operation of Adept.
Because we are using OS/2 we don't need to
wait for the command to end before we resume
Adept. But if there is a reason to wait for
the COMMAND to finish, then set this flag.
Q. If I set a short BEGIN-END time then I could
presume that the next event will not execute
until the .CMD in this event is completed.
Suppose the .CMD completes in 2 minutes, does
ADEPT move on to the next event or wait doing
nothing until the EVENTEND time?
A. Adept will do nothing until it reaches the
next event start time.
Q. What are the Call/Try counters and when should
they be reset?
A. These record how many attempts have been made
to call a system, and how many of those calls
were bad. Adept uses them to see if it should
stop trying after so many attempts at reaching
the system. Most systems would reset these
each day. But that is up to the SysOp. If you
set MAX attempt to 30 then Adept would attempt
to call any system up to 30 times. If it
reaches the system, has a successful session,
it will no longer attempt to call them. If
you reset the call counters every day, then
Adept would try up to 30 times a day to call a
system. If you reset the counters every 3
days, Adept would try 30 times over a 3 day
period (usually all those calls would be on
the first day, if the average times between
calls is short).
ΓòÉΓòÉΓòÉ 6.8. File_Areas File ΓòÉΓòÉΓòÉ
Setting Up FILE_AREAS File:
This is the file that Adept creates when you edit the file areas
using the pull-down menus. You can edit this file with a standard
text editor.
Location: X:\Adept\System\File_Areas
Format:
AREABEGIN This directive marks the beginning of
a area definition
NAME This defines the file area name
FTPNAME This is the name of the directory
shown to represent this area on the
FTP server.
NUMBER This defines the file area number
AGE This defines the minimum age required
to access the area
DESC This is the description of this area
SEC1 This is the minimum sec required to
access this area when compared with
the users security level #1
SEC2 This is the minimum sec required to
access this area when compared with
the users security level #2
FLAGS1
FLAGS2
WSEC1 This is the minimum sec required to
upload files in this area, this is
compared with user sec level #1
WSEC2 This is the minimum sec required to
upload files in this area, this is
compared with user sec level #2
WFLAGS1
WFLAGS2
SSEC1 This is the minimum sec required to
access sysop functions for this file
area, this is compared with security
level #1
SSEC2 This is the minimum sec required to
access sysop functions for this file
area, this is compared with security
level #2
SFLAGS1
SFLAGS2
FLAGS
PASSWORD Password required to access this file
area.
MAXAGE Maximum age of user to be able to
access area
DLPATH Download Path
ULPATH Upload Path
COSTPERK Cost Per K
AREAEND This directive marks the end of a
area definition
Example:
AREABEGIN
NAME New Files
NUMBER 1
DESC ** UPLOAD New Files Here **
DLPATH D:\UPLOADS
ULPATH D:\UPLOADS
SSEC1 100
SSEC2 100
FLAGS 3105
AREAEND
AREABEGIN
NAME MIDI Files
NUMBER 2
DESC .MID Files
DLPATH D:\MIDI
ULPATH D:\UPLOADS
SSEC1 100
SSEC2 100
FLAGS 3105
AREAEND
AREABEGIN
NAME MOD Files
NUMBER 3
DESC .MOD and .S3M Files
DLPATH D:\MODS
ULPATH D:\UPLOADS
SSEC1 100
SSEC2 100
FLAGS 3105
AREAEND
AREABEGIN
NAME Adept
NUMBER 4
DESC Software / Info for use with Adept
DLPATH C:\ADEPTFIL
ULPATH D:\UPLOADS
SSEC1 100
SSEC2 100
FLAGS 3105
AREAEND
ΓòÉΓòÉΓòÉ 6.8.1. Adding Files ΓòÉΓòÉΓòÉ
Adding files to the BBS:
To add files to your new BBS, you need to create the file areas
using the Edit->File Areas pulldown menu. Then actually create
all the directories on your hard drive and add the files to
them. Then you may either use BFSMAKE or another file area
editor. One such program is "FileEd24.Zip" which is available
on Support BBS's and the FTP sites.
When a user uploads a file the following things occur in the
following order:
1. When the transfer completes the BBS software determines if
the file or files uploaded are known archives based on the
information in the Archivers file. If the file is an
archive the following is done to that file: The BBS
software searches your path for a file called
TestUpload.Cmd. If this file is found it executes the file
with the following command line parameters:
CMD.EXE /c TestUpload.Cmd <fullfilename> <line#> <handle> <filename> <extension>
<fullfilename>Complete path/filename
<line#> Line number
<handle> handle to open com port
<filename> Plain file name, no path, no extension
<extension> Just extension.. no '.'
This CMD file may test the upload in whatever manner it
sees fit. For example: UnZip -t, virus scan.. both..
neither.. whatever.. It could also move the file for safe
keeping.. etc. If file does NOT pass the test, there should
be a file in the Adept directory called <filename>.Error
This tells Adept the file did not pass the test.
2. If the file passes that test, then the DIZ extraction is
attempted. The command line is identical to the previous
one:
CMD.EXE /c ExtractDIZ.Cmd <fullfilename> <line#> <handle> <filename> <extension>
This CMD file just looks for a description of some kind.
Could be a FILE_ID.DIZ, .DOZ... DESC.SDI whatever the
format.. If it finds a description it should create a text
file with the description in it, the filename is:
\Adept\System\Line#\<filename>.Description
If the software doesn't find this file, it will ask for a
description.
3. There is also a conversion command file called
Convertxxx.CMD Same command line where 'xxx' is the
extension of the upload itself. If a .ZIP file is
uploaded, the software looks for ConvertZIP.Cmd:
CMD.EXE /c ConvertZIP.Cmd <fullfilename> <line#> <handle> <filename> <extension>
If the conversion takes place, a file should be created in
the Adept directory called <filename>.NewName It should
contain just the filename of the file. For instance, if a
file went from FROOD.ARC to FROOD.ZIP Then 'Frood.NewName'
would be created and it would have a single line:
FROOD.ZIP
The file should be in the same path as the original.If ALL
fails and the file is marked as BAD, the BBS will execute
the file BadUpload.CMD with the following command line
parameters:
"BadUpload.CMD Node FileName_With_Path Filename File_Extention"
The BadUpload.CMD file can be used to 'move' bad uploads
into a storage area for the sysop to check at a later date.
ΓòÉΓòÉΓòÉ 6.9. Message_Areas File ΓòÉΓòÉΓòÉ
Setting Up MESSAGE_AREAS File:
This is the file that Adept creates when you edit the message areas
using the pull-down menus. You can edit this file with a standard
text editor.
Location: X:\Adept\System\Message_Areas
Format:
AREABEGIN This directive marks the beginning of
a area definition
NAME This defines the message areas name
NUMBER This defines the message area number
AGE This defines the minimum age required
to access the area
DESC This is the description of this area
SEC1 This is the minimum sec required to
access this area when compared with
the users security level #1
SEC2 This is the minimum sec required to
access this area when compared with
the users security level #2
FLAGS1
FLAGS2
WSEC1 This is the minimum sec required to
write a messages in this area, this
is compared with user sec level #1
WSEC2 This is the minimum sec required to
write a messages in this area, this
is compared with user sec level #2
WFLAGS1
WFLAGS2
SSEC1 This is the minimum sec required to
access sysop functions for this
message area. i.e. delete mail, read
private mail. Compared with security
level #1
SSEC2 This is the minimum sec required to
access sysop functions for this
message area. I.e. Delete mail, read
private mail. Compared with security
level #2
SFLAGS1
SFLAGS2
FLAGS
ADDRESS FidoNet Address to use for posted
Net/EchoMail messages.
PASSWORD Password required to access this
message area.
FORCETO Name to force messages to.
ECHO Nodes to Forward/Receive mail from
ORIGIN Origin to use for this message area
PATH Drive/Path to place message area
files for this area
MAXAGE Maximum age of user to be able to
access area
AREAEND This directive marks the end of a
area definition
Note: For more information on
FidoNet and setting up echomail, see
the MAILER section of this
documentation.
Example:
AREABEGIN
NAME General
NUMBER 1
DESC Local Messages
WSEC1 5
WSEC2 5
SSEC1 100
SSEC2 100
FLAGS 2376
PATH E:\Adept\Message_Bases
AREAEND
;
AREABEGIN
NAME Private Mail
NUMBER 2
DESC E-Mail
SSEC1 100
SSEC2 100
FLAGS 2308
PATH E:\Adept\Message_Bases
AREAEND
;
AREABEGIN
NAME Fos2bbs
NUMBER 3
DESC [FidoNet] OS/2 BBS Discussions
WSEC1 5
WSEC2 5
SSEC1 100
SSEC2 100
FLAGS 2328
ADDRESS 1:231/1320.0@Fidonet
PATH E:\Adept\Message_Bases
AREAEND
;
AREABEGIN
NAME FAdeptsoft
NUMBER 4
DESC [FidoNet] Adept Software
WSEC1 5
WSEC2 5
SSEC1 100
SSEC2 100
FLAGS 2328
ADDRESS 1:231/1320.0@Fidonet
PATH E:\Adept\Message_Bases
AREAEND
;
AREABEGIN
NAME Ialt.bbs.adeptsoft
NUMBER 60
DESC [UseNet] alt.bbs.adeptsoft
ORIGIN AdeptSoft Support BBS
USENET alt.bbs.adeptsoft
FLAGS 8456
ADDRESS 1:231/1320.0@Fidonet
PATH E:\Adept\UseNet_Message_Bases
AREAEND
;
AREABEGIN
NAME Icomp.lang.rexx
NUMBER 76
DESC [UseNet] comp.lang.rexx
ORIGIN AdeptSoft Support BBS
USENET comp.lang.rexx
FLAGS 8456
ADDRESS 1:231/1320.0@Fidonet
PATH E:\Adept\UseNet_Message_Bases
AREAEND
;
AREABEGIN
NAME Icomp.sys.palmtops
NUMBER 77
DESC [UseNet] comp.sys.palmtops
ORIGIN AdeptSoft Support BBS
USENET comp.sys.palmtops
FLAGS 8456
ADDRESS 1:231/1320.0@Fidonet
PATH E:\Adept\UseNet_Message_Bases
AREAEND
;
AREABEGIN
NAME Netmail
NUMBER 99
DESC Netmail
RSEC1 100
RSEC2 100
WSEC1 100
WSEC2 100
SSEC1 100
SSEC2 100
FLAGS 32
ADDRESS 1:231/1320.0@Fidonet
PATH E:\Adept\Message_Bases
AREAEND
ΓòÉΓòÉΓòÉ 6.10. Help Files ΓòÉΓòÉΓòÉ
Setting Up HELP FILES:
Adept User Help Topics:
Note: Not all topics are currently found in Adept.Help
Setup File Setting access to files areas.
List FileAreas List command when setting up
file area access.
All FileAreas All areas command when setting
up file areas.
FileSetup Prompted when asking for access to each
file area one at a time.
FileSetup LoRange When setting Low file area of a
range.
FileSetup HiRange When setting High file area of a
range.
FileSetup RangePick When setting range.
FileArea Inquire When inquiring which areas.
Setup Msg When setting access to message
areas.
List MsgAreas List command when setting up
message areas.
All MsgAreas All areas command when setting
up message areas.
MsgSetup Prompted When asking for access to each
message area one at a time.
MsgSetup LoRange When setting Low message area of
a range.
MsgSetup HiRange When setting High message area
of a range.
MsgSetup RangePick When setting range.
MsgArea Inquire When inquiring which areas.
Calendar When asking for which calendar
to display.
ChatHelp When in Internode chat
Chat Reason When requesting a SysOp chat
Edit You When selecting options in
'EditYou' function.
User Interests When getting one line of user
interests.
User Address When setting one of three user
address strings.
User City When setting city
User State When setting state/province.
User Zipcode When setting ZIP/postal code.
User Phone When setting one of four phone
numbers.
User Password When setting password.
User Handle When setting handle.
User ShowAddress When setting show address flag.
User ShowPhone When setting show phone # flag.
User ShowReal When setting show real name
flag.
User ANSI When setting ANSI (movement)
flag.
User Color When setting ANSI color flag.
User HighASCII When setting High ASCII flag.
User Gender When setting gender.
User Novice When setting novice flag.
User Expert When setting expert flag.
User FSE When setting full screen editor
flag.
Download Mail When asking whether a user wants
to download mail packet.
User Rolling When setting rolling prompts
flag.
User MailType When setting mail packet type.
User Pause When setting more prompt flag.
User Hot When setting hot keys flag.
User Clear When setting clear screen flag.
User Width When setting screen width.
User Length When setting screen length.
User Computer When setting computer type.
User Protocol When setting file transfer
protocol.
User Archiver When setting default archiver.
User NewMsgs When setting read new msgs flag.
User NewFiles When setting view new files
flag.
User TypeFList When setting type of file list.
User ShowNews When setting show news flag.
User AskToDL When setting ask download flag.
User Available When setting Internode chat
flag.
User EBCDIC When setting EBCDIC conversion
flag.
Download1 When asking for files to
download.
Upload1 When asking for which file to be
uploaded.
Tag1 When asking for files to be
tagged.
I1_MsgNum When asking which message number
to read.
Lib Mask When asking for a library area
file mask.
Lib Read When reading library file.
Lib Search When searching for library file.
Text Delete When deleting lines in text
editor.
Are You Sure When at a 'are you sure' prompt.
Text Edit When editing a line in the text
editor.
Text Insert When inserting a line in the
text editor.
Msg To When setting who message is to.
Msg From When changing message from.
Msg Subj When changing message subject.
Autodownload
NewFileDate When asking for a new files
date.
User Search When searching user list.
User Name When user enters name at login.
Are You You? When name not in user records.
Password When asking for password at
login.
Scan All Mail? When asking if we should scan
all mail.
MsgArea Selection When changing message areas.
FileArea Selection When changing file areas.
LibArea Selection When changing library areas.
Area Password When asking for an area
password.
Text Title When getting name when creating
a text file.
Abort Text When aborting creation of text
file.
Menu Password When asking for menu password.
File MatchString When asking for a file search
string.
I1_Logoff Msg When asking for logoff comment.
User BirthMonth When asking for user birthday
month.
User BirthDay When asking for user birthday
day.
User BirthYear When asking for birthday year.
Quote Reply When asking if we are quoting in
reply.
Msg Locate--from When locating message with from
field.
Msg Locate--to When locating message with to
field.
Msg Locate--subj When locating message by
subject.
Msg Locate--body When locating message by
contents.
Msg Locate--all When locating message by all of
the above.
Scan Page Scan messages more prompt.
Search String When getting a search string
(for showing text files)
File Read When show any text files in a
directory.
View Arc When viewing archive
View Arc Member When viewing archive member.
Msg Destaddr When asking for address to send
message to (NetMail)
Addr Correct Is address correct?
Msg Private Is message private?
Msg Anonymous Is message anonymous?
ΓòÉΓòÉΓòÉ 6.11. Colors.Ctl * ΓòÉΓòÉΓòÉ
The Colors.Ctl File: (1.08a+ Only)
The Colors.Ctl file allows the user to customize AdeptXBBS's
appearance. The following windows are currently supported:
Recent Events window
Status window
Transfer window
OutBound Files window
Status Screen dialog
Location: X:\Adept\System\Colors.Ctl
Format:
; Comment
ColorBegin Indicates the beginning of a
color control item section.
FRed Items Foreground Red value.
FGreen Items Foreground Green value.
FBlue Items Foreground Blue value.
BRed Items Background Red value.
BGreen Items Background Green value.
BBlue Items Background Blue value.
ColorEnd Indicates the end of a color
control item section.
Example:
;----------------------
ColorBegin
ScreenName LogBox
; [Recent Events]
;ForeGround
FRed 250
FGreen 250
FBlue 250
;BackGround
BRed 0
BBlue 128
BGreen 0
ColorEnd
; ---------------------
ΓòÉΓòÉΓòÉ 7. Meta Variables ΓòÉΓòÉΓòÉ
Adept XBBS Meta Variables:
Adept supports the use of META variables in all text files. Meta
variables are used to display a value, known by the system, to
the user. Meta variables are in the format {xx where 'xx' is
the META variable. (at a future date, the '{' (brace) may be a
configurable value)
Current supported META variables:
System:
{S0 Number of calls to the BBS
{S1 Minimum Age Required to Access BBS
{S2 Maximum Age Required to Access BBS
{S3 Maximum Users Allowed in Userbase
{S4 Maximum Password Attemps Allowed
{S5 Maximum Times Sysop can be Paged
{S6 BBS's Name
{S7 BBS SysOp's Name
{S8 Current Baud Rate
{S9 AdeptXBBS Version String
User:
{U0 Name
{U1 Handle
{U2 Address
{U3 Home phone
{U4 Interests (one line of text)
{U5 Computer type # (line # of computer in
'Computers' file)
{U6 Computer type string
{U7 ID number
{U8 Point ID number
{U9 Birthdate yy/mm/dd
{UA Credit
{UB Minute limit
{UC Time used so far today (on previous calls)
{UD Time allowed per day
{UE Number of times called
{UF Uploaded # of files
{UG Downloaded # of files
{UH Uploaded # KBytes
{UI Downloaded # KBytes
{UJ Uploaded # KBytes today
{UK Downloaded # KBytes today
{UL Max upload KBytes per day
{UM Max download KBytes per day
{UN Security Level 1
{UO Security Level 2
{UP Flags 1 (bit flags as integer)
{UQ Flags 2 (bit flags as integer)
{UR Attributes 1 (bit flags as integer)
{US Attributes 2 (bit flags as integer)
{UT Screen length
{UU Screen width
{UV Last msg area #
{UW Last file area #
{UX Protocol (letter)
{UY Archiver (letter)
{UZ Time per call (outdated??)
{V3 Age
{V4 Graphics (1=on 0=off)
{V5 Group in
{V6 Number of messages posted
{V7 Uploaded # of files (9 chars long) (all
right justified)
{V8 Downloaded # of files (9 chars long)
{V9 Uploaded # KBytes (9 chars long)
{VA Downloaded # KBytes (9 chars long)
{VB Uploaded # KBytes today (9 chars long)
{VC Downloaded # KBytes today (9 chars long)
{VD Max upload KBytes per day (9 chars long)
{VE Max download KBytes per day (9 chars long)
{VF Name (36 chars, left justified)
{VG Handle (36 chars, left justified)
{VH MaxBankTime
{VI Time in Bank
{VJ Calls Today
{VK Total Minutes used since first call
{O7 Banked time (in minutes)
{O9 City
{P1 Address (2 of 3)
{P2 State
{P3 Zip/Postal code
{P4 Data phone
{P5 Fax phone
{PF Offline mail packing method ( QWK, Fido,
Bluewave etc.)
{PI Scan for new mail at logon (ON/OFF)
{PJ Scan for New Files at logon (ON/OFF)
{Q9 File transfer protocol name or 'None'
{QA Archiver name or 'none'
{QB Max mail packet size in bytes (the below
display the text ON or OFF according to the
flag in the user record)
{O1 ANSI
{O2 Color
{O3 High ASCII
{O4 No More prompts
{O5 No Clear screens
{O6 Cold input (i.e. not hot keys)
{P6 Avatar
{P7 ANSI/TE2
{PM Displays a YES/NO/MORE prompt
{PN Turns off non-stop display
{PO Turns on non-stop display
{PQ Displays "Press any key to continue" if the
displayed amount of lines is more then the
users screen length. *
{P9 Available for Internode chat
{PE Monitoring Mail (ON/OFF)
Message Area: (Some variables are based on text found in
Language.Text.)
{M0 Name of area
{M1 # msgs in current area
{M2 Last msg read in current area
{M3 # of msg area
{M4 Last msg read + 1
{M5 Description
{M6 Name of area (12 characters long, left
justified)
{M7 # msgs in area (5 chars long, right justified)
{M8 last msg read (5 chars long, right justified)
{M9 # of msg area (5 chars long, left justified)
{MA Last msg read + 1 (5 chars long, left
justified)
{MB Description (48 chars long, left justified)
{MC Current msg number
{MD Msg from (based on text #361)
{ME Msg date
{MF Msg to (based on text #363)
{MG Msg private flag (based on text #352)
{MH Msg read flag (text #353 if read, #354 if not
read)
{MI Msg deleted flag (text #355)
{MJ Msg NetMail (text #356)
{MK Msg EchoMail (text #357)
{ML Msg keep (text #358)
{MM Msg w/ file (text #370)
{MN Msg request flag (text #371)
{MO Msg update request flag (text #372)
{MP Msg Kill/sent flag (text #373)
{MQ Msg crashmail flag (text #374)
{MR Msg sent flag (text #375)
{MS Msg host flag (text #376)
{MT Msg hold flag (text #377)
{MU Msg anonymous (text #378)
{MV Msg originating zone (text #379)
{MW Msg originating net (text #380)
{MX Msg originating node (text #381)
{MY Msg originating point (text #382)
{A2 Msg destination zone (text #383)
{A3 Msg destination net (text #384)
{A4 Msg destination node (text #385)
{A5 Msg destination point (text #386)
{A6 Msg subject header (text #387 if request, text
#388 or #389 if not)
{A7 Msg subject (text #390)
{A8 Msg subject ( 20 characters long, left
justified)
{A9 Msg from (20 characters long, left justified)
{AA Msg to (20 characters long, left justified)
{AB Msg # (5 characters long, left justified)
{Q1 Msg area name (M0???)
{Q2 Msg area number (M3??)
{Q3 Msg area description (M5??)
{Q4 # msgs in area (M1??)
{Q7 Prints '*' if last read is less than current #
of msgs. ' ' if not
{Q8 Prints '+' if current area is tagged for
offline mail. ' ' if not
{QC Time/date msg was received (24 characters)
{QD # times msg read (5 characters, right
justified)
{DA Who the message was to *
{DB The Message Subject *
{DC Area name message was posted to *
{DD Node number of receipient *
{DE Area number the message was posted to *
File area:
{A0 Area name
{A1 Area number
{R0 Filearea description
Library area:
{L0 Area name
{L1 Area number
Time: (user time)
{T0 Minutes left in session
{T1 ????
{T2 Seconds left in session
Date: (current date/time)
{D0 Month abbreviated (Jan, Feb, etc)
{D1 Day abbreviated (Mon, Tue, etc)
{D2 Year
{D3 Month number
{D4 Day number
{D5 Month name (complete name)
{D6 Day name (complete name)
{D7 Time (HH:MM:SS)
{D8 Date/Time (Dayofweek Month Dayofmonth HH:MM:SS
Year) or (Mon Jan 1 00:00:01 1996)
Input:
{I0 Copies in last user input
Download / Upload Stats:
{K0 Uploaded bytes (total)
{K1 Downloaded bytes (total)
{K2 Uploaded bytes (today)
{K3 Downloaded bytes (today)
{K4 Max upload bytes per day
{K5 Max download bytes per day
{K6 Download bytes left today
{K7 Download KBytes left today
{K9 Upload bytes left today
{KA Upload KBytes left today
Misc:
{H0 Com port handle
{LN Line number (1, 2, 3, etc)
{PA cycle thru color scheme and return next ANSI
color in cycle
{PB Press any key to continue prompt
{PC Press [ENTER] prompt
{PD Pause for 1/2 second
{PG Pause for 1/30 second
{PH Spinning cursor (return next cycle.. use with
PA)
{Q5 Add 1 to number of lines printed
{Q6 Add 1 to number of lines printed
{QF User storage??
{QG Turns on U2_MONITOR_MAIL?
{ZZ Do not translate any metas from here until the
end of the string *
Foreground ANSI Color: (All ANSI commands will be set to
blank if user doesn't have color turned on.)
{F1 Black
{F2 Dark blue
{F3 Dark green
{F4 Dark cyan
{F5 Dark red
{F6 Dark magenta
{F7 Brown
{F8 Light gray
{F9 Dark gray
{ FA Blue
{FB Green
{FC Cyan
{FD Red
{FE Magenta
{FF Yellow
{FG White
Background ANSI color:
{B1 Black
{B2 Dark blue
{B3 Dark green
{B4 Dark cyan
{B5 Dark red
{B6 Dark magenta
{B7 Brown
{B8 Light gray
Other ANSI:
{CL Clear to end of line
{CS Clear screen
{QE Last ANSI color
* - Introduced in AdeptXBBS version 1.08.?x
ΓòÉΓòÉΓòÉ 8. Menu Types ΓòÉΓòÉΓòÉ
AdeptXBBS Menu Types:
Type 0 Goto another menu
Type 1 Gosub to another menu
Type 2 Return from a Gosub Menu
Type 3 Clear Gosub Menus
Type 4 Goto Menu / Ask Password
Type 5 Gosub Menu / Ask Password
Type 6 Gosub Auto-return Menu
Type 8 Gosub Auto-execute Menu
Type 10 Execute cached Rexx Script
Type 11 Execute Non-cached Rexx Script
Type 15 Read messages - No Prompting
Type 16 Quickscan messages
Type 17 Scan message Headers
Type 20 Read messages - With Prompting
Type 25 Read All messages from newest
Type 26 Read messages by Area
Type 28 Search current message area headers
Type 31 Export mail - Text
Type 32 Export mail - Fido
Type 33 Export mail - QWK
Type 34 Export mail - Bluewave
Type 35 Export mail - Users default
Type 36 Import mail
Type 41 Show user status
Type 42 Who is on-line
Type 43 List Users
Type 45 Edit User record
Type 46 Adjust file areas
Type 47 Adjust message areas
Type 48 Page Sysop
Type 49 Display help
Type 50 Offline mail export tags
Type 51 Display text file
Type 52 Show All Chat Channels (1.08.03)
Type 53 List all users in your current channel
(1.08.03)
Type 55 List all users logged onto the BBS
(1.08.03)
Type 60 Select message area
Type 61 Select file area
Type 62 Name of message area
Type 63 Name of file area
Type 64 Previous message area
Type 65 Previous file area
Type 70 List files in current area
Type 71 Search files in area - keyword
Type 72 Search files in area - keyword / date
Type 73 Search new files in area - date
Type 74 Search new files in All areas - sequentially
Type 75 List All files - alphabetically
Type 76 Search files in All areas - keyword
Type 77 List files in area - chronologically
Type 78 List files in area - alphabetically
Type 84 View Archive
Type 85 Download files - FileName
Type 86 Download file - DataField (remote users)
Type 90 Upload file - FileName
Type 91 Upload file - DataField
Type 100 OR User1 attributes
Type 101 AND User1 attributes
Type 102 OR User2 attributes
Type 103 AND User2 attributes
Type 104 OR User1 flags
Type 105 AND User1 flags
Type 106 OR User2 flags
Type 107 AND User2 flags
Type 110 X-Fer protocol
Type 111 Computer type
Type 119 Read all tagged area messages from newest
(1.09.02)
Type 120 Read messages by tagged Area (1.09.02)
Type 121 Quickscan tagged area Messages (1.09.02)
Type 122 Scan tagged area message Headers (1.09.02)
Type 130 Address
Type 131 ANSI color flag
Type 132 High ASCII flag
Type 133 Cold input flag
Type 134 Screen length
Type 135 Pause flag
Type 136 Handle
Type 137 Password
Type 138 Screen width
Type 139 Phone number
Type 140 User interests
Type 141 Display user info
Type 142 Expert mode
Type 144 ANSI cursor flag
Type 145 Set User misc. flags
Type 146 File X-Fer protocol
Type 147 New message at logon flag
Type 148 New files at logon flag
Type 149 Limit file list flag
Type 150 Misc news flags
Type 151 Ask to download flag
Type 152 Chat availability flag
Type 154 Full screen flag
Type 155 Export mail type flag
Type 156 User birthday flag
Type 157 Clear screen flag
Type 158 User computer type
Type 159 Gender flag
Type 161 Avatar flag
Type 162 ANSI-TE2 flag
Type 163 8.3 file name conversion flag
Type 164 Avatar/ANSI flags
Type 165 View off-line mail status
Type 166 Default archiver
Type 167 Deposit bank time
Type 168 Withdraw bank time
Type 190 Toggle bits in User1 attribute
Type 191 Toggle bits in User2 attribute
Type 192 Toggle bits in User1 flag
Type 193 Toggle bits in User2 flag
Type 200 Write message
Type 201 Write message - NameData
Type 300 Prompt user for data
Type 301 Store DataField as user input
Type 400 Internode chat - DataField
Type 601 Toggle ANSI color flag
Type 602 Toggle High ANSI flag
Type 603 Toggle More prompt
Type 604 Toggle Clear screen flag
Type 605 Toggle Cold input flag
Type 606 Toggle Address flag
Type 607 Toggle Phone flag
Type 608 Toggle Real name flag
Type 609 Toggle No kill flag
Type 610 Toggle deleted flag
Type 611 Toggle Expert flag
Type 612 Toggle Twit flag
Type 613 Toggle New files flag
Type 614 Toggle New messages flag
Type 615 Toggle DL New messages flag
Type 616 Toggle DL New files flag
Type 617 Toggle View misc news flag
Type 618 Toggle Ask Download flag
Type 619 Toggle Novice flag
Type 620 Toggle Point mail only flag
Type 622 Toggle Locked-out flag
Type 623 Toggle Chat availablity flag
Type 624 Toggle List user display flag
Type 625 Toggle Misc News display flag
Type 626 Toggle File list current area only flag
Type 628 Toggle Verified flag
Type 629 Toggle ANSI TE2 graphics flag
Type 630 Toggle RIP graphics
Type 631 Toggle
Type 632 Toggle Offline mail monitoring flag
Type 640 Pack & DL Offline mail
Type 655 Change Archiver
Type 656 Edit File X-Fer list
Type 700 Tag All areas for Offline mail
Type 701 Untag all areas for Offline mail
Type 702 Toggle area for Offline mail - AreaData
Type 703 Set mail export type
Type 704 Edit Last message read
Type 800 Run OS/2 door
Type 801 Spawn session door - ExeData
Type 802 Spawn session door (I/O)
Type 803 Spawn session door (Semaphores)
Type 810 Spawn session door (Adept environment)
Type 811 Spawn session door (OS/2 environment)
Type 815 Spawn session door (foreground)
Type 900 Check mail
Type 950 Shutdown BBS !!
Type 999 LogOff - Leave message to Sysop
Type 1000 LogOff
Type 1001 Instant Logoff
Type 1002 LogOff &Re-LogOn (1.08+ Only)
ΓòÉΓòÉΓòÉ 8.1. Type 0 - Goto another menu ΓòÉΓòÉΓòÉ
Menu Type: 0
Option Data: Menu Name
Description: Go to another menu. Name of menu is in the data
field.
Example: \r,0,Door.Asc,Online Games,4
ΓòÉΓòÉΓòÉ 8.2. Type 1 - Gosub to another menu ΓòÉΓòÉΓòÉ
Menu Type: 1
Option Data: Menu Name
Description: Gosub to another menu. Name of menu is in the
data field. you can only go 9 gosubs deep. If
you wish to have more nested menus (more than
9) then use the (0) goto menu command.
Example: F,1,File Menu,Files.Menu,0
ΓòÉΓòÉΓòÉ 8.3. Type 2 - Return from a Gosub Menu ΓòÉΓòÉΓòÉ
Menu Type: 2
Option Data: Menu Name
Description: Return from a gosub'ed menu. Returns to the
previous menu.
Example: -,2,,,0
ΓòÉΓòÉΓòÉ 8.4. Type 3 - Clear Gosub Menus ΓòÉΓòÉΓòÉ
Menu Type: 3
Option Data: Menu Name
Description: Clear all Gosub'ed menus.
Example:
ΓòÉΓòÉΓòÉ 8.5. Type 4 - Goto Menu / Ask Password ΓòÉΓòÉΓòÉ
Menu Type: 4
Option Data: Menu Name
Description: Go to another menu and ask for a password. The
data field should read "MenuName;Password".
Example: O,4,Doors Menu,Door.Menu;Game,0
ΓòÉΓòÉΓòÉ 8.6. Type 5 - Gosub Menu / Ask Password ΓòÉΓòÉΓòÉ
Menu Type: 5
Option Data: Menu Name
Description: Gosub to another menu and ask for a password.
The data field should read
"MenuName;Password".
Example: O,5,Doors Menu,Door.Menu;Game,0
ΓòÉΓòÉΓòÉ 8.7. Type 6 - Gosub Auto-return Menu ΓòÉΓòÉΓòÉ
Menu Type: 6
Option Data: Menu Name
Description: Gosub a forced-return menu (This type of menu
returns after any command is selected).
Example: *,6,Sysop Menu,Sysop.Menu,,,,100,100
ΓòÉΓòÉΓòÉ 8.8. Type 8 - Gosub Auto-execute Menu ΓòÉΓòÉΓòÉ
Menu Type: 7
Option Data: Menu Name
Description: Gosub an auto-execute menu (This type of menu
executes all the commands in the menu file,
then returns).
Example: U,7,User Setup,EditUser.Menu,0
ΓòÉΓòÉΓòÉ 8.9. Type 10 - Execute cached Rexx Script ΓòÉΓòÉΓòÉ
Menu Type: 10
Option Data: Menu Name
Description: Execute a REXX script file in cached mode.
Name of file is in the data field. The current
line number is passed as the first argument to
the REXX script. The line number must be the
first argument passed back to any Adept REXX
functions. If the REXX script returns "-1"
then Adept will exit as if the user has logged
off. In other words, if the rexx script ended
with "EXIT -1", The user would be logged off.
Note: This is when the rexx script is called
from the regular menu system.
Example: A,10,,Callers.cmd,0
ΓòÉΓòÉΓòÉ 8.10. Type 11 - Execute Non-cached Rexx Script ΓòÉΓòÉΓòÉ
Menu Type: 11
Option Data: Menu Name
Description: Execute a REXX script file in NON cached mode.
Name of file is in the data field. The current
line number is passed as the first argument to
the REXX script. The line number must be the
first argument passed back to any Adept REXX
functions. If the REXX script returns "-1"
then Adept will exit as if the user has logged
off. In other words, if the rexx script ended
with "EXIT -1", The user would be logged off.
Note: This is when the rexx script is called
from the regular menu system.
Example: R,11,Register,C:\Adept\tabs\register.erx,0
ΓòÉΓòÉΓòÉ 8.11. Type 15 - Read messages - No Prompting ΓòÉΓòÉΓòÉ
Menu Type: 15
Option Data: Menu Name
Description: Read messages forward with no prompting for
message number. You may also put data in the
item data field. This data is the message base
to read from. It also switches the users
current message area to that area. So if you
had "Headline New" in the item data field for
any of those menu items, it would switch to the
"Headline News" message area, and then prompt
the users to read the messages there.
Example: R,15,[R]ead messages,,0
ΓòÉΓòÉΓòÉ 8.12. Type 16 - Quickscan messages ΓòÉΓòÉΓòÉ
Menu Type: 16
Option Data: Menu Name
Description: QuickScan message (to, from, subject) You may
also put data in the item data field. This
data is the message base to read from. It also
switches the users current message area to that
area. So if you had "Headline New" in the item
data field for any of those menu items, it
would switch to the "Headline News" message
area, and then prompt the users to read the
messages there.
Example: Q,16,[Q]uick Scan Messages,,0
ΓòÉΓòÉΓòÉ 8.13. Type 17 - Scan message Headers ΓòÉΓòÉΓòÉ
Menu Type: 17
Option Data: Menu Name
Description: Scan message headers You may also put data in
the item data field. This data is the message
base to read from. It also switches the users
current message area to that area. So if you
had "Headline New" in the item data field for
any of those menu items, it would switch to the
"Headline News" message area, and then prompt
the users to read the messages there.
Example: S,17,[S]can messages,,0
ΓòÉΓòÉΓòÉ 8.14. Type 20 - Read messages - With Prompting ΓòÉΓòÉΓòÉ
Menu Type: 20
Option Data: Menu Name.
Description: Read messages forward, with prompting. You may
also put data in the item data field. This data
is the message base to read from. It also
switches the users current message area to
that area. So if you had "Headline New" in the
item data field for any of those menu items,
it would switch to the "Headline News" message
area, and then prompt the users to read the
messages there.
Example: R,20,[R]ead messages,,0
ΓòÉΓòÉΓòÉ 8.15. Type 25 - Read All messages from newest ΓòÉΓòÉΓòÉ
Menu Type: 25
Option Data: Menu Name
Description: Globally read msgs from current newest message.
Example: N,25,[N]ew messages,,0
ΓòÉΓòÉΓòÉ 8.16. Type 26 - Read messages by Area ΓòÉΓòÉΓòÉ
Menu Type: 26
Option Data: Menu Name
Description: Globally read messages, stop at each area.
Example: R,26,[R]ead New messages,,0
ΓòÉΓòÉΓòÉ 8.17. Type 28 - Search current message area headers ΓòÉΓòÉΓòÉ
Menu Type: 28
Option Data: Menu Name
Description: Searches current message area for keywords in
the to, from, subject and message body. You
may also put data in the item data field. This
data is the message base to read from. It also
switches the users current message area to
that area. So if you had "Headline New" in the
item data field for any of those menu items, it
would switch to the "Headline News" message
area, and then prompt the users to read the
messages there.
Example: X,28,[X] Search,,0
ΓòÉΓòÉΓòÉ 8.18. Type 31 - Export mail - Text ΓòÉΓòÉΓòÉ
Menu Type: 31
Option Data:
Description: Export mail - Text format.
Example: X,31,E[x]port Text Mail,,0
ΓòÉΓòÉΓòÉ 8.19. Type 32 - Export mail - Fido ΓòÉΓòÉΓòÉ
Menu Type: 32
Option Data: Menu Name
Description: Export mail - Fido packet format.
Example: X,32,E[x]port Fido Mail,,0
ΓòÉΓòÉΓòÉ 8.20. Type 33 - Export mail - QWK ΓòÉΓòÉΓòÉ
Menu Type: 33
Option Data: Menu Name
Description: Export mail - QWK format.
Example: X,33,E[x]port .QWK Mail,,0
ΓòÉΓòÉΓòÉ 8.21. Type 34 - Export mail - Bluewave ΓòÉΓòÉΓòÉ
Menu Type: 34
Option Data: Menu Name
Description: Export mail - Bluewave format.
Example: X,34,E[x]port BW Mail,,0
ΓòÉΓòÉΓòÉ 8.22. Type 35 - Export mail - Users default ΓòÉΓòÉΓòÉ
Menu Type: 35
Option Data: Menu Name
Description: Export mail - format based on user preference.
Example: D,35,[D]ownload Mail,,0
ΓòÉΓòÉΓòÉ 8.23. Type 36 - Import mail ΓòÉΓòÉΓòÉ
Menu Type: 36
Option Data:
Description: Import mail - allows user to upload a mail
packet.
Example: U,36,[U]pload .QWK Mail Packet,,0
ΓòÉΓòÉΓòÉ 8.24. Type 41 - Show user status ΓòÉΓòÉΓòÉ
Menu Type: 41
Option Data:
Description: Display user status.
Example: D,41,Display Stats,,0
ΓòÉΓòÉΓòÉ 8.25. Type 42 - Who is on-line ΓòÉΓòÉΓòÉ
Menu Type: 42
Option Data:
Description: Who is on-line.
Example: W,42,Who is Online,,0
ΓòÉΓòÉΓòÉ 8.26. Type 43 - List Users ΓòÉΓòÉΓòÉ
Menu Type: 43
Option Data:
Description: List users.
Example: L,43,User [L]ist,,0
ΓòÉΓòÉΓòÉ 8.27. Type 45 - Edit User record ΓòÉΓòÉΓòÉ
Menu Type: 45
Option Data:
Description: Edit your user record.
Example: E,45,Edit User Rec,,0
ΓòÉΓòÉΓòÉ 8.28. Type 46 - Adjust file areas ΓòÉΓòÉΓòÉ
Menu Type: 46
Option Data:
Description: Adjust accessible file areas.
Example: A,46,Adjust File Areas,,0
ΓòÉΓòÉΓòÉ 8.29. Type 47 - Adjust message areas ΓòÉΓòÉΓòÉ
Menu Type: 47
Option Data:
Description: Adjust accessible message areas.
Example: A,47,Adjust Message Areas,,0
ΓòÉΓòÉΓòÉ 8.30. Type 48 - Page Sysop ΓòÉΓòÉΓòÉ
Menu Type: 48
Option Data:
Description: Page SysOp.
Example: Y,48,Yell,,0
ΓòÉΓòÉΓòÉ 8.31. Type 49 - Display help ΓòÉΓòÉΓòÉ
Menu Type: 49
Option Data:
Description: Display help (If 'text' in data field, help on
'text' will be shown).
Example: H,49,Help,Download,0
ΓòÉΓòÉΓòÉ 8.32. Type 50 - Offline mail export tags ΓòÉΓòÉΓòÉ
Menu Type: 50
Option Data:
Description: Adjust tags on off-line mail export
Example: O,50,Adjust Export,,0
ΓòÉΓòÉΓòÉ 8.33. Type 51 - Display text file ΓòÉΓòÉΓòÉ
Menu Type: 51
Option Data: FileName.### (Using .Asc as the extension will
cause the BBS to display the default graphics
format for the user).
Description: Display a text file. You can also enter a
"filename;flags" Where 'flags' are flags to
determine how the file is displayed.
1 Pause if normal text file
2 Translate thru Metas AND Literal
4 Allow aborting (saying 'N'o )
32 No literal translation.
64 No meta translation
Note: If no flags are specified, the default
is 7 (which is 1, 2, and 4)
Example of the item data field: MyFile.Txt;71
(71 = 1, 2, 4, and 64)
Example: S,51,,Info.Asc,0
ΓòÉΓòÉΓòÉ 8.34. Type 52 - Show All Chat Channels * ΓòÉΓòÉΓòÉ
Menu Type: 52 (1.08.03)
Option Data: N/A
Description: Show All Chat Channels
Example: Call AdeptMenuType Line, 52,""
ΓòÉΓòÉΓòÉ 8.35. Type 53 - List users in current channel * ΓòÉΓòÉΓòÉ
Menu Type: 53 (1.08.03)
Option Data: N/A
Description: List all users in your current Chat channel.
Example: Call AdeptMenuType Line, 53,""
ΓòÉΓòÉΓòÉ 8.36. Type 55 - List users logged onto BBS * ΓòÉΓòÉΓòÉ
Menu Type: 55 (1.08.03)
Option Data: N/A
Description: List all users logged onto the BBS at that
moment.
Example: Call AdeptMenuType Line, 55,""
ΓòÉΓòÉΓòÉ 8.37. Type 60 - Select message area ΓòÉΓòÉΓòÉ
Menu Type: 60
Option Data:
Description: Select message area.
Example: A,60,[A]rea Change,,0
ΓòÉΓòÉΓòÉ 8.38. Type 61 - Select file area ΓòÉΓòÉΓòÉ
Menu Type: 61
Option Data:
Description: Select file area.
Example: A,61,[A]rea Change,,0
ΓòÉΓòÉΓòÉ 8.39. Type 62 - Name of message area ΓòÉΓòÉΓòÉ
Menu Type: 62
Option Data: Name of Message Area.
Description: Find message area (name of area in data field)
Example: S,62,[S]witch to Email,E-Mail,0
ΓòÉΓòÉΓòÉ 8.40. Type 63 - Name of file area ΓòÉΓòÉΓòÉ
Menu Type: 63
Option Data: Name of File Area.
Description: Find file area (name of area in data field)
Example: S,63,[S]witch to Games,Dos-Games,0
ΓòÉΓòÉΓòÉ 8.41. Type 64 - Previous message area ΓòÉΓòÉΓòÉ
Menu Type: 64
Option Data: 1/-1
Description: Next/Previous message area (1 in data field
means next area, -1 in data field means
previous area).
Example: >,64,[>] Next area,1,0
ΓòÉΓòÉΓòÉ 8.42. Type 65 - Previous file area ΓòÉΓòÉΓòÉ
Menu Type: 65
Option Data: 1/-1
Description: Next/Previous file area (1 in data field means
next area, -1 in data field means previous
area).
Example: <,64,[<] Next area,-1,0
ΓòÉΓòÉΓòÉ 8.43. Type 70 - List files in current area ΓòÉΓòÉΓòÉ
Menu Type: 70
Option Data:
Description: List files in current area.
Example: L,78,[L]ist File In This Area,,0
ΓòÉΓòÉΓòÉ 8.44. Type 71 - Search files in area - keyword ΓòÉΓòÉΓòÉ
Menu Type: 71
Option Data:
Description: Search files in current area. Asks for search
string.
Example: 3,71,Current Area String to Match,,0
ΓòÉΓòÉΓòÉ 8.45. Type 72 - Search files in area - keyword / date ΓòÉΓòÉΓòÉ
Menu Type: 72
Option Data:
Description: Search files in current area newer than
specified date. Asks for search string and
date.
Example: 1,72,Current Area Date & String to Match,,15
ΓòÉΓòÉΓòÉ 8.46. Type 73 - Search new files in area - date ΓòÉΓòÉΓòÉ
Menu Type: 73
Option Data:
Description: New files in current area. asks for date.
Example: 2,73,Current Area Date to Match,,15
ΓòÉΓòÉΓòÉ 8.47. Type 74 - Search new files in All areas - sequentially ΓòÉΓòÉΓòÉ
Menu Type: 74
Option Data:
Description: New files in all areas, searched sequentially.
Example: 5,74,All Date to Match,,15
ΓòÉΓòÉΓòÉ 8.48. Type 75 - List All files - alphabetically ΓòÉΓòÉΓòÉ
Menu Type: 75
Option Data:
Description: List ALL files in alphabetical order.
Example: 7,75,All A-Z Listing,,15
ΓòÉΓòÉΓòÉ 8.49. Type 76 - Search files in All areas - keyword ΓòÉΓòÉΓòÉ
Menu Type: 76
Option Data: Search String
Description: Search files in all areas. Asks for search
string.
Example: 6,76,All String to Match,,15
ΓòÉΓòÉΓòÉ 8.50. Type 77 - List files in area - chronologically ΓòÉΓòÉΓòÉ
Menu Type: 77
Option Data:
Description: List files in current area, in dated order
newest to oldest.
Example: 4,77,Current Area List Files,,15
ΓòÉΓòÉΓòÉ 8.51. Type 78 - List files in area - alphabetically ΓòÉΓòÉΓòÉ
Menu Type: 78
Option Data:
Description: List files in current area, in alphabetical
order. A->Z
Example: L,78,[L]ist File In This Area,,15
ΓòÉΓòÉΓòÉ 8.52. Type 84 - View Archive ΓòÉΓòÉΓòÉ
Menu Type: 84
Option Data:
Description: View archive
Example: V,84,[V]iew Archive contents,,15
ΓòÉΓòÉΓòÉ 8.53. Type 85 - Download files - FileName ΓòÉΓòÉΓòÉ
Menu Type: 85
Option Data:
Description: Download file(s) - asks for file name(s)
Example: D,85,[D]ownload file(s),,15
ΓòÉΓòÉΓòÉ 8.54. Type 86 - Download file - DataField (remote users) ΓòÉΓòÉΓòÉ
Menu Type: 86
Option Data:
Description: Download file contained in data field. This
will only work for remote callers
Example: R,86,[R]ules Download,C:\bbs\rules.txt,0
ΓòÉΓòÉΓòÉ 8.55. Type 90 - Upload file - FileName ΓòÉΓòÉΓòÉ
Menu Type: 90
Option Data:
Description: Upload file(s) - Asks for file names, unless
the 'upload blind' bit is turned on for the
file area and blind uploading is possible with
the users current protocol. (blind uploading
means the transfer comes first, with the file
names and descriptions determined afterwards)
Example: U,90,[U]pload file(s),,15
ΓòÉΓòÉΓòÉ 8.56. Type 91 - Upload file - DataField ΓòÉΓòÉΓòÉ
Menu Type: 91
Option Data:
Description: Upload specific file. (file in data field).
Example: U,91,Upload Picture,pic.gif,0
ΓòÉΓòÉΓòÉ 8.57. Type 100 - OR User1 attributes ΓòÉΓòÉΓòÉ
Menu Type: 100
Option Data:
Description: OR user attributes 1 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 8.58. Type 101 - AND User1 attributes ΓòÉΓòÉΓòÉ
Menu Type: 101
Option Data:
Description: AND user attributes 1 with number in data
field.
Example:
ΓòÉΓòÉΓòÉ 8.59. Type 102 - OR User2 attributes ΓòÉΓòÉΓòÉ
Menu Type: 102
Option Data:
Description: OR user attributes 2 with number in data
field.
Example:
ΓòÉΓòÉΓòÉ 8.60. Type 103 - AND User2 attributes ΓòÉΓòÉΓòÉ
Menu Type: 103
Option Data:
Description: AND user attributes 2 with number in data
field.
Example:
ΓòÉΓòÉΓòÉ 8.61. Type 104 - OR User1 flags ΓòÉΓòÉΓòÉ
Menu Type: 104
Option Data:
Description: OR user flags 1 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 8.62. Type 105 - AND User1 flags ΓòÉΓòÉΓòÉ
Menu Type: 105
Option Data:
Description: AND user flags 1 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 8.63. Type 106 - OR User2 flags ΓòÉΓòÉΓòÉ
Menu Type: 106
Option Data:
Description: OR user flags 2 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 8.64. Type 107 - AND User2 flags ΓòÉΓòÉΓòÉ
Menu Type: 107
Option Data:
Description: AND user flags 2 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 8.65. Type 110 - X-Fer protocol ΓòÉΓòÉΓòÉ
Menu Type: 110
Option Data: Character of Protocol
Description: Set user file transfer protocol to letter
contained in data field.
Example: X,110,Change to Xmodem,X,0
ΓòÉΓòÉΓòÉ 8.66. Type 111 - Computer type ΓòÉΓòÉΓòÉ
Menu Type: 111
Option Data: Number/Letter of Computer Type
Description: Set user computer type to number in data field
(number is index into 'Computers' file).
Example: I,111,Change to IBM,3,0
ΓòÉΓòÉΓòÉ 8.67. Type 119 - Read all tagged area messages from newest * ΓòÉΓòÉΓòÉ
Menu Type: 119 (1.09.02+ Only)
Option Data: Menu Name
Description: Globally read msgs in tagged area(s) from
current/newest message.
Example: N,119,[N]ew messages,,0
ΓòÉΓòÉΓòÉ 8.68. Type 120 - Read messages by tagged Area * ΓòÉΓòÉΓòÉ
Menu Type: 120 (1.09.02+ Only)
Option Data: Menu Name
Description: Globally read messages in tagged area(s), stop
at each area.
Example: R,120,[R]ead New messages,,0
ΓòÉΓòÉΓòÉ 8.69. Type 121 - Quickscan tagged area Messages * ΓòÉΓòÉΓòÉ
Menu Type: 121 (1.09.02+ Only)
Option Data: Menu Name
Description: QuickScan messages in tagged area(s) (to, from,
subject) You may also put data in the item data
field. This data is the message base to read
from. It also switches the users current
message area to that area. So if you had
"Headline New" in the item data field for any
of those menu items, it would switch to the
"Headline News" message area, and then prompt
the users to read the messages there.
Example: Q,121,[Q]uick Scan Messages,,0
ΓòÉΓòÉΓòÉ 8.70. Type 122 - Scan tagged area message Headers * ΓòÉΓòÉΓòÉ
Menu Type: 122 (1.09.02+ Only)
Option Data: Menu Name
Description: Scan message headers in tagged message area(s),
You may also put data in the item data field.
This data is the message base to read from. It
also switches the users current message area to
that area. So if you had "Headline New" in the
item data field for any of those menu items, it
would switch to the "Headline News" message
area, and then prompt the users to read the
messages there.
Example: S,122,[S]can messages,,0
ΓòÉΓòÉΓòÉ 8.71. Type 130 - Address ΓòÉΓòÉΓòÉ
Menu Type: 130
Option Data:
Description: Change address (address line 1, lines 2 and 3
if those bits are set in BBS flags.
Example: A,130,Change Address,,0
ΓòÉΓòÉΓòÉ 8.72. Type 131 - ANSI color flag ΓòÉΓòÉΓòÉ
Menu Type: 131
Option Data:
Description: Change ANSI color flag.
Example: 1,131,ANSI Color,,0
ΓòÉΓòÉΓòÉ 8.73. Type 132 - High ASCII flag ΓòÉΓòÉΓòÉ
Menu Type: 132
Option Data:
Description: Change high ASCII (chars 128-255) flag.
Example: 1,132,High Ascii,,0
ΓòÉΓòÉΓòÉ 8.74. Type 133 - Cold input flag ΓòÉΓòÉΓòÉ
Menu Type: 133
Option Data:
Description: Change cold input flag (not hot key).
Example: 5,133,Cold Input,,0
ΓòÉΓòÉΓòÉ 8.75. Type 134 - Screen length ΓòÉΓòÉΓòÉ
Menu Type: 134
Option Data:
Description: Change screen length.
Example: 7,134,Length of screen,,0
ΓòÉΓòÉΓòÉ 8.76. Type 135 - Pause flag ΓòÉΓòÉΓòÉ
Menu Type: 135
Option Data:
Description: Change pause flag.
Example: 3,135,More Prompts,,0
ΓòÉΓòÉΓòÉ 8.77. Type 136 - Handle ΓòÉΓòÉΓòÉ
Menu Type: 136
Option Data: NONE
Description: Change handle.
Example: 3,136,Change Handle,,0
ΓòÉΓòÉΓòÉ 8.78. Type 137 - Password ΓòÉΓòÉΓòÉ
Menu Type: 137
Option Data:
Description: Change password.
Example: B,137,Change Password,,0
ΓòÉΓòÉΓòÉ 8.79. Type 138 - Screen width ΓòÉΓòÉΓòÉ
Menu Type: 138
Option Data:
Description: Change screen width.
Example: 6,138,Width of screen,,0
ΓòÉΓòÉΓòÉ 8.80. Type 139 - Phone number ΓòÉΓòÉΓòÉ
Menu Type: 139
Option Data:
Description: Change phone number(s) (home phone. data,
business and fax phones if these bits are set
in the BBS flags).
Example: 0,139,Change Phone,,0
ΓòÉΓòÉΓòÉ 8.81. Type 140 - User interests ΓòÉΓòÉΓòÉ
Menu Type: 140
Option Data:
Description: Change interests.
Example: E,140,Interest,,0
ΓòÉΓòÉΓòÉ 8.82. Type 141 - Display user info ΓòÉΓòÉΓòÉ
Menu Type: 141
Option Data:
Description: Change information to be shown to other users.
Example: E,141,Info Shown,,0
ΓòÉΓòÉΓòÉ 8.83. Type 142 - Expert mode ΓòÉΓòÉΓòÉ
Menu Type: 142
Option Data:
Description: Change expert mode.
Example: E,142,Expert Mode,,0
ΓòÉΓòÉΓòÉ 8.84. Type 144 - ANSI cursor flag ΓòÉΓòÉΓòÉ
Menu Type: 144
Option Data:
Description: Change ANSI cursor movement flag.
Example: A,144,Ansi Movement,,0
ΓòÉΓòÉΓòÉ 8.85. Type 145 - Set User misc. flags ΓòÉΓòÉΓòÉ
Menu Type: 145
Option Data:
Description: Changes protocol, new msgs flag, new files
flag, limit file list flag, see news flag, ask
download flag, user available flag and last but
certainly not least EBCDIC conversion flag.
Example: E,145,Edit Flags,,0
ΓòÉΓòÉΓòÉ 8.86. Type 146 - File X-Fer protocol ΓòÉΓòÉΓòÉ
Menu Type: 146
Option Data:
Description: Change file transfer protocol.
Example: P,146,File Transfer [P]rotocol,,0
ΓòÉΓòÉΓòÉ 8.87. Type 147 - New message at logon flag ΓòÉΓòÉΓòÉ
Menu Type: 147
Option Data:
Description: Change new message at logon flag.
Example: N,147,Toggle New Messages At Logon,,0
ΓòÉΓòÉΓòÉ 8.88. Type 148 - New files at logon flag ΓòÉΓòÉΓòÉ
Menu Type: 148
Option Data:
Description: Change new files search at logon.
Example: N,148,Toggle New Files At Login,,0
ΓòÉΓòÉΓòÉ 8.89. Type 149 - Limit file list flag ΓòÉΓòÉΓòÉ
Menu Type: 149
Option Data:
Description: Change limit file list flag.
Example: L,149,Change Limit,,0
ΓòÉΓòÉΓòÉ 8.90. Type 150 - Misc news flags ΓòÉΓòÉΓòÉ
Menu Type: 150
Option Data:
Description: Change see misc. news.
Example: N,150,Toggle News,,0
ΓòÉΓòÉΓòÉ 8.91. Type 151 - Ask to download flag ΓòÉΓòÉΓòÉ
Menu Type: 151
Option Data:
Description: Change ask download.
Example: A,151,,,0
ΓòÉΓòÉΓòÉ 8.92. Type 152 - Chat availability flag ΓòÉΓòÉΓòÉ
Menu Type: 152
Option Data:
Description: Change user available for chat flag.
Example: C,152,Toggle Chat Flag,,0
ΓòÉΓòÉΓòÉ 8.93. Type 154 - Full screen flag ΓòÉΓòÉΓòÉ
Menu Type: 154
Option Data:
Description: Change full screen editor flag.
Example: 8,154,Full screen editor,,0
ΓòÉΓòÉΓòÉ 8.94. Type 155 - Export mail type flag ΓòÉΓòÉΓòÉ
Menu Type: 155
Option Data:
Description: Change mail export type.
Example: 8,155,Export Type,,0
ΓòÉΓòÉΓòÉ 8.95. Type 156 - User birthday flag ΓòÉΓòÉΓòÉ
Menu Type: 156
Option Data:
Description: Set birthday (should be used from NewUser.Menu
ONLY) If the user is too young or too old ,
this will _end_ the current BBS session!!
Example: D,156,Birthday,,0
ΓòÉΓòÉΓòÉ 8.96. Type 157 - Clear screen flag ΓòÉΓòÉΓòÉ
Menu Type: 157
Option Data:
Description: Change clear screen.
Example: 4,157,Clear Screen,,0
ΓòÉΓòÉΓòÉ 8.97. Type 158 - User computer type ΓòÉΓòÉΓòÉ
Menu Type: 158
Option Data:
Description: Change computer type.
Example: F,158,Computer Type,,0
ΓòÉΓòÉΓòÉ 8.98. Type 159 - Gender flag ΓòÉΓòÉΓòÉ
Menu Type: 159
Option Data:
Description: Change gender (should be used from NewUser.Menu
ONLY) Use sparingly.
Example: C,159,Change Gender,,0
ΓòÉΓòÉΓòÉ 8.99. Type 161 - Avatar flag ΓòÉΓòÉΓòÉ
Menu Type: 161
Option Data:
Description: Change to Avatar.
Example: A,161,Change to Avatar,,0
ΓòÉΓòÉΓòÉ 8.100. Type 162 - ANSI-TE2 flag ΓòÉΓòÉΓòÉ
Menu Type: 162
Option Data:
Description: Change ANSI-TE2.
Example: A,162,Ansi-Te2,,0
ΓòÉΓòÉΓòÉ 8.101. Type 163 - 8.3 file name conversion flag ΓòÉΓòÉΓòÉ
Menu Type: 163
Option Data:
Description: Change 8 dot 3 names (will convert long names
down to 8.3).
Example: F,163,Short [F]ile Names,,0
ΓòÉΓòÉΓòÉ 8.102. Type 164 - Avatar/ANSI flags ΓòÉΓòÉΓòÉ
Menu Type: 164
Option Data:
Description: Change Avatar/Ansi Flags.
Example: C,164,Change Avatar/Ansi Flags,,0
ΓòÉΓòÉΓòÉ 8.103. Type 165 - View off-line mail status ΓòÉΓòÉΓòÉ
Menu Type: 165
Option Data:
Description: Change View off-line mail status.
Example: V,165,Toggle viewing,,0
ΓòÉΓòÉΓòÉ 8.104. Type 166 - Default archiver ΓòÉΓòÉΓòÉ
Menu Type: 166
Option Data:
Description: Change default archiver.
Example: I,166,Change Archiver,,0
ΓòÉΓòÉΓòÉ 8.105. Type 167 - Deposit bank time ΓòÉΓòÉΓòÉ
Menu Type: 167
Option Data:
Description: Deposit Bank Time.
Example: D,167,[D]eposit time,,0
ΓòÉΓòÉΓòÉ 8.106. Type 168 - Withdraw bank time ΓòÉΓòÉΓòÉ
Menu Type: 168
Option Data:
Description: Withdraw Bank Time
Example: W,168,[W]ithdraw time,,0
ΓòÉΓòÉΓòÉ 8.107. Type 190 - Toggle bits in User1 attribute ΓòÉΓòÉΓòÉ
Menu Type: 190
Option Data: Menu Name
Description: Toggle a Bit in user attributes 1, bit number
is in data field. (bit can be 1 thru 32)
Example:
ΓòÉΓòÉΓòÉ 8.108. Type 191 - Toggle bits in User2 attribute ΓòÉΓòÉΓòÉ
Menu Type: 191
Option Data: Menu Name
Description: Toggle a Bit in user attributes 2, bit number
is in data field. (bit can be 1 thru 32)
Example:
ΓòÉΓòÉΓòÉ 8.109. Type 192 - Toggle bits in User1 flag ΓòÉΓòÉΓòÉ
Menu Type: 192
Option Data: Menu Name
Description: Toggle a Bit in user flags 1, bit number is in
data field. (bit can be 1 thru 32)
Example:
ΓòÉΓòÉΓòÉ 8.110. Type 193 - Toggle bits in User2 flag ΓòÉΓòÉΓòÉ
Menu Type: 193
Option Data: Menu Name
Description: Toggle a Bit in user flags 2, bit number is in
data field (bit can be 1 thru 32)
Example:
ΓòÉΓòÉΓòÉ 8.111. Type 200 - Write message ΓòÉΓòÉΓòÉ
Menu Type: 200
Option Data: 'To Name';'Subject';'AreaNum';'1' or '0';Node
Number
Description: Write message, no optional data needed. If no
optional data is used the message is treated as
a normal message entry option. Public or
Private messages may be posted via this method,
uses the options set for the area you are
posting in. The force to data requires a name
and will take a optional subject if a ';' is
placed between the name and subject.
To Name Name of person to force
message to
Subject Subject to force message to
be pasted as
AreaNum Message area number to post
message in
1 or 0 Return to message area user
was in when they posted the
message or stay in the new
messages area. (1=Return,
0=Stay.)
Node Number Node number to force
message to if it is
NetMail, this must be a
full 5-D Address. i.e.
1:18/210.0@Fidonet
Example: F,200,This is a Command,Sysop;Comment
from {U0;2;1,0
Example: E,200,This is a
Command,;;2;1;1:368/210.0@Fidonet,0
In this example it would go to Area 2, Post a
Message to Sysop, with the Subject of 'Comment
from 'User Real Name' and after the message was
saved or aborted it would return to the message
area the user was in when this command was
executed. All data on this command is
optional. If you do not specify a name to
force the message to it will then try the name
in the force to field in the message
configuration, if that doesn't exist it will
default to Sysop.
Example: E,200,[E]nter a Message,,0
ΓòÉΓòÉΓòÉ 8.112. Type 201 - Write message - NameData ΓòÉΓòÉΓòÉ
Menu Type: 201
Option Data: 'Force To Name';'Subject';'AreaNum';'1' or
'0';Node Number
Description: Write message to user name specified in area
'forced to' data and marks the message as
private. The force to data requires a name and
will take a optional subject if a ; is placed
between the name and subject.
To Name Name of person to force
message to
Subject Subject to force message to
be pasted as
AreaNum Message area number to post
message in
1 or 0 Return to message area user
was in when they posted the
message or stay in the new
messages area. (1=Return,
0=Stay.)
Node Number Node number to force
message to if it is
NetMail, this must be a
full 5-D Address. i.e.
1:18/210.0@Fidonet
Example: F,200,This is a Command,Sysop;Comment
from {U0;2;1,0
Example: E,200,This is a
Command,;;2;1;1:368/210.0@Fidonet,0
In this example it would go to Area 2, Post a
Message to Sysop, with the Subject of 'Comment
from 'User Real Name' and after the message was
saved or aborted it would return to the message
area the user was in when this command was
executed. All data on this command is
optional. If you do not specify a name to
force the message to it will then try the name
in the force to field in the message
configuration, if that doesn't exist it will
default to Sysop.
Example: C,201,Comment to Sysop,Sysop;Comment from
{U0;2;1,0
ΓòÉΓòÉΓòÉ 8.113. Type 300 - Prompt user for data ΓòÉΓòÉΓòÉ
Menu Type: 300
Option Data: 'Prompt/Question'
Description: Get string input from user and temporarily
store it. Prompt is in data field.
Example: N,300,Name,Name?,0
ΓòÉΓòÉΓòÉ 8.114. Type 301 - Store DataField as user input ΓòÉΓòÉΓòÉ
Menu Type: 301
Option Data: Menu Name
Description: Temporarily stores text in data field as last
user input.
Example: N,300,Name,Joe,0
ΓòÉΓòÉΓòÉ 8.115. Type 400 - Internode chat - DataField ΓòÉΓòÉΓòÉ
Menu Type: 400
Option Data: 'Chat Area'
Description: Internode chat, with Area defined in data field
Example: G,400,Chat About Games,Games,0
ΓòÉΓòÉΓòÉ 8.116. Type 601 - Toggle ANSI color flag ΓòÉΓòÉΓòÉ
Menu Type: 601
Option Data:
Description: Toggles ANSI color flag
Example: T,601,Toggle Ansi Color,,0
ΓòÉΓòÉΓòÉ 8.117. Type 602 - Toggle High ANSI flag ΓòÉΓòÉΓòÉ
Menu Type: 602
Option Data: NONE
Description: Toggles high ASCII flag
Example: T,602,Toggle High Ascii,,0
ΓòÉΓòÉΓòÉ 8.118. Type 603 - Toggle More prompt ΓòÉΓòÉΓòÉ
Menu Type: 603
Option Data: NONE
Description: Toggles MORE prompt flag
Example: T,603,Toggle More Prompts,,0
ΓòÉΓòÉΓòÉ 8.119. Type 604 - Toggle Clear screen flag ΓòÉΓòÉΓòÉ
Menu Type: 604
Option Data: NONE
Description: Toggles clear screen flag
Example: T,604,Toggle Clear Screen,,0
ΓòÉΓòÉΓòÉ 8.120. Type 605 - Toggle Cold input flag ΓòÉΓòÉΓòÉ
Menu Type: 605
Option Data: NONE
Description: Toggles cold input flag
Example: 5,605,Cold Input,,0
ΓòÉΓòÉΓòÉ 8.121. Type 606 - Toggle Address flag ΓòÉΓòÉΓòÉ
Menu Type: 606
Option Data: NONE
Description: Toggles show address flag
Example: S,606,Show Address Toggle,,0
ΓòÉΓòÉΓòÉ 8.122. Type 607 - Toggle Phone flag ΓòÉΓòÉΓòÉ
Menu Type: 607
Option Data: NONE
Description: Toggles show phone flag
Example: S,607,Show Phone Toggle,,0
ΓòÉΓòÉΓòÉ 8.123. Type 608 - Toggle Real name flag ΓòÉΓòÉΓòÉ
Menu Type: 608
Option Data: NONE
Description: Toggles show real name flag.
Example: R,608,Show Real Name Toggle,,0
ΓòÉΓòÉΓòÉ 8.124. Type 609 - Toggle No kill flag ΓòÉΓòÉΓòÉ
Menu Type: 609
Option Data: NONE
Description: Toggles no kill flag.
Example: K,609,Toggle No Kill Flag,,0
ΓòÉΓòÉΓòÉ 8.125. Type 610 - Toggle deleted flag ΓòÉΓòÉΓòÉ
Menu Type: 610
Option Data: NONE
Description: Toggle deleted flag.
Example: D,610,Toggle Delete Flag,,0
ΓòÉΓòÉΓòÉ 8.126. Type 611 - Toggle Expert flag ΓòÉΓòÉΓòÉ
Menu Type: 611
Option Data: NONE
Description: Toggle expert flag.
Example: X,611,Toggle Expert Flag,,0
ΓòÉΓòÉΓòÉ 8.127. Type 612 - Toggle Twit flag ΓòÉΓòÉΓòÉ
Menu Type: 612
Option Data: NONE
Description: Toggle twit flag.
Example: T,612,Toggle Twit Flag,,0
ΓòÉΓòÉΓòÉ 8.128. Type 613 - Toggle New files flag ΓòÉΓòÉΓòÉ
Menu Type: 613
Option Data: NONE
Description: Toggle new files flag.
Example: N,613,Toggle New Files,,0
ΓòÉΓòÉΓòÉ 8.129. Type 614 - Toggle New messages flag ΓòÉΓòÉΓòÉ
Menu Type: 614
Option Data: NONE
Description: Toggle new messages flag.
Example: N,614,Toggle New Msgs,,0
ΓòÉΓòÉΓòÉ 8.130. Type 615 - Toggle DL New messages flag ΓòÉΓòÉΓòÉ
Menu Type: 615
Option Data: NONE
Description: Toggle download new messages flag.
Example: D,615,Toggle DL New Msgs,,0
ΓòÉΓòÉΓòÉ 8.131. Type 616 - Toggle DL New files flag ΓòÉΓòÉΓòÉ
Menu Type: 616
Option Data: NONE
Description: Toggle download new file list flag.
Example: D,616,Toggle DL New List,,0
ΓòÉΓòÉΓòÉ 8.132. Type 617 - Toggle View misc news flag ΓòÉΓòÉΓòÉ
Menu Type: 617
Option Data: NONE
Description: Toggle see misc. news flag.
Example: N,617,Toggle News,,0
ΓòÉΓòÉΓòÉ 8.133. Type 618 - Toggle Ask Download flag ΓòÉΓòÉΓòÉ
Menu Type: 618
Option Data: NONE
Description: Toggles ask download flag.
Example: D,618,,,0
ΓòÉΓòÉΓòÉ 8.134. Type 619 - Toggle Novice flag ΓòÉΓòÉΓòÉ
Menu Type: 619
Option Data: NONE
Description: Toggles novice flag.
Example: N,619,Toggle Novice,,0
ΓòÉΓòÉΓòÉ 8.135. Type 620 - Toggle Point mail only flag ΓòÉΓòÉΓòÉ
Menu Type: 620
Option Data: NONE
Description: Toggles point mail only flag.
Example: P,620,Toggle Point Only,,0
ΓòÉΓòÉΓòÉ 8.136. Type 622 - Toggle Locked-out flag ΓòÉΓòÉΓòÉ
Menu Type: 622
Option Data: NONE
Description: Toggles locked out flag.
Example: L,622,Toggle Locked Out,,0
ΓòÉΓòÉΓòÉ 8.137. Type 623 - Toggle Chat availablity flag ΓòÉΓòÉΓòÉ
Menu Type: 623
Option Data: NONE
Description: Toggles chat availability.
Example: C,623,Toggle Chat,,0
ΓòÉΓòÉΓòÉ 8.138. Type 624 - Toggle List user display flag ΓòÉΓòÉΓòÉ
Menu Type: 624
Option Data: NONE
Description: Toggles protected from user list display.
Example: P,624,Toggle Display,,0
ΓòÉΓòÉΓòÉ 8.139. Type 625 - Toggle Misc News display flag ΓòÉΓòÉΓòÉ
Menu Type: 625
Option Data: NONE
Description: Toggles misc. news display.
Example: N,625,Toggle News,,0
ΓòÉΓòÉΓòÉ 8.140. Type 626 - Toggle File list current area only flag ΓòÉΓòÉΓòÉ
Menu Type: 626
Option Data: NONE
Description: Toggles limit file list to current area.
Example: F,626,Toggle File List,,0
ΓòÉΓòÉΓòÉ 8.141. Type 628 - Toggle Verified flag ΓòÉΓòÉΓòÉ
Menu Type: 628
Option Data: NONE
Description: Toggles verified flag.
Example: V,628,Toggle Verified,,0
ΓòÉΓòÉΓòÉ 8.142. Type 629 - Toggle ANSI TE2 graphics flag ΓòÉΓòÉΓòÉ
Menu Type: 629
Option Data: NONE
Description: Toggles ANSI TE2 graphics.
Example: T,629,Toggle ANSI-TE2,,0
ΓòÉΓòÉΓòÉ 8.143. Type 630 - Toggle RIP graphics ΓòÉΓòÉΓòÉ
Menu Type: 630
Option Data: NONE
Description: Toggles RIP graphics.
Example: T,630,Toggle RIP,,0
ΓòÉΓòÉΓòÉ 8.144. Type 631 - Toggle ΓòÉΓòÉΓòÉ
Menu Type: 631
Option Data: NONE
Description: Toggle AVATAR graphics.
Example: T,631,Toggle Avatar,,0
ΓòÉΓòÉΓòÉ 8.145. Type 632 - Toggle Offline mail monitoring flag ΓòÉΓòÉΓòÉ
Menu Type: 632
Option Data: NONE
Description: Toggle off-line mail monitoring.
Example: I,632,[M]onitor,,0
ΓòÉΓòÉΓòÉ 8.146. Type 640 - Pack & DL Offline mail ΓòÉΓòÉΓòÉ
Menu Type: 640
Option Data: NONE
Description: Pack up and download off-line mail.
Example: P,640,Pack&DL,,0
ΓòÉΓòÉΓòÉ 8.147. Type 655 - Change Archiver ΓòÉΓòÉΓòÉ
Menu Type: 655
Option Data: NONE
Description: Change archiver.
Example: C,655,Change Archiver,,0
ΓòÉΓòÉΓòÉ 8.148. Type 656 - Edit File X-Fer list ΓòÉΓòÉΓòÉ
Menu Type: 657
Option Data: NONE
Description: Edit file transfer list (tagged files).
Example: E,656,Edit Tagged,,0
ΓòÉΓòÉΓòÉ 8.149. Type 700 - Tag All areas for Offline mail ΓòÉΓòÉΓòÉ
Menu Type: 700
Option Data: NONE
Description: Tag all areas for off-line mail.
Example: T,700,[T]ag All,,0
ΓòÉΓòÉΓòÉ 8.150. Type 701 - Untag all areas for Offline mail ΓòÉΓòÉΓòÉ
Menu Type: 701
Option Data: NONE
Description: Untag all areas for off-line mail.
Example: T,701,Untag All,,0
ΓòÉΓòÉΓòÉ 8.151. Type 702 - Toggle area for Offline mail - AreaData ΓòÉΓòÉΓòÉ
Menu Type: 702
Option Data: NONE
Description: Toggle a specific area for off-line mail.
Example: T,702,[T]ag/Untag Area,,0
ΓòÉΓòÉΓòÉ 8.152. Type 703 - Set mail export type ΓòÉΓòÉΓòÉ
Menu Type: 703
Option Data: NONE
Description: Change type of mail export (Text, QWK, Fido,
etc).
Example: C,703,[S]elect Mail Type,,0
ΓòÉΓòÉΓòÉ 8.153. Type 704 - Edit Last message read ΓòÉΓòÉΓòÉ
Menu Type: 704
Option Data: NONE
Description: Message area Last message Read Editing.
Example: L,704,[L] Select Default Type,,0
ΓòÉΓòÉΓòÉ 8.154. Type 800 - Run OS/2 door ΓòÉΓòÉΓòÉ
Menu Type: 800
Option Data: Program Name (CMD.EXE)
Description: Run OS/2 type door. Pgm must use stdin/stdout
for I/O... and allow itself to be killed. Data
field contains door to run.
Example: D,800,[D]rop to Dos\r\n,cmd.exe,0
ΓòÉΓòÉΓòÉ 8.155. Type 801 - Spawn session door - ExeData ΓòÉΓòÉΓòÉ
Menu Type: 801
Option Data: Program Name/Batch File (CMD.EXE /c Batch.Cmd)
Description: Spawn a separate session. data field contains
door to run. Can be used for any door program
that accesses the com port in a more
traditional (and complicated) fashion.
(includes DOS doors) This is the one to use for
99% of all DOORS!
Example: E,801,,cmd.exe /c lord.bat {LN {H0,0,,,5
ΓòÉΓòÉΓòÉ 8.156. Type 802 - Spawn session door (I/O) ΓòÉΓòÉΓòÉ
Menu Type: 802
Option Data: Program Name/Batch File (CMD.EXE /c Batch.Cmd)
Description: Run OS/2 type door. (same as 800 but assumes a
program which is more friendly to having its
I/O. redirected thru pipes to the com port.)
Example: U,802,[U]ser Editor\r\n,SysEditR.Exe,0
ΓòÉΓòÉΓòÉ 8.157. Type 803 - Spawn session door (Semaphores) ΓòÉΓòÉΓòÉ
Menu Type: 803
Option Data: Program Name/Batch File (CMD.EXE /c Batch.Cmd)
Description: The type 803 door works exactly like a type 802
except that it sets and allows you to set
several 32-bit semaphores giving you and the
BBS more interaction. They are as follows.
\SEM32\ChildDone\Line# \SEM32\Carrier\Line#
\SEM32\TimeTick\Line# We will activate the
\SEM32\Carrier\Line# when a user drops carrier.
This then gives you 10 minutes to complete your
task and return to the BBS software. If you
issue a \SEM32\ChildDone\Line# and exit we will
handle everything normally. Next the TimeTick
warns you of when the user has 3, 2 and 1
minute remaining. We will issue it three
times. These should help make your programs
more aware of Adept and Adept more aware of
them.
Example:
ΓòÉΓòÉΓòÉ 8.158. Type 810 - Spawn session door (Adept environment) ΓòÉΓòÉΓòÉ
Menu Type: 810
Option Data: Program Name/Batch File (CMD.EXE /c Batch.Cmd)
Description: Spawn a separate session. Inherits Adepts
environment. (same as 801.. ahem..)
Example: 5,810,,cmd.exe /c hang.bat {LN {H0,0
ΓòÉΓòÉΓòÉ 8.159. Type 811 - Spawn session door (OS/2 environment) ΓòÉΓòÉΓòÉ
Menu Type: 811
Option Data: Program Name/Batch File (CMD.EXE /c Batch.Cmd)
Description: Spawn a separate session. Inherits OS/2's
default environment.
Example: 5,811,,cmd.exe /c hang.bat {LN {H0,0
ΓòÉΓòÉΓòÉ 8.160. Type 815 - Spawn session door (foreground) ΓòÉΓòÉΓòÉ
Menu Type: 815
Option Data: Program Name/Batch File (CMD.EXE /c Batch.Cmd)
Description: See 801 and 810. Session is in foreground
(default is background)
Example: 5,815,,cmd.exe /c hang.bat {LN {H0,0
ΓòÉΓòÉΓòÉ 8.161. Type 900 - Check mail ΓòÉΓòÉΓòÉ
Menu Type: 900
Option Data:
Description: Personal Mail Check
Example: C,900,Check Mail,,0
ΓòÉΓòÉΓòÉ 8.162. Type 950 - Shutdown BBS !! ΓòÉΓòÉΓòÉ
Menu Type: 950
Option Data:
Description: Shuts down the BBS! This is EXTREMELY
powerful! It will cause the BBS to shut itself
down after the last user logs off.
Example: S,950,Shut Down BBS,,0
ΓòÉΓòÉΓòÉ 8.163. Type 999 - LogOff - Leave message to Sysop ΓòÉΓòÉΓòÉ
Menu Type: 999
Option Data: 'Area Number'
Description: Logoff with option to leave a message to the
sysop. The area number that you want the
message to be placed in should be entered in
the data field. After the user has entered the
message, it will display 'Goodbye.Asc' and then
prompt #202.
Example: L,999,Logoff,2,0
ΓòÉΓòÉΓòÉ 8.164. Type 1000 - LogOff ΓòÉΓòÉΓòÉ
Menu Type: 1000
Option Data: NONE
Description: Log use off, displays Goodbye.Asc and Prompt
#202 (language.text) before hanging up.
Example: ~,1000,Goodbye/Logoff,,0
ΓòÉΓòÉΓòÉ 8.165. Type 1001 - Instant Logoff ΓòÉΓòÉΓòÉ
Menu Type: 1001
Option Data: NONE
Description: Instant log off.
Example: Y,1001,,,5
ΓòÉΓòÉΓòÉ 8.166. Type 1002 - LogOff &Re-LogOn * ΓòÉΓòÉΓòÉ
Menu Type: 1002 (1.08.?x)
Option Data: NONE
Description: This will display Language.Text Prompt #935
(currently unused) and the file
RelogIn.Asc/Ans/Avt to the user before
commencing with the ReLogOn. This is a
Complete LogOff with ReLogOn, except that it
doesn't drop the carrier. ATEND.CMD will be
run, etc.
Example: Y,1002,,,5
ΓòÉΓòÉΓòÉ 9. AdeptREXX Interface ΓòÉΓòÉΓòÉ
AdeptREXX Interface:
AdeptXBBS comes with two 'Menu' systems, the standard text,
ASCII based menu system and a REXX Subsystem. The REXX
Subsystem included with the BBS software allows all basic menu
functions with some additional flexibility.
We also offer, still in development, a complete REXX API
subsystem that gives even the novice programmer control over the
BBS software.
With the AdeptXBBS REXX API Programming module you get access to
all available memory variables, all internal functions, and
unrestricted access to all running nodes at one time.
This is an extremely powerful module, giving control over the
entire BBS. For programmers wishing to write their own programs
in a simple language, yet maintain the speed and flexibility of
AdeptXBBS this is for you. We also have utilities that allow
you to ship your programs without making the source code
available to the end user.
Adept contains a REXX interface to the BBS functions. This
allows you to create your own scripts to execute from Adept. By
using REXX functions alone you can completely customize Adept.
Three types of REXX commands can be automatically executed by
Adept. They are "*.CMD", "*.SRX" and "*.ERX" files. To be
executed they need only exist in the "X:\Adept\Menus" directory.
Below is a list of "*.CMD" files that Adept will automatically
run if they exist in the "X:\Adept\Menus" directory.
Main.Cmd or
Main#.Cmd This REXX script is executed
Instead of the default menu
system.
AtEnd.Cmd or
AtEnd#.Cmd This REXX script is executed after
the user logs off (or the default
script has ended) The BPS rate
will be zero and the time left
will be five minutes. This script
is executed before the user info
is saved to the user data base.
AtStart.Cmd or
AtStart#.Cmd This REXX script is executed at
logon. The filename with the line
number is executed in place of
"AtStart.Cmd" if it exists.
Exception.Cmd This REXX script is executed if a
exception violation occurs. You
can use this script to notify the
user of what just happened. And
to help assist us by asking the
user what they where doing when
the exception happened.
ConvertXXX.Cmd Where 'XXX' is a file extension of
a type of file you wish to convert
to another format. For instance,
if you want to convert ARC files
to ZIP, you would create a
ConvertARC.CMD ConvertARC.Cmd
would then convert the file, if
the file is converted it creates a
file called "xxxxx.NewName" where
'xxxxx' is the file name without
the extension This file contains 1
line, the line has the new
filename of the file after it was
converted. Adept will use this
filename when it puts the file
info into the file system.
ChatReq.Cmd or
ChatReq#.Cmd Where '#' is the line number.
Fax.Cmd or
Fax#.Cmd Where '#' is the line number.
Executed when modem returns a fax
result code.
Standard and Extended REXX Programs:
.SRX stands for Standard REXX files. They are the same as
.CMD files in that they are not compiled in any way. .ERX
files are REXX files that have been preprocessed with the
AdeptREXX Processor (Srx2Erx). ERX files are typically 50
% smaller and always faster then standard REXX files (When
run Cached).
We are asking that people who write rexx scripts for Adept
that are not preprocessed please use the extension .SRX.
The preprocessor will Only. process files with the .SRX
extension.
"Srx2Erx.Exe FileNameWithoutExtention" will yield a file
with the same name, but the .ERX extension. If you are a
commercial developer is recommended that you preprocess
your rexx .SRX files before distributing them. Also it
recommended that you Do Not preprocess the following!
"AtStart.Cmd - This Must remain a .CMD file. So that
others may modify it and chain needed Rexx scripts
(preprocessed or not) from it.
The BBS software will only look for .ERX versions of files
that we feel are OK to preprocess. In fact if you are
running a .SRX file (i.e. .Cmd) file in cached mode (as we
default to) it is treated as a .ERX file after we
preprocess it internally. So it is honestly recommended
that you do not preprocess anything that you are Not going
to be distributing.
Proper REXX Programming Syntax:
ALL REXX functions in the software unless you are looking
for a value should be called with the CALL function NOT
with the () method.
i.e.
Call AdeptChainRexx "RexxCmdFile.Cmd", line
Not
rc = AdeptChainRexx("RexxCmdFile.Cmd", line)
The call method is always preferred but sometimes the API
set does not call for it. Those functions must be set
equal to some variable as they return a value to the
calling Script.
The second one will usually work correctly but not always.
It is always preferred to use the first method.
Key Return Codes:
The following is a table of the AdeptXBBS return codes for
CTRL and other keys.
Ctrl_A = 1 Ctrl_B = 2 Ctrl_C = 3 Ctrl_D = 4
Ctrl_E = 5 Ctrl_F = 6 Ctrl_G = 7 Ctrl_H = 8
Ctrl_I = 9 Ctrl_J = 10 Ctrl_K = 11 Ctrl_L = 12
Ctrl_N = 14 Ctrl_O = 15 Ctrl_P = 16 Ctrl_Q = 17
Ctrl_R = 18 Ctrl_S = 19 Ctrl_T = 20 Ctrl_U = 21
Ctrl_V = 22 Ctrl_W = 23 Ctrl_X = 24 Ctrl_Y = 25
Ctrl_Z = 26
Left = 75+1024 Home = 71+1024 BkSp = 24
Right = 77+1024 End = 79+1024
Fwd = 77+1024
Up = 72+1024 PgDn = 1+1024 Ins = 82+1024
Down = 80+1024 PgUp = 73+1024 Del = 83+1024
ΓòÉΓòÉΓòÉ 9.1. REXX Interface Calls ΓòÉΓòÉΓòÉ
Adept REXX Interface Calls:
Adept registers functions which can be called from the REXX
interpreter. These calls are used to interface a REXX script to
number as the first argument to the function. The REXX script
should store that line number because it must be passed back to
the AdeptREXX functions as the first parameter.
Remember to Start every REXX script with /* <text if any> */
then on the next line (or the one after) Do the following ..
ARG Line
*OR*
ARG LineNumber
Remember, if you use "Line", then all your REXX Function must
have the first parameter as "Line". If you use "LineNumber" then
all your REXX functions must have the first parameter as
"LineNumber". If you have used ARG Line and in a function you
have put "LineNumber" (where it's supposed to be) then nothing
will happen, so you must remember to always use the same
argument that you started with.
Example:
You used ARG Line so all your Functions (AdeptPrint,
AdeptCall, AdeptInput, etc..) will have to be passed
like so:
Call AdeptPrint Line,"String"
and Not
Call AdeptPrint LineNumber, "String"
It is the same if you have the two reversed. So
really, where ever you see "LineNumber" in this file,
you replace it with the argument you stated at the
beginning of the REXX script.
Strings:
Strings in REXX are denoted by the double quote mark.
Characters are marked by singe quotes. "String" 'A'
Empty Parameters:
If the function you wish to use does not require all the
parameters filled in, do not simply terminate the function call
when you have put all the parameters in that you need. Continue
to complete the function definition with commas with no
intervening spaces.
Example:
Call AdeptCall Linenumber,1,,'cmd.exe /c twar.bat'
Notice that the flags field is empty and that there
are no intervening spaces.
Debugging Scripts:
When your script has terminated abnormally you will notce an
integer value in the Recent Events Screen. To find out what the
error was record that integer value down and open an OS/2 window
and type:
help rex(ReturnNumber)
So if you have an error and the value in the Recent Events
window is (-6), Open up an OS/2 window and type "help rex6".
ΓòÉΓòÉΓòÉ 9.2. AdeptREXX Functions ΓòÉΓòÉΓòÉ
AdeptXBBS AdeptREXX Functions:
AdeptGetVersion ( ) Returns the Current
Adept Version. (1.08f
Only)
AdeptGetTempUser ( ) Gets a Temporary User
record. (1.08f Only)
AdeptGetTempUserVar ( ) Gets a Variable from a
Temporary User record.
(1.08f Only)
AdeptPutTempUserVar ( ) Places value in a
Temporary User record.
(1.08f Only)
AdeptFreeTempUser ( ) Frees the userid
record. (1.08f Only)
AdeptSaveTempUser ( ) Saves any changes made
to the userid record.
(1.08f Only)
AChatSendMsg ( ) This function is
untested, and may not
exist in the future.
Adept16BitCRC ( ) Returns the 16bit CRC
version of the String
passed.
Adept32BitCRC ( ) Returns the 32bit CRC
version of the String
passsed.
AdeptAddToXferList ( ) Adds File to the users
tagged file list.
AdeptCall ( ) Runs an external
program. All sessions
inherit Adepts
environment.
AdeptChainRexx ( ) Chains REXX files
within REXX files. Runs
the rexx script in
cached mode.
AdeptChainRexxNc ( ) Chains REXX files
within REXX files. Runs
the rexx script in
non-cached mode.
AdeptChangeGroup ( ) This works just like
upgrading a users group
in the local user
editor. The user will
take on the changes
specified for the
specific group that
they have joined/are
in.
AdeptCheckCard ( ) Returns '0' if there
was an error resulting
from the passed Node
number.
AdeptCheckBit ( ) This can be used to
test if a users bit is
turned on for any of
the LONG bitmap'd
flags.
AdeptClearXferList ( ) Empties users' Tagged
file list.
AdeptCls ( ) Clears local and remote
screen.
AdeptConvert ( ) Converts META variables
passed in String.
AdeptCurPos ( ) Moves Cursor to row,
column.
AdeptDropGlobalVar ( ) Frees the memory space
occupied by VarName,
where VarName is a
Global Variable made by
AdeptSetGlobalVar.
AdeptFile ( ) File area manipulation.
AdeptGetGlobalVar ( ) Pulls a variable's
value out of memory.
AdeptGetVar ( ) Returns almost every
single memory variable
Adept uses in the BBS
software.
AdeptPutVar ( ) Sets almost every
single memory variable
Adept uses in the BBS
software.
AdeptHitReturn ( ) AdeptHitReturn will
wait for the user to
press enter.
AdeptInKey ( ) Returns the ASCII code
for a incoming key
sequence. Returns 0 if
there are no keys
waiting.
AdeptInput ( ) Get a string from the
user.
AdeptKillRexxThread ( ) Terminates the rexx
thread with the ID
"TID".
AdeptLibrary ( ) Library area
manipulation.
AdeptLocation ( ) Will display where the
User is on the BBS
(Sysop defined).
AdeptLog ( ) Log an action to the
logfile and/or listbox.
AdeptMenu ( ) Executes a menu
contained in the file
MenuName.
AdeptMenuType ( ) This function let's you
use one of Adept's menu
types in a Rexx script.
AdeptMessage ( ) Message area
manipulation.
AdeptMore ( ) Executes a standard
"More" prompt.
AdeptPause ( ) AdeptPause will wait
for any key. (does not
display any text).
AdeptPlayMM ( ) Plays a WAV sound file.
AdeptPostTextMessage ( ) Posts a message using a
text file as the
message.
AdeptPrint ( ) Prints a string to the
local and remote
screen.
AdeptPrintL ( ) Exactly like AdeptPrint
except it prints to the
LOCAL screen only.
AdeptPutKey ( ) Places a character into
keyboard input stream.
AdeptRead ( ) Read messages.
AdeptRecv ( ) Upload files.
AdeptRequestsLogoff ( ) Checks if Adept wants
the user to be logged
off. (out of time /
timed out). (1.08f
Only)
AdeptSayGen ( ) Sets the "user
location" for the given
node in the Adept line
status window.
AdeptSend ( ) Download Files.
AdeptSetBit ( ) Will set Bit Number to
ON.
AdeptSetGlobalVar ( ) Sets a global variable
named VarName in memory
with a value of
VarValue.
AdeptSetTimer ( ) Starts a timer.
AdeptShow ( ) Display text files.
AdeptSleep ( ) Causes the current node
to sleep for x amount
of milliseconds.
AdeptStartRexxThread ( ) This will cause the
program Thread.Cmd to
be run in the
background.
AdeptStartRexxThreadNC ( ) This will cause the
program Thread.Cmd to
be run in the
background. Starts
Thread in non-cached
mode. (1.08f Only)
AdeptTimedInKey ( ) Returns the value for
the key inputed,
watched the port for a
period of time in
milliseconds.
AdeptTimeLeft ( ) Optionally sets time
left in current
session. Always returns
time left in current
session.
AdeptTimerUp ( ) Checks to see if the
timer is up.
AdeptUnsetBit ( ) Will set Bit Number to
OFF.
AdeptWaitKey ( ) Returns the ASCII code
for a incoming key
sequence.
AdeptWrite ( ) Write a message.
Print ( ) Displays the
argument(s) on the
given line.
Printf ( ) Sends the argument to
pmprintf.
AdeptREXX Variable Numbers AdeptXBBS User Info,
BBS Info, Modem/Mailer
Info Variables.
ΓòÉΓòÉΓòÉ 9.2.1. AdeptGetVersion * ΓòÉΓòÉΓòÉ
AdeptGetVersion ( ) (1.08f Only)
Description: Returns the Current Adept Version.
Syntax: rc = AdeptGetVersion()
Arguments:
N/A
Returns: Current Adept Version.
Notes: N/A
Example: The following example calls
AdeptGetVersion(), and then prints it
Call AdeptPrint line,"Running AdeptXBBS Version "||AdeptGetVersion()
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.2. AdeptGetTempUser * ΓòÉΓòÉΓòÉ
AdeptGetTempUser ( ) (1.08f Only)
Description: Gets a Temporary User record.
Syntax: rc = AdeptGetTempUser(UserName)
Arguments:
UserName: Users' Name.
Returns: UserId to be used by the TempUser family
of functions.
Notes: N/A
Example: The following example calls
AdeptGetTempUser for Paul Meyer, and
returns his UserId.
userid = AdeptGetTempUser("Paul Meyer")
Related: AdeptGetTempUserVar ( )
AdeptPutTempUserVar ( )
AdeptFreeTempUser ( )
AdeptSaveTempUser ( )
ΓòÉΓòÉΓòÉ 9.2.3. AdeptGetTempUserVar * ΓòÉΓòÉΓòÉ
AdeptGetTempUserVar ( ) (1.08f Only)
Description: Gets a Variable from a Temporary User
record.
Syntax: call AdeptGetTempUserVar UserID, Variable
rc = AdeptGetTempUserVar(UserID, Variable)
Arguments:
UserID: Userid Created by
AdeptGetTempUser.
Variable: Number of User Info
Adept Variable to
return. Where the
value can be a number
between 1 and 62.
Returns: The contents of the variable requested
from UserId.
Notes: N/A
Example: The following example calls
AdeptGetTempUserVar for a UserId, and
returns that users handle (2).
tempuserhandle = AdeptGetTempUserVar(userid,2)
Related: AdeptGetTempUser ( )
AdeptPutTempUserVar ( )
AdeptFreeTempUser ( )
AdeptSaveTempUser ( )
ΓòÉΓòÉΓòÉ 9.2.4. AdeptPutTempUserVar * ΓòÉΓòÉΓòÉ
AdeptPutTempUserVar ( ) (1.08f Only)
Description: Places value in a Temporary User record.
Syntax: call AdeptGetTempUserVar UserID, Variable,
Value
rc = AdeptGetTempUserVar(UserID, Variable,
Value)
Arguments:
UserID: Userid Created by
AdeptGetTempUser.
Variable: Number of User Info
Adept Variable to
place value. Where
the value can be a
number between 1 and
62.
Value: New value to place in
User Info Variable.
Returns: N/A
Notes: N/A
Example: The following example would change the
user Joe Bloggs' handle to Sysop.
userid = AdeptGetTempUser("Joe Bloggs")
call AdeptPutTempUserVar userid, 2, "Sysop"
call AdeptSaveTempUser userid
call AdeptFreeTempUser userid
Related: AdeptGetTempUser ( )
AdeptGetTempUserVar ( )
AdeptFreeTempUser ( )
AdeptSaveTempUser ( )
ΓòÉΓòÉΓòÉ 9.2.5. AdeptFreeTempUser * ΓòÉΓòÉΓòÉ
AdeptFreeTempUser ( ) (1.08f Only)
Description: Frees the userid record.
Syntax: call AdeptFreeTempUser UserID
rc = AdeptFreeTempUser(UserID)
Arguments:
UserID: Userid Created by
AdeptGetTempUser.
Returns: N/A
Notes: N/A
Example: The following example calls
AdeptFreeTempUser, and frees the record of
userid.
call AdeptFreeTempUser userid
Related: AdeptGetTempUser ( )
AdeptGetTempUserVar ( )
AdeptPutTempUserVar ( )
AdeptSaveTempUser ( )
ΓòÉΓòÉΓòÉ 9.2.6. AdeptSaveTempUser * ΓòÉΓòÉΓòÉ
AdeptSaveTempUser ( ) (1.08f Only)
Description: Saves any changes made to the userid
record.
Syntax: call AdeptSaveTempUser UserID
rc = AdeptSaveTempUser(UserID)
Arguments:
UserID: Userid Created by
AdeptGetTempUser.
Returns: N/A
Notes: N/A
Example: The following example calls
AdeptSaveTempUser, and saves to userid's
record.
call AdeptSaveTempUser userid
Related: AdeptGetTempUser ( )
AdeptGetTempUserVar ( )
AdeptPutTempUserVar ( )
AdeptFreeTempUser ( )
ΓòÉΓòÉΓòÉ 9.2.7. AChatSendMsg ΓòÉΓòÉΓòÉ
AChatSendMsg ( )
Description: Untested Chat function.
Syntax: Call AChatSendMsg LineNumber, Flags,
MsgTo, Text
Arguments:
LineNumber: Node Number passed to
REXX routine from
Adept as first
parameter.
Flags: To be deciphered
(unknown)
MsgTo: Name to send message
to.
Text: Text to send.
Returns: N/A
Notes: This function is untested and due to the
fact that other functions similar to this
do not exist anymore/are not completed,
this function may not exist in the future.
Example: N/A
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.8. Adept16BitCRC ΓòÉΓòÉΓòÉ
Adept16BitCRC ( )
Description: Returns the 16bit CRC version of the
String passed.
Syntax: rc = Adept16BitCRC(LineNumber, String)
Arguments:
LineNumber: Node Number passed to
REXX routine from
Adept as first
parameter.
String: String to CRC
Returns: 16bit CRC'd version of String
Notes: N/A
Example: N/A
Related: Adept32BitCRC ( )
ΓòÉΓòÉΓòÉ 9.2.9. Adept32BitCRC ΓòÉΓòÉΓòÉ
Adept32BitCRC ( )
Description: Returns the 32bit CRC version of the
String passed.
Syntax: rc = Adept32BitCRC(LineNumber, String)
Arguments:
LineNumber: Node Number passed to
REXX routine from
Adept as first
parameter.
String: String to CRC
Returns: 32bit CRC'd version of String
Notes: Use to check a User's password.
Example: N/A
Related: Adept16BitCRC ( )
ΓòÉΓòÉΓòÉ 9.2.10. AdeptAddToXferList ΓòÉΓòÉΓòÉ
AdeptAddToXferList ( )
Description: Adds File to the users tagged file list.
Syntax: Call AdeptAddToXferList LineNumber, File
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
File: Path/Filename of file
to add to list.
Returns: N/A
Notes: N/A
Example: The following example calls
AdeptAddToXFerList, and Adds NewFiles.Txt
to the transfer list.
Call AdeptAddToXFerList line,"/files/newfiles.txt"
Related: AdeptClearXFerList ( )
ΓòÉΓòÉΓòÉ 9.2.11. AdeptCall ΓòÉΓòÉΓòÉ
AdeptCall ( )
Description: Runs an external program. All sessions
inherit Adepts environment.
Syntax: Call AdeptCall LineNumber, Type, Flags,
String1, ..., StringN
rc = AdeptCall(LineNumber, Type, Flags,
String1, ..., StringN)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Type:
1 Same as menu
item 801. Spawn
a separate
session.
Strings are
concatenated to
form one string
which is used as
the spawn
string. Can be
used for a door
program that
accesses the com
port in a more
traditional (and
complicated)
fashion. You
can run DOS
doors here also.
Flags: 1 - Start
session in
background.
2 Same as menu
item 802. Run
OS/2 type door.
(same as menu
item 800 but
assumes a
program which is
more friendly to
having its I/O
redirected thru
pipes to the com
port.) Program
must allow
itself to be
killed.
Flags: Not Used.
3 Same as menu
item 800. Run
OS/2 type door.
Program must
allow itself to
be killed.
Flags: Not Used.
Flags: (Only Used for a Type
1 call):
1 Start session in
background.
String1..N: Strings are added
together to form one
string which is used
to spawn the session.
Returns: 0 - No error.
Notes: N/A
Example: The following example calls the batch file
twar.bat and runs TradeWars in the
Foreground.
Call AdeptCall Linenumber,1,,'cmd.exe /c twar.bat'
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.12. AdeptChainRexx ΓòÉΓòÉΓòÉ
AdeptChainRexx ( )
Description: Chains REXX files within REXX files. Runs
the Rexx script in cached mode.
Syntax: Call AdeptChainRexx "RexxScriptName",
LineNumber
rc = AdeptChainRexx("RexxScriptName",
LineNumber)
Arguments:
RexxScriptName: Name and path of file
you want to run.
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: N/A
Notes: N/A
Example: The following example would chain the REXX
file Pager.ERX from another REXX script,
running the script in cached mode.
Call AdeptChainRexx "D:\Adept\Batch\Pager.Erx",LineNumber
Related: AdeptChainRexxNc ( )
ΓòÉΓòÉΓòÉ 9.2.13. AdeptChainRexxNc ΓòÉΓòÉΓòÉ
AdeptChainRexxNc ( )
Description: Chains REXX files within REXX files. Runs
the Rexx script in non cached mode.
Syntax: Call AdeptChainRexxNc "RexxScriptName",
LineNumber
Arguments:
RexxScriptName: Name and path of file
you want to run.
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: N/A
Notes: Once a script is cached by Adept into
Memory it will remain there until you shut
down Adept. So if you modify a script,
the changes will not take effect until you
shutdown Adept.
Example: The following example would chain the REXX
file Pager.ERX from another REXX script
and not cache the script into memory.
Call AdeptChainRexxNc "D:\Adept\Batch\Pager.Erx",LineNumber
Related: AdeptChainRexx ( )
ΓòÉΓòÉΓòÉ 9.2.14. AdeptChangeGroup ΓòÉΓòÉΓòÉ
AdeptChangeGroup ( )
Description: This works just like upgrading a users
group in the local user editor. The user
will take on the changes specified for the
specific group that they have joined/are
in.
Syntax: Call AdeptChangeGroup LineNumber, GroupNum
rc = AdeptChangeGroup(LineNumber,
GroupNum)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
GroupNum: Number that
corresponds to the
group level that you
want to change the
user to.
Returns: 0 - Users group was not upgraded or
GroupNum not found.
1 - Successful upgrade.
Notes: N/A
Example: The following example will change the
current user to group level 10.
Call AdeptChangeGroup LineNumber, 10
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.15. AdeptCheckCard ΓòÉΓòÉΓòÉ
AdeptCheckCard ( )
Description: N/A
Syntax: Call AdeptCheckCard(LineNumber, String)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
String: Data String.
Returns: 0 - Error
>0 - No error
Notes: N/A
Example: N/A
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.16. AdeptCheckBit ΓòÉΓòÉΓòÉ
AdeptCheckBit ( )
Description: This can be used to test if a users bit is
turned on for any of the LONG Bitmaped
flags.
Syntax: Call AdeptCheckBit Linenumber, BitNumber,
Numeric Long
rc = AdeptCheckBit(Linenumber, BitNumber,
Numeric Long)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
BitNumber: Which bit number to
check.
Numeric Long: A numeric long to be
checked. ie - User
Flags.
Returns: 1 - Bit set
0 - Bit not set
Notes: N/A
Example: The following example will check to see if
the current user has bit number 10 turned
on. If so, it will print "Flag 10 is on!"
If the bit is not set, it will not print
anything.
UserFlag = AdeptGetVar(LineNumber, 42) /* 42 - User Flags */
IsOn = AdeptCheckBit(LineNumber, 10, UserFlag)
if IsOn = '1' then
Call AdeptPrint LineNumber, "Flag 10 is on!\r\n"
Related: AdeptSetBit ( )
AdeptUnSetBit ( )
ΓòÉΓòÉΓòÉ 9.2.17. AdeptClearXferList ΓòÉΓòÉΓòÉ
AdeptClearXferList ( )
Description: Empties users' Tagged file list
Syntax: Call AdeptClearXferList LineNumber
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: N/A
Notes: N/A
Example: The following example calls
AdeptClearXferList clearing the tagged
file transfer list for that line.
Call AdeptClearXferList line
Related: AdeptAddToXFerList ( )
ΓòÉΓòÉΓòÉ 9.2.18. AdeptCls ΓòÉΓòÉΓòÉ
AdeptCls ( )
Description: Clears local and remote screen.
Syntax: Call AdeptCls LineNumber
rc = AdeptCls(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: N/A
Notes: N/A
Example: The following example calls AdeptCls,
clearing the screen for that line.
Call AdeptCls LineNumber
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.19. AdeptConvert ΓòÉΓòÉΓòÉ
AdeptConvert ( )
Description: Converts META variables passed in String.
Syntax: rc = AdeptConvert(LineNumber, String)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
String: String which contains
META variables which
need to be converted.
Returns: Converted String.
Notes: N/A
Example: The following example will convert the
Meta variable {F5 to dred. {F5 is the
Meta var for the color dark red. So where
ever you use dred it will put it in Dark
Red since there are some Functions that do
not support Meta Codes (NOT just color,
ALL Meta Codes)
dred=AdeptConvert(LineNumber,'{F5')
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.20. AdeptCurPos ΓòÉΓòÉΓòÉ
AdeptCurPos ( )
Description: Moves Cursor to row, column
Syntax: Call AdeptCurPos LineNumber, Row, Column
rc = AdeptCurPos(LineNumber, Row, Column)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Row: Screen row to move the
cursor to.
Column: Screen column to move
the cursor to.
Returns: "row col" - returns the row value then the
column value separated by a space.
Notes: N/A
Example: The following example calls moves the
cursor to row 20, column 10.
Call AdeptCurPos line,20,10
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.21. AdeptDropGlobalVar ΓòÉΓòÉΓòÉ
AdeptDropGlobalVar ( )
Description: AdeptDropGlobalVar will free the memory
space occupied by VarName, where VarName
is a Global Variable made by
AdeptSetGlobalVar.
Syntax: rc = AdeptDropGlobalVar('VarName')
Arguments:
VarName: Global Variable made
by AdeptSetGlobalVar.
Returns: N/A
Notes: N/A
Example: The following example calls
AdeptDropGlobalVar, freeing the memory
occupied by 'VarName'.
AdeptDropGlobalVar('VarName')
Related: AdeptGetGlobalVar ( )
AdeptSetGlobalVar ( )
ΓòÉΓòÉΓòÉ 9.2.22. AdeptFile ΓòÉΓòÉΓòÉ
AdeptFile ( )
Description: File area manipulation function.
Syntax: Call AdeptFile LineNumber, Type, StartAt,
KeyName
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Type:
1 Returns name of
current file
area.
2 Returns number
of current file
area.
3 Find file area
by number. -
Returns file
area number
4 Find file area
by name. -
Returns name of
current file
area.
5 Go to next file
area - Returns
name of current
file area.
6 Go to previous
file area -
Returns name of
current file
area.
7 Returns download
path of current
file area.
8 Returns upload
path of current
file area.
StartAt: Number of area to look
for. (Only required
for Type 3)
Keyname: Name of area to look
for. (Only required
for Type 4)
Returns: 1 - Name of current file area.
2 - Number of current file area.
3 - File area number.
4 - File area name.
5 - Sets area to the Next file area, and
returns file area name.
6 - Sets area to the Previous file area,
and returns file area name.
7 - Download path of current file area.
8 - Upload path of current area.
Notes: N/A
Example: The following example AdeptFile, Finds the
file area "AdeptSoft" as listed in
"File_Areas", then goes to the Next area,
and then the Previous area.
Call AdeptFile LineNumber,4,,"AdeptSoft"
Call AdeptFile LineNumber,5,,""
Call AdeptFile LineNumber,6,,""
Related: AdeptMessage ( )
AdeptLibrary ( )
ΓòÉΓòÉΓòÉ 9.2.23. AdeptGetGlobalVar ΓòÉΓòÉΓòÉ
AdeptGetGlobalVar ( )
Description: Pull a variable's value out of memory.
Syntax: rc = AdeptGetGlobalVar('VarName')
Arguments:
VarName: Global Variable made
by AdeptSetGlobalVar.
Returns: The value of the global variable
"VarName".
Notes: N/A
Example: The following example calls
AdeptGetGlobalVar, returning the value of
'STATUS'.
rc = AdeptGetGlobalVar('STATUS')
Related: AdeptSetGlobalVar ( )
AdeptDropGlobalVar ( )
ΓòÉΓòÉΓòÉ 9.2.24. AdeptGetVar ΓòÉΓòÉΓòÉ
AdeptGetVar ( )
Description: Retrives any of the AdeptXBBS Variables.
This function duplicates some of the
functions in the AdeptREXX language.
Syntax: rc = AdeptGetVar(LineNumber, VarNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Variable: Number AdeptXBBS
Variable to return.
Returns: N/A
Notes: This returns almost every single variable
Adept uses, giving total control over all
of the BBS's users and mailers memory
variables. There will also be some new
variables added that will be blank. These
variables will be usable in real time
across nodes by multiple REXX programs
running at the same time. The
possibilities of such a setup are
limitless.
Example: The following example calls AdeptGetVar,
returning and printing both the Sysop's
and BBS's Name.
BBSname = AdeptGetVar(LineNumber,137)
SYSOPname = AdeptGetVar(LineNumber,140)
AdeptPrint(line,"\r\nWelcome to " BBSname "! You are welcomed by " SYSOPname)
Related: AdeptPutVar ( )
ΓòÉΓòÉΓòÉ 9.2.25. AdeptPutVar ΓòÉΓòÉΓòÉ
AdeptPutVar ( )
Description: Sets any of the AdeptXBBS Variables. This
function duplicates some of the functions
in the AdeptREXX language.
Syntax: rc = AdeptPutVar(LineNumber, VarNumber,
Data)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Variable: Number AdeptXBBS
Variable to Set.
Data: Data that is to be
placed in VarNumber.
Returns: N/A
Notes: This sets almost every single variable
Adept uses, giving total control over all
of the BBS's users and mailers memory
variables. There will also be some new
variables added that will be blank. These
variables will be usable in real time
across nodes by multiple REXX programs
running at the same time. The
possibilities of such a setup are
limitless.
Example: The following example calls AdeptPutVar,
setting the users name as "Phiddler", his
age as 32, and the birthdate as the 22nd
of March 1965.
rc = AdeptPutVar(LineNumber, 2, 'Phiddler')
rc = AdeptPutVar(LineNumber, 58, '32')
rc = AdeptPutVar(LineNumber, 19, '1965')
rc = AdeptPutVar(LineNumber, 20, '03')
rc = AdeptPutVar(LineNumber, 21, '22')
Related: AdeptGetVar ( )
ΓòÉΓòÉΓòÉ 9.2.26. AdeptHitReturn ΓòÉΓòÉΓòÉ
AdeptHitReturn ( )
Description: Waits for the user to press Enter.
Syntax: Call AdeptHitReturn LineNumber
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: N/A
Notes: Uses the "Press Enter to continue" in the
Language.Text or other language file.
Example: The following example calls
AdeptHitReturn, waiting for the user to
press Enter.
Call AdeptHitReturn LineNumber
Related: AdeptMore ( )
ΓòÉΓòÉΓòÉ 9.2.27. AdeptInKey ΓòÉΓòÉΓòÉ
AdeptInKey ( )
Description: AdeptInKey will return the ASCII code for
a incoming key sequence.
Syntax: Call AdeptInKey LineNumber
rc = AdeptInKey(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: 0 - No Keys waiting
# - Where '#' is the ASCII code for the
incoming key sequence.
Notes: AdeptInKey will not wait for a key, it
will return either 0 if there are no keys
waiting, or the ASCII value. If you use
this in a loop, please offset the amount
of CPU time a loop uses with a AdeptSleep
command.
Example: The following example calls AdeptInKey,
returning either the ASCII code or '0'.
rc = AdeptInKey(LineNumber)
Related: AdeptTimedInKey ( )
AdeptWaitKey ( )
ΓòÉΓòÉΓòÉ 9.2.28. AdeptInput ΓòÉΓòÉΓòÉ
AdeptInput ( )
Description: Gets a string from the user.
Syntax: rc = AdeptInput(LineNumber, MinLen,
MaxLen, Type, Flags, Prompt, Help,
HelpFile, Default)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
MinLen: Minimum length of
input string.
MaxLen: Maximum length of
input string.
Type: Types for AdeptInput
STRT_ALPHA Letters
Only
STRT_NUMERIC Numbers
Only
STRT_ALPHANUMERICLetters
and
Numbers
Only
STRT_HEX Read
as
Hexadecimal
STRT_FILENAME Read
as
Filename
STRT_FILESPEC Read
as
File
Spec
(ie
*.*)
STRT_ALL Read
All
Keys
STRT_ANY Read
Any
?
Same
as
above
?
STRT_YN Yes
or
No
(Y/N)
STRT_MULTFILES
STRT_MULTSPECS
STRT_YNQ
STRT_YNQS
STRT_JUSTFILE
STRT_MULTJUST
STRT_TELEPHONE
STRT_YNNUM
Flags: Flags for AdeptInput
STRF_UCASE Uppercased
Input
STRF_LCASE Lowercased
Input
STRF_REQUIRED Input
is
Required
STRF_NOECHO Don't
echo
typing
to
screen
STRF_ENCRYPT Encrypt
?
STRF_HOT Hotkey
Input
Don't
wait
for
CRLF
STRF_EDIT Means
INS
DEL
etc
work
?
STRF_PRETTY First
letter
Uppercased
?
STRF_MUSTHOT Required+Hot
?
STRF_NEAT Neat?
Same
as
pretty
?
STRF_NOHELP Don't
look
up
help
file
STRF_NOQUE ???
STRF_NOQUEONE ???
STRF_CHATCLNT ???
STRF_NOTIMECHECK Don't
check
time
remaining
Prompt: Prompt to display when
asking for input.
Help: Name of subject to
look for in HelpFile
when user asks for
help.
HelpFile: Contains help on
subjects pertaining to
this input prompt.
Default: Default keystroke.
Returns: String read from the user.
Notes: Call AdeptInitREXX before using any of the
flags or types.
Example: The following example asks the User for
his name with a MinLen of 1 Character and
a MaxLen of 50 Characters, with a prompt
of "What is your Name". When this is
printed, it will print to the local and
remote screen "Your Name is Ray" (Ray
being the name entered).
answer=AdeptInput(LineNumber,1,50,,,'What Is your Name: ',,,)
Call AdeptPrint LineNumber,'\r\n Your name is' answer
Related: AdeptInKey ( )
AdeptTimedInKey ( )
ΓòÉΓòÉΓòÉ 9.2.29. AdeptKillRexxThread ΓòÉΓòÉΓòÉ
AdeptKillRexxThread ( )
Description: Terminates the Rexx thread with the ID
"TID".
Syntax: AdeptKillRexxThread(TID)
Arguments:
TID: Thread ID.
Returns: 0 - No error
<0 - Error
Notes: Terminating a running thread can return a
REXX Error 40 (Program Interrupted). You
can suppress this error message by using
the Signal on Halt keyword.
If you want to share variables between a
REXX thread and its parent, use the
AdeptSetGlobalVar( ) and
AdeptGetGlobalVar( ) functions.
Example: The following example will start a Rexx
script called FTP_Progress.CMD in a
thread, meaning it will run at the same
time as the calling script. It will then
kill the thread when the calling script no
longer needs it.
Tid = AdeptStartRexxThread("ftp_progress.cmd",line,file)
.
.
.
AdeptKillRexxThread(Tid)
Related: AdeptStartRexxThread ( )
ΓòÉΓòÉΓòÉ 9.2.30. AdeptLibrary ΓòÉΓòÉΓòÉ
AdeptLibrary ( )
Description: Library area manipulation.
Syntax: Call AdeptLibrary LineNumber, Type,
StartAt, KeyName
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Type:
1 Returns name of
current library
area.
2 Returns number
of current
library area.
3 Find library
area by number -
Returns library
area number
4 Find library
area by name -
Returns name of
current library
area.
5 Go to next
library area -
Returns name of
current library
area.
6 Go to previous
library area -
Returns name of
current library
area.
7 Returns path of
current library
area.
StartAt: Number of area to look
for. (Only required
for Type 3.)
Keyname: Name of area to look
for. (Only required
for Type 4.)
Returns: 1 - Name of current library area.
2 - Number of current library area.
3 - Library area number.
4 - Library area name.
5 - Sets area to the Next library area and
returns the area name.
6 - Sets area to the Previous library area
and returns the area name.
7 - Path of current library area.
Notes: The Adept Library Functions are not yet
finished.
Example: N/A
Related: AdeptFile ( )
AdeptMessage ( )
ΓòÉΓòÉΓòÉ 9.2.31. AdeptLocation ΓòÉΓòÉΓòÉ
AdeptLocation ( )
Description: Displays where the User is on the BBS
(Sysop defined). If the location is
omitted, the function will return the
users' current location.
Syntax: Call AdeptLocation LineNumber, "User
Location on the BBS"
rc = AdeptLocation(LineNumber, "User
Location on the BBS")
Location = AdeptLocation(LineNumber)
Arguments:
N/A
Returns: User's Location
Notes: Once the script ends, the location will go
back to what it was before the function
was executed. This function however is
great for Doors and Chat Mode with the
Sysop if you use a Main.Cmd or a .Cmd file
for your Door Menu. It can let other
users know what Door the other node(s) are
in if any.
Example: The following example displays the user on
a particular line in a Door of Barren
Realms Elite.
Call AdeptLocation LineNumber,"In Door - Barren Realms Elite"
Related: AdeptSayGen ( )
ΓòÉΓòÉΓòÉ 9.2.32. AdeptLog ΓòÉΓòÉΓòÉ
AdeptLog ( )
Description: Log an action to the Logfile and/or
ListBox.
Syntax: Call AdeptLog LineNumber, Flags, String1,
..., StringN
rc = AdeptLog(LineNumber, Flags, String1,
..., StringN)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Flags:
1 Output to log
only
2 Output to
listbox only
3 Output to log
and listbox
String1..N: Strings are
concatenated together,
forming one the one
string which is
logged.
Returns: N/A
Notes: N/A
Example: The following example calls AdeptLog, and
logs the User's activity.
Call AdeptLog LineNumber,2, "User entered AdeptVote"
Call AdeptLog LineNumber,3, "MainMenu Started"
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.33. AdeptMenu ΓòÉΓòÉΓòÉ
AdeptMenu ( )
Description: Executes a menu contained in the file
MenuName.
Syntax: Call AdeptMenu LineNumber, Flags, MenuName
rc = AdeptMenu(LineNumber, Flags,
MenuName)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Flags:
1 Return after
user chooses a
command from the
menu.
2 Return after
executing all
commands
contained in
menu.
MenuName: File name of the menu
to use.
Returns: N/A
Notes: N/A
Example: The following example calls AdeptMenu for
Lines 1 & 2, using AskPhoneNumbers.Menu,
and Message.Menu respectively.
Call AdeptMenu LineNumber,2, "AskPhoneNumbers.Menu"
Call AdeptMenu LineNumber,1, "Message.Menu"
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.34. AdeptMenuType ΓòÉΓòÉΓòÉ
AdeptMenuType ( )
Description: Allows the use of Adept's Menu Types in
the Rexx script.
Syntax: Call AdeptMenuType LineNumber, MenuType,
MenuData
rc = AdeptMenuType(LineNumber, MenuType,
MenuData)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
MenuType: AdeptXBBS Menu Type to
execute.
MenuData: Optional data to be
sent to MenuType.
Returns: N/A
Notes: - Only Menu Types 10 and above are allowed
for this function.
- When using MenuType 10, place the file
name within quotes.
Example: The following example calls show how
AdeptRexx interacts with the Adept Menu
Types.
Call AdeptMenuType LineNumber,42,,,0 /* Users currently online */
Call AdeptMenuType LineNumber,900,"" /* Your Mailbox */
Call AdeptMenuType LineNumber,15,"" /* New mail read */
Call AdeptMenuType LineNumber,16,,"" /* Quickscan messages */
Call AdeptMenuType LineNumber,78,"" /* List files in area */
Call AdeptMenuType LineNumber,76,"" /* KeyWord Search */
Call AdeptMenuType LineNumber,74,"" /* New files */
Call AdeptMenuType LineNumber,85,"" /* Download */
Call AdeptMenuType LineNumber,90,"" /* Upload a file */
Call AdeptMenuType LineNumber,146,"" /* Select Default Protocol */
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.35. AdeptMessage ΓòÉΓòÉΓòÉ
AdeptMessage ( )
Description: Message area manipulation.
Syntax: Call AdeptMessage LineNumber, Type,
StartAt, KeyName
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Type:
1 Returns name of
current message
area.
2 Returns number
of current
message area.
3 Find message
area by number -
Returns message
area number
4 Find message
area specified
in KeyName -
Returns name of
current message
area.
5 Go to next
message area -
Returns name of
current message
area.
6 Go to previous
message area -
Returns name of
current message
area.
7 Returns number
of messages in
current message
area.
8 Lists available
message areas to
user.
9 Sets the first
message area, in
the message area
list, that user
is currently
'looking at'
(the user is not
necessarily in
the area) - The
name of the area
is returned if
one is
available,
otherwise '-1'
is returned.
This function
type is useful
when listing
message areas.
This function
type should be
called before
using type 10.
10 Sets the next
message area, in
the message area
list, that user
is currently
'looking at'.
It is the next
area based on
the current area
the user is
'looking at'.
(the user is not
necessarily in
the area) - The
name of the area
is returned if
one is
available,
otherwise '-1'
is returned.
This function
type is useful
when listing
message areas.
You must call
AdeptMessage( )
with the type 9
before using
this function,
or results will
be undefined!
11 Sets the
previous message
area, in the
message area
list, that user
is currently
'looking at'.
It is the
previous area
based on the
current area the
user is 'looking
at'. (the user
is not
necessarily in
the area) - The
name of the area
is returned if
one is
available,
otherwise '-1'
is returned.
This function
type is useful
when listing
message areas.
You must call
AdeptMessage( )
with the type 9
before using
this function,
or results will
be undefined!
12 Sets the next
message area, in
the message area
list, that user
is currently
'looking at'.
It is the next
area based on
the current area
the user is in.
- The name of
the area is
returned if one
is available,
otherwise '-1'
is returned.
13 Sets the
previous message
area, in the
message area
list, that user
is currently
'looking at'.
It is the
previous area
based on the
current area the
user is in. -
The name of the
area is returned
if one is
available,
otherwise '-1'
is returned.
StartAt: Number of area to look
for. (Only required
for Type 3.)
Keyname: Name of area to look
for. (Only required
for Type 4.)
Returns: Based upon the Type used.
Notes: Types 5 and 6 have peculiarities. Do not
use the Call method on them.
Example: The following example would find message
area Number 1 as listed in the
"X:\Adept\System\Message_Areas" file.
Call AdeptMessage LineNumber,3,'1',
AdeptMessage(LineNumber,5,,"") /* Goto next area */
AdeptMessage(LineNumber,6,,"") /* Goto previous area */
Related: AdeptFile ( )
AdeptLibrary ( )
ΓòÉΓòÉΓòÉ 9.2.36. AdeptMore ΓòÉΓòÉΓòÉ
AdeptMore ( )
Description: Executes a standard "More" prompt.
Syntax: Call AdeptMore LineNumber
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: N/A
Notes: Uses the "More" prompt in the
Language.Text or other language file.
This will also use the International
"Y/N/Q/A" info.
Example: The following example calls AdeptMore for
a particular line.
Call AdeptMore LineNumber
Related: AdeptHitReturn ( )
ΓòÉΓòÉΓòÉ 9.2.37. AdeptPause ΓòÉΓòÉΓòÉ
AdeptPause ( )
Description: Waits for any key.
Syntax: Call AdeptPause LineNumber
rc = AdeptPause(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: N/A
Notes: AdeptPause does not display any text.
Example: The following example will wait for any
key to be pressed on the current node.
Call AdeptPause LineNumber
Related: AdeptWaitKey ( )
ΓòÉΓòÉΓòÉ 9.2.38. AdeptPlayMM ΓòÉΓòÉΓòÉ
AdeptPlayMM ( )
Description: Plays a WAV sound file.
Syntax: Call AdeptPlayMM LineNumber, Filename
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Filename: Name of WAV file to
play.
Returns: N/A
Notes: N/A
Example: The following example calls AdeptPlayMM
and plays the Paging.WAV.
Call AdeptPlayMM line,"/sounds/paging.wav"
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.39. AdeptPostTextMessage ΓòÉΓòÉΓòÉ
AdeptPostTextMessage ( )
Description: Post a message using a text file as the
message.
Syntax: Call AdeptPostTextMessage LineNumber,
AreaNum, To, From, Subject, File,
IsPrivate
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
AreaNum: Message area number to
post the message in.
To: Name of the person to
whom the message
should go to.
From: Name of the person
that the message is
from.
Subject: The subject for the
message.
File: Name of the text file
to use as the message.
IsPrivate: If omitted, message is
public, else private.
Returns: N/A
Notes: - IsPrivate may be ommited. If so, the msg
is assumed public. All other parameters
are manadtory.
- Node maybe 0 if the Rexx program isn't
running in a particular node (ie. a global
script).
Example: The following example calls
Related: AdeptWrite ( )
ΓòÉΓòÉΓòÉ 9.2.40. AdeptPrint ΓòÉΓòÉΓòÉ
AdeptPrint ( )
Description: Prints a string to the local and remote
screen.
Syntax: Call AdeptPrint LineNumber, String1, ...,
StringN
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
String1..N: Strings are printed in
the order that they
were passed.
Returns: N/A
Notes: - One or more Strings may be passed to
this function.
- The String may contain Adept's Meta
Variables.
Example: The following example would print "Hello!
Welcome to The BBS" to the User that
linenumber.
Call AdeptPrint LineNumber,"Hello! Welcome to The BBS"
Related: AdeptPrintL ( )
ΓòÉΓòÉΓòÉ 9.2.41. AdeptPrintL ΓòÉΓòÉΓòÉ
AdeptPrintL ( )
Description: Prints a string to the local screen only.
Syntax: Call AdeptPrintL LineNumber, String1, ...,
StringN
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
String1..N: Strings are printed in
the order that they
were passed.
Returns: N/A
Notes: - One or more Strings may be passed to
this function.
- The String may contain Adept's Meta
Variables.
Example: The following example would print "Stupid
user on line 1" to the local screen.
Call AdeptPrintL LineNumber,"Stupid user on line 1"
Related: AdeptPrint ( )
ΓòÉΓòÉΓòÉ 9.2.42. AdeptPutKey ΓòÉΓòÉΓòÉ
AdeptPutKey ( )
Description: Places a character into keyboard input
stream.
Syntax: Call AdeptPutKey LineNumber, Char
rc = AdeptPutKey(LineNumber, Char)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Char: Character to put into
the keyboard input
stream
Returns: N/A
Notes: Char can be a character i.e. 'A' or a
ASCII character code.
Example: The following example will put the
Character 'A' in the Keyboard's input
stream.
Call AdeptPutKey LineNumber,'A'
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.43. AdeptRead ΓòÉΓòÉΓòÉ
AdeptRead ( )
Description: Read messages.
Syntax: Call AdeptRead LineNumber, Type, Flags,
StartAt
rc = AdeptRead(LineNumber, Type, Flags,
StartAt)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Type:
1 Read messages in
current area.
2 Globally read
messages.
Flags:
Type 1:
1 Show only
messages to user
2 Show only
messages from
user
8 Don't clear top
of screen
16 Read Reverse
(default is
forward)
Type 2:
1 Stop at all
areas
8 Don't clear top
of screen
StartAt: Number of message at
which Adept should
start reading. (not
used with global
message reading.)
Returns: 1 - Type 1 (User is reading forward)
-1 - Type 1 (User is reading backwards)
0 - Type 2
Notes: To ensure the user is online, do a carrier
check after this function.
Example: The following example would start the user
currently online reading the messages
globally starting from Message Area #4 (as
defined in "X:\Adept\System\Message_Areas"
file).
Call AdeptRead LineNumber,2,,4
Call AdeptRead line,1,,1 /* Read messages in the current area */
Related: AdeptWrite ( )
ΓòÉΓòÉΓòÉ 9.2.44. AdeptRecv ΓòÉΓòÉΓòÉ
AdeptRecv ( )
Description: Upload files
Syntax: Call AdeptRecv LineNumber, Flags, Path,
Area, File1, ..., FileN
rc = AdeptRecv(LineNumber, Flags, Path,
Area, File1, ..., FileN)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Flags:
1 No time
verification
4 Silence
8 Never be silent
16 Don't ask for
DESCRIPTION
64 Don't credit
upload (does
not return
files size)
128 Accept as
private file.
Path: Path to put files in.
Area: Name of area to put
files in.
File1..N: Names of files to be
received.
Returns: String containing number of bytes
downloaded, a space and the number of
files downloaded.
Notes: This function will change in the future.
Example: The following example will send the file
"Adept108f.Zip" from the AdeptSoft area
and the directory of D:\ADEPT
Call AdeptRecv line,128,'D:\ADEPT','AdeptSoft','Adept108f.Zip'
Related: AdeptSend ( )
ΓòÉΓòÉΓòÉ 9.2.45. AdeptRequestsLogoff * ΓòÉΓòÉΓòÉ
AdeptRequestsLogoff ( ) (1.08f Only)
Description: Will check if Adept wants the user to be
logged off. ie - if user is out of time
or has timed out.
Syntax: rc = AdeptRequestsLogoff(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: 1 - If Adept wants user logged off
0 - If User can stay
Notes: N/A
Example: The following example calls
AdeptRequestsLogoff, and if Adept wants
the user off, it exits.
if(AdeptRequestsLogoff(line)==1)then
exit
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.46. AdeptSayGen ΓòÉΓòÉΓòÉ
AdeptSayGen ( )
Description: Sets the "user location" for the given
node in the Adept line status window.
Syntax: Call AdeptSayGen LineNumber, String
rc = AdeptSayGen(LineNumber, String)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
String: Status String.
Returns: 0 - No error
<0 - Error
Notes: N/A
Example: The following example sets the message in
the Line Status Window to reflect that the
user is playing LORD.
Call AdeptSayGen line, "Legend Of The Red Dragon"
Related: AdeptLocation ( )
ΓòÉΓòÉΓòÉ 9.2.47. AdeptSend ΓòÉΓòÉΓòÉ
AdeptSend ( )
Description: Download Files.
Syntax: Call AdeptSend LineNumber, Flags, Path,
File1, ..., FileN
Call AdeptSend LineNumber,,,''@file''
rc = AdeptSend(LineNumber, Flags, Path,
File1, ..., FileN)
rc = AdeptSend(LineNumber,,,''@file'')
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Flags:
1 No time
verification
2 No leech
checking
4 Silence
8 Never be silent
16 Don't check all
download paths
64 Don't return
files length
(free
file/bytes)
Path: Path to files. If
blank, uses current
file area path.
File1..N: Names of files to be
sent.
Note: Currently the
files are sent one at
a time.
@File: Text file with the
filenames and paths
(one per line) of the
files to send.
Returns: String containing number of bytes
downloaded, a space and the number of
files downloaded.
Notes: N/A
Example: The following example will Send the
file(s) that is in the file called List.
Call AdeptSend LineNumber,,,'@C:\List')
Related: AdeptRecv ( )
AdeptAddToXFerList ( )
ΓòÉΓòÉΓòÉ 9.2.48. AdeptSetBit ΓòÉΓòÉΓòÉ
AdeptSetBit ( )
Description: Sets Bit Number to ON.
Syntax: Call AdeptSetBit LineNumber, Bit Number,
Numeric Long
rc = AdeptSetBit(LineNumber, Bit Number,
Numeric Long)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
BitNumber: Which bit number to
set.
Numeric Long: A numeric long to be
manipulated. (ie -
User Flags.)
Returns: N/A
Notes: The changes are not saved until you put
the changes back into active memory with
the AdeptPutVar function.
Example: The following example calls AdeptGetVar
for "User Flags-1" (42), and calls
AdeptSetBit to set bit 30 to ON.
SetBit = AdeptGetVar(LineNumber, 42)
Call AdeptSetBit LineNumber, 30, SetBit
Related: AdeptCheckBit ( )
AdeptUnSetBit ( )
ΓòÉΓòÉΓòÉ 9.2.49. AdeptSetGlobalVar ΓòÉΓòÉΓòÉ
AdeptSetGlobalVar ( )
Description: Sets a global variable named VarName in
memory with a value of VarValue.
Syntax: rc = AdeptSetGlobalVar('VarName', Value)
Arguments:
VarName: Name of variable
enclosed in quotes.
Value: Value to assign to
VarName.
Returns: N/A
Notes: N/A
Example: The following example calls
AdeptSetGlobalVar, and sets VarName to
'6'.
rc = 6
rc = AdeptSetGlobalVar('VarName', Value)
Related: AdeptGetGlobalVar ( )
AdeptDropGlobalVar ( )
ΓòÉΓòÉΓòÉ 9.2.50. AdeptSetTimer ΓòÉΓòÉΓòÉ
AdeptSetTimer ( )
Description: Starts a timer.
Syntax: Call AdeptSetTimer LineNumber, Timer
rc = AdeptSetTimer(LineNumber, Timer)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Timer: Time In Milliseconds
Returns: N/A
Notes: N/A
Example: The following example calls AdeptSetTimer
for 10 seconds.
Call AdeptSetTimer LineNumber,10000
Related: AdeptTimerUp ( )
ΓòÉΓòÉΓòÉ 9.2.51. AdeptShow ΓòÉΓòÉΓòÉ
AdeptShow ( )
Description: Display text files.
Syntax: Call AdeptShow LineNumber, Type, Flags,
StartAt, KeyName
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Type:
1 Show a text
file,
- "StartAt"
for filename,
- "Keyname"
for keys to
abort on.
2 Page-read text
file,
- "Keyname"
for filename.
3 Show new text
files,
- "Keyname"
for directory
to look in.
4 Show any text
file,
- "Keyname"
for directory
to look in
Flags: <undefined> (for now)
StartAt: For Type 1, File name.
KeyName: For Type 1, Keys on
which to abort showing
of the text file.
For Types 2, 3, 4,
Name of file or
directory to look
for/in.
Returns: N/A
Notes: N/A
Example: The following example will display the
Bullet.Ans file in the Adept\Text
directory, if the User presses the letter
'Q' it will abort viewing of the file.
Call AdeptShow LineNumber,1,,'C:\Adept\Text\Bullet.Ans,Q
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.52. AdeptSleep ΓòÉΓòÉΓòÉ
AdeptSleep ( )
Description: Cause the current node to sleep for x
amount of milliseconds.
Syntax: Call AdeptSleep LineNumber, Time
rc = AdeptSleep(LineNumber, Time)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Time: Time to sleep in
milliseconds
Returns: N/A
Notes: - 1 second = 1000 milliseconds.
- The smallest timeslice OS/2 can sleep is
32ms.
- This is very helpful in making your REXX
scripts CPU friendly, releasing the
current time slice to the next node or
program waiting in line.
- A good period of sleep is 65
milliseconds. ie: AdeptSleep(65)
Example: The following example calls AdeptSleep as
follows.
Call AdeptSleep LineNumber,1000 /* 1 Second */
Call AdeptSleep LineNumber,10000 /* 10 Seconds */
Call AdeptSleep LineNumber,60000 /* 1 Minute */
Call AdeptSleep LineNumber,600000 /* 10 Minutes */
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.53. AdeptStartRexxThread ΓòÉΓòÉΓòÉ
AdeptStartRexxThread ( )
Description: Starts the program Thread.Cmd in the
background with the Rexx code calling it
as the parent.
Syntax: rc = AdeptStartRexxThread(FileName, [var1
var2 var3 var4])
Arguments:
FileName: Name of AdeptREXX
program to execute as
a background thread.
Var1 ... : Variable to pass to
the rexx program, you
can pass as many
variables you want.
They are not shared
once they are passed.
Returns: Thread ID >0 - If thread is started.
Notes: When the parent terminates, all children
and grandchildren are terminated with it.
Example: The following example calls
AdeptStartRexxThread, starting Thread.CMD
in the background.
rc = AdeptStartRexxThread('Thread.Cmd', line)
Related: AdeptKillRexxThread ( )
AdeptStartRexxThreadNC ( )
ΓòÉΓòÉΓòÉ 9.2.54. AdeptStartRexxThreadNC * ΓòÉΓòÉΓòÉ
AdeptStartRexxThreadNC ( ) (1.08f Only)
Description: Starts the program Thread.Cmd (non-cached)
in the background with the Rexx code
calling it as the parent.
Syntax: rc = AdeptStartRexxThreadNC(FileName,
[var1 var2 var3 var4])
Arguments:
FileName: Name of AdeptREXX
program to execute as
a background thread.
Var1 ... : Variable to pass to
the rexx program, you
can pass as many
variables you want.
They are not shared
once they are passed.
Returns: Thread ID >0 - If thread is started.
Notes: - Starts Thread in non-cached mode.
- When the parent terminates, all children
and grandchildren are terminated with it.
Example: The following example calls
AdeptStartRexxThreadNC, starting a
non-cached Thread.CMD in the background.
rc = AdeptStartRexxThreadNC('Thread.Cmd', line)
Related: AdeptKillRexxThread ( )
AdeptStartRexxThread ( )
ΓòÉΓòÉΓòÉ 9.2.55. AdeptTimedInKey ΓòÉΓòÉΓòÉ
AdeptTimedInKey ( )
Description: Returns the value of the key input, after
having watched the port for a period of
time.
Syntax: Call AdeptTimedInKey LineNumber, Timeout
rc = AdeptTimedInKey(LineNumber, Timeout)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Timeout: Timeout period in
milliseconds.
Returns: Value of key input, or
0 - for timeout.
-1 - If no key is pressed within the
timeout value.
-2 - If the Carrier is lost.
-3 - If the SysOp presses F3 on the local
BBS Window.
-4 - If the SysOp presses F4 on the local
BBS Window.
Notes: N/A
Example: The following example calls
AdeptTimedInKey, and waits for 5 seconds.
KeyIn=AdeptTimedInKey(LineNumber,5000)
Related: AdeptInput ( )
AdeptInKey ( )
AdeptWaitKey ( )
ΓòÉΓòÉΓòÉ 9.2.56. AdeptTimeLeft ΓòÉΓòÉΓòÉ
AdeptTimeLeft ( )
Description: Optionally sets time left in current
session.
Syntax: Call AdeptTimeLeft LineNumber [,
SecsLeftInSession]
rc = AdeptTimeLeft(LineNumber [,
SecsLeftInSession])
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
SecsLeftInSession: Set seconds left in
current session.
(Optional)
Returns: Time left in session in seconds.
Notes: Always returns time left in current
session.
Example: The following example will give the online
user 1 minute left in his session.
Call AdeptTimeLeft LineNumber, 60000
Related: N/A
ΓòÉΓòÉΓòÉ 9.2.57. AdeptTimerUp ΓòÉΓòÉΓòÉ
AdeptTimerUp ( )
Description: Checks to see if the timer is up.
Syntax: Call AdeptTimerUp LineNumber, Timer
rc = AdeptTimerUp(LineNumber, Timer)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Timer: The return value of
the AdeptSetTimer
function.
Returns: 0 - Time is up 1 - Time is not up
Notes: N/A
Example: The following example sets the timer to 10
seconds and then checks to see if the time
is up.
Timer=AdeptSetTimer(LineNumber,10000)
rc=AdeptTimerUp(LineNumber,Timer)
Related: AdeptSetTimer ( )
ΓòÉΓòÉΓòÉ 9.2.58. AdeptUnsetBit ΓòÉΓòÉΓòÉ
AdeptUnsetBit ( )
Description: Sets Bit Number to OFF.
Syntax: Call AdeptUnsetBit LineNumber, Bit Number,
Numeric Long
rc = AdeptSetBit(LineNumber, Bit Number,
Numeric Long)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
BitNumber: Which bit number to
set.
Numeric Long: A numeric long to be
manipulated. (ie -
User Flags.)
Returns: N/A
Notes: The changes are not saved until you put
the changes back into active memory with
the AdeptPutVar function.
Example: The following example calls AdeptGetVar
for "User Flags-1" (42), and calls
AdeptUnsetBit to set bit 30 to OFF.
SetBit = AdeptGetVar(LineNumber, 42)
Call AdeptUnsetBit LineNumber, 30, SetBit
Related: AdeptCheckBit ( )
AdeptSetBit ( )
ΓòÉΓòÉΓòÉ 9.2.59. AdeptWaitKey ΓòÉΓòÉΓòÉ
AdeptWaitKey ( )
Description: Waits, and returns the ASCII code for a
incoming key sequence.
Syntax: Call AdeptWaitKey LineNumber
rc = AdeptWaitKey(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: ASCII code for the key pressed.
Notes: If the user times out while waiting for
the key sequence, the user will be logged
off.
Example: The following example calls AdeptInKey and
waits for a incoming ASCII key sequence.
rc = AdeptInKey(LineNumber)
Related: AdeptInKey ( )
AdeptTimedInKey ( )
ΓòÉΓòÉΓòÉ 9.2.60. AdeptWrite ΓòÉΓòÉΓòÉ
AdeptWrite ( )
Description: Write a message.
Syntax: Call AdeptWrite LineNumber, Type, Flags,
Filename
rc = AdeptWrite(LineNumber, Type, Flags,
Filename)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Type:
1 Write a message
(Filename is
unused)
2 Edit a file
using editor
(Flags are
unused)
Flags:
1 Force message
to
force-to-name
of current
message area.
2 Force private
4 Force public
8 Use
MSGTMP.LineNumber
file
Filename: Name of text file to
edit.
Returns: N/A
Notes: N/A
Example: The following example would prompt a user
to write a public message in the current
area.
Call AdeptWrite LineNumber, 1, 4,""
Related: AdeptPostTextMessage ( )
AdeptRead ( )
ΓòÉΓòÉΓòÉ 9.2.61. Print ΓòÉΓòÉΓòÉ
Print ( )
Description: Displays the argument(s) on the given
line.
Syntax: rc = Print(LineNumber, Arg1, ....)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Arg1 ... : 1st argument to be
displayed.
Returns: 0 - No errors.
-1 - Rexx killed by BBS or Carrier lost
Notes: Will not convert Meta's
Example: The following example calls Print,
printing "Hello World".
rc = Print(Line, 'Hello World')
Related: AdeptPrint ( )
AdeptPrintL ( )
ΓòÉΓòÉΓòÉ 9.2.62. Printf ΓòÉΓòÉΓòÉ
Printf ( )
Description: Sends the argument to pmprintf.
Syntax: Printf(Arg)
Arguments:
Arg: Argument to be
displayed.
Returns: 0 - No errors.
-1 - Rexx killed by BBS or Carrier lost
Notes: - Useful only to developers, and even then
only of limited value.
- It's better to use a combination of
AdeptLog() and AdeptPrintL() functions for
debugging.
Example: The following example calls Printf,
printing "Hello World"
rc = Printf('Hello World')
Related: N/A
ΓòÉΓòÉΓòÉ <hidden> Variable Numbers ΓòÉΓòÉΓòÉ
AdeptXBBS Variable Numbers:
User Info:
1 Users Name
2 Users Handle
3 Users Address
4 Users Address1
5 Users Address2
6 Users City
7 Users State
8 Users Zipcode
9 Users Home Phone
10 Users Data Phone
11 Users Fax Phone
12 Users Business Phone
13 Users Interests
14 Sysop Comment about User
15 Users Bank Time
16 Users Computer Type (Number)
17 Users User ID
18 Users Point ID
19 Users BirthYear
20 Users BirthMonth
21 Users BirthDay
22 Users Gender (Represented by 1 letter)
23 Users NetMail Credit
25 The Group the User belongs to
27 Time Used Today
28 Time Per Day
29 Time Per Call
30 Number of calls the user has made
31 Upload Number
32 Download Number
33 Uploads in K
34 Downloads in K
35 Upload K today
36 Download K today
37 Upload K per day (Max Allowed)
38 Download K per day (Max Allowed)
39 Number of posts (Total)
40 Security Level #1
41 Security Level #2
42 Flags1 Represented as a 32-bit long
43 Flags2 Represented as a 32-bit long
44 User Attributes represented as a 32-bit long
45 User Attributes #2 represented as a 32-bit long
46 Users Screen Length
47 Users Screen width
48 Last Message Area number user was in
49 Last File Area Number user was in
50 Last Protocol Chosen (Returns the letter for the
protocol)
51 Last Archiver Chosen Returns Archive Letter
53 Percentage of Upload/Download ratio to consider the user
a leech
54 Maximum Bank time allowed for this user
55 Password Represented as a 32-bit long (32-bit CRC)
56 Password reversed represented as a 32-bit long (32-bit
CRC)
57 Max Messages to pack into a mail packet.
58 Users Age
59 User Bad Password Attempts
60 MailStatus (I forget how we use this at the moment)
61 Number of lines shown to the remote user since last reset
(clear screen or new screen shown, etc). This is
calculated by the display subsystem and should always be
correct. This variable takes everything from ANSI and
Avatar cursor movement into account, to number of actual
lines displayed.
62 Did the user pick non-stop display after the last more
prompt or non-stop display choice.
BBS Info:
100 Number of Calls to the BBS
101 Last User ID Assigned by the BBS
102 Last Point ID Assigned by the BBS
103 Minimum Age Required to Log on
104 Maximum Age Allows on the BBS
105 Amount of NetMail Credit the user has
106 Expire Users after x amount of days
107 Expire Users after x amount of minutes
108 Default User Time Per Day
109 Default User Security Level #1
110 Default User Security Level #2
111 BBS User Default Flags #1 returned as a 32-bit long
112 BBS User Default Flags #2 returned as a 32-bit long
113 Default Upload K per day max
114 Maximum download k per day
115 BBS User Default Attribs returned as a 32-bit long
116 BBS User Default Attribs #2 returned as 32-bit long
117 The default group the user belongs to. The user will
inherit the default settings for this group. 0 for none.
118 Maximum Users to allow in the user file
119 Default Origin Line for EchoMail Areas
120 Maximum Password Attempts Allowed
125 Default Cost to send a NetMail message
126 Line number the BBS is on in the quote file
127 Default Maximum Time Per Call
128 I don't remember I will have to check this one (ulmulti)
129 Odds of getting a quote when called
130 Mailer Incoming Password Protected Mail Path
131 Mailer OkFile for Password Protected Nodes
132 Mailer Incoming Public Mail Path
133 Mailer OkFile for Public Mail
134 Mailer Unlisted Node Mail Path
135 Mailer OkFile for Unlisted Nodes
136 Number of times a user can page the sysop
137 The BBS's Name
138 BBS UAttribs 32-bit long
139 BBS UAttribs #2 32-bit long
140 Sysops Name
141 Is The Sysop In (0 or 1)
142 Default Max Messages in Packet
143 City/State info for BBS & .QWK Packet
144 .QWK BBS ID
145 BBS .QWK Phone Number
146 Default Max Bank Time
Modem/Mailer Info:
200 Modem Handle
201 Node Number
202 Port Name (COM1, \PIPE\ADEPT1, etc)
203 Modem Init String
204 Default Dialing Prefix
205 Default Dialing Suffix
206 Optional Dialing Prefix #1
207 Optional Dialing Suffix #1
208 Optional Dialing Prefix #2
209 Optional Dialing Suffix #2
210 Optional Dialing Prefix #3
211 Optional Dialing Suffix #3
212 Optional Dialing Prefix #4
213 Optional Dialing Suffix #4
214 Optional Dialing Prefix #5
215 Optional Dialing Suffix #5
216 Optional Dialing Prefix #6
217 Optional Dialing Suffix #6
218 Optional Dialing Prefix #7
219 Optional Dialing Suffix #7
220 Optional Dialing Prefix #8
221 Optional Dialing Suffix #8
222 Modem Answer String
223 Obsolete
224 Obsolete
225 Mail Only Event Text
226 Text if User is too slow
228 Baud Rate to Init Modem at
229 Minimum Baud rate Allowed on BBS
230 Minimum Incoming Baud Rate for Mail
231 Minimum Baud Rate to Call Out for Mail
232 Maximum Baud Rate for Outbound Mail
233 Current Baud Rate of Modem
234 Minimum Cost of Mail for This Event (Dialout)
235 Maximum Cost of Mail for This Event (Dialout)
236 Maximum Mail in K to send in a mail session
237 Maximum Time Limit for a mail session
239 Maximum Bad Mail Calls before no more are made
240 Maximum Times to call a node to send mail
241 If Port Locked (0 / 1)
242 Allow Human Callers or Users on the BBS? (0/1)
243 Allow File Requests (0/1)
244 Accept File Request (0/1)
245 Dialing Out OK?
246 OK To Answer the Phone?
248 Force FTS-0001 Mail Sessions (0/1)
249 Receive Mail From Unlisted Nodes? (0/1)
250 Send Mail to Unlisted Nodes? (0/1)
251 Was the last incoming call to the BBS or Mail (1 for BBS,
0 for mailer)
252 Sealink Overdrive Off (0/1) 1 = off
253 Sealink Mail On/Off (1 = on)
254 1k Sealink On/Off (1 = off)
255 Allow DietINFA (1 = on (TBBS & XBBS use dietINFA))
256 In Chat with Sysop (0/1)
257 Debug Transfers (0/1) Extra Log Info
258 Allow Hydra Mail Transfers (0/1) (Currently Disabled)
259 Allow ZedZip for Mail Transfers (0/1)
260 Allow ZedZap for Mail Transfer (0/1)
261 Turn the mailer off? (0/1) 1 = off
262 Key to represent Yes (Y) for USA
263 Key to represent No (N) for USA
264 Key to represent Stop (S) for USA
264 Key to represent Pause (P) for USA
264 Key to represent Quit (Q) for USA
268 Maximum # of resyncs to abort transfers
269 Maximum # of transfer errors to abort on
270 Last Users on this lines name
271 Last Mailer to call this node
272 Last Long Entry Written
276 Check Carrier Detect (0/1) 1 = on
277 Video Display Handle
278 Number of ring to wait for answer on this node
ΓòÉΓòÉΓòÉ 9.3. File System Functions ΓòÉΓòÉΓòÉ
AdeptREXX File System Functions
AfSysAddFile ( ) Undocumented
AfSysAddIndexEntries ( ) Saves the Index
data for a file
record.
AfSysClose ( ) Closes the File
System.
AfSysDelFile ( ) Undocumented
AfSysDeleteIndexEntries ( ) Deletes all
references to a
certain file from
all the Indexes.
AfSysFindExact ( ) Loads a file's
record by Name and
Area.
AfSysFindFirstName ( ) Loads the First
file record by the
Name matching a
search string.
AfSysFindList ( ) Loads the Next file
record as found in
the criteria
indicated by
AfSysListFirst.
AfSysFindNextName ( ) Loads the Next file
matching the name
mask as given in
AfSysFindFirstName.
AfSysFirstName ( ) Loads the file
record of the First
file
(alphabetically).
AfSysGetAge ( ) Returns the Age
needed to DL the
last "active file".
AfSysGetCopyFile ( ) Returns the Copy
status of the last
"active file".
AfSysGetDLAble ( ) Returns the
Download status of
the last "active
file".
AfSysGetFileArea ( ) Returns the Area
Number of the last
"active file".
AfSysGetFileAreaList ( ) Undocumented
AfSysGetFileDate ( ) Returns the Date
for the current
file record.
AfSysGetFileDESCRIPTION ( ) Copies the
DESCRIPTION for the
current file
record.
AfSysGetFilename ( ) Returns the file
Name for the
current file
record.
AfSysGetFileSize ( ) Returns the Length
of the last "active
file".
AfSysGetFreeBytes ( ) Returns the Free
Byte status of the
last "active file".
AfSysGetFreeFile ( ) Returns the Free
status of the last
"active file"
AfSysGetFreeTime ( ) Returns the Free
Time status of the
last "active file".
AfSysGetListable ( ) Returns the
Listablility of the
last "active file".
AfSysGetPassword ( ) Undocumented
AfSysGetPathName ( ) Returns the file
Path in Text
format.
AfSysSetReadDescFlag ( ) Sets the reading of
DESCRIPTION to 'ON'
or 'OFF' (when
reading in the file
data record).
AfSysGetSecLevel ( ) Returns the
Security level
needed to DL the
last "active file".
AfSysGetTimesDL ( ) Returns the Number
of times the last
"active file" has
been Downloaded.
AfSysGetUploader ( ) Returns the Name of
the Uploader for
the current file
record.
AfSysListFirst ( ) Loads the file
record for the
first file matching
the Area number and
List criteria.
AfSysMoveFile ( ) Moves the named
file's Area Info
from one area to
another.
AfSysOpen ( ) Opens the File
system for access
by other REXX file
functions.
AfSysReadDESCRIPTIONLine ( ) Reads in the
DESCRIPTION file
line by line.
AfSysSetAge ( ) Sets the Age
required to DL the
current file.
AfSysSetCopyFile ( ) Copies file to a
Temp directory when
Downloaded.
AfSysSetDescOffset ( ) Sets the file
offset in the
DESCRIPTION file.
AfSysSetDLAble ( ) Sets file as
Downloadable.
AfSysSetFileArea ( ) Sets the file Area
Number in the
current file
record.
AfSysSetFileDate ( ) Sets the Date for
the current file
record.
AfSysSetFileDESCRIPTION ( ) Sets the
DESCRIPTION for the
current file
record.
AfSysSetFileRecord ( ) Saves the Active
file record to
Disk.
AfSysSetFileSize ( ) Sets the file Size
in the current file
record.
AfSysSetIndexEntryDate ( ) Sets the Date for
the current file
record in the Date
Index.
AfSysSetListable ( ) Sets file as
Listable.
AfSysRawReadFileRecord ( ) Reads Rrom the
current file
pointer to the End
of the record.
AfSysResetDescFilePtr ( ) Sets the file
pointer to the
Beginning of the
DESCRIPTION file.
AfSysResetFilePtr ( ) Sets the file
pointer to the
Beginning of the
file.
AfSysSetFilename ( ) Sets the File Name
for the current
file record.
AfSysSetIndexAreaNumber ( ) Sets the Area
Number for the
current file record
in the Index files.
AfSysSetIndexFileName ( ) Sets the file Name
used in the Search
indexes.
AfSysSetIndexRecordOffset ( ) Sets the new Index
record offset when
a file is added to
the File System.
(normally set by
fSys.DLL)
AfSysSetPathIndex ( ) Sets the Path Index
for a physical
file.
AfSysReadFilePath ( ) Reads in the
physical path
associated with the
Path Index
AfSysSetSecLevel ( ) Sets the Minimum
Security level
needed to download
the current file.
AfSysSetUploader ( ) Sets the current
file record for the
uploader.
AfSysWriteFilePath ( ) Sets the path in
the list of Indexes
for that Area.
AfSysZeroFileRecord ( ) Wipes out the
current file
record.
ΓòÉΓòÉΓòÉ 9.3.1. AfSysAddFile ΓòÉΓòÉΓòÉ
AfSysAddFile ( )
Description: Undocumented
Syntax: N/A
Arguments:
N/A
Returns: N/A
Notes: N/A
Example: N/A
Related: AfSysDelFile ( )
AfSysMoveFile ( )
ΓòÉΓòÉΓòÉ 9.3.2. AfSysAddIndexEntries ΓòÉΓòÉΓòÉ
AfSysAddIndexEntries ( )
Description: Saves the Index data for a file record.
Syntax: rc = AfSysAddIndexEntries(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error
92 - FSYS_ERROR_SEM_TIMEOUT
200 - FSYS_ERROR_ADDING_DATED
201 - FSYS_ERROR_ADDING_ANAME
202 - FSYS_ERROR_ADDING_NAME
Notes: The index data should be set using the
AfSysSetIndexXXXXX functions before
saving.
Example: The following example deletes the old
index entries for a file, sets the new
index data, then adds in the new index
entries.
AFSysDeleteIndexEntries(hFSys)
/* set new index data */
AfSysGetFileName(fSysHandle, 'Buffer')
AfSysSetIndexFilename(fSysHandle, Buffer)
AfSysGetFileDate(fSysHandle, 'Date')
AfSysSetIndexEntryDate(fSysHandle, Date.1, Date.2, Date.3)
AreaNum = FSysGetFileArea(fSysHandle)
AfSysSetIndexAreaNumber(fSysHandle, AreaNum)
/* add in new index entries */
AFSysAddIndexEntries(fSysHandle);
Related: AfSysDeleteIndexEntries ( )
ΓòÉΓòÉΓòÉ 9.3.3. AfSysClose ΓòÉΓòÉΓòÉ
AfSysClose ( )
Description: Closes the open file system.
Syntax: rc = AfSysClose(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error
Notes: N/A
Example: The following example calls AfSysOpen, and
creates new file system files, then calls
AfSysClose to close the file system.
rc = AfSysOpen('.\Files', 'fSysHandle', 'FALSE')
.
.
// use the file system.
.
.
rc = AfSysClose(fSysHandle)
Related: AfSysOpen ( )
ΓòÉΓòÉΓòÉ 9.3.4. AfSysDelFile ΓòÉΓòÉΓòÉ
AfSysDelFile ( )
Description: Undocumented
Syntax: N/A
Arguments:
N/A
Returns: N/A
Notes: N/A
Example: N/A
Related: AfSysAddFile ( )
AfSysMoveFile ( )
ΓòÉΓòÉΓòÉ 9.3.5. AfSysDeleteIndexEntries ΓòÉΓòÉΓòÉ
AfSysDeleteIndexEntries ( )
Description: Deletes all references to a certain file
from all the indexes.
Syntax: rc = AfSysDeleteIndexEntries(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error
92 - FSYS_ERROR_SEM_TIMEOUT
190 - FSYS_ERROR_DELETING_DATED
191 - FSYS_ERROR_DELETING_ANAME
192 - FSYS_ERROR_DELETING_NAME
Notes: It does not remove that files record from
the data file. To set which file you wish
to delete, you must either search for, and
find the file using the searching
functions or you must use the
AfSysSetIndexXXXXX series of functions to
set the correct filename, date, area name
and file record offset. Obviously it is
best to search for the file, find it and
confirm it is the file you wish to delete
before you delete it.
Example: The following example calls
AfSysDeleteIndexEntries to delete the file
from the indexes. (assuming that the file
index information has already been set).
rc = AfSysDeleteIndexEntries(fSysHandle)
Related: AfSysAddIndexEntries ( )
ΓòÉΓòÉΓòÉ 9.3.6. AfSysFindExact ΓòÉΓòÉΓòÉ
AfSysFindExact ( )
Description: Loads a file's record by Name and Area.
Syntax: rc = AfSysFindExact(fSysHandle, Name,
Area)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Name: Exact file name.
Area: Area number.
Returns: 0 - No Error
<0 - Error
Notes: N/A
Example: The following example calls
AfSysFindExact, and searches Area 12 for
file name 'A108f.Zip'.
rc = AfSysFindExact(fSysHandle, 'A108f.Zip', 12)
Related: AfSysFindFirstName ( )
AfSysFindNextName ( )
AfSysFirstName ( )
ΓòÉΓòÉΓòÉ 9.3.7. AfSysFindFirstName ΓòÉΓòÉΓòÉ
AfSysFindFirstName ( )
Description: Loads the first file record by the Name
matching a search string.
Syntax: rc = AfSysFindFirstName(fSysHandle,
Search)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Search: File name mask
Returns: 0 - No Error
>0 - Error
Notes: N/A
Example: The following example calls
AfSysFindFirstName, searching for the
string 'Ade'. - It found the first file,
'Adept.Zip'
rc = AfSysFindFirstName(fSysHandle, 'Ade')
Related: AfSysFindExact ( )
AfSysFindNextName ( )
AfSysFirstName ( )
ΓòÉΓòÉΓòÉ 9.3.8. AfSysFindList ΓòÉΓòÉΓòÉ
AfSysFindList ( )
Description: Loads the Next file record as found in the
criteria indicated by AfSysListFirst.
Syntax: call AfSysFindList(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error
>0 - Error
Notes: It does not stop when it reaches the next
file area, that must be checked for.
Example: N/A
Related: AfSysListFirst ( )
ΓòÉΓòÉΓòÉ 9.3.9. AfSysFindNextName ΓòÉΓòÉΓòÉ
AfSysFindNextName ( )
Description: Finds the Next file matching the name mask
given in AfSysFindFirstName.
Syntax: rc = AfSysFindNextName(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error
>0 - Error
Notes: N/A
Example: N/A
Related: AfSysFindExact ( )
AfSysFindFirstName ( )
AfSysFirstName ( )
ΓòÉΓòÉΓòÉ 9.3.10. AfSysFirstName ΓòÉΓòÉΓòÉ
AfSysFirstName ( )
Description: Loads the file record of the first file
(alphabetically).
Syntax: call AfSysFirstName(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error
<0 - Error
Notes: N/A
Example: N/A
Related: AfSysFindExact ( )
AfSysFindFirstName ( )
AfSysFindNextName ( )
ΓòÉΓòÉΓòÉ 9.3.11. AfSysGetAge ΓòÉΓòÉΓòÉ
AfSysGetAge ( )
Description: Returns the age needed to DL the last
"active file".
Syntax: rc = AfSysGetAge(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: Age required to download the last "active
file".
Notes: The active File is set by one of the
AfSysFindXXX functions.
Example: N/A
Related: AfSysSetAge ( )
ΓòÉΓòÉΓòÉ 9.3.12. AfSysGetCopyFile ΓòÉΓòÉΓòÉ
AfSysGetCopyFile ( )
Description: Returns the copy status of the last
"active file".
Syntax: call AfSysGetCopyFile(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - Don't copy
1 - Copy file to temporary directory
Notes: The active File is set by one of the
AfSysFindXXX functions.
Example: N/A
Related: AfSysSetCopyFile ( )
ΓòÉΓòÉΓòÉ 9.3.13. AfSysGetDLAble ΓòÉΓòÉΓòÉ
AfSysGetDLAble ( )
Description: Returns the download status of the last
"active file".
Syntax: rc = AfSysGetDLAble(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - Can't be downloaded
1 - Can be downloaded
Notes: The active File is set by one of the
AfSysFindXXX functions
Example: N/A
Related: AfSysSetDLAble ( )
ΓòÉΓòÉΓòÉ 9.3.14. AfSysGetFileArea ΓòÉΓòÉΓòÉ
AfSysGetFileArea ( )
Description: Returns the Area Number of the last
"active file".
Syntax: rc = AfSysGetFileArea(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: File Area number
Notes: The active File is set by one of the
AfSysFindXXX functions.
Example: N/A
Related: AfSysGetFileAreaList ( )
AfSysSetFileArea ( )
ΓòÉΓòÉΓòÉ 9.3.15. AfSysGetFileAreaList ΓòÉΓòÉΓòÉ
AfSysGetFileAreaList ( )
Description: Undocumented
Syntax: N/A
Arguments:
N/A
Returns: N/A
Notes: N/A
Example: N/A
Related: AfSysGetFileArea ( )
AfSysSetFileArea ( )
ΓòÉΓòÉΓòÉ 9.3.16. AfSysGetFileDate ΓòÉΓòÉΓòÉ
AfSysGetFileDate ( )
Description: Returns the Date for the current file
record.
Syntax: rc = AfSysSetGetFileDate(fSysHandle, Stem)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Stem: The name of the stem
variable to receive
the date.
Returns: 0 - No Error
<0 - Error
STEM.1 - Year
STEM.2 - Month
STEM.3 - Day
Notes: The date is returned in the Stem variable.
Example: N/A
Related: AfSysSetFileDate ( )
ΓòÉΓòÉΓòÉ 9.3.17. AfSysGetFileDESCRIPTION ΓòÉΓòÉΓòÉ
AfSysGetFileDESCRIPTION ( )
Description: Copies the DESCRIPTION for the currect
file record.
Syntax: rc = AfSysGetFileDESCRIPTION(fSysHandle,
Var)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Var: Name of REXX variable
to put the description
in.
Returns: 0 - No Error
<0 - Error
Notes: The file's DESCRIPTION will be copied into
'Var'.
Example: N/A
Related: AfSysSetFileDESCRIPTION ( )
AfSysReadDESCRIPTIONLine ( )
ΓòÉΓòÉΓòÉ 9.3.18. AfSysGetFilename ΓòÉΓòÉΓòÉ
AfSysGetFilename ( )
Description: Returns the file Name for the current file
record.
Syntax: rc = AfSysGetFilename(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Name
$ - FileName
Notes: N/A
Example: N/A
Related: AfSysSetFilename ( )
ΓòÉΓòÉΓòÉ 9.3.19. AfSysGetFileSize ΓòÉΓòÉΓòÉ
AfSysGetFileSize ( )
Description: Returns the length of the last "active
file".
Syntax: rc = AfSysGetFileSize(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: File Length
Notes: The active file is set by one of the
AfSysFindXXX functions.
Example: N/A
Related: AfSysSetFileSize ( )
ΓòÉΓòÉΓòÉ 9.3.20. AfSysGetFreeBytes ΓòÉΓòÉΓòÉ
AfSysGetFreeBytes ( )
Description: Returns the free byte status of the last
"active file".
Syntax: rc = AfSysGetFreeBytes(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - File isn't "Free"
1 - File is "Free" (ignores normal byte
limits or ratios)
Notes: The active file is set by one of the
AfSysFindXXX functions.
Example: N/A
Related: AfSysGetFreeFile ( )
AfSysGetFreeTime ( )
ΓòÉΓòÉΓòÉ 9.3.21. AfSysGetFreeFile ΓòÉΓòÉΓòÉ
AfSysGetFreeFile ( )
Description: Returns the free status of the last
"active file".
Syntax: rc = AfSysGetFreeFile(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - File isn't "Free"
1 - File is "Free" (ignores normal
byte/time limits or ratios)
Notes: The active file is set by one of the
AfSysFindXXX functions.
Example: N/A
Related: AfSysGetFreeBytes ( )
AfSysGetFreeTime ( )
ΓòÉΓòÉΓòÉ 9.3.22. AfSysGetFreeTime ΓòÉΓòÉΓòÉ
AfSysGetFreeTime ( )
Description: Returns the free time status of the last
"active file".
Syntax: AfSysGetFreeTime(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - File isn't "Free"
1 - File is "Free" (ignores normal time
limits)
Notes: The active file is set by one of the
AfSysFindXXX functions.
Example: N/A
Related:AfSysGetFreeBytes ( )
AfSysGetFreeFile ( )
ΓòÉΓòÉΓòÉ 9.3.23. AfSysGetListable ΓòÉΓòÉΓòÉ
AfSysGetListable ( )
Description: Returns the listablility of the last
"active file".
Syntax: rc = AfSysGetListable(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - File can't be listed
1 - File can be listed.
Notes: The active File is set by one of the
AfSysFindXXX functions.
Example: N/A
Related: AfSysSetListable ( )
ΓòÉΓòÉΓòÉ 9.3.24. AfSysGetPassword ΓòÉΓòÉΓòÉ
AfSysGetPassword ( )
Description: Undocumented
Syntax: N/A
Arguments:
N/A
Returns: N/A
Notes: N/A
Example: N/A
Related: AfSysGetSecLevel ( )
AfSysSetSecLevel ( )
ΓòÉΓòÉΓòÉ 9.3.25. AfSysGetPathName ΓòÉΓòÉΓòÉ
AfSysGetPathName ( )
Description: Returns the file path in text format.
Syntax: rc = AfSysGetPathName (fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: Path to file
Notes: N/A
Example: N/A
Related: AfSysSetPathIndex ( )
ΓòÉΓòÉΓòÉ 9.3.26. AfSysSetReadDescFlag ΓòÉΓòÉΓòÉ
AfSysSetReadDescFlag ( )
Description: Sets the reading of DESCRIPTION to 'ON' or
'OFF', while reading in the file data
record.
Syntax: rc = AfSysSetReadDescFlag (fSysHandle,
BOOL)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
BOOL: "TRUE" / "FALSE"
Returns: 0 - No Error
<0 - Error
Notes: By default the DESCRIPTION is always read
in.
Example: N/A
Related: AfSysResetDescFilePtr ( )
AfSysSetDescOffset ( )
ΓòÉΓòÉΓòÉ 9.3.27. AfSysGetSecLevel ΓòÉΓòÉΓòÉ
AfSysGetSecLevel ( )
Description: Returns the security level needed to DL
the last "active file".
Syntax: rc = AfSysGetSecLevel(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: Security level
Notes: The active File is set by one of the
AfSysFindXXX functions.
This function may be obsolete in the
future.
Example: N/A
Related: AfSysSetSecLevel ( )
AfSysGetPassword ( )
ΓòÉΓòÉΓòÉ 9.3.28. AfSysGetTimesDL ΓòÉΓòÉΓòÉ
AfSysGetTimesDL ( )
Description: Returns the number of times the last
"active file" has been downloaded.
Syntax: rc = AfSysGetTimesDL(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: Number of Times Downloaded.
Notes: The active File is set by one of the
AfSysFindXXX functions.
Example: N/A
Related: N/A
ΓòÉΓòÉΓòÉ 9.3.29. AfSysGetUploader ΓòÉΓòÉΓòÉ
AfSysGetUploader ( )
Description: Returns the name of the uploader for the
current file record.
Syntax: rc = AfSysGetUploader(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: The Uploader's Name.
Notes: N/A
Example: N/A
Related: N/A
ΓòÉΓòÉΓòÉ 9.3.30. AfSysListFirst ΓòÉΓòÉΓòÉ
AfSysListFirst ( )
Description: Loads the file record for the first file
matching the Area number and List
criteria.
Syntax: AfSysListFirst(fSysHandle, Area, Flags,
Date)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Area: Area number.
Flags: FS_DATE
FS_REV
FS_DATE+FS_REV
Date: Date in "time_t"
format.
Returns: 0 - No Error
<0 - Error
Notes:
FS_DATE and FS_REV are Rexx variables
set by Adept when a Rexx program
starts.
Only files newer than Date will be
shown.
Example: N/A
Related: AfSysFindList ( )
ΓòÉΓòÉΓòÉ 9.3.31. AfSysMoveFile ΓòÉΓòÉΓòÉ
AfSysMoveFile ( )
Description: Moves the named file's Area Info from one
area to another
Syntax: rc = AfSysMoveFile(fSysHandle, AreaFrom,
AreaTo, FileName)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
AreaFrom: Source area number.
AreaTo: Destination area
number.
FileName: Name of file to move.
Returns: 0 - No Error -1 - Rexx killed by BBS or
Carrier lost.
Notes: The physical file IS not moved only the
file area info is moved.
Example: N/A
Related: AfSysAddFile ( )
AfSysDelFile ( )
ΓòÉΓòÉΓòÉ 9.3.32. AfSysOpen ΓòÉΓòÉΓòÉ
AfSysOpen ( )
Description: Opens the File system for access by other
Rexx file functions. All other calls to
the file system functions require the
handle this function returns.
Syntax: rc = AfSysOpen(Directory, fSysHandle,
Create)
Arguments:
Directory: The directory that the
files system is
located in. Normally
a program which uses
the Adept file system
is started in the
'\Adept' directory and
the files system would
then be in '.\Files'
or more simply,
'Files'.
The directory name
should not end with a
backslash or forward
slash.
fSysHandle: The Rexx variable
which will have the
Handle placed into.
Create: Tells the file system
whether to open the
current file system
files or to create new
ones.
FALSE - Open current
files.
TRUE - Create/Open
new files.
Note: ** WARNING **
Bool Must be "FALSE"
or the file base will
be destroyed.
Returns: 0 - No Error
90 - FSYS_ERROR_ALLOC_MEM
91 - FSYS_ERROR_INIT_BIDX
100 - FSYS_ERROR_OPEN_DATA
101 - FSYS_ERROR_OPEN_DESC
102 - FSYS_ERROR_OPEN_PATH
103 - FSYS_ERROR_OPEN_NIDX
104 - FSYS_ERROR_OPEN_DIDX
105 - FSYS_ERROR_OPEN_AIDX
180 - FSYS_ERROR_CREATING_KEY
Notes:
When you choose to create a new file
system, the indexes are destroyed if
they exist. All other files are
opened and not destroyed.
If you wish to create all files from
scratch, make sure there are no files
in the directory.
You could call AfSysOpen twice with a
different directory to open two
different files system to copy
entries from one file system to
another.
Example: The following example calls AfSysOpen and
uses the current file system files.
rc = FSysOpen('.\Files', 'fSysHandle', 'FALSE')
Related: AfSysClose ( )
ΓòÉΓòÉΓòÉ 9.3.33. AfSysReadDESCRIPTIONLine ΓòÉΓòÉΓòÉ
AfSysReadDESCRIPTIONLine ( )
Description: Reads in the DESCRIPTION file line by
line.
Syntax: rc = AfSysReadDESCRIPTIONLine(fSysHandle,
Var)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Var: Name of REXX variable
to put descrption in.
Returns: The file offset of the line immediately
following the line read in.
Notes:
Lines beginning with ':' are remarked
lines, and are ignored by the file
system.
Lines beginning with ';' indicate
that a filename and file area are on
the same line: ';filename areanum'.
All other lines are assumed to be
DESCRIPTION lines.
Example: N/A
Related: AfSysGetFileDESCRIPTION ( )
AfSysSetFileDESCRIPTION ( )
ΓòÉΓòÉΓòÉ 9.3.34. AfSysSetAge ΓòÉΓòÉΓòÉ
AfSysSetAge ( )
Description: Sets the Age required to DownLoad the
current file.
Syntax: rc = AfSysSetAge(fSysHandle, Age)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Age: Age needed to DL the
file.
Returns: 0 - No Error
<0 - Error
Notes: N/A
Example: N/A
Related: AfSysGetAge ( )
ΓòÉΓòÉΓòÉ 9.3.35. AfSysSetCopyFile ΓòÉΓòÉΓòÉ
AfSysSetCopyFile ( )
Description: Copies file to a Temp directory when
Downloaded.
Syntax: rc = AfSysSetCopyFile(fSysHandle, Bool)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Bool: "TRUE" / "FALSE"
Returns: 0 - No Error
<0 - Error
Notes: If bool is "TRUE", then the file is copied
to a temp directory when DownLoadeded.
Example: N/A
Related: AfSysGetCopyFile ( )
ΓòÉΓòÉΓòÉ 9.3.36. AfSysSetDescOffset ΓòÉΓòÉΓòÉ
AfSysSetDescOffset ( )
Description: Sets the file offset in the DESCRIPTION
file.
Syntax: AfSysSetDescOffset(fSysHandle, Offset)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Offset: File offset.
Returns: 0 - No Error
<0 - Error
Notes: N/A
Example: N/A
Related: AfSysSetReadDescFlag ( )
AfSysResetDescFilePtr ( )
ΓòÉΓòÉΓòÉ 9.3.37. AfSysSetDLAble ΓòÉΓòÉΓòÉ
AfSysSetDLAble ( )
Description: Sets file as Downloadable.
Syntax: rc = AfSysSetDLAble(fSysHandle, Bool)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Bool: "TRUE" / "FALSE"
Returns: 0 - No Error
<0 - Error
Notes: If Bool is "TRUE", then the file can be
downloaded.
Example: N/A
Related: AfSysGetDLAble ( )
ΓòÉΓòÉΓòÉ 9.3.38. AfSysSetFileArea ΓòÉΓòÉΓòÉ
AfSysSetFileArea ( )
Description: Sets the file Area Number in the current
file record.
Syntax: rc = AfSysSetFileArea(fSysHandle, Area)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Area: The file area number.
Returns: 0 - No Error
<0 - Error
Notes: N/A
Example: N/A
Related: AfSysGetFileArea ( )
AfSysGetFileAreaList ( )
ΓòÉΓòÉΓòÉ 9.3.39. AfSysSetFileDate ΓòÉΓòÉΓòÉ
AfSysSetFileDate ( )
Description: Sets the date for the current file record.
Syntax: rc = AfSysSetFileDate(fSysHandle, Year,
Month, Day)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Year: Optional year.
Month: Optional month.
Day: Optional day.
Returns: 0 - No Error
<0 - Error
Notes: Any of the optional arguments missing are
filled in with the current date.
Example: N/A
Related: AfSysGetFileDate ( )
ΓòÉΓòÉΓòÉ 9.3.40. AfSysSetFileDESCRIPTION ΓòÉΓòÉΓòÉ
AfSysSetFileDESCRIPTION ( )
Description: Sets the DESCRIPTION for the current file
record.
Syntax: AfSysSetFileDESCRIPTION(fSysHandle, Desc)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Desc: Description of the
file.
Returns: 0 - No Error
<0 - Error
Notes: N/A
Example: N/A
Related: AfSysGetFileDESCRIPTION ( )
AfSysReadDESCRIPTIONLine ( )
ΓòÉΓòÉΓòÉ 9.3.41. AfSysSetFileRecord ΓòÉΓòÉΓòÉ
AfSysSetFileRecord ( )
Description: Saves the active file record to disk.
Syntax: AfSysSetFileRecord(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error
Notes: N/A
Example: N/A
Related: AfSysZeroFileRecord ( )
ΓòÉΓòÉΓòÉ 9.3.42. AfSysSetFileSize ΓòÉΓòÉΓòÉ
AfSysSetFileSize ( )
Description: Sets the file size in the current file
record.
Syntax: AfSysSetFileSize(fSysHandle, Size)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Size: The length of the
file.
Returns: 0 - No Error
>0 - Error
Notes: N/A
Example: N/A
Related: AfSysGetFileSize ( )
ΓòÉΓòÉΓòÉ 9.3.43. AfSysSetIndexEntryDate ΓòÉΓòÉΓòÉ
AfSysSetIndexEntryDate ( )
Description: Sets the date for the current file record
in the date index.
Syntax: rc = AfSysSetIndexEntryDate(fSysHandle,
Year, Month, Day)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Year: Optional year.
Month: Optional month.
Day: Optional day.
Returns: 0 - No Error
<0 - Error
Notes: Any of the optional arguments missing are
filled in with the current date.
Example: N/A
Related: AfSysSetIndexAreaNumber ( )
AfSysSetIndexFileName ( )
AfSysSetIndexRecordOffset ( )
ΓòÉΓòÉΓòÉ 9.3.44. AfSysSetListable ΓòÉΓòÉΓòÉ
AfSysSetListable ( )
Description: Sets a file as Listable.
Syntax: rc = AfSysSetListable(fSysHandle, Bool)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Bool: "TRUE" / "FALSE"
Returns: 0 - No Error
<0 - Error
Notes: If Bool is "TRUE", then the file is
listable.
Example: N/A
Related: AfSysGetListable ( )
ΓòÉΓòÉΓòÉ 9.3.45. AfSysRawReadFileRecord ΓòÉΓòÉΓòÉ
AfSysRawReadFileRecord ( )
Description: Reads from the current file pointer to the
end of the record.
Syntax: rc = AfSysRawReadFileRecord(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error 152 - FSYS_ERROR_READ
Notes:
This function tells FSys to read the
current file record from the disk.
It reads from the current file
pointer to the end of the record. It
does not set or check the file
pointer before doing so.
This function is used when reading
the records from disk one by one to
the end of the file. It returns
FSYS_ERROR_READ if any errors occur,
which normally means the end of the
file.
This function also sets the index
filename, index entry date, index
area number, and index record offset.
Example: N/A
Related: AfSysResetFilePtr ( )
ΓòÉΓòÉΓòÉ 9.3.46. AfSysResetDescFilePtr ΓòÉΓòÉΓòÉ
AfSysResetDescFilePtr ( )
Description: Sets the file pointer to the beginning of
the DESCRIPTION file.
Syntax: rc = AfSysResetDescFilePtr(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error
>0 - Error
Notes: This funcion is used in conjunction with
AfSysReadDESCRIPTIONLine.
Example: N/A
Related: AfSysSetReadDescFlag ( )
AfSysSetDescOffset ( )
AfSysReadDESCRIPTIONLine ( )
ΓòÉΓòÉΓòÉ 9.3.47. AfSysResetFilePtr ΓòÉΓòÉΓòÉ
AfSysResetFilePtr ( )
Description: Sets the file pointer to the beginning of
the file.
Syntax: rc = AfSysResetFilePtr(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error
<0 - Error
Notes: This funcion is used in conjunction with
AfSysRawReadFileRecord.
Example: N/A
Related: AfSysRawReadFileRecord ( )
ΓòÉΓòÉΓòÉ 9.3.48. AfSysSetFilename ΓòÉΓòÉΓòÉ
AfSysSetFilename ( )
Description: Sets the file name for the current file
record.
Syntax: rc = AfSysSetFilename(fSysHandle, Name)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Name: Filename
Returns: 0 - No Error
>0 - Error
Notes: N/A
Example: N/A
Related: AfSysGetFilename ( )
ΓòÉΓòÉΓòÉ 9.3.49. AfSysSetIndexAreaNumber ΓòÉΓòÉΓòÉ
AfSysSetIndexAreaNumber ( )
Description: Sets the area number for the current file
record in the index files.
Syntax: rc = AfSysSetIndexAreaNumber(fSysHandle,
Area)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Area: New area number
Returns: 0 - No Error
Notes: N/A
Example: N/A
Related: AfSysSetIndexFileName ( )
AfSysSetIndexEntryDate ( )
AfSysSetIndexRecordOffset ( )
ΓòÉΓòÉΓòÉ 9.3.50. AfSysSetIndexFileName ΓòÉΓòÉΓòÉ
AfSysSetIndexFileName ( )
Description: Sets the file name used in the search
indexes.
Syntax: rc = AfSysSetIndexFileName(fSysHandle,
Name)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Name: File name for the
current record.
Returns: 0 - No Error
>0 - Error
Notes: N/A
Example: N/A
Related: AfSysSetIndexAreaNumber ( )
AfSysSetIndexEntryDate ( )
AfSysSetIndexRecordOffset ( )
ΓòÉΓòÉΓòÉ 9.3.51. AfSysSetIndexRecordOffset ΓòÉΓòÉΓòÉ
AfSysSetIndexRecordOffset ( )
Description: Sets the new index record offset when a
file is added to the File System.
(normally set by fSys.DLL)
Syntax: rc = AfSysSetIndexRecordOffset(fSysHandle,
Offset)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Offset: Offset in the data
file of the file
record.
Returns: 0 - No Error
Notes:
You can also set the offset to -1 to
indicate to fSys that this file
should be appended to the data file.
This would be used when adding a file
to the file system. When a file is
added, the index record offset is
updated by fSys.Dll to show you what
the new offset is.
Example: N/A
Related: AfSysSetIndexAreaNumber ( )
AfSysSetIndexFileName ( )
AfSysSetIndexEntryDate ( )
ΓòÉΓòÉΓòÉ 9.3.52. AfSysSetPathIndex ΓòÉΓòÉΓòÉ
AfSysSetPathIndex ( )
Description: Sets the Path Index for a physical file.
Syntax: rc = AfSysSetPathIndex(fSysHandle, path)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Path: New path index.
Returns: 0 - No Error
Notes: Each File area can have mulitple paths.
The physical file is a combination of the
filename and the path pointed to by the
path index.
Example: N/A
Related:
Related: AfSysGetPathName ( )
ΓòÉΓòÉΓòÉ 9.3.53. AfSysReadFilePath ΓòÉΓòÉΓòÉ
AfSysReadFilePath ( )
Description: Reads in the physical path associated with
the Path Index.
Syntax: rc = AfSysReadFilePath(fSysHandle, Index,
Var)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Index: Path index.
Var: Name of REXX variable
to recieve path.
Returns: 0 - No Error
<0 - Error
Notes: N/A
Example: N/A
Related: AfSysWriteFilePath ( )
ΓòÉΓòÉΓòÉ 9.3.54. AfSysSetSecLevel ΓòÉΓòÉΓòÉ
AfSysSetSecLevel ( )
Description: Sets the Minimum Security level needed to
download the current file.
Syntax: rc = AfSysSetSecLevel(fSysHandle, Level)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Level: Security level
Returns: 0 - No Error
<0 - Error
Notes: This function may be obsolete in the
future.
Example: N/A
Related: AfSysGetSecLevel ( )
AfSysGetPassword ( )
ΓòÉΓòÉΓòÉ 9.3.55. AfSysSetUploader ΓòÉΓòÉΓòÉ
AfSysSetUploader ( )
Description: Sets the current file record for the
uploader.
Syntax: rc = AfSysSetUploader(fSysHandle, Name)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Name: Filename.
Returns: 0 - No Error
>0 - Error
Notes: N/A
Example: N/A
Related: N/A
ΓòÉΓòÉΓòÉ 9.3.56. AfSysWriteFilePath ΓòÉΓòÉΓòÉ
AfSysWriteFilePath ( )
Description: Sets the path in the list of Indexes for
that Area.
Syntax: AfSysWriteFilePath(fSysHandle, Index,
Path)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Index: Path index.
Path: Physical path.
Returns: 0 - No Error
<0 - Error
Notes: Sets the path given by index to path, if
Index == -1, then path is added to the
list of indexes for the area.
Example: N/A
Related: AfSysReadFilePath ( )
ΓòÉΓòÉΓòÉ 9.3.57. AfSysZeroFileRecord ΓòÉΓòÉΓòÉ
AfSysZeroFileRecord ( )
Description: Wipes out the current file record.
Syntax: rc = AfSysZeroFileRecord(fSysHandle)
Arguments:
fSysHandle: Handle to the
currently open file
system. Created by
AfSysOpen.
Returns: 0 - No Error
Notes: N/A
Example: N/A
Related: AfSysSetFileRecord ( )
ΓòÉΓòÉΓòÉ 9.4. Comm. Functions ΓòÉΓòÉΓòÉ
AdeptREXX Comm. & Raw Comm. Functions:
AdeptComDial ( ) Parse a string to the
modem through the
dialing translation.
AdeptComDoDTR ( ) Raise or drop DTR to
the node specified with
the LineNumber
parameter.
AdeptComFlush ( ) Flush the output stream
of the current com
port.
AdeptComGetBlock ( ) Read the input queue
until the timeout
period expires or
'Length' characters are
received, whichever
comes first.
AdeptComGetByte ( ) Receives a byte from
the input stream.
AdeptComGetString ( ) Read the input queue
until 'time' expires or
length characters are
received, whichever
comes first.
(identical to
AdeptComGetBlock apart
from the syntax.)
AdeptComPeekByte ( ) Returns the next
character on the input
stream but does not
remove it from the
stream.
AdeptComPutC ( ) Put a character into
the Com port output
stream.
AdeptComWaitConnect ( ) Wait for a modem
connect, error code,
timeout or carrier
drop.
AdeptComWrite ( ) Place a string into the
com port's output
stream.
AdeptRawComClose ( ) Closes an Open Com Port
Handle.
AdeptRawComGetBlock ( ) Gets a block from the
input stream. Stopping
at Length or Time.
AdeptRawComGetString ( ) Gets a string from the
ComInfo handle.
Stopping at Length
characters or Time
milliseconds, or if it
finds Term character.
AdeptRawComLink ( ) Links an open ComInfo
handle to the current
line.
AdeptRawComOpen ( ) Opens a ComInfo Handle
used by the AdeptRaw
set of functions.
AdeptRawComWrite ( ) Writes Buffer up to
Length characters to
the ComInfo output
stream.
AdeptRawOpenSocket ( ) Opens a socket
connection to hostname
and port. Places the
ComInfo handle in Stem.
AdeptRawSetBPS ( ) Sets an open ComInfo
handle to baudrate.
(1.08.X + only)
ΓòÉΓòÉΓòÉ 9.4.1. AdeptComDial ΓòÉΓòÉΓòÉ
AdeptComDial ( )
Description: Parses a string to the modem through the
dialing translation. I.E.
"v~^ATDT555-1212|" will be translated to
LOWER DTR, PAUSE FOR A SECOND, RAISE DTR,
SEND 'ATDT555-1212' then a CR (Carriage
Return to the modem).
Syntax: call AdeptComDial LineNumber, "STRING TO
DIAL"
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
String to Dial: A string enclosed in
quotes that you want
to be sent to the
modem.
Returns: N/A
Notes: Dialing Translation Table:
v Lower DTR
^ Raise DTR
~ Pause for one Second
` Pause for 1/10th of a second
| Carriage Return
\\ Escape Character
Example: The following example will dial the number
555-1212:
Call AdeptComDial LineNumber,"v~^~ATDT555-1212|"
Related: AdeptComWaitConnect ( )
ΓòÉΓòÉΓòÉ 9.4.2. AdeptComDoDTR ΓòÉΓòÉΓòÉ
AdeptComDoDTR ( )
Description: The AdeptComDoDTR function will raise or
drop DTR to the node specified with the
LineNumber parameter.
Syntax: call AdeptComDoDTR LineNumber, `0' or `1'
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Type:
0 Drop DTR (Will
leave it
dropped)
1 Raise DTR (Will
leave it raised)
Returns: N/A
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: This Example will drop the DTR.
call AdeptComDoDTR LineNumber,'0'
Related: N/A
ΓòÉΓòÉΓòÉ 9.4.3. AdeptComFlush ΓòÉΓòÉΓòÉ
AdeptComFlush ( )
Description: Flushes the output stream of the current
Com Port.
Syntax: call AdeptComFlush LineNumber
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: N/A
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: This example will flush the contents of
the line's output stream
call AdeptComFlush LineNumber
Related: N/A
ΓòÉΓòÉΓòÉ 9.4.4. AdeptComGetBlock ΓòÉΓòÉΓòÉ
AdeptComGetBlock ( )
Description: Reads the input queue until the timeout
period expires or 'Length' characters are
received, whichever comes first.
Syntax: call AdeptComGetBlock LineNumber, Length,
Time, Stem
rc = AdeptComGetBlock(LineNumber, Length,
Time, Stem)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Length: Length of block to
receive.
Time: Timeout period. In
milliseconds.
Stem: Received block is
stored in this
variable.
Returns: -1 - Carrier Drop
0 - Timeout
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: This example will get a block of 12
characters with a timeout period of 5
seconds and store it in the variable
String:
call AdeptComGetBlock line, 12, 5000, 'String'
Related: AdeptComGetByte ( )
AdeptComGetString ( )
ΓòÉΓòÉΓòÉ 9.4.5. AdeptComGetByte ΓòÉΓòÉΓòÉ
AdeptComGetByte ( )
Description: Receives a byte from the input stream.
Syntax: rc = AdeptComGetByte(LineNumber, Time)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Time: Timeout period. In
milliseconds.
Returns: -1 - Carrier Drop
0 - Timeout
If the function does not time out or
notice a carrier drop, it will return the
byte received.
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: The following example get a byte from the
current lines' input stream and stores it
in the variable char,
char = AdeptComGetByte(line, 1000)
Related: AdeptComGetBlock ( )
AdeptComGetString ( )
ΓòÉΓòÉΓòÉ 9.4.6. AdeptComGetString ΓòÉΓòÉΓòÉ
AdeptComGetString ( )
Description: AdeptComGetString will read the input
queue until 'time' expires or length
characters are received, whichever comes
first. This function is identical to
AdeptComGetBlock apart from the syntax.
Syntax: call AdeptComGetString LineNumber, Length,
Time, Chr, Ignore, Stem
rc = AdeptComGetString(LineNumber, Length,
Time, Chr, Ignore, Stem)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Length: Length of string to
receive.
Time: Timeout period.
(milliseconds).
Chr: Ignored but required.
Ignore: Ignored but required.
Stem: Variable to place
received string in.
Returns: -1 - Carrier Drop
0 - Timeout
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: This example will get a block of 12
characters with a timeout period of 5
seconds and store it in the variable
String:
call AdeptComGetString line, 12, 5000, 'Chr', 'Ignore', 'String'
Related: AdeptComGetBlock ( )
AdeptComGetByte ( )
ΓòÉΓòÉΓòÉ 9.4.7. AdeptComPeekByte ΓòÉΓòÉΓòÉ
AdeptComPeekByte ( )
Description: Returns the next character on the input
stream but does not remove it from the
stream.
Syntax: rc = AdeptComPeekByte(LineNumber, Time)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Time: The timeout period is
in the format of
milliseconds.
Returns: -1 - Carrier Drop
0 - Timeout
If the function does not time out or
notice a carrier drop, it will return the
next byte in the input queue.
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: The following will wait 5 seconds for the
next character on the input queue. It
will return this character into the
variable char but leave the character in
the input queue.
char = AdeptComPeekByte(line, 5000)
Related: AdeptComGetByte ( )
ΓòÉΓòÉΓòÉ 9.4.8. AdeptComPutC ΓòÉΓòÉΓòÉ
AdeptComPutC ( )
Description: Puts a character into the Com port output
stream.
Syntax: call AdeptComPutC LineNumber, Char
rc = AdeptComPutC(LineNumber, Char)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Char: Character to put into
the Com output stream.
Returns: -1 - Carrier Drop
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: This would put the letter 'A' in the Com
Port's output stream.
call AdeptComPutC LineNumber,'A'
Related: N/A
ΓòÉΓòÉΓòÉ 9.4.9. AdeptComWaitConnect ΓòÉΓòÉΓòÉ
AdeptComWaitConnect ( )
Description: Waits for a modem connect, error code,
timeout or carrier drop.
Syntax: call AdeptComWaitConnect LineNumber, Time
rc = AdeptComWaitConnect(LineNumber, Time)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Time: The time is in the
format of
milliseconds.
Returns: -1 - Carrier Drop
0 - Time out.
If it doesn't timeout it will then
return the return code from the modem i.e.
'CONNECT 28800' 'ERROR', 'OK', 'NO
CARRIER'.
Notes: .** Warning ** This is a RAW com
function. This is only to be used by
professionals or people experienced with
programming serial based products.
Example: The following example will dial the number
555-1212 and wait then display the
response
Call AdeptComDial LineNumber, "v~^~ATDT555-1212|"
connectresponse = AdeptComWaitConnect(LineNumber, 10000)
if(connectresponse>0) then
Call AdeptPrint LineNumber, "Connect Result: "||connectresponse
Related: AdeptComDial ( )
ΓòÉΓòÉΓòÉ 9.4.10. AdeptComWrite ΓòÉΓòÉΓòÉ
AdeptComWrite ( )
Description: Places a string into the com port's output
stream.
Syntax: call AdeptComWrite LineNumber, "string"
rc = AdeptComWrite(LineNumber, "string")
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
String: A string enclosed in
quotes.
Returns: -1 - Carrier Drop
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: The following example would be used to
Display "Hello!" to the output stream, if
the carrier is dropped, it would signal
NoCarrier and the script would be
terminated.
rc = AdeptComWrite(LineNumber,"Hello!")
if (rc = '-1') then
signal NoCarrier
NoCarrier:
exit
Related: N/A
ΓòÉΓòÉΓòÉ 9.4.11. AdeptRawComClose ΓòÉΓòÉΓòÉ
AdeptRawComClose ( )
Description: Closes an Open Com Port Handle.
Syntax: call AdeptRawComClose ComInfo
rc = AdeptRawComClose(ComInfo)
Arguments:
ComInfo: ComInfo handle created
by AdeptRawComOpen.
Returns: N/A
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: The following example close the Port
passed in the ComInfo port handle.
call AdeptRawComClose ComInfo
Related: AdeptRawComOpen ( )
ΓòÉΓòÉΓòÉ 9.4.12. AdeptRawComGetBlock ΓòÉΓòÉΓòÉ
AdeptRawComGetBlock ( )
Description: Gets a block from the input stream.
Stopping at Length or Time.
Syntax: call AdeptRawComGetBlock ComInfo, Buffer,
Length, Time(ms), CDetect, Bytename
rc = AdeptRawComGetBlock(ComInfo, Buffer,
Length, Time(ms), CDetect, Bytename)
Arguments:
ComInfo: ComInfo handle created
by AdeptRawComOpen.
Buffer: Data received is
stored in this
variable.
Length: Number of characters
to receive.
Time: Timeout period. In
milliseconds.
CDetect: Carrier detect. TRUE
or FALSE.
Bytename: Number of bytes read
is stored in this
variable.
Returns: 0 - No Error
65592 - Time Out
65588 - Connection/Carrier lost
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: The following example reads 12 characters
into the variable buffer. The timeout
period is 5 seconds.
rc = AdeptRawComGetBlock(ComInfoHandle, 'buffer', 12, 5000, TRUE, 'len')
if (rc=65588) then
signal NoCarrier
NoCarrier:
exit
Related: AdeptRawComOpen ( )
AdeptRawComGetString ( )
ΓòÉΓòÉΓòÉ 9.4.13. AdeptRawComGetString ΓòÉΓòÉΓòÉ
AdeptRawComGetString ( )
Description: Gets a string from the ComInfo handle.
Stopping at Length characters or Time
milliseconds, or if it finds Term
character. For example if the user enters
"Hello" followed by enter and the Term
character was set to '\r' then
AdeptRawComGetString would return the
string even if the timeout period had not
expired or the number of characters
received was less than Length.
Syntax: call AdeptRawComGetString ComInfo, Buffer,
Length, Term, Time, CDBuf
rc = AdeptRawComGetString(ComInfo, Buffer,
Length, Term, Time, CDBuf)
Arguments:
ComInfo: ComInfo handle created
by AdeptRawComOpen.
Buffer: String received is
stored in this
variable.
Length: Length of string to
receive.
Term: Character to terminate
input at.
Time: Timeout period. In
milliseconds.
CDBuf: Carrier Detect. TRUE
or FALSE.
Returns: 0 - No Error
65592 - Time Out
65588 - Connection/Carrier lost
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: This example will attempt to receive 12
characters with a timeout period of 5
seconds from the port stored in
ComInfoHandle. It will return the string
before the timeout period or 12 characters
are received if the user presses enter.
If the function times out or detects a
carrier drop, it will exit the script.
rc = AdeptRawComGetString(ComInfoHandle,'buffer',12,'\r',5000,TRUE)
if (rc=65588) then
signal NoCarrier
NoCarrier:
exit
Related: AdeptRawComOpen ( )
AdeptRawComGetBlock ( )
ΓòÉΓòÉΓòÉ 9.4.14. AdeptRawComLink ΓòÉΓòÉΓòÉ
AdeptRawComLink ( )
Description: This function links an open ComInfo handle
to the current line.
Syntax: call AdeptRawComLink LineNumber, ToComInfo
rc = AdeptRawComLink(LineNumber,
ToComInfo)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
ToComInfo: ComInfo handle to link
the current line to.
Returns: 0 - No Error
65592 - Time Out
65588 - Connection/Carrier lost
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: This example will open a telnet connection
to Address on port Port. It will then link
this connection to the current line.
rc = AdeptRawOpenSocket(ISTELNETCLIENT, Address, Port, 'Port')
if (rc=65588) then
signal NoCarrier
rc = AdeptRawComLink(line, Port)
if (rc=65588) then
signal NoCarrier
NoCarrier:
exit
Related: N/A
ΓòÉΓòÉΓòÉ 9.4.15. AdeptRawComOpen ΓòÉΓòÉΓòÉ
AdeptRawComOpen ( )
Description: Opens a ComInfo Handle used by the
AdeptRaw set of functions.
Syntax: call AdeptRawComOpen Port, Baud, Chr,
Parity, Stopbit, Flags, Stem
rc = AdeptRawComOpen(Port, Baud, Chr,
Parity, Stopbit, Flags, Stem)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Port: Port to Open.
Baud: Baudrate to open Port
at.
Chr: Data bits to set port
at. ie 7,8 etc.
Parity: Parity to set port at.
StopBit: Stopbit to set port
at.
Flags: LEAVEPORTOPEN
(0x00000001)
OPENPORTSHARED
(0x00000002)
OPENWRITETHROUGH
(0x00000004)
IGNORECARRIER
(0x00000040)
ISSERIAL
(0x00000200)
Stem: ComInfo Descriptor
Returns: 0 - No Error
65592 - Time Out
65588 - Connection/Carrier lost
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: This Example will create ComInfoHandle, a
handle to a ComInfo structure to be used
in the various AdeptRawCom functions.
Call AdeptRawComOpen 'COM4',9600,8,N,1,,'ComInfoHandle'
Related: AdeptRawComClose ( )
AdeptRawOpenSocket ( )
ΓòÉΓòÉΓòÉ 9.4.16. AdeptRawComWrite ΓòÉΓòÉΓòÉ
AdeptRawComWrite ( )
Description: Writes Buffer up to Length characters to
the ComInfo output stream.
Syntax: call AdeptRawComWrite ComInfo, Buffer,
Length, CDetect
rc = AdeptRawComWrite(ComInfo, Buffer,
Length, CDetect)
Arguments:
ComInfo: ComInfo handle created
by AdeptRawComOpen.
Buffer: Buffer to write into
com output stream.
Length: Length of buffer to
output.
CDetect: Carrier Detect? TRUE
or FALSE
Returns: 0 - No Error
65592 - Time Out
65588 - Connection/Carrier lost
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: The following example will send the
contents of Buffer to the output stream,
if the carrier is dropped, it would signal
NoCarrier and the script would be
terminated.
rc = AdeptRawComWrite(ComInfoHandle, Buffer, LENGTH(Buffer), TRUE)
if (rc = 65588) then
signal NoCarrier
NoCarrier:
exit
Related: N/A
ΓòÉΓòÉΓòÉ 9.4.17. AdeptRawOpenSocket ΓòÉΓòÉΓòÉ
AdeptRawOpenSocket ( )
Description: Opens a socket connection to hostname and
port. Places the ComInfo handle in Stem.
Syntax: call AdeptRawOpenSocket Flags, Hostname,
Port, Stem
rc = AdeptRawOpenSocket(Flags, Hostname,
Port, Stem)
Arguments:
Flags: ISTELNETCLIENT
(0x00000100)
ISSOCKETCLIENT
(0x00000800)
Hostname: Host to connect to.
Port: Port to connect to.
Stem: ComInfo Descriptor.
Returns: 0 - No Error
65592 - Time Out
65588 - Connection/Carrier lost
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: The following example opens a telnet link
to Address:Port then links the port to the
user.
rc = AdeptRawOpenSocket(ISTELNETCLIENT, Address, Port, 'Port')
if (rc=65588) then
signal NoCarrier
rc = AdeptRawComLink(line, Port)
if (rc=65588) then
signal NoCarrier
NoCarrier:
exit
Related: N/A
ΓòÉΓòÉΓòÉ 9.4.18. AdeptRawSetBPS * ΓòÉΓòÉΓòÉ
AdeptRawSetBPS ( ) * (Works in Adept 1.08.x only)
Description: Sets an open ComInfo handle to baudrate.
Syntax: call AdeptRawSetBPS ComInfo, Baudrate
rc = AdeptRawSetBPS(ComInfo, Baudrate)
Arguments:
ComInfo: ComInfo handle created
by AdeptRawComOpen.
Baudrate: Baudrate to set the
port at.
Returns: 0 - No Error
65592 - Time Out
65588 - Connection/Carrier lost
Notes: ** Warning ** This is a RAW com function.
This is only to be used by professionals
or people experienced with programming
serial based products.
Example: This example will set the baudrate of
ComInfoHandle to 14400 baud.
rc = AdeptRawSetBPS(ComInfoHandle, '14400')
if (rc=65588) then
signal NoCarrier
NoCarrier:
exit
Related: N/A
ΓòÉΓòÉΓòÉ 9.5. Chat Functions * ΓòÉΓòÉΓòÉ
AdeptREXX Chat "CServer" Functions (1.08f Only)
AdeptSysChatConnectUser ( ) Connects/signs up a
user with the chat
server.
AdeptSysChatCustomMsg ( ) Sends messages to
the user. (they may
be parsed)
AdeptSysChatGetMsg ( ) Called upon
receiving a
IRC_CHATWAITING,
it'll return a
IRC_* value.
AdeptSysChatInput ( ) Similar to
AdeptInput, but
specifically
designed to be used
with multi-node
chat.
AdeptSysChatJoinConf ( ) Joins the user to a
chat conference.
AdeptSysChatLeaveConf ( ) Remove the user
from the
conference.
AdeptSysChatMessageWaiting ( ) Checks to see if
the User has a chat
messages waiting.
AdeptSysChatMsg ( ) Sends a chat
message to a user.
AdeptSysChatPrivMsg ( ) Sends a private
message to a user.
AdeptSysChatPubMsg ( ) Sends a public
message in the
current conference.
AdeptSysChatReconnectUser ( ) Reconnects a user
to the chatserver.
AdeptSysChatUserConnected ( ) Checks that the
user is properly
connected to the
Chat server.
AdeptSysCheckForServer ( ) Checks that the
Chat server is
available.
AdeptREXX Chat Constants
Note: AdeptInitREXX(line) must be called first.
ΓòÉΓòÉΓòÉ 9.5.1. AdeptSysChatConnectUser ΓòÉΓòÉΓòÉ
AdeptSysChatConnectUser ( ) (1.08f Only)
Description: Connects a user with the Chat Server.
Syntax: rc = AdeptSysChatConnectUser(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: 0 - Syntax error
1 - User connected with server
2 - Failed to connect user to server
3 - Server unavailable
Notes: N/A
Example: The following example will attempt to
connect the user to the chatserver, if it
succeeds it will join the user to the main
conference. If not, the script will
notify the user that the server is down
and exit the script.
rc = AdeptSysChatConnectUser(line)
if(rc == 1) then do
rc = AdeptSysChatJoinConf(line, "Main")
end
else do
AdeptPrint(line, "\r\n\nChat server unavailable\r\n{PC")
exit
end
Related: AdeptSysChatReconnectUser ( )
AdeptSysChatUserConnected ( )
ΓòÉΓòÉΓòÉ 9.5.2. AdeptSysChatCustomMsg ΓòÉΓòÉΓòÉ
AdeptSysChatCustomMsg ( ) (1.08f Only)
Description: Send messages to the user that may be
parsed via AdeptSysChatGetMsg, thus
allowing new chat options, functions and
types to be added.
Syntax: call AdeptSysChatCustomMsg LineNumber,
PktType, To, Message
rc = AdeptSysChatCustomMsg(LineNumber,
PktType, To, Message)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
PktType: Packet Type. (Must be
greater than 1000)
To: User Name to send
custom message to. -
or -
-1 All users in the
current channel.
-2 All users on the
BBS (Not
currently
supported).
-3 All users on the
chatserver (Not
currently
supported).
-4 All local ops
(Not currently
supported).
-5 All server ops
(Not currently
supported).
Message: Message to send.
Returns: 0 - Syntax error
1 - Sent to server
Notes: - Do not specify Packet Types below 1000,
all types must start at 1001, the lower
1000 are reserved for system use.
Example: The following example will alert everyone
in the channel that the user has left the
channel, and exit the user from the
channel.
Leave:
Parse Arg Reason
rc = AdeptSysChatPubMsg(Line, '{FG╨╛ {FF' || UserName || ' has Left the Channel!')
rc = AdeptSysChatCustomMsg(Line, 1002, -1, 'Leave')
rc = AdeptSysChatLeaveConf(Line)
Return
Related: AdeptSysChatGetMsg ( )
ΓòÉΓòÉΓòÉ 9.5.3. AdeptSysChatGetMsg ΓòÉΓòÉΓòÉ
AdeptSysChatGetMsg ( ) (1.08f Only)
Description: Should be called upon receiving a
IRC_CHATWAITING, it'll return a IRC_*
value. The user may assign values to the
variables detailed below.
Syntax: rc = AdeptSysChatGetMsg(LineNumber)
Arguments:
Line Number: Node Number passed to
Rexx routine from
Adept as first
parameter.
Returns: 0 - Didn't receive a packet or bad packet.
1 - Received a chat packet that does NOT
have a chatmsg attached.
2 - Received a chat packet that does have
a chatmsg attached.
3 - Received a chat packet that does have
a chatmsg with a chat data packet
attached.
Notes:
If a 1 is returned (no chatmsg
attached), the following variables
will be set:
PKTTYPE Packet type
definitions
as follows:
100 -
Standard
Public
Conference
Message.
101 - No
Prepended
Public
Conference
Message.
102 -
Private
message to
another
user/node.
103 -
Invite a
user to a
channel.
104 -
Leave chat.
105 -
System
Global
Message to
all no
matter
where.
PKTSERIAL Packet
Serial
Number
(Currently
the time it
was sent)
PKTCRC 32 bit CRC
of the
ChatMsg if
one it to be
sent for
validation
of the chat
message.
If a 2 is returned (chatmsg
attached), the following variables
will also be set:
CHATMSGFROM User or Node
number the
chat message
was from.
CHATMSGFLAGS Flags for
the message
(Currently
unused)
CHATMSGSCRAMBLE Scramble
code for the
message,
ie: Only
those with
the same
code set can
see it.
CHATMSGTO Who the
message is
to. If
blank, it's
considered
to be a
public style
message for
public chat
use.
If a 3 is returned (chatmsg & data
packet attached), the following
variables will also be set:
CHATMSGDATALEN Length of
the data.
CHATMSGDATACRC CRC of the
Data.
CHATMSGDATA The data,
usually the
chat
messages
text, could
be binary if
you so
desire.
(4Kb limit)
Example: The following example checks if a message
is waiting, if there is, it then calls
AdeptSysChatGetMsg, and if '2' is returned
(Chat packet w/ chatmsg attached), it
checks to see if it's packet type is '103'
(invatation to a channel), if it is it
then prints to the users's node that user
"CHATMSGFROM" has invited him to chat.
if(AdeptSysChatMsgWaiting(line) == 1)then
do
rc = AdeptSysChatGetMsg(line)
if(rc == 2) then do
if(PktType == 103) then do
AdeptPrint(line, "\rUser "||CHATMSGFROM||" invited you to chat!\r\n")
return 0
end
end
end
Related: AdeptSysChatCustomMsg ( )
ΓòÉΓòÉΓòÉ 9.5.4. AdeptSysChatInput ΓòÉΓòÉΓòÉ
AdeptSysChatInput ( ) (1.08f Only)
Description: Similar to AdeptInput, but specifically
designed to be used with multi-node chat.
Syntax: call AdeptSysChatInput LineNumber,
"BufferName", AbortKeyList, InputText
rc = AdeptSysChatInput(LineNumber,
"BufferName", AbortKeyList, InputText)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
BufferName: Variable to place the
text into.
AbortKeyList: AbortKeyList is a
optional command. If
you don't pass it a
keylist and the user
presses enter on a
line it will return 1,
if you pass it a
keylist and the user
presses enter it will
return 1, for all
other keys pressed it
will return their
ascii value.
Note: The keylist
should not contain the
Ascii numeric value
for a key, but the
actual Ascii key
itself. (ie. Ascii 3,
^C would be a heart.)
InputText: If InputText is passed
it will place it in
the users buffer as if
they had typed it.
They can backspace
over it and delete the
text passed to the
buffer.
Returns: 1 - If the user pressed return.
Also any of the IRC_* constants.
Notes: Both the AbortKeyList and InputText
arguments are optional.
Example: The following example will input a chat
line from the user into 'UserText' to be
parsed and output appropriately later.
rc = AdeptSysChatInput(line, "USERTEXT", KeyList)
Related: N/A
ΓòÉΓòÉΓòÉ 9.5.5. AdeptSysChatJoinConf ΓòÉΓòÉΓòÉ
AdeptSysChatJoinConf ( ) (1.08f Only)
Description: Joins the user to a chat conference.
Syntax: call AdeptSysChatJoinConf LineNumber,
ConferenceName
rc = AdeptSysChatJoinConf(LineNumber,
ConferenceName)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
ConferenceName: Name of conference to
join user to.
Returns: 0 - Join Not Successful
1 - Access Denied to Channel
2 - Channel Joined
Notes: N/A
Example: The following example will attempt to join
the user to a conference named Main, it
will exit the script if the attempt was
unsuccessful.
rc = AdeptSysChatJoinConf(line, "Main")
if(rc<>2)then
do
Call AdeptPrint line, "I'm sorry. Could not join conference!"
exit
end
Related: AdeptSysChatLeaveConf ( )
ΓòÉΓòÉΓòÉ 9.5.6. AdeptSysChatLeaveConf ΓòÉΓòÉΓòÉ
AdeptSysChatLeaveConf ( ) (1.08f Only)
Description: Removes the user from the current
conference.
Syntax: AdeptSysChatLeaveConf(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: 1 - Allways
Notes: N/A
Example: The following example will notify other
users, and then leave the current
conference.
if(Command == '/Q' | Command == '/E') then do
SendString = '{FE[{FG' || UserNode || '{F8-{FB' || UserName || '{FE] {FC{ZZ' || 'Leaving...'
call AdeptSysChatPubMsg line, SendString
call AdeptSysChatLeaveConf line
exit
end
Related: AdeptSysChatJoinConf ( )
ΓòÉΓòÉΓòÉ 9.5.7. AdeptSysChatMessageWaiting ΓòÉΓòÉΓòÉ
AdeptSysChatMessageWaiting ( ) (1.08f Only)
Description: Checks to see if the User on LineNumber
has a chat message waiting.
Syntax: rc =
AdeptSysChatMessageWaiting(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: 0 - Syntax Error
1 - There is a chat message waiting
2 - Error User Not Connected
3 - Error Server is Down
Notes: N/A
Example: The following example calls
AdeptSysChatMsgWaiting, and loops,
executing processing code while there is a
message waiting.
do while(AdeptSysChatMsgWaiting(line) == 1)
rc = AdeptSysChatGetMsg(line)
.
.
/* Process different Pkt Types etc. */
.
.
end
Related: N/A
ΓòÉΓòÉΓòÉ 9.5.8. AdeptSysChatMsg ΓòÉΓòÉΓòÉ
AdeptSysChatMsg ( ) (1.08f Only)
Description: Sends a chat message to a user.
Syntax: Call AdeptSysChatMsg LineNumber, Text
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Text: Message to send to
user.
Returns: N/A
Notes: If formatting how the text is displayed to
the remote user, use the {COLOR Meta
Variables instead of ANSI, as the ASCII
users will see ANSI escape characters in
the text.
Example: The following example will send the
message "Hello Tom !!.
SendString = '{FE[{FG' || UserNode || '{F8-{FB' || UserName || '{FD, Msg{FE] {FC{ZZ' || 'Hello Tom !!'
call AdeptSysChatMsg line, SendString
Related: N/A
ΓòÉΓòÉΓòÉ 9.5.9. AdeptSysChatPrivMsg ΓòÉΓòÉΓòÉ
AdeptSysChatPrivMsg ( ) (1.08f Only)
Description: Sends a private chat message to a
specified node number.
Syntax: call AdeptSysChatPrivMsg LineNumber, Node,
MessageText
rc = AdeptSysChatPrivMsg(LineNumber, Node,
MessageText)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Node: Node Number to send
the message to.
MessageText: Message Text.
Returns: 0 - Message wasn't sucessfully sent
1 - Message was sent
Notes: If the user is not on a particular node
the message will go into limbo.
Example: The following example will send a private
message contained in "MsgText" to the user
on node "NodeTo".
SendString = '{FE[{FG' || UserNode || '{F8-{FB' || UserName || '{FD, Pvt Msg{FE] {FC{ZZ' || MsgText
call AdeptSysChatPrivMsg line, NodeTo, SendString
Related: AdeptSysChatPubMsg ( )
ΓòÉΓòÉΓòÉ 9.5.10. AdeptSysChatPubMsg ΓòÉΓòÉΓòÉ
AdeptSysChatPubMsg ( ) (1.08f Only)
Description: Sends a public message in the current
conference.
Syntax: call AdeptSysChatPubMsg LineNumber,
MessageText
rc = AdeptSysChatPubMsg(LineNumber,
MessageText)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
MessageText: Message Text.
Returns: 0 - Message wasn't sucessfully sent misc
error
1 - Message was sent
Notes: The user must be a in a conference for
others to see the message or it will just
go into limbo.
Example: The following example will announce to the
current conference that you have entered.
SendString = '{FE[{FG' || UserNode || '{F8-{FB' || UserName || '{FE] {FC{ZZ' || 'Entering...'
AdeptSysChatPubMsg(line, SendString)
Related: AdeptSysChatPrivMsg ( )
ΓòÉΓòÉΓòÉ 9.5.11. AdeptSysChatReconnectUser ΓòÉΓòÉΓòÉ
AdeptSysChatReconnectUser ( ) (1.08f Only)
Description: Reconnects a user to the Chat Server.
Syntax: rc = AdeptSysChatReconnectUser(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: 0 - Syntax error
1 - User connected to server
2 - Failed to reconnect user
3 - Server not available
Notes: This should only be used to reconnect a
user to the ChatServer after it has gone
down and the user was chatting in a
conference.
Example: The following example will attempt to
reconnect to the chatserver if it detects
that the chatserver has gone down. If the
reconnection fails, It will exit the
conference then exit the script.
if(rc = = IRC_CHATDOWN) then do
rc = AdeptSysChatReconnectUser(line)
if(RetC \= 1) then do
call AdeptSysChatLeaveConf line
exit
end
end
Related: AdeptSysChatConnectUser ( )
AdeptSysChatUserConnected ( )
ΓòÉΓòÉΓòÉ 9.5.12. AdeptSysChatUserConnected ΓòÉΓòÉΓòÉ
AdeptSysChatUserConnected ( ) (1.08f Only)
Description: Checks to ensure that the user is properly
connected to the Chat Server.
Syntax: rc = AdeptSysChatUserConnected(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: 0 - Syntax Error
1 - User connected
2 - User not connected
3 - Server down, obviously the user is not
connected.
Notes: N/A
Example: The following example will try to
reconnect to the chatserver. If it fails
it will exit the script.
call AdeptSysChatReconnectUser line
rc = AdeptSysChatUserConnected(line)
if(rc \= 1) then do
call AdeptPrint line, "\rCould not reconnect to chat server, exiting...\r\n"
exit
end
else do
call AdeptPrint line, "\rChat server reconnected, you may continue to chat.\r\n"
end
Related: AdeptSysChatConnectUser ( )
AdeptSysChatReconnectUser ( )
ΓòÉΓòÉΓòÉ 9.5.13. AdeptSysCheckForServer ΓòÉΓòÉΓòÉ
AdeptSysCheckForServer ( ) (1.08f Only)
Description: Checks to ensure that the Chat Server is
available.
Syntax: rc = AdeptSysCheckForServer(LineNumber)
Arguments:
Line Number: Node Number passed to
REXX routine from
Adept as first
parameter.
Returns: 0 - Syntax error
1 - Server not available
2 - Server available
Notes: N/A
Example: The following example calls
AdeptSysCheckForServer, and then reports
it's status/availability
rc = AdeptSysCheckForServer(line)
if(rc == 0) then do
call AdeptPrint line, "\rError checking Chat Server !!\r\n"
exit
end
if(rc == 2) then do
call AdeptPrint line, "\rChat Server available.\r\n"
else do
call AdeptPrint line, "\rChat Server NOT available.\r\n"
end
Related: N/A
ΓòÉΓòÉΓòÉ <hidden> AdeptChat IRC_* Constants ΓòÉΓòÉΓòÉ
Input Return Code constants (IRC_*):
LOSTCARRIER The carrier had been dropped.
IRC_NOTIMELEFT No time is remaining.
IRC_LOCKEDOUT The sysop locked the user out.
IRC_MORON The system hit the moron key.
IRC_REPROMPT Request a redraw of the prompt or
screen.
IRC_ENDSYSOPCHAT The sysop broke into chat and just
ended it.
IRC_IDLETIMEOUT The user idle's out
IRC_CHATWAITING A chat message is waiting to be
processed.
IRC_CHATDOWN The chat server went down.
Note: AdeptInitREXX(line) must be called first.
ΓòÉΓòÉΓòÉ 10. Utilities ΓòÉΓòÉΓòÉ
Utilities Used with and or by AdeptXBBS:
BFSMake.Exe Converts a
"Files.BBS" to the
Adept Filebase
Format.
fUtil.Exe An Adept File
System Utility.
fList.Exe An "All-Files" List
Creator For Adept.
ReIndexFile.Exe An Adept File
System Reindexing
Program.
XMsg.Exe An AdeptXBBS
Message Base
Utility/Packer.
ChatServer.Exe An AdeptXBBS
Internode Chat
packet router.
(1.07)
CServer.Exe An AdeptXBBS
Internode Chat
packet router.
(1.07)
uNuke.Exe An AdeptXBBS User
Database Utility.
ReadArc.Cmd An AdeptXBBS View
Archive Utility.
XSendPM.Exe An AdeptXBBS FIDO
File Sending
Utility.
GateKpr.Exe An AdeptXBBS
FidoNet Mail Tosser
ΓòÉΓòÉΓòÉ 10.1. BFSMake.Exe ΓòÉΓòÉΓòÉ
BFSMake.Exe:
BFSMake - A "Files.BBS" to Adept Filebase Converter.
AdeptXBBS does not support "Files.BBS" directly, but does
provide a tool to import them into the AdeptXBBS FileBase. There
are several problems with the "Files.BBS" format that make even
converting them difficult. There are several different 'standard
formats' for the Files.BBS and there is absolutely nothing that
can be done to automatically distinguish these formats from each
other.
The four most common "Files.BBS" formats are as follows. (At
the present time, only formats #3 and #4 are supported by
"BFSMake".)
Format 1:
-- Begin Sample Files.BBS Format #1 --
FILENAME.EXT ######## ##-##-## First line of description
to 80 chars
| second line begins after the pipe.
| This is the format used by the PCBoard
| DIR## lists.
NEXTFILE.EXT ######## ##-##-## Once again description
begins here
| and continues here.
-- End Sample Files.BBS Format #1 --
Format 2:
-- Begin Sample Files.BBS Format #2 --
FIRSTFIL.EXT ######## ##-##-## The whole description on
ONE line and
.. can go on for 255 characters.
(BFSMake will support one line
descriptions up to 1024 characters.)
-- End Sample Files.BBS Format #2 --
Format 3:
-- Begin Sample Files.BBS Format #3 --
FILENAME.EXT First line of description to 1024 chars.
FILE1.EXT First line of description to 1024 chars.
-- End Sample Files.BBS Format #3 --
Format 4:
-- Begin Sample Files.BBS Format #4 --
FILENAME.EXT First line of description to 1024 chars.
Second line of description to 1024 chars.
Third line of description to 1024 chars.
FILE1.EXT First line of description to 1024 chars.
Second line of description to 1024 chars.
Third line of description to 1024 chars.
-- End Sample Files.BBS Format #4 --
Several new features of "BFSMake" make it well suited to systems
that have one or more CD-ROMs online. Description files
("Files.BBS", "00_index.txt" or "00index.txt") can be copied
from a file area to directory "X:\Adept\Files.List". The
description file in "Files.List" must be renamed to
"area_num.BBS", where area_num is the number of the file area in
the "File_Areas" configuration file. The "area_num.BBS" file can
then be edited if necessary to conform to "Files.BBS" format #3
or #4.
BFSMake is run from the "X:\Adept subdirectory. It will read
your "File_Areas" file. It will then proceed on a two pass
system. On the first pass it will scan Every directory in the
"File_Areas" list and import all the file names in every
directory into an index. On the second pass it will start with
the first file area and look in directory "X:\Adept\Files.List
for an "Area_Num.BBS file. If not found, the file area directory
is searched in order for a "Files.BBS", "00_index.txt" or
"00index.txt" file. The selected description file is searched
from top to bottom for the file names at which time the file
description is matched to the index created on the first pass.
All your file areas need to be configured in the "File_Areas"
file in order for "BFSMake" to be able to find them and import
the file lists.
Note: Before running "BFSMake", Always delete the files in the
"X:\Adept\Files" directory.
ΓòÉΓòÉΓòÉ 10.2. fUtil.Exe ΓòÉΓòÉΓòÉ
fUtil.Exe:
fUtil - An Adept File System Utility.
Command line parameters:
DELAREA ### Where '###' are the area
numbers in which to delete
all files. You can delete
files in up to 10240 areas.
A sequence of areas may be
specified using the following
format: ##-##. For instance,
if you wished to delete all
files in areas 11 thru 20 you
would enter "DELAREAS 11-20",
Multiple sequences may be
separated by commas.
DELAREAS 1-10,31-45,99
Note: In testing, I noticed
that a very few files would
be left in an area after mass
deletion. This happened only
once. And to only one area
out of 10 I was deleting. If
this happens to you, please
let me know.
MOVEAREA ### Where '###' are the areas you
would like to move files
from, and areas to move files
to. You can move files in up
to 10240 areas. To separate
the 'from' area from the 'to'
area, use a minus sign '-'.
For instance, if you wish to
move all files in area 4 to
area 6 you would enter
"MOVEAREA 4-6", Multiple
sequences may be separated by
commas.
MOVEAREA 1-3,6-2,7-1
Note: Files are moved in the
order given.
MOVEAFILE $ #y #z Moves a single file '$' from
area '#y' to area '#z'.
MOVEFILESTODL Used with "MOVEAREA" or
"MOVEAFILE". It means to move
the files to the download
path of the new area.
Note: The default is not to
move the files on the disk.
MOVEFILESTOUL Used with "MOVEAREA" or
"MOVEAFILE". It means to move
the files to the upload path
of the new area, instead of
the download path.
Note: The default is not to
move the files on the disk.
TOUCHFILE $ # Used to put a new timestamp
on file '$' in area '#'. By
default it uses the current
time.
Note: See also TOUCHDATE and
USEFILEDATE.
TOUCHDATE mm-dd-yy Used to specify the timestamp
for the file you have asked
to be touch. ('mm'=month
'dd'=day 'yy'=year)
USEFILEDATE Means to use the files
timestamp as the new time for
the file you asked to be
touched.
PRUNE Get rid of deleted, old, or
unused records in the file
system.
The file system is rebuilt
from scratch in the
'Files\New' directory. When
complete, the newer file
system is copied in place of
the old file system. The old
file system files are renamed
to 'Files\*.Old' or are
deleted if you used the
DELBACKUPS parameter.
Times to prune the file
system:
When you have changed a
lot of file
descriptions.
When you have deleted a
lot of files.
When you have moved a
lot of files.
DELBACKUPS Deletes old file system after
it has been pruned.
REBUILDDESC Rebuilds pointers to file
descriptions.
DELETEFILES When deleting files in an
area, this also deletes the
files from the disk.
ΓòÉΓòÉΓòÉ 10.3. fList.Exe ΓòÉΓòÉΓòÉ
fList.Exe:
fList - An "All-Files" List Creator For Adept.
Command line parameters:
/C<$> Change the default configuration
file name from "fList.Cfg" to the
filename indicated by the <$>
parameter. eg. "/CMyBBS.Cfg"
/? Short help screen.
Configuration file key words:
BBSNAME <$> Where <$> is your BBS name. 60
chars max.
INCLUDEAREAS <#> Where <#> are the Area numbers to
include in this list. A sequence
of areas may be specified using
the following format: <##-##>.
Note: To indicate a sequence of
areas 1 thru 10 in the list, you
would say: "INCLUDEAREAS 1-10",
multiple sequences may be
separated by commas: "INCLUDEAREAS
1-10,31-45,99". You can include
up to 10240 areas.
PREPENDFILE <$> Where <$> is the name of a text
file which should be at the top of
the file list.
APPENDFILE <$> Where <$> is the name of a text
file which should be added to the
bottom of the file list.
OUTFILE <$> Where <$> is the name of the file
list. Default is
"Files/AllFiles.List"
DATESORT Flag to tell the program to sort
by date. Default is by filename.
REVERSESORT Flag to tell the program to sort
in reverse order. May be combined
with DATESORT to start your list
with the most current files.
Example configuration file:
----[cut here]----
BBSNAME The Abandoned Land
INCLUDEAREAS 1-40,60-70,99
DATESORT
REVERSESORT
----[cut here]----
This example file includes file areas 1 thru 40, 60 thru 70 and
99, and is sorted in dated order with newest files first.
ΓòÉΓòÉΓòÉ 10.4. ReIndexFile.Exe ΓòÉΓòÉΓòÉ
ReIndexFile.Exe:
ReIndexFile - Adept File System Reindexing Program:
Run this program from your "X:\Adept" directory. It will delete
your current file system indexes and build them from scratch
using the data in "X:\Adept\Files\Files.Data" It will not
reindex descriptions at this time, as Adept has a built in
function to do that.
Note: This program will use all the CPU you can give it.. it is
a CPU hog and proud of itself for it. So, run this program when
you don't mind if a few other processes get slowed down a wee
bit.
ReIndexFile requires a /NUKE command line parameter to run.
This ensures that the sysop wants to run this program which
destroys the current file system indexes and rebuilds them from
scratch. No "/NUKE" ? - no deleting of indexes.
** Program updated to use fSys.Dll for it's interaction with
the file system.
Due to these changes, the program is smaller! but it may also
be a touch slower. This is because it operates on one file at a
time, rather than a block of 100 files at a time. Reindexing
happens on about 100 files per second on my system. Your
mileage will vary.
ΓòÉΓòÉΓòÉ 10.5. XMsg.Exe ΓòÉΓòÉΓòÉ
XMsg.Exe:
XMsg - AdeptXBBS Message Base Utility/Packer:
XMsg is a utility that will pack your messages areas per your
instructions. It can trim an area to a desired number of
messages, delete messages that have been read, delete messages
of a certain age.
Usages:
XMSG -A<actionfile> Performs
commands
listed in
<actionfile>.
XMSG -P [LoBd#] [HiBd#] (options) Packs out
deleted
messages.
XMSG -T [LoBd#] [HiBd#] [#mess] (options) Trim to
specified
#.
XMSG -D [LoBd#] [HiBd#] [#days] (options) Delete
older
than #
days.
XMSG -R [LoBd#] [HiBd#] (PRIVATE) (options) Deletes
received
messages.
XMSG -K [LoBd#] [HiBd#] (options) Kills
junk msgs
by
(option)
criteria.
XMSG -U [LoBd#] [HiBd#] Untags
all msgs
in an
area.
Note: When passing an argument that requires two words as one
argument, use quotes to surround both the option and its
following argument, like XMSG -K 30 30 MC:\Message_Bases\ N100
"FHector Plasmic"
Note: XMsg.Exe uses the asshole files HeadEdit creates.
Command Line Parameters: (space delimited)
B Delete backups.
M<Drive:\Path\> Alternate message base path -
[Required].
N<#LMRs> Number of LMR pointers - Must match
with "HeadEdit.Cfg")) - [Required].
Note: Pass "0" to use the XBBS-OS/2's
Last Read Pointers.
D Don't pack this pass - Valid for "-T",
"-K" and "-D".
H<buffer> If board(s) exceed this number, packing
will take place to [#mess].
F<fromname> -Kill Junk criterion.
T<toname> -Kill Junk criterion.
S<subject> -Kill Junk criterion.
P Ppartial subject match causes Junk to
be -Killed.
! Provide verbose information.
C<#bytes> Compress while packing if "msg>#bytes".
U Uncompress while packing.
A Any match "F", "T" or "S" causes Junk
to be -Killed.
L Don't use asshole files.
E Archive dead msgs to XARC.###.
V Don't verify presence of deleted msgs
before packing.
X Don't create XIDX.### hash files.
Z Use DosNewSize to assure contiguous
allocation -- ware the HPFS bug.
Note:
Actionfile lines are command lines without the leading "-"
on the first argument.
There should be one 'command line' per line terminated by
CR/LF.
Lines beginning with ";" are comments.
XMsg is sensitive to the argument order.
It's best to create a "*.Cmd" files that calls XMsg as a
nightly event.
To pack out deleted messages in message area #2, deletes
the backup files and changes the LMRs.
Example: "XMsg -p 2 2 B N0"
To pack out the received messages, in message areas #3
through #5, deletes the backup and changes the LMRs.
Example: "XMsg -r 3 5 B N0"
To Trim message area #1 messages to 1000 messages, deletes
the backup and changes the LMRs.
Example: "XMsg -t 1 1 1000 B N0"
To Trim message areas #3 through #27's messages to 1000
messages, deletes the backup and changes the LMRs.
Example: "XMsg -t 3 27 1000 B N0"
ΓòÉΓòÉΓòÉ 10.6. ChatServer.Exe ΓòÉΓòÉΓòÉ
ChatServer.Exe: (1.07)
ChatServer - AdeptXBBS Internode Chat packet router.
Internode ChatServer is a small program which receives chat
packets from "Adept.Exe" and routes them to other AdeptXBBS
nodes. You will need to run ChatServer if you wish to allow
users to chat between other online users on different nodes.
ChatServer can run in the background, minimized. You should
never need to see it. The simplest way is to place this command
in your "StartUp.CMD" file.
Usages:
"START /MIN X:\ADEPT\CHATSERVER.EXE"
ChatServer requires a command line parameter to specify the
number of nodes it will be working with. By default, ChatServer
will operate on 4 nodes. To change the number of nodes, just
specify the number of nodes on the command line like:
"ChatServer <#>"
Where <#> is the number of nodes it should expect to work with.
If you have an 8 node system, you would use:
"ChatServer 8"
ΓòÉΓòÉΓòÉ 10.7. CServer.Exe * ΓòÉΓòÉΓòÉ
CServer.Exe: (1.08)
CServer - AdeptXBBS Internode Chat packet router.
Internode CServer is a small program which receives chat packets
from "Adept.Exe" and routes them to other AdeptXBBS nodes. You
will need to run CServer if you wish to allow users to chat
between other online users on different nodes.
CServer can run in the background, minimized. You should never
need to see it. The simplest way is to place this command in
your "StartUp.CMD" file.
Usages:
"START /MIN X:\ADEPT\CSERVER.EXE"
Note: CServer supports the display of up to 32 nodes, there is
however no actual limit to how many people are in chat, but the
display code hasn't been written to match the complete
capabilities of the chat server.
This new Chatserver relies on IBM's TCPIP loopback as it's
connection medium, if your local loopback isn't configured
properly it will not work.
To check if your TCPIP loopback is properly configured, type the
following at a OS/2 command prompt:
[C:\]IFConfig lo
If a variation of the following isn't displayed, your TCPIP
loopback is not configured properly.
lo: flags=809<UP,LOOPBACK>
inet 127.0.0.1 netmask ffffff00x
To properly configure the IBM TCPIP Loopback, add the following:
ifconfig lo 127.0.0.1
To either:
X:\MPTN\Bin\Setup.CMD (Warp Connect, Warp 4) or
X:\Startup.CMD (Any version of Warp)
Note: If your loopback is not configured properly, Adept will
"hang" for several minutes during the login sequence for a
remote or local logon.
Restarting your CServer:
Running Cserver.Exe from a seperate session from a looping CMD
file in the event it goes down, will restart it. The following
is an example CMD file that waits the specified time (in this
case 5 seconds) then exits, ensuring that the chat functions
will always be available.
:top
CServer
wait :0:0:5
goto top
Note: CServer can 'auto-reconnect' to the chat system. If a
user types something in chat and the server is down it will
reconnect to the server and send the message automatically.
Note: The BBS software makes calls to only one function to
check to see if a user has chat messages waiting. If the file
ChatRead.CMD exists in the X:\Adept\Menus directory for the
particular language the user has chosen it will execute that
script instead of the internal BBS function for displaying the
message to the user. This allows you to customize the chat
system from anywhere in the BBS and not just make your own chat
client/system. ChatRead.Cmd is not called if there are messages
and your are using the AdeptChatInput function, it will only be
called while you are using any other Adept input or system
function.
ΓòÉΓòÉΓòÉ 10.8. uNuke.Exe ΓòÉΓòÉΓòÉ
uNuke.Exe:
uNuke - AdeptXBBS User Database Utility.
uNuke is a user data base packing program for AdeptXBBS. This
also means that it will adjust last read pointers for all
message areas based on the newly packed user file. In other
words, if a user record is purged, then their last read pointers
for each area must also be purged.
Command Line Parameters: (parameters in brackets [] are
optional)
/E<##> Set the 'Exempt' security level. Where <##>
is the security level. Any user with a
security level greater than or equal to this
number will not be purged from the user data
base. They are considered 'Exempt' from
purging.
/D<##> Set the maximum number of inactive DAYS.
/M<##> Set the maximum number of inactive MONTHS.
Where <##> is the number of inactive days or
months. You should use either days or
months, but not both. If you try to use
both, the months figure will be ignored.
/K uNuke will kill backups of the user data
base when it has completed the packing
process.
/Q Quiet Mode. The speed of uNuke will be
approx. 500% faster! Though your mileage may
vary. In normal mode, the user names are
shown on the screen with a message showing
whether or not they have been purged.
/R Renumbers user ids starting with 1.
/? Gives a quick list of parameters.
Usages:
uNuke [/E<#>] [/D<#> or /M<#>] [/Q] [/K]
uNuke /Q /D60 /E6 uNuke will operate in quiet mode,
will purge users not on in over 60
days and users level 6 and above
will not be purged.
uNuke /M6 uNuke will purge users not on in 6
months.
Environment Variables:
uNuke will look for the existence of two environment variables
to aid in its adjustment of the last read pointers. By default,
uNuke will look in the \Adept\Message_Bases directory for all
*.LMR files. You can change the default behavior with the
following environment variables:
XMSG Changes the default message base location from
"X:\Adept\Message_Bases" to whatever you specify.
Example: "SET XMSG=H:\Adept\MsgBases"
XXMSG Tells uNuke to also search these directories
(plural is okay) for more "*.LMR" files.
Separate multiple directories with semicolons.
Example: "SET XXMSG=H:\Adept\Messages;M:\Message_Bases;"
Questions:
What would cause uNuke to purge a user record ?
uNuke will purge a user record if any of the following
conditions are met:
1. Blank 'Name' field. If there is no name, then uNuke
will purge the record. Being that uNuke is a 'C'
program, a NULL as the first character of the 'Name'
field would be considered a blank name.
2. 'U_DELETED' bit is set in the user record 'Attribs'
field. If this flag is set, then the user record is
purged. The only time this will NOT work, is if the
U_NOKILL bit flag is also set. 'U_NOKILL' means that
this user record should never be purged.
3. If ' Maximum Inactive Days' is set and they have not
been on in that time. They will NOT be purged if they
are exempt or the U_NOKILL flag is set.
4. If 'Maximum Inactive Months' is set and they have not
been on in that time. They will NOT be purged if they
are exempt or the U_NOKILL flag is set.
What will keep uNuke from purging a user record ?
If the 'U_NOKILL' bit is set in the 'Attribs' field. This
will prevent uNuke from purging the record in nearly all
cases. The _only_ exception is if the user 'Name' field is
blank.
Their security level meets or beats the 'Exempt' security
parameter. If the user 'Security1' field is greater than or
equal to the 'Exempt' parameter, then they will not be
purged, unless the 'U_DELETED' bit is set in the 'Attribs'
field.
The user will not be purged if they have been on more
recently than the inactivity parameter.
When should I run uNuke ?
uNuke tends to rearrange user records at will, therefore,
AdeptXBBS should be taken off-line when you decide to pack
a user data base. AdeptXBBS expects to place a user record
back where it found it.
If you tried purging while AdeptXBBS is on-line, you risk
corruption of the user data base.
ΓòÉΓòÉΓòÉ 10.9. ReadArc.Cmd ΓòÉΓòÉΓòÉ
ReadArc.Cmd:
ReadArc - AdeptXBBS View Archive Utility.
Don't delete, or touch this, it knows what to do all by itself.
This file is needed for the view archive option while listing
files in the file areas.
Syntax: ReadArc %1 %2 %3 %4 %5 %6 %7 %8 %9
ΓòÉΓòÉΓòÉ 10.10. XSendPM.Exe ΓòÉΓòÉΓòÉ
XSendPM.Exe:
XSendPM - AdeptXBBS FIDO File Sending Utility.
Overview:
XSendPM is a simple PM program that allows you to send files via
XBBS-OS/2 or AdeptXBBS.
XSendPM supports drag-and-drop to its WPS object and also
provides an "open dialog" style interface to allow the user to
select files to send.
Files to send may be typed into an entry field or selected from
listboxes. Version 7 nodelists are supported for lookup of
sysop names and information about nodes.
Note: See "GS.EXE" for a command line alternative.
Installation:
Edit the file "XSend.CMD" that comes with AdeptXBBS to contain
the proper drive letters and paths for your AdeptXBBS Outbound
and nodelist directory.
Usage:
Drag a file onto XSendPM's WPS object or double-click the object
to start XSendPM. You'll get a dialog that allows you to
specify to whom you want the file sent and some other options.
Brief help is available from within the program.
ΓòÉΓòÉΓòÉ 10.11. GateKpr.Exe ΓòÉΓòÉΓòÉ
GateKpr.Exe:
GateKpr (Gate Keeper) - An AdeptXBBS FidoNet Mail Tosser
Handles all the functions needed to import and export FIDO
echos.
ΓòÉΓòÉΓòÉ 11. Appendix ΓòÉΓòÉΓòÉ
Appendix:
Example "*.MENU" Files:
Example of "MAIN.MENU":
\r,0,MainMenu.Asc,Main Menu ,4
? ,51 ,,Commands.Asc ,0
- ,2 ,,,0
~ ,1000,Goodbye/Logoff ,,0
G ,1 ,Good-bye,LogOff.Menu ,0
;
; Other Menus
;
M ,1 ,Message Menu,Messages.Menu ,0
F ,1 ,File Menu,Files.Menu ,0
B ,1 ,Bullet Menu,Bullet.Menu ,0
O ,1 ,Doors Menu,Door.Menu ,0
* ,1 ,Sysop Menu,Sysop.Menu ,,,,100,100
;
; Commands
;
A ,10 ,,Callers.cmd ,0
S ,51 ,,Info.Asc ,0
L ,43 ,User [L]ist ,,00
T ,1 ,Time Bank,TimeBank.Menu ,,,,5,5
C ,201,Comment to the Sysop ,Sysop;Comment from {U0;2;1,0
P ,10 ,,UserInfo.cmd ,0
U ,1 ,User Setup,EditUser.Menu ,0
E ,10 ,,Sendemail.cmd ,0
Y ,48 ,Yell for Sysop ,,0
Example "DOOR.MENU":
\r,0,door.Asc,Online Games,4
? ,51 ,,Commands.Asc,0
T ,1 ,Gosub main menu,Main.Menu
* ,1 ,Gosub main menu,Main.Menu
M ,1 ,Gosub main menu,Messages.Menu
F ,1 ,Gosub main menu,Files.Menu
U ,1 ,Gosub main menu,EditUser.Menu
- ,2 ,Return to previous menu,,0
G ,1 ,Goodbye/Logoff,LogOff.Menu,0
~ ,1000,Goodbye/Logoff,LogOff.Menu,0
1 ,801,,cmd.exe /c twar.bat {LN {H0,0
2 ,801,,cmd.exe /c bre.bat {LN {H0,0
3 ,801,,cmd.exe /c mog.bat {LN {H0,0
4 ,801,,cmd.exe /c ox.cmd {LN {H0,0
5 ,801,,cmd.exe /c hang.bat {LN {H0,0
6 ,801,,cmd.exe /c tarot.bat {LN {H0,0
7 ,801,,cmd.exe /c songs.bat {LN {H0,0
8 ,801,,cmd.exe /c tune.bat {LN {H0,0
9 ,801,,cmd.exe /c cards.bat {LN {H0,0
0 ,801,,cmd.exe /c warlrd.bat {LN {H0,0
A ,801,,cmd.exe /c freevote.bat {LN {H0,0
B ,801,,cmd.exe /c war.bat {LN {H0,0
C ,801,,cmd.exe /c fictfact.cmd {LN {H0,0
Example "FILES.MENU":
\r,12,FileMenu.Asc,File Menu,4
?,51 ,,Commands.Asc,0
M,1 ,,Messages.Menu,0
!,1 ,,Door.Menu,0
*,3 ,,Main.Menu,0
-,2 ,,,0
~,1000,,,0
L,78 ,[L]ist File In This Area ,,15
N,74 ,[N]ew files ,,15
S,1 ,,Search.Menu ,0
A,61 ,[A]rea Selection ,,15
D,85 ,[D]ownload file(s) ,,15
P,146 ,[P]rotocol Selection ,,15
U,90 ,[U]pload file(s) ,,15
>,65 ,[>] Next file area ,1,15
<,65 ,[<] Previous file area ,-1,15
V,84 ,[V]iew Archive contents ,,15
R ,801,,cmd.exe /c rom.bat {LN {H0 ,0
G,1 ,[G]oodbye ,LogOff.Menu,15
E,670 ,[E]dit Files List ,,0
C,201 ,Comment to the Sysop ,Sysop;Comment from {U0;2;1,0
ΓòÉΓòÉΓòÉ 11.1. User Base Structure ΓòÉΓòÉΓòÉ
AdeptXBBS User Base Structure:
The following is the structure for the AdeptXBBS user file.
Flags for the 'user.attribs' bits.
#define U_ANSI 0x00000001 // Ansi Movement
#define U_COLOR 0x00000002 // Ansi Color
#define U_HIGHASCII 0x00000004 // High Ascii
#define U_NOMORE 0x00000008 // No? More? Prompts
#define U_NOCLEAR 0x00000010 // Don't Clear Screens
#define U_COLD 0x00000020 // No Hot Keys
#define U_NOSHOWADDRESS 0x00000040 // Don't show address in user list
#define U_NOSHOWPHONE 0x00000080 // Don't show phone numbers in user list
#define U_NOSHOWREAL 0x00000100 // Don't show real names in user list
#define U_NOKILL 0x00000200 // User cannot be killed/deleted
#define U_DELETED 0x00000400 // User marked as deleted
#define U_EXPERT 0x00000800 // User set for expert mode
#define U_TWIT 0x00001000 // User is a twit!
#define U_NEWFILES 0x00002000 // New files search at logon
#define U_NEWMSGS 0x00004000 // New message search at logon
#define U_DLNEWMSGS 0x00008000 // Auto download mail packets at logon
#define U_DLNEWFILELIST 0x00010000 // Auto download new file list at logon
#define U_SEENEWS 0x00020000 // Sees new news
#define U_ASKDL 0x00040000 // Ask logoff before download
#define U_NOVICE 0x00080000 // User set to novice
#define U_NOROLL 0x00100000 // no rolling prompts (obsolete)
#define U_POINTONLY 0x00200000 // FidoNet point mail only
#define U_LOCKEDOUT 0x00400000 // User locked out
#define U_AVAILABLE 0x00800000 // Available for multi-node chat
#define U_LISTPROTECTED 0x01000000 // Not shown in user list
#define U_MISCNEWSOK 0x02000000 // Sees misc. news
#define U_LIMITFLIST 0x04000000 // Limit file list to current area
#define U_EBCDIC 0x08000000 // EBCDIC <-> ASCII Conversion
#define U_VERIFIED 0x10000000 // user call back verified, turn this off, they
// get verified again.. (if BBS verifies)
#define U_ANSITE2 0x20000000 // User supports Ansi-TE2 Special Chars
#define U_RIPSCRIPT 0x40000000 // User has RIP Support
#define U_AVATAR 0x80000000 // User has Avatar Support
Flags for 'user.attribs2' bits.
#define U2_FSE 0x00000001 // User Full Screen Message Editor
#define U2_OFF_AFTER_MAIL 0x00000002 // Log off after mail download
#define U2_MONITOR_MAIL 0x00000004 // Monitor mail export/packing
#define U2_INT_NEW_FILES 0x00000008 // include new files in mail packet
#define U2_INC_BULLETS 0x00000010 // include bulletins in mail packet
#define U2_INC_WELCOME 0x00000020 // include welcome screen in mail packet
#define U2_DEFAULT_QWK 0x00000040 // Default use to QWK mail
#define U2_DEFAULT_FIDO 0x00000080 // Default use to FidoNet Point Mail
#define U2_DEFAULT_TEXT 0x00000100 // Default to text export
#define U2_DEFAULT_BLUE 0x00000200 // Default to Bluewave Mail
#define U2_AVTANS 0x00000400 // Can handle both ANSI and Avatar
#define U2_8DOT3 0x00000800 // Convert long names to 8.3 names
typdef struct _AdeptXBBS_User_Info
{
CHAR name[36]; // Users Name
CHAR handle[36]; // Users Handle
CHAR address[60]; // Address line 1
CHAR address1[60]; // Address line 2
CHAR address2[60]; // Address line 3
CHAR city[20]; // Users City/County
CHAR state[5]; // Users State
CHAR zipcode[10]; // Users ZipCode
CHAR home_phone[21]; // Users home phone number
CHAR data_phone[21]; // Users data phone number
CHAR fax_phone[21]; // Users fax phone number
CHAR bus_phone[21]; // Users business/office number
CHAR interests[78]; // Interest Line
CHAR SysOpComment[78]; // Room for SysOp comment
USHORT banktime; // Time in the bank
USHORT computer_type; // Computer type
LONG userid; // User ID
SHORT pointid; // Point Mail ID
time_t initial_logon; // Time/Date of initial logon
time_t expires; // Time/Date user expires
time_t last_logon; // Time/Date of last logon
time_t logon_today; // Last time the user logged on today
SHORT birthyear; // Birth Year
CHAR birthmonth; // Birth Month
CHAR birthday; // Birth day
CHAR gender; // Gender
LONG credit; // User credit
LONG minlimit; // Minimum limit
LONG group; // Group number the user belongs to
LONG currlastread; // Last read pointer for current area
LONG time_today; // Number of minutes user used today
LONG time_per_day; // Time limit per day
LONG time_per_call; // Time limit per call
LONG numcalls; // Number of total calls user made to BBS
LONG ulnum; // Total number of uploads
LONG dlnum; // Total number of downloads
LONG ulk; // Total uploads in K-bytes
LONG dlk; // Total downloads in K-bytes
LONG uktoday; // Uploads in K-bytes made today
LONG dktoday; // Download in k-bytes made today
LONG ukperday; // Max k-bytes user can upload a day
LONG dkperday; // Max k-byes a user can download a day
LONG numposts; // Number of messages ever written
LONG security1; // Security level #1
LONG security2; // Security level #2
LONG flags1; // Sysop definable 32 flags
LONG flags2; // Sysop definable 32 flags
LONG attribs; // User attributes
LONG attribs2; // User attributes
SHORT length; // Screen length
SHORT width; // Screen width
SHORT lastmsgarea; // Last message area user was in
SHORT lastfilearea; // Last file area user was in
CHAR lastprotocol; // Last protocol user chose
CHAR lastarchiver; // Last archiver user chose
LONG forsysop; // unused
CHAR interface; // obsolete
CHAR exp; // unused
SHORT leech_percent; // File leech ratio
SHORT maxbanktime; // Maximum time user can have in bank
SHORT timecredit; // Current time user has credit for
SHORT callstoday; // Number of calls user made to BBS today
LONG totalminsever; // Total minutes users has used ever
LONG netmaildebits; // Total spent on NetMail
time_t lastpwchange; // Time/Date of last password change
time_t lastlistednewfile // Time/Date user last listed new files
ULONG filekcredit; // Amount of file k-byte credit user has
CHAR unixid[8]; // Users Unix Specific ID
UCHAR _unused[94]; // reserved for future use
UCHAR mailtags[128]; // Message areas tagged for off-line mail
UCHAR usermsg[128]; // Message areas user can access
UCHAR userfile[128]; // File areas user can access
ULONG passwordcrc; // User password CRC
ULONG passwordcrc2; // User password CRC2
USHORT max_mail_pkt; // Max msgs to pack for off-line mail
CHAR reasked; // Has user answered the ReAsk questionairre
CHAR reserved[75]; // reserved for future user
} ADEPTUSER, *PADEPTUSER;
ΓòÉΓòÉΓòÉ 11.2. Message Base Structures ΓòÉΓòÉΓòÉ
AdeptXBBS Message Base Structures:
The following is the structure for the AdeptXBBS Message Base.
*.Data - Structs
Bitmaps for the "fflags".
#define MSGPRIVATE 0x0001 // private message,
#define MSGCRASH 0x0002 // accept for forwarding
#define MSGREAD 0x0004 // read by addressee
#define MSGSENT 0x0008 // sent OK (remote)
#define MSGFILE 0x0010 // file attached to msg
#define MSGFWD 0x0020 // being forwarded
#define MSGORPHAN 0x0040 // unknown dest node
#define MSGKILL 0x0080 // kill after mailing
#define MSGLOCAL 0x0100 // FidoNet vs. local
#define MSGXX1 0x0200 //
#define MSGXX2 0x0400 // STRIPPED by FidoNet<tm>
#define MSGFRQ 0x0800 // file request
#define MSGRRQ 0x1000 // receipt requested
#define MSGCPT 0x2000 // is a return receipt
#define MSGARQ 0x4000 // audit trail requested
#define MSGURQ 0x8000 // update request
Bitmaps for the "xflags".
#define MSGDELETED 0x0001 // deleted message,
#define MSGANON 0x0002 // anonymous message
#define MSGECHO 0x0004 // unmoved echo message
#define MSGNET 0x0008 // unmoved net message
#define MSGHOLD 0x0010 // file attached to msg
#define MSGHOST 0x0020 // being forwarded
#define MSGSCANNED 0x0040 // FidoNet scanned
#define MSGKEEP 0x0080 // don't delete
#define MSGTREATED 0x0100 // soft cr's & lf's removed
#define MSGPACKED 0x0200 // message LZSS compressed
#define MSGGSCAN 0x0400 // GroupMail scanned
#define MSGRSCAN 0x0800 // rfc0822 scanned
#define MSGARCHIVED 0x4000 // Message stored
#define MSGTAGGED 0x8000 // used by offline readers
typedef struct _AdeptXBBS_Message_Header
{
CHAR MajorVersion; // Minor revision number of this message style
CHAR MinorVersion; // Minor revision number of this message style
USHORT StructLen; // The length of this data structure
CHAR from[60]; // Who the message is from
CHAR to[60]; // Who the message is to
CHAR subj[70]; // The subject of the message
CHAR date[35]; // Date the message was written
CHAR indate[4]; // Import date
ULONG msgnum; // Current message number
ULONG timesread; // Number of times the message has been read
time_t timerecv; // Time user received this message
ULONG length; // Length of message stored in .Text Data file
LONG start; // Pointer to starting byte in .Text Data file
ULONG Extra1; // Extra space // Was going to be for reply
ULONG Extra2; // Extra space // linking instead came up with
ULONG Extra3; // Extra space // a better method
USHORT o_zone; // Messages origin zone
USHORT o_net; // Messages origin net
USHORT o_node; // Messages origin node
USHORT o_point; // Messages origin point
USHORT d_zone; // Messages destination zone
USHORT d_net; // Messages destination net
USHORT d_node; // Messages destination node
USHORT d_point; // Messages destination point
USHORT cost; // Cost to send this message
USHORT fflags; // FidoNet related flags
USHORT xflags; // XBBS related flags
ULONG iflags; // Internet related flags
ULONG oflags; // Other network related flags
} XMSG, *PXMSG;
ΓòÉΓòÉΓòÉ 11.3. Message Base Index Structure ΓòÉΓòÉΓòÉ
AdeptXBBS Message Base Index Structure:
The following is the structure for the AdeptXBBS Message Base
".Index" file.
*.Index - Structs
typedef struct _AdeptXBBS_Index_Structor
{
SHORT to; // Checksum of the to field
SHORT from; // Checksum of the from field
SHORT subj; // Checksum of the subject field
LONG // 32-bit CRC of the MSGID
LONG msgidserialno; // MSGID Serial Number
LONG replycrc; // REPLYID 32-bit CRC
LONG replyserialno; // REPLYID Serial Numver
} ADEPTINDEXES, *PADEPTINDEXES;
ΓòÉΓòÉΓòÉ 11.4. File System Structure ΓòÉΓòÉΓòÉ
AdeptXBBS File System Structure:
The following is the structure for the AdeptXBBS File System
"File.Data" file:
typedef struct _File_Data_Struct
{
UCHAR Name[31]; // File Name
ULONG Size; // File Size
UCHAR User[20]; // Uploader Name (Truncated at 20 chars)
UCHAR Password[13]; // Password required to download file
ULONG Path; // Pointer to path in File.Paths file
ULONG SecLevel; // Min Security level required to download
UINT Area; // Area this file belongs to
ULONG Flags; // For internal use
ULONG Desc; // Pointer to description in File.Descriptions
LONG TimesDL; // Times the file has been downloaded
SHORT Group; // Group this file belongs to
SHORT Age; // Min Age Required to download the file
SHORT Cost; // Cost of the file
FDATE Date; // File Date
} ADPFILESYS, *PADPFILESYS;
Note: The FileBase uses a commercial, copywritten index that we
cannot distribute the actual code to without charging a fee.
Therefore we have wrapped all the index and FileBase code into a
DLL that allows complete control over the file system. This DLL
is not finished yet, in fact the BBS doesn't use it yet, only
FILEDIT does. From these structures you could at least get
needed info from the FileBase system.
ΓòÉΓòÉΓòÉ <hidden> About this Document ... ΓòÉΓòÉΓòÉ
Document: AdeptXBBS Users Guide
Version: 0.01.d (7 April 1997)
Editor: Watson Works Editor - EPM 6.03b
Compiler: OS/2 Information Presentation Facility Compiler
(Version 3.00.002)
Coded By: Mark Mellin (mmellin@plinet.com)
Document Versions...
ΓòÉΓòÉΓòÉ <hidden> Document Versions ΓòÉΓòÉΓòÉ
Document Revisions:
0.01.d (7 April 1997) : Initial Release
0.01.c (5 April 1997) : Added AdeptREXX Misc & FSys
Documentation. - (1.07f & 1.08.x)
- AdeptREXXMiscFuncs.DOC (20
February 1997)
- AdpREXX.DOC (21 February
1997)
0.01.b (30 March 1997) : Added AdeptREXX Comm & Chat
Documentation. - (1.07f & 1.08.x)
- AdeptREXXChatFuncs.DOC (20
February 1997)
- AdeptREXXCommFuncs.DOC (20
February 1997)
0.01.a (25 March 1997) : Initial compilation (not
released)
- AdpXBBS.DOC (20 April
1996)
- Adept.HLP (21 December
1995)
- MPTSCfg.INF (26 October
1996) IBM's Internet Definitions
- ChatServer.DOC (26 February
1996)
About this document...
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
The Terminal Emulation Protocol is a TCP/IP application protocol for remote
connection. This in effect allows a user at one site to gain access to a
remote host as if the user's workstation were connected directly to that remote
host.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Socket interfaces allow you to write distributed or client/server applications
natively using local IPC, TCP/IP, or NetBIOS protocols. The application
selects the transport protocol, with most socket applications communicating
with either TCP or UDP.
Sockets are duplex, which means that data can be transmitted and received
simultaneously. Sockets allow you to send to, and receive from, the socket as
though you were writing to and reading from any other network device.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
USENet is a logical network that provides access to a centralized news database
of world-wide news.
The news servers that make up the USENet network communicate with each other
using the UNIX-to-UNIX communication protocol (UUCP).
Client applications may communicate with news servers using the Network News
Transfer Protocol (NNTP).
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
The Simple Mail Transfer Protocol (SMTP) is an electronic mail protocol with
both client (sender) and server (receiver) functions.
SMTP is implemented with the SendMail program. You do not interact directly
with SMTP. Instead, electronic mail software is used to create mail, which in
turn uses SMTP to send the mail to its destination.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
The Domain Name System (DNS) uses a hierarchical system for naming hosts. Each
host name is composed of domain labels separated by periods. Each label
represents an increasingly higher domain level within an internet.
Example:
host.sub.sub.root
You can refer to hosts in your domain by host name only; however, a name server
requires a fully-qualified domain name. The local resolver combines the host
name with the domain name before sending the address resolution request to the
domain name server.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
A fully-qualified host name is composed of a host name and a domain name,
separated by periods.
Example:
poe.eng.mit.mass.edu
The host name is "poe" and the domain name is "eng.mit.mass.edu", and the
fully-qualified host name is "poe.eng.mit.mass.edu".
Or:
Adeptbbs.hsonline.net
The host name is "Adeptbbs" and the domain name is "hsonline.net", and the
fully-qualified host name is "Adeptbbs.hsonline.net".
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
G, 1000, Logoff Now!
|
<Key>
When G is pressed, the <Command#> is executed.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
G, 1000, Logoff Now!
|
<Command#>
Command that is executed when G is pressed.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
L, 1001, [L]ogoff
|
<Output String>
String which is displayed only when the <Menu filename> field is blank on the
first line of the .MENU file.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
1, 801, , cmd.exe /c twar.bat {LN {H0
|
<Data String>
Data string for this menu type of "801".
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
D, 800, [D]rop to Dos\r\n, cmd.exe, 15
|
<Color>
This menu item will show up in yellow.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
M, 1, Adult Message Menu, AMessages.Menu, 0, 21
|
<MinAge>
The user must be at least 21 to access this menu item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
G, 1, Kiddie Games Menu, KidsGames.Menu, 0, , 12
|
<MaxAge>
The user must be 12 or under to access this menu item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
*, 1, Sysop Menu, Sysop.Menu,,,,100
|
<Sec1>
The user's Sec1 must be greater than or equal to this number in order to access
this menu item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
*, 1, Sysop Menu, Sysop.Menu,,,,100,105
|
<Sec2>
The user's Sec2 must be greater than or equal to this number in order to access
this menu item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
S, 51, ,Info.ASC,,,,,,26
|
<Flag1>
User must have Flags1 "2", "4" and "5" set in their user record.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
S, 51, ,Info.ASC,,,,,,26,256
|
<Flag2>
User must have Flags1 "2", "4" and "5" set in their user record as well as
Flags2 "9" set.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
Y, 48, Yell At Sysop,,,,,,,,,09:00,22:00
|
<StartTime>
This menu item can only be accessed between 9am and 10pm.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
Y, 48, Yell At Sysop,,,,,,,,,09:00,22:00
|
<EndTime>
This menu item can only be accessed between 9am and 10pm.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
Y, 48, Yell At Sysop,,,,,,,,,,,M
|
<Gender>
This menu item can only be accessed by males.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
E, 200, [E]nter a Message,,,,,,,,,,,,50
|
<MinCredit>
The user must have at least 50 credits in order to access this menu item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
E, 200, [E]nter a Message,,,,,,,,,,,,50,200
|
<MaxCredit>
The user must have at less than 200 credits or less in order to access this
menu item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
L, 801, , , {LN {H0,,,,,,,,,,,,,,20
|
<MinTime>
User must have at least 20 minutes left in order to access this menu item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
L, 801, , , {LN {H0,,,,,,,,,,,,,,20,90
|
<MaxTime>
User must not have more than 90 minutes left in order to access this menu item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
U, 90, [U]pload file(s),,,,,,,,,,,,,,,,5
|
<MinCall>
The user must have called at at least 5 times before they can access this menu
item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
U, 90, [U]pload file(s),,,,,,,,,,,,,,,,5,100
|
<MaxCall>
If the user must has called at called more than 100 times they will not get
access this menu item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
D, 85, [D]ownload file(s),,,,,,,,,,,,,,,,,,5
|
<MinPosts>
The user would only be able to download a file if they had posted at least 5
messages.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
D, 85, [D]ownload file(s),,,,,,,,,,,,,,,,,,,200
|
<MaxPosts>
The user would only be able to download a file if they had not posted over 200
messages.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
D, 85, [D]ownload file(s),,,,,,,,,,,,,,,,,,,,3
|
<MinUpl>
The user would only be able to download a file if they had uploaded at least 3
files.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
U, 90, [U]pload file(s),,,,,,,,,,,,,,,,,,,,,100
|
<MaxUpl>
The user would not have access to this menu item if they have uploaded more
than 100 files.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
D, 35, [D]ownload Mail,,,,,,,,,,,,,,,,,,,,,,1
|
<MinDl>
If the user hasn't downloaded at least 1 file, they won't be able to d/l their
off-line mail.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
D, 35, [D]ownload Mail,,,,,,,,,,,,,,,,,,,,,,,25
|
<MaxDl>
If the user has downloaded 25 files or more, they won't be able to d/l their
off line mail.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
D, 85, [D]ownload,,,,,,,,,,,,,,,,,,,,,,,,SUBSCRIBER
|
<Group>
The user would only be able to download a file if they are in group #3.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Example:
I, 11, [I]rc, irc2.cmd,,,,,,,,,,,,,,,,,,,,,,,,,,4
|
<PortFlags>
Only users that are telneting into the bbs can access this menu item.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Bit Value
1 1
2 2
3 4
4 8
5 16
6 32
7 64
8 128
9 256
10 512
11 1024
12 2048
13 4096
14 8192
15 16384
16 32768
17 65536
18 131072
19 262144
20 524288
21 1048576
22 2097152
23 4194304
24 8388608
25 16777216
26 33554432
27 67108864
28 134217728
29 268435456
30 536870912
31 1073741824
32 2147483648
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Valid AdeptXBBS Menu Colors:
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
Γöé0 = White Γöé 8 = Light Gray Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé1 = Black Γöé 9 = Dark Gray Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé2 = Dark Blue Γöé10 = Light Blue Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé3 = Dark Green Γöé11 = Light Green Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé4 = Light Blue Γöé12 = Cyan Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé5 = Dark Red Γöé13 = Light Red Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé6 = Dark Magenta Γöé14 = Light Magenta Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
Γöé7 = Brown Γöé15 = Yellow Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
AdeptXBBS Menu Option Flags:
Used as a number, or combination of numbers:
1 - Quote every time
This means that an attempt to display a quote will
happen every time the menu is displayed depending on
the 'quote odds' in the BBS settings. The quote odds
are based on a 100 percent scale. 50 would mean you
would get a quote only half the time.
2 - Quote once only
This means that an attempt to display a quote will
happen the first time the menu is displayed depending
on the 'quote odds' in the BBS settings. But after a
quote is shown once, there will not be another quote
for that menu.
4 - First on [ENTER]
This means that if the user hits enter, the first menu
item is the default choice.
8 - Both menu and Menu file
This means that if you have a menu display file, both
it and the menu 'output strings' will be replaced.
The display file will be shown before the 'output
strings'