home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
addoc10a.zip
/
AdeptXBBS.INF
(
.txt
)
next >
Wrap
OS/2 Help File
|
1998-08-28
|
603KB
|
16,874 lines
ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
The OS/2 Bulletin Board
About this document...
AdeptXBBS is the 32-bit, Multi-threaded,
Multi-user, Presentation Manager BBS for OS/2.
AdeptXBBS fully exploits all the features that make
OS/2 the operating system of the future and today,
giving you speed, reliability, power and flexibility
all in one powerful package. Almost everything about
AdeptXBBS can be customized, from the text displayed
in the PM system, down to every prompt and menu.
AdeptXBBS also gives you robust support for DOS and
OS/2 doors using the DOOR.SYS and Session Info drop
file.
AdeptXBBS is written in 'C' and is extremely well
threaded in order to give you that 'instant' response
you expect from OS/2.
Thanks to those who have maintained AdeptXBBS...
ΓòÉΓòÉΓòÉ 1.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, Squish, FidoNet Point(*.msg) 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.
ΓòÉΓòÉΓòÉ 1.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.
ΓòÉΓòÉΓòÉ 1.3. 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.
Acknowledgments
All the people acknowledge below in some way or another contributed
to this program. Thanks to everyone who have 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
ΓòÉΓòÉΓòÉ 1.4. 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
ΓòÉΓòÉΓòÉ 1.5. AdeptXBBS Contacts ΓòÉΓòÉΓòÉ
Contacts for AdeptXBBS: (Current as of September 5, 1997)
E-Mail List: adept-request@mail.snoval.com
Note: To join the Adept listserv send
an e-mail to the above address with the
words:
"subscribe adept" (without the quotes)
Web Sites: http://snoval.com
http://isonline.com
http://summitcnty.com
http://www.prismnet.com/~bkirby
http://adept.home.ml.org
FTP Sites: ftp://snoval.com/adept/incoming
ftp://isonline.com
ftp://summitcnty.com
ftp://cm.iobbs.com/island/Adept
ftp://dogstar.bbs.dyndns.com
IRC: irc.snoval.com
irc.isonline.com
Telnet BBS's: snoval.com
dogstar.bbs.dyndns.com
ΓòÉΓòÉΓòÉ <hidden> Thanks !! ΓòÉΓòÉΓòÉ
Special thanks to those who have maintained our AdeptXBBS
Steven Tower (tower@sound.net)
Mario Dulisse "_Hagar_" -
(mariod@ican.net)
Chris Freeze "BETEL" -
(phy10006@mtsu.edu)
Nitin Chandra "SafeHex" -
(nchandra@giasdl01.vsnl.net.in)
LeRoy DeVries "Dutch" -
(ldv@aa.net)
Note: If I've missed *anyone*, please email me at
mmellin@plinet.com.
ΓòÉΓòÉΓòÉ 2. Installation ΓòÉΓòÉΓòÉ
Installing AdeptXBBS:
First Time Install:
Copy the "Adept##.Zip" file into a temporary directory, and unzip as
follows:
Info-Zip "UnZip Adept##.Zip -d X:\Adept"
PkZip "PkZip /EXTRACT Adept##.Zip /DIR X:\Adept"
Where "X:\" is the target drive for the installation of Adept.
Note: The target installation drive must be an OS/2 HPFS
formatted drive.
Run the "MakeFolder.CMD" program from the X:\Adept subdirectory to
create the OS/2 WPS program objects.
After MakeFolder.CMD has been run, 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 after a new installation
is configure the BBS's Com-Ports. To do this, click on the
"Config->Active Line->General Setting" pull down menu and fill in the
correct Com-Port information.
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. Copy
the unzipped files to their respective AdeptXBBS directory locations.
Note: Allowing the System to overwrite any of the customizing that
you may have done to the previous files in the AdeptXBBS directories,
will delete your changes.
ΓòÉΓòÉΓòÉ <hidden> HPFS ΓòÉΓòÉΓòÉ
HPFS is an installable file system (IFS) designed to provide
extremely fast access to very large disk volumes. The OS/2 operating
system also supports the coexistence of multiple, active file systems
on a single personal computer system, with the capability of multiple
and different storage devices.
Features of HPFS include:
Cache Memory Access
The High Performance File System uses a high-speed buffer
storage, known as a cache, to access programs and data.
Often-used programs and data can be found in memory, thereby
reducing the number of times the operating system must read a
disk.
Long File Names
HPFS accepts file names of up to 254 characters in length. It
also accepts any number of separators (.) as part of the file
name. You can include blanks in the names of files or
directories. You must, however, include double quotation marks
around the name of the directory or file if it contains blanks.
For example, to change directory to the MY NEW DESKTOP
directory, type:
CD "MY NEW DESKTOP"
File Allocation
HPFS attempts to keep disk allocation for a file in contiguous
sectors. Because most files will be located in adjacent
sectors, the number of operations needed to access the file is
reduced.
Extended Attributes
HPFS supports extended directory information about files and
directories. This information is called an extended attribute.
Through extended attributes, an application can attach
information to a file or directory.
"Lazy" Writing
HPFS copies data to an area in cache memory before writing data
to a disk according to the IFS statement specified in the
CONFIG.SYS file.
Balanced Directory Tree
HPFS keeps track of files through a structure known as a
balanced directory tree. To locate a file, HPFS reads this
structure rather than reading the full directory list.
File names up to 254 characters in length.
Fast access to very large disk volumes.
Strategic allocation of directory structures.
Extended attribute support.
Caching of directories, data, and file system structures.
Processing of metacharacters that are generally used for
displaying and printing graphics.
Large file support.
Unlike the FAT file system, which allows a name to consist of
two parts (a 1 to 8 character name and a 1 to 3 character
extension), HPFS permits having many parts in a name if each
part is separated by a period.
In HPFS, you can use up to 254 characters in file or directory
names. This includes punctuation marks and blank spaces.
HPFS supports case preservation. This means that the system
saves the name of your file or directory exactly as it was
typed. If you create a file or directory called AbcD, the
system saves it as AbcD and will display it as AbcD, not ABCD.
However, HPFS is not case-sensitive. You cannot use the same
name for multiple files in the same directory. For instance,
you cannot create a file named ABCD in the same directory that
contains an existing file named AbcD.
When you installed the system, certain directories were created.
To avoid interfering with them in any way, do not use the names
OS2, INTRO, INSTALL, SPOOL, DLL, BOOK, or SYSTEM as directory
names.
Unlike previous versions of the OS/2 operating system, this
version treats as files reserved device names that are followed
by an extension; that is, device names are only recognized as
devices if they do not have an extension.
If you switch code pages or plan to send files to other
countries, avoid using accented characters in file and directory
names Depending on the code page used, some letters might be
displayed differently in uppercase than when originally typed.
Also, you may not be able to access the file from a different
code page.
The * and ? symbols can be used as global file-name characters.
When blank spaces are used in a file or directory name, the name
(including optional drive and path) must be enclosed in
quotation marks before you enter a command. For example, to
copy a file named My New FILE to drive A, enter:
COPY "C:\OS2\My New FILE" A:
ΓòÉΓòÉΓòÉ 2.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.
/EXCEPT Run Adept with exception handling enabled.
/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.
/NOUPGRADE Startup AdeptXBBS without upgrading the system
directories and files to the new 1.08aX
formats.
/OLDMENUS Startup up Adept using the old 1.07 &1.08.0x
style ascii menus.
/BBSSTACK ### Number of BBS threads stack. - 800k default,
eg: /BBSSTACK 262000 = 262k.
/MAILERSTACK ### Number of Mailer threads stack. - 500k
default.
/X Force outbound scans only (if the
AdeptLog.Toss file exists)
/SECONDCOPY Startup a second copy of Adept, allowing for
third party mailer support (eg: Adept
/Secondcopy /Nodes 1 /NoInit 1 /COM #) where #
is the passed open COM port.
/BAUD ###### Connection baud rate for third party mailer in
BBS only mode. (eg: Adept /Nodes 1 /NoInit 1
/COM 2 /BAUD ######) where ###### is the
connected speed to start up with.
/LOCKOUT ###... Allows BBS to reject a specified DNS logon -
max. of 15. (eg: Adept /Nodes 1 /NoInit 1
/LOCKOUT 206.248.78.151)
ΓòÉΓòÉΓòÉ 2.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.
ΓòÉΓòÉΓòÉ 2.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
ΓòÉΓòÉΓòÉ 2.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.
ΓòÉΓòÉΓòÉ 2.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".
ΓòÉΓòÉΓòÉ 3. Configuring AdeptXBBS ΓòÉΓòÉΓòÉ
The AdeptXBBS Main window:
ΓòÉΓòÉΓòÉ 3.1. General Settings ΓòÉΓòÉΓòÉ
General Settings:
Accessed from: Config->Active Line->General Settings...
Basic Modem Strings:
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 any valid
communications serial
"COM" port 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'
Special modem control string characters:
v - Drops DTR
^ - Raises DTR
~ - 1 Second Delay
` - 1/10th of a Second
| - Carriage Return
\\ - Escape Character
Bits Per Second (BPS) Rates:
Initial BPS Initial baud rate to
initialize this particular
node's 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 particular node.
Fax Setup... This will bring up a
dialog of Fax Modem
settings for this
particular 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.
ΓòÉΓòÉΓòÉ 3.1.1. Named pipe configuration ΓòÉΓòÉΓòÉ
Named Pipes:
Configuring AdeptXBBS for Named Pipes:
To test the configuration of Adept (or just locally call into
the system), without a second modem or phone line can be done
easily with OS/2's "Named Pipes". To utilize the named pipes
with Adept requires a terminal program that is capable of
supporting named pipes, such as ZOC or LiveWire.
To configure one of Adept's unused nodes as a named pipe:
Select the line/node #,
"Config"
"Active line"
"General Settings"
"Port Name" (Type in: \Pipe\AnyNameYouWant)
"Initial BPS" (57600 or whatever)
OK
"Shutdown"
The "\Pipe\AnyNameYouWant" establishes the communications
channel, but at this point the pipe is open ended. To complete
the named pipe, the terminal program must be configured. When
configuring the terminal program, instead of selecting a normal
"COM" port, select "Pipe" and then enter the pipe name exactly
as it was configuring on the BBS node for the named pipe
("\Pipe\AnyNameYouWant"). Upon completion, the terminal program
should be able to "pipe" into Adept.
Note: DOS doors will not work while connected via a Pipe. Most
OS/2 doors should though.
ΓòÉΓòÉΓòÉ 3.2. 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.
ΓòÉΓòÉΓòÉ 3.3. 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
ΓòÉΓòÉΓòÉ 3.4. 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.
ΓòÉΓòÉΓòÉ 3.5. User Window Interface ΓòÉΓòÉΓòÉ
Edit User Window Interface:
Accessed from: Pressing right mouse button on user window.
ΓòÉΓòÉΓòÉ 3.6. File Areas ΓòÉΓòÉΓòÉ
Configuring the File Areas:
Accessed from: Edit->File Areas...
Currently Adept has support for up to 10240 File
areas. (FSys currently only supports 4 digit
area numbers - eg. 3405, using any area number
beyond 9999 will result in inconsistent results
on file search/list operations.)
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.
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).
ΓòÉΓòÉΓòÉ 3.6.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.
ΓòÉΓòÉΓòÉ 3.7. 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.
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.
Squish Base Check this for a
Squish base Area.
* . MSG Check this for a *
. MSG base Area.
ΓòÉΓòÉΓòÉ 3.7.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.
ΓòÉΓòÉΓòÉ 3.8. 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".
ΓòÉΓòÉΓòÉ 3.9. 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.
ΓòÉΓòÉΓòÉ 3.9.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.
ΓòÉΓòÉΓòÉ 3.10. 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.
ΓòÉΓòÉΓòÉ 3.11. 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.)
ΓòÉΓòÉΓòÉ 3.12. 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
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.
ΓòÉΓòÉΓòÉ 3.12.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).
ΓòÉΓòÉΓòÉ 3.12.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.
ΓòÉΓòÉΓòÉ 3.12.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.
ΓòÉΓòÉΓòÉ 3.12.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.
ΓòÉΓòÉΓòÉ 3.12.5. FTP Support (File X-Fer) ΓòÉΓòÉΓòÉ
Configuring FTP Support: (File X-fer)
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.
ΓòÉΓòÉΓòÉ 3.13. 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 ********************************************
ΓòÉΓòÉΓòÉ 4. Directories ΓòÉΓòÉΓòÉ
Directories Used By Adept:
The following directory entries are defaults and some can be
changed:
.\ (default) Where configuration
files are kept.
.\Help Where Adept keeps
its Help files.
.\Text Where Text files
are kept (*.ASC,
*.ANS, *.RIP,
*.AVT).
.\Menus Where Menus and
REXX scripts are
kept. (Main.Menu,
Main#.Menu menus,
Main.Cmd Main#.Cmd,
AtEnd.Cmd,
AtEnd#.Cmd REXX
scripts).
.\Events Where Adept keeps
its Events Files.
.\Files Where Adept keeps
its B-Tree style
File system.
.\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.
.\Logfiles Where logfiles are
kept.
.\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 (see Mailer
section).
.\Mailer\Public Inbound (see Mailer
section).
.\Mailer\Unlisted Inbound (see Mailer
section).
.\Mailer\Flags Where flag files
are kept.
.\Mailer\Hold Where GateKeeper
places outbound
.TIC files.
.\Mailer\Dupes
.\Mailer\Scripts
.\IMail
.\InterNet\NNTPOut Message area for
outgoing NNTP
messages\mail.
.\InterNet\SMTPOut Message area for
outgoing SMTP
messages\mail.
.\UseNet Where UseNet
message bases are
stored.
.\Message_Bases Where Adept's
message bases are
kept.
.\Personal_Mail This is where
AdeptXBBS stores
it's PMI message
Indexes.
.\Temp_Directories Where temporary
files are kept (for
example, when
viewing archive
files)
ΓòÉΓòÉΓòÉ 5. 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")
LogonMsg.ASC Shown before the user enters their
first logon message (only if the
'first logon message' bit is set)
ReLogin.ASC Shown after Prompt #935, prior to
Logoff, and the Relogin.
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")
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.
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.
ToOld.ASC Shown after BadAge.ASC, when a
users age is greater than that
required to access a particular
menu.
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 Shown 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.
NoCredits.ASC Shown at login when a users
remaining time exceeds his
remaining credit. The user will
be logged off after his group
number is adjusted and saved.
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.
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.
NotGroup.ASC Shown when user does not have the
group access required for a menu
item.
NotCom.ASC Shown when user attempts to access
a Com Port restricted menu item.
NotPipe.ASC Shown when user attempts to access
a Pipe restricted menu item.
NotTCP.ASC Shown when user attempts to access
a Telenet restricted menu item.
NotStartTime.ASC Shown when the user attempts to
access a menu command before the
menu item's StartTime.
NotStopTime.ASC Shown when the user attempts to
access a menu command after the
menu item's EndTime.
NotMinTime.ASC Shown when the user's time on-line
is less than the menu item's
MinOnlineTime.
NotMaxTime.ASC Shown when the user's time on-line
is greater than the menu item's
MaxOnlineTime.
NotMinCall.ASC Shown when the user's number of
BBS calls are less than the menu
item's MinCalls.
NotMaxCall.ASC Shown when the user's number of
BBS calls are greater than the
menu item's MaxCalls.
NotMinPost.ASC Shown when the user's number of
message Posts are less than the
menu item's MinPosts.
NotMaxPost.ASC Shown when the user's number of
message Posts are greater than the
menu item's MaxPosts.
NotMinUpl.ASC Shown when the user's number of
uploads are less than the menu
item's MinUploads.
NotMaxUpl.ASC Shown when the user's number of
uploads are greater than the menu
item's MaxUploads.
NotMinDl.ASC Shown when the user's number of
downloads are less than the menu
item's MinDownLoads.
NotMaxDl.ASC Shown when the user's number of
downloads are greater than the
menu item's MaxDownLoads.
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.
ΓòÉΓòÉΓòÉ 5.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.
ΓòÉΓòÉΓòÉ 5.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.
ΓòÉΓòÉΓòÉ 5.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
Note: If the Quotes file is not found in the .\System
directory, then Adept will search for it in the users defined
.\Languages directory. 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
%%
ΓòÉΓòÉΓòÉ 5.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.
ΓòÉΓòÉΓòÉ 5.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 24
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.
; Comment line, the text following
the ";" will be ignored.
[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.
ΓòÉΓòÉΓòÉ 5.6. 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.
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
ΓòÉΓòÉΓòÉ 5.6.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).
ΓòÉΓòÉΓòÉ 5.7. 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 Kbyte
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
ΓòÉΓòÉΓòÉ 5.7.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.
ΓòÉΓòÉΓòÉ 5.8. 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
ΓòÉΓòÉΓòÉ 5.9. Groups File ΓòÉΓòÉΓòÉ
Setting Up GROUPS File:
This is the file that Adept creates when you edit the groups using
the pull-down menus. You can edit this file with a standard text
editor.
Location: X:\Adept\System\Groups
Format:
GROUPBEGIN This directive marks the beginning of
a group definition
NAME This defines the group name.
NUMBER This defines the group number.
FLAGS
TIMEDAY This is the total number of minutes
per day allowed for a group member.
TIMECALL This is the total number of minutes
per call allowed for a group member.
EXPDAYS This is the number of days before a
group member is removed from a group.
EXPIRETO This is the number of the group that
an expired group member will be
removed to.
EXPPWDDAYS This is the number of days before a
password expires for a particular
group. (Prompt #479 in Language.Text
file is displayed upon expiration).
MAXULK This is the maximum Kbytes the group
member is allowed to UpLoad per day.
MAXDLK This is the maximum Kbytes the group
member is allowed to DownLoad per
day.
SEC1 This is the minimum security required
to access this group when compared
with the users security level #1
SEC2 This is the minimum security required
to access this group when compared
with the users security level #2
FLAGS1
FLAGS2
GROUPEND This directive marks the end of a
group definition
Example:
GROUPBEGIN
NAME Worthy
NUMBER 40
FLAGS 11
TIMEDAY 90
TIMECALL 90
EXPDAYS 365
EXPIRETO 1
MAXULK 5000
MAXDLK 5000
SEC1 40
SEC2 40
FLAGS1 31
FLAGS2 31
GROUPEND
GROUPBEGIN
NAME Priviledged
NUMBER 50
FLAGS 11
TIMEDAY 90
TIMECALL 90
EXPDAYS 365
EXPIRETO 1
MAXULK 5000
MAXDLK 5000
SEC1 50
SEC2 50
FLAGS1 63
FLAGS2 63
GROUPEND
GROUPBEGIN
NAME Favored
NUMBER 60
FLAGS 11
TIMEDAY 120
TIMECALL 120
EXPDAYS 365
EXPIRETO 1
MAXULK 5000
MAXDLK 5000
SEC1 60
SEC2 60
FLAGS1 127
FLAGS2 127
GROUPEND
ΓòÉΓòÉΓòÉ 5.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?
ΓòÉΓòÉΓòÉ 5.11. Menu Files (ASCII) ΓòÉΓòÉΓòÉ
Adept Menus (ASCII Type): (1.07, 1.08.0x - ASCII Only)
Location: X:\Adept\Menu\AnyNameYouWant.Menu
Note: In addition to Adept's original ASCII
style menu's, there are also the Tower's BINary
or the AdeptREXX "CMD" based menus. Adept will
auto-detect which type of menu you have chosen to
use.
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.
Note: To make the transition from these ASCII style menus to
the curently supported BIN menus, 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 ASCII menus to the new BIN 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.
ΓòÉΓòÉΓòÉ 5.11.1. 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 Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
ΓòÉΓòÉΓòÉ 5.11.2. 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
ΓòÉΓòÉΓòÉ 5.12. Menu Files (BINary) ΓòÉΓòÉΓòÉ
Adept Menus (BINary type): (Tower's, 1.08aH, 1.09.0x - ASCII & BINary)
Location: X:\Adept\Menu\AnyNameYouWant.Menu
Note: The Towers Binary Menu engine is in
addition to the original 1.07f style ASCII Text,
and AdeptREXX "CMD" based menus. Adept will
auto-detect which type of menu you have chosen to
use. 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
compiled BIN menu files are not editable.
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 menu 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.
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.
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
ΓòÉΓòÉΓòÉ 5.13. AdeptREXX Interface ΓòÉΓòÉΓòÉ
AdeptREXX Interface:
AdeptXBBS comes with several "Menu" systems, the default, ASCII
or Binary based menus, and a REXX based menu Subsystem.
The REXX Subsystem allows access to all the basic menu
functions, along with the flexability of a complete REXX API
subsystem giving control over the entire BBS.
With AdeptXBBS's REXX API's, you get access to all available
memory variables, all internal functions, and unrestricted
access to all running nodes at one time.
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
ΓòÉΓòÉΓòÉ 5.13.1. AdeptREXX Usage ΓòÉΓòÉΓòÉ
AdeptREXX Usage:
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".
ΓòÉΓòÉΓòÉ <hidden> Adept Meta Catagories ΓòÉΓòÉΓòÉ
AdeptXBBS 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.
OS/2 & BBS System Metas
User's individual Metas
Message Area Metas
File Area Metas
Library Area Metas
Date & Session Time Metas
User Input Metas
UL/DL Stats Metas
Miscellaneous System Metas
ANSI Color & Control Metas
Note: The format for Meta variables is: {xx (where 'xx' represents the
META variable).
ΓòÉΓòÉΓòÉ 6. Adept Meta Variables ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 6.1. OS/2 & BBS System ΓòÉΓòÉΓòÉ
OS/2 & BBS System Meta Variables:
Meta: Function:
{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
{SA Users current status (as displayed in Adept's "Status
window".
{SB Users connect string as returned by the callers modem
(useful for pulling IP addresses out with Rexx from
Telnet/VModem connects)
{SC BBS UpTime in Days:Hrs:Mins format.
{SD Time OS/2 was booted at.
{SE Time OS/2 has been up since boot.
{SF Users remaining credit.
{SG Credits charged per minute.
ΓòÉΓòÉΓòÉ 6.2. User's ΓòÉΓòÉΓòÉ
User's Meta Variables:
Meta: Function:
{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 User 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 eg: 'X')
{UY Archiver (letter eg: 'A')
{UZ Time per call
{V3 Age
{V4 ANSI Graphics flag (1=On, 0=Off)
{V5 Group user is 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 since first call
{VL Users first name only.
{VM Full name of the last user on the node.
{VN Handle of the last user on the node.
{VO FullScreen Editor flag (On/Off).
{VP Users first ever logon.
{VQ Users last logon.
{VR Number of users in userfile.
{O1 ANSI Movement flag (On/Off)
{O2 ANSI Color flag (On/Off)
{O3 High ASCII flag (On/Off)
{O4 More Prompt flag(On/Off)
{O5 Clear Screen flag (On/Off)
{O6 Cold input flag flag (On/Off) ie. not hot keys
{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 flag (On/Off)
{PJ Scan for New Files at logon flag (On/Off)
{Q9 File transfer protocol name or 'None'
{QA Archiver name or 'None'
{ QB Max mail packet size in bytes
{P6 Avatar flag (On/Off)
{P7 ANSI/TE2 flag (On/Off)
{PN KeepSeenBys flag (On/Off)
{P9 Available for Internode chat flag (Yes/No)
{PE Monitoring Mail flag (On/Off)
ΓòÉΓòÉΓòÉ 6.3. Message Area ΓòÉΓòÉΓòÉ
Message Area Meta Variables:
Meta: Function:
{M0 Name of area
{M1 Number of messages in current area
{M2 Last message read in current area
{M3 Message area number
{M4 Last message read + 1
{M5 Description of current area
{M6 Name of area (12 characters long, left justified)
{M7 Number of messages in area (5 chars long, right justified)
{M8 Last message read (5 chars long, right justified)
{M9 Number of message area (5 chars long, left justified)
{MA Last message read + 1 (5 chars long, left justified)
{MB Description of current area (48 chars long, left justified)
{MC Last message read
{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 With file attached(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 Number of messages in area (M1??)
{Q7 Prints '*' if last read is less than current number of
messages. ' ' if not
{Q8 Prints '+' if current area is tagged for offline mail. ' '
if not
{QC Time/Date message was received (24 characters)
{QD Number of times message was 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
Note: Some variables are based on text prompts found in
Language.Text.
ΓòÉΓòÉΓòÉ 6.4. File Area ΓòÉΓòÉΓòÉ
File area Meta Variables:
Meta: Function:
{A0 Area name
{A1 Area number
{R0 Filearea description
ΓòÉΓòÉΓòÉ 6.5. Library Area ΓòÉΓòÉΓòÉ
Library area Meta Variables:
Meta: Function:
{L0 Current library area name
{L1 Current library area number
ΓòÉΓòÉΓòÉ 6.6. Date & Time ΓòÉΓòÉΓòÉ
User Session Time Meta Variables:
Meta: Function:
{T0 Minutes left in session
{T1 Seconds left in session minus minutes left in session ??
{T2 Seconds left in session
Current Date&Time Meta Variables:
Meta: Function:
{D0 Month abbreviated (eg. Jan)
{D1 Day abbreviated (eg. Wed)
{D2 Year (eg. 1997)
{D3 Month number (eg. 01)
{D4 Day number (eg. 03)
{D5 Month name (January)
{D6 Day name (Wednesday)
{D7 Time (HH:MM:SS)
{D8 Date/Time (DayOfWeek Month DayOfMonth HH:MM:SS Year) or
(eg. Wed Jan 1 12:35:48 1997)
ΓòÉΓòÉΓòÉ 6.7. User Input ΓòÉΓòÉΓòÉ
User Input Meta Variables:
Meta: Function:
{I0 Copies in last user input
ΓòÉΓòÉΓòÉ 6.8. UL/DL Stats ΓòÉΓòÉΓòÉ
Download / Upload Stats Meta Variables:
Meta: Function:
{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
ΓòÉΓòÉΓòÉ 6.9. Miscellaneous System ΓòÉΓòÉΓòÉ
Miscellaneous System Meta Variables:
Meta: Function:
{H0 Com port handle
{LN Line number (1, 2, 3, etc)
{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)
{PM Displays "More ? Yes/No:" prompt.
{PQ Displays "Press any key to continue" if the displayed amount
of lines is more then the users screen length.
{Q5 Add 1 to number of lines printed
{QF User storage??
{ZZ Do not translate any metas from here until the end of the
string.
ΓòÉΓòÉΓòÉ 6.10. ANSI Color & Control ΓòÉΓòÉΓòÉ
Foreground ANSI Color Meta Variables:
Meta: Function:
{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 Light Blue
{FB Light Green
{FC Light Cyan
{FD Light Red
{FE Light Magenta
{FF Yellow
{FG White
Background ANSI color Meta Variables:
Meta: Function:
{B1 Black
{B2 Dark Blue
{B3 Dark Green
{B4 Dark Cyan
{B5 Dark Red
{B6 Dark Magenta
{B7 Brown
{B8 Light Gray
Other ANSI Meta Variables:
Meta: Function:
{PA cycle thru color scheme and return next ANSI color in cycle
{CL Clear to end of line (EOL)
{CS Clear screen
{QE Last ANSI color
Note: All ANSI commands will be set to blank if user doesn't have color
turned on.
ΓòÉΓòÉΓòÉ <hidden> Adept Menu Catagories ΓòÉΓòÉΓòÉ
AdeptXBBS Menu Commands:
Type: Function:
0 Goto another menu
1 Gosub to another menu
2 Return from a Gosub Menu
3 Clear Gosub Menus / Return to menu
4 Goto Menu / Ask Password
5 Gosub Menu / Ask Password
6 Gosub Auto-return Menu
7 Gosub Auto-execute Menu
8 Select Message Area, Gosub Menu
9 Select File Area, Gosub Menu
10 Execute cached Rexx Script
11 Execute Non-cached Rexx Script
15 Read messages - No Prompting
16 Quickscan messages
17 Scan message Headers
20 Read messages - With Prompting
25 Read All messages from newest
26 Read messages by Area
28 Search current message area headers
31 Export mail - Text
32 Export mail - Fido
33 Export mail - QWK
34 Export mail - Bluewave
35 Export mail - Users default
36 Import mail
41 Show user status
42 Who is on-line
43 List Users
45 Edit User record
46 Adjust file areas
47 Adjust message areas
48 Page Sysop
49 Display help
50 Offline mail export tags
51 Display text file
52 Show All Chat Channels
53 List all users in your current channel
55 List all users logged onto the BBS
60 Select message area
61 Select file area
62 Name of message area
63 Name of file area
64 Previous message area
65 Previous file area
70 List files in current area (Style-1)
71 Search files in area - keyword (Style-1)
72 Search files in area - keyword / date (Style-1)
73 Search new files in area - date (Style-1)
74 Search new files in All areas - sequentially (Style-1)
75 List All files - alphabetically (Style-1)
76 Search files in All areas - keyword (Style-1)
77 List files in area - chronologically (Style-1)
78 List files in area - alphabetically (Style-1)
84 View Archive
85 Download files - FileName
86 Download file - DataField (remote users)
90 Upload file - FileName
91 Upload file - DataField
92 Keep SeenBys in offline mail
93 Drop SeenBys from offline mail
100 OR User1 attributes
101 AND User1 attributes
102 OR User2 attributes
103 AND User2 attributes
104 OR User1 flags
105 AND User1 flags
106 OR User2 flags
107 AND User2 flags
110 X-Fer protocol
111 Computer type
119 Read all tagged area messages from newest
120 Read messages by tagged Area
121 Quickscan tagged area Messages
122 Scan tagged area message Headers
123 List only the areas the user has tagged for off-line mail
130 Address
131 ANSI color flag
132 High ASCII flag
133 Cold input flag
134 Screen length
135 Pause flag
136 Handle
137 Password
138 Screen width
139 Phone number
140 User interests
141 Display user info
142 Expert mode
144 ANSI cursor flag
145 Set User misc. flags
146 File X-Fer protocol
147 New message at logon flag
148 New files at logon flag
149 Limit file list flag
150 Misc news flags
151 Ask to download flag
152 Chat availability flag
154 Full screen flag
155 Export mail type flag
156 User birthday flag
157 Clear screen flag
158 User computer type
159 Gender flag
161 Avatar flag
162 ANSI-TE2 flag
163 8.3 file name conversion flag
164 Avatar/ANSI flags
165 View off-line mail status
166 Default archiver
167 Deposit bank time
168 Withdraw bank time
170 List files in current area (Style-2)
171 Search files in area - keyword (Style-2)
172 Search files in area - keyword / date (Style-2)
173 Search new files in area - date (Style-2)
174 Search new files in All areas - sequentially (Style-2)
175 List All files - alphabetically (Style-2)
176 Search files in All areas - keyword (Style-2)
177 List files in area - chronologically (Style-2)
178 List files in area - alphabetically. (Style-2)
190 Toggle bits in User1 attribute
191 Toggle bits in User2 attribute
192 Toggle bits in User1 flag
193 Toggle bits in User2 flag
200 Write message
201 Write message - NameData
300 Prompt user for data
301 Store DataField as user input
305 Prompt user for the birthdate in European format, ie DD-MM-CCYY.
400 Internode chat - DataField
601 Toggle ANSI color flag
602 Toggle High ANSI flag
603 Toggle More prompt
604 Toggle Clear screen flag
605 Toggle Cold input flag
606 Toggle Address flag
607 Toggle Phone flag
608 Toggle Real name flag
609 Toggle No kill flag
610 Toggle deleted flag
611 Toggle Expert flag
612 Toggle Twit flag
613 Toggle New files flag
614 Toggle New messages flag
615 Toggle DL New messages flag
616 Toggle DL New files flag
617 Toggle View misc news flag
618 Toggle Ask Download flag
619 Toggle Novice flag
620 Toggle Point mail only flag
622 Toggle Locked-out flag
623 Toggle Chat availablity flag
624 Toggle List user display flag
625 Toggle Misc News display flag
626 Toggle File list current area only flag
628 Toggle Verified flag
629 Toggle ANSI TE2 graphics flag
630 Toggle RIP graphics
631 Toggle
632 Toggle Offline mail monitoring flag
640 Pack & DL Offline mail
655 Change Archiver
656 Edit File X-Fer list
700 Tag All areas for Offline mail
701 Untag all areas for Offline mail
702 Toggle area for Offline mail - AreaData
703 Set mail export type
704 Edit Last message read
800 Run OS/2 door
801 Spawn session door - ExeData
802 Spawn session door - I/O
803 Spawn session door - Semaphores
810 Spawn session door - Adept environment
811 Spawn session door - OS/2 environment
815 Spawn session door - OS/2 foreground
820 Spawn session door - DOS background
821 Spawn session door - DOS foreground
900 Check mail
950 Shutdown BBS !!
999 LogOff - Leave message to Sysop
1000 LogOff
1001 Instant Logoff
1002 LogOff &Re-LogOn
1003 Change/select Language.Text prompt files.
ΓòÉΓòÉΓòÉ 7. Adept Menu Commands ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 7.1. 0 - Goto another menu ΓòÉΓòÉΓòÉ
Menu Command: 0
Option Data: Menu Name
Description: Go to another menu. Name of menu is in the data
field.
Note: Only menu commands above 9 are accessible via
the AdeptMenu Rexx command.
Example: \r,0,Door.Asc,Online Games,4
ΓòÉΓòÉΓòÉ 7.2. 1 - Gosub to another menu ΓòÉΓòÉΓòÉ
Menu Command: 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.
Note: Only menu commands above 9 are accessible via
the AdeptMenu Rexx command.
Example: F,1,File Menu,Files.Menu,0
ΓòÉΓòÉΓòÉ 7.3. 2 - Return from a Gosub Menu ΓòÉΓòÉΓòÉ
Menu Command: 2
Option Data: Menu Name
Description: Return from a gosub'ed menu. Returns to the previous
menu.
Note: Only menu commands above 9 are accessible via
the AdeptMenu Rexx command.
Example: -,2,,,0
ΓòÉΓòÉΓòÉ 7.4. 3 - Clear Gosub Menus / Return to menu ΓòÉΓòÉΓòÉ
Menu Command: 3
Option Data: Menu Name
Description: Clear all Gosub'ed menus, return to menu.
Note: As of AdeptXBBS (v2.05), the Option Data's
Menu name must be specified.
Only menu items above 9 are accessible via the
AdeptMenu Rexx command.
Example:
ΓòÉΓòÉΓòÉ 7.5. 4 - Goto Menu / Ask Password ΓòÉΓòÉΓòÉ
Menu Command: 4
Option Data: Menu Name
Description: Go to another menu and ask for a password. The data
field should read "MenuName;Password".
Note: Only menu commands above 9 are accessible via
the AdeptMenu Rexx command.
Example: O,4,Doors Menu,Door.Menu;Game,0
ΓòÉΓòÉΓòÉ 7.6. 5 - Gosub Menu / Ask Password ΓòÉΓòÉΓòÉ
Menu Command: 5
Option Data: Menu Name
Description: Gosub to another menu and ask for a password. The
data field should read "MenuName;Password".
Note: Only menu commands above 9 are accessible via
the AdeptMenu Rexx command.
Example: O,5,Doors Menu,Door.Menu;Game,0
ΓòÉΓòÉΓòÉ 7.7. 6 - Gosub Auto-return Menu ΓòÉΓòÉΓòÉ
Menu Command: 6
Option Data: Menu Name
Description: Gosub a forced-return menu (This type of menu
returns after any command is selected).
Note: Only menu commands above 9 are accessible via
the AdeptMenu Rexx command.
Example: *,6,Sysop Menu,Sysop.Menu,,,,100,100
ΓòÉΓòÉΓòÉ 7.8. 7 - Gosub Auto-execute Menu ΓòÉΓòÉΓòÉ
Menu Command: 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).
Note: Only menu commands above 9 are accessible via
the AdeptMenu Rexx command.
Example: U,7,User Setup,EditUser.Menu,0
ΓòÉΓòÉΓòÉ 7.9. 8 - Select Message Area, Gosub Menu ΓòÉΓòÉΓòÉ
Menu Command: 8
Option Data: Menu Name, Message Area Name
Description: Select Message Area, then Gosub a menu.
Note: Only menu commands above 9 are accessible via
the AdeptMenu Rexx command.
Example: M,8,[1] Switch to Message Area,Message.Menu;Message
Area Name,0
ΓòÉΓòÉΓòÉ 7.10. 9 - Select File Area, Gosub Menu ΓòÉΓòÉΓòÉ
Menu Command: 8
Option Data: Menu Name, File Area Name
Description: Select File Area, then Gosub a menu.
Note: Only menu commands above 9 are accessible via
the AdeptMenu Rexx command.
Example: F,9,[2] Switch to File Area ,Files.Menu;File Area
Name,0
ΓòÉΓòÉΓòÉ 7.11. 10 - Execute cached Rexx Script ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.12. 11 - Execute Non-cached Rexx Script ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.13. 15 - Read messages - No Prompting ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.14. 16 - Quickscan messages ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.15. 17 - Scan message Headers ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.16. 20 - Read messages - With Prompting ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.17. 25 - Read All messages from newest ΓòÉΓòÉΓòÉ
Menu Command: 25
Option Data: Menu Name
Description: Globally read msgs from current newest message.
Example: N,25,[N]ew messages,,0
ΓòÉΓòÉΓòÉ 7.18. 26 - Read messages by Area ΓòÉΓòÉΓòÉ
Menu Command: 26
Option Data: Menu Name
Description: Globally read messages, stop at each area.
Example: R,26,[R]ead New messages,,0
ΓòÉΓòÉΓòÉ 7.19. 28 - Search current message area headers ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.20. 31 - Export mail - Text ΓòÉΓòÉΓòÉ
Menu Command: 31
Option Data:
Description: Export mail - Text format.
Example: X,31,E[x]port Text Mail,,0
ΓòÉΓòÉΓòÉ 7.21. 32 - Export mail - Fido ΓòÉΓòÉΓòÉ
Menu Command: 32
Option Data: Menu Name
Description: Export mail - Fido packet format.
Example: X,32,E[x]port Fido Mail,,0
ΓòÉΓòÉΓòÉ 7.22. 33 - Export mail - QWK ΓòÉΓòÉΓòÉ
Menu Command: 33
Option Data: Menu Name
Description: Export mail - QWK format.
Example: X,33,E[x]port .QWK Mail,,0
ΓòÉΓòÉΓòÉ 7.23. 34 - Export mail - Bluewave ΓòÉΓòÉΓòÉ
Menu Command: 34
Option Data: Menu Name
Description: Export mail - Bluewave format.
Example: X,34,E[x]port BW Mail,,0
ΓòÉΓòÉΓòÉ 7.24. 35 - Export mail - Users default ΓòÉΓòÉΓòÉ
Menu Command: 35
Option Data: Menu Name
Description: Export mail - format based on user preference.
Example: D,35,[D]ownload Mail,,0
ΓòÉΓòÉΓòÉ 7.25. 36 - Import mail ΓòÉΓòÉΓòÉ
Menu Command: 36
Option Data:
Description: Import mail - allows user to upload a mail packet.
Example: U,36,[U]pload .QWK Mail Packet,,0
ΓòÉΓòÉΓòÉ 7.26. 41 - Show user status ΓòÉΓòÉΓòÉ
Menu Command: 41
Option Data:
Description: Display user status.
Example: D,41,Display Stats,,0
ΓòÉΓòÉΓòÉ 7.27. 42 - Who is on-line ΓòÉΓòÉΓòÉ
Menu Command: 42
Option Data:
Description: Who is on-line.
Example: W,42,Who is Online,,0
ΓòÉΓòÉΓòÉ 7.28. 43 - List Users ΓòÉΓòÉΓòÉ
Menu Command: 43
Option Data:
Description: List users.
Example: L,43,User [L]ist,,0
ΓòÉΓòÉΓòÉ 7.29. 45 - Edit User record ΓòÉΓòÉΓòÉ
Menu Command: 45
Option Data:
Description: Edit your user record.
Example: E,45,Edit User Rec,,0
ΓòÉΓòÉΓòÉ 7.30. 46 - Adjust file areas ΓòÉΓòÉΓòÉ
Menu Command: 46
Option Data:
Description: Adjust accessible file areas.
Example: A,46,Adjust File Areas,,0
ΓòÉΓòÉΓòÉ 7.31. 47 - Adjust message areas ΓòÉΓòÉΓòÉ
Menu Command: 47
Option Data:
Description: Adjust accessible message areas.
Example: A,47,Adjust Message Areas,,0
ΓòÉΓòÉΓòÉ 7.32. 48 - Page Sysop ΓòÉΓòÉΓòÉ
Menu Command: 48
Option Data:
Description: Page SysOp.
Example: Y,48,Yell,,0
ΓòÉΓòÉΓòÉ 7.33. 49 - Display help ΓòÉΓòÉΓòÉ
Menu Command: 49
Option Data:
Description: Display help (If 'text' in data field, help on
'text' will be shown).
Example: H,49,Help,Download,0
ΓòÉΓòÉΓòÉ 7.34. 50 - Offline mail export tags ΓòÉΓòÉΓòÉ
Menu Command: 50
Option Data:
Description: Adjust tags on off-line mail export
Example: O,50,Adjust Export,,0
ΓòÉΓòÉΓòÉ 7.35. 51 - Display text file ΓòÉΓòÉΓòÉ
Menu Command: 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 )
16 Display the "Press Enter to Continue" prompt
after displaying the text file (v1.09.11)
32 No literal translation.
64 No meta translation
128 Clears the screen prior to displaying the
text file. (v1.09.12)
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
ΓòÉΓòÉΓòÉ 7.36. 52 - Show All Chat Channels ΓòÉΓòÉΓòÉ
Menu Command: 52
Option Data: N/A
Description: Show All Chat Channels
Example: Call AdeptMenuType Line, 52,""
ΓòÉΓòÉΓòÉ 7.37. 53 - List users in current channel ΓòÉΓòÉΓòÉ
Menu Command: 53
Option Data: N/A
Description: List all users in your current Chat channel.
Example: Call AdeptMenuType Line, 53,""
ΓòÉΓòÉΓòÉ 7.38. 55 - List users logged onto BBS ΓòÉΓòÉΓòÉ
Menu Command: 55
Option Data: N/A
Description: List all users logged onto the BBS at that moment.
Example: Call AdeptMenuType Line, 55,""
ΓòÉΓòÉΓòÉ 7.39. 60 - Select message area ΓòÉΓòÉΓòÉ
Menu Command: 60
Option Data:
Description: Select message area.
Example: A,60,[A]rea Change,,0
ΓòÉΓòÉΓòÉ 7.40. 61 - Select file area ΓòÉΓòÉΓòÉ
Menu Command: 61
Option Data:
Description: Select file area.
Example: A,61,[A]rea Change,,0
ΓòÉΓòÉΓòÉ 7.41. 62 - Name of message area ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.42. 63 - Name of file area ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.43. 64 - Previous message area ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.44. 65 - Previous file area ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.45. 70 - List files in current area ΓòÉΓòÉΓòÉ
Menu Command: 70
Option Data:
Description: List files in current area.
Note: Use Menu 170 for display Style-2.
Example: L,70,[L]ist File In This Area,,0
ΓòÉΓòÉΓòÉ 7.46. 71 - Search files in area - keyword ΓòÉΓòÉΓòÉ
Menu Command: 71
Option Data:
Description: Search files in current area. Asks for search
string.
Note: Use Menu 171 for display Style-2.
Example: 3,71,Current Area String to Match,,0
ΓòÉΓòÉΓòÉ 7.47. 72 - Search files in area - keyword / date ΓòÉΓòÉΓòÉ
Menu Command: 72
Option Data:
Description: Search files in current area newer than specified
date. Asks for search string and date.
Note: Use Menu 172 for display Style-2.
Example: 1,72,Current Area Date & String to Match,,15
ΓòÉΓòÉΓòÉ 7.48. 73 - Search new files in area - date ΓòÉΓòÉΓòÉ
Menu Command: 73
Option Data:
Description: New files in current area. asks for date.
Note: Use Menu 173 for display Style-2.
Example: 2,73,Current Area Date to Match,,15
ΓòÉΓòÉΓòÉ 7.49. 74 - Search new files in All areas - sequentially ΓòÉΓòÉΓòÉ
Menu Command: 74
Option Data:
Description: New files in all areas, searched sequentially.
Note: Use Menu 174 for display Style-2.
Example: 5,74,All Date to Match,,15
ΓòÉΓòÉΓòÉ 7.50. 75 - List All files - alphabetically ΓòÉΓòÉΓòÉ
Menu Command: 75
Option Data:
Description: List ALL files in alphabetical order.
Note: Use Menu 175 for display Style-2.
Example: 7,75,All A-Z Listing,,15
ΓòÉΓòÉΓòÉ 7.51. 76 - Search files in All areas - keyword ΓòÉΓòÉΓòÉ
Menu Command: 76
Option Data: Search String
Description: Search files in all areas. Asks for search string.
Note: Use Menu 176 for display Style-2.
Example: 6,76,All String to Match,,15
ΓòÉΓòÉΓòÉ 7.52. 77 - List files in area - chronologically ΓòÉΓòÉΓòÉ
Menu Command: 77
Option Data:
Description: List files in current area, in dated order newest to
oldest.
Note: Use Menu 177 for display Style-2.
Example: 4,77,Current Area List Files,,15
ΓòÉΓòÉΓòÉ 7.53. 78 - List files in area - alphabetically ΓòÉΓòÉΓòÉ
Menu Command: 78
Option Data:
Description: List files in current area, in alphabetical order.
A->Z
Note: Use Menu 178 for display Style-2.
Example: L,78,[L]ist File In This Area,,15
ΓòÉΓòÉΓòÉ 7.54. 84 - View Archive ΓòÉΓòÉΓòÉ
Menu Command: 84
Option Data:
Description: View archive
Example: V,84,[V]iew Archive contents,,15
ΓòÉΓòÉΓòÉ 7.55. 85 - Download files - FileName ΓòÉΓòÉΓòÉ
Menu Command: 85
Option Data:
Description: Download file(s) - asks for file name(s)
Example: D,85,[D]ownload file(s),,15
ΓòÉΓòÉΓòÉ 7.56. 86 - Download file - DataField (remote users) ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.57. 90 - Upload file - FileName ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.58. 91 - Upload file - DataField ΓòÉΓòÉΓòÉ
Menu Command: 91
Option Data:
Description: Upload specific file. (file in data field).
Example: U,91,Upload Picture,pic.gif,0
ΓòÉΓòÉΓòÉ 7.59. 92 - Keep SeenBys (OffLine) ΓòÉΓòÉΓòÉ
Menu Command: 92
Option Data:
Description: Keep "SeenBy's" in offline mail.
Example: K,92,,,
ΓòÉΓòÉΓòÉ 7.60. 93 - Drop SeenBys (OffLine) ΓòÉΓòÉΓòÉ
Menu Command: 93
Option Data:
Description: Drop "SeenBy's" from offline mail.
Example: S,93,,,
ΓòÉΓòÉΓòÉ 7.61. 100 - OR User1 attributes ΓòÉΓòÉΓòÉ
Menu Command: 100
Option Data:
Description: OR user attributes 1 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 7.62. 101 - AND User1 attributes ΓòÉΓòÉΓòÉ
Menu Command: 101
Option Data:
Description: AND user attributes 1 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 7.63. 102 - OR User2 attributes ΓòÉΓòÉΓòÉ
Menu Command: 102
Option Data:
Description: OR user attributes 2 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 7.64. 103 - AND User2 attributes ΓòÉΓòÉΓòÉ
Menu Command: 103
Option Data:
Description: AND user attributes 2 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 7.65. 104 - OR User1 flags ΓòÉΓòÉΓòÉ
Menu Command: 104
Option Data:
Description: OR user flags 1 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 7.66. 105 - AND User1 flags ΓòÉΓòÉΓòÉ
Menu Command: 105
Option Data:
Description: AND user flags 1 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 7.67. 106 - OR User2 flags ΓòÉΓòÉΓòÉ
Menu Command: 106
Option Data:
Description: OR user flags 2 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 7.68. 107 - AND User2 flags ΓòÉΓòÉΓòÉ
Menu Command: 107
Option Data:
Description: AND user flags 2 with number in data field.
Example:
ΓòÉΓòÉΓòÉ 7.69. 110 - X-Fer protocol ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.70. 111 - Computer type ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.71. 119 - Read all tagged area messages from newest ΓòÉΓòÉΓòÉ
Menu Command: 119
Option Data: Menu Name
Description: Globally read msgs in tagged area(s) from
current/newest message.
Example: N,119,[N]ew messages,,0
ΓòÉΓòÉΓòÉ 7.72. 120 - Read messages by tagged Area ΓòÉΓòÉΓòÉ
Menu Command: 120
Option Data: Menu Name
Description: Globally read messages in tagged area(s), stop at
each area.
Example: R,120,[R]ead New messages,,0
ΓòÉΓòÉΓòÉ 7.73. 121 - Quickscan tagged area Messages ΓòÉΓòÉΓòÉ
Menu Command: 121
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
ΓòÉΓòÉΓòÉ 7.74. 122 - Scan tagged area message Headers ΓòÉΓòÉΓòÉ
Menu Command: 122
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
ΓòÉΓòÉΓòÉ 7.75. 123 - List tagged areas only ΓòÉΓòÉΓòÉ
Menu Command: 123
Option Data: Menu Name
Description: List only the areas the user has tagged for off-line
mail.
Example: L,123,[S]can messages,,0
ΓòÉΓòÉΓòÉ 7.76. 130 - Address ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.77. 131 - ANSI color flag ΓòÉΓòÉΓòÉ
Menu Command: 131
Option Data:
Description: Change ANSI color flag.
Example: 1,131,ANSI Color,,0
ΓòÉΓòÉΓòÉ 7.78. 132 - High ASCII flag ΓòÉΓòÉΓòÉ
Menu Command: 132
Option Data:
Description: Change high ASCII (chars 128-255) flag.
Example: 1,132,High Ascii,,0
ΓòÉΓòÉΓòÉ 7.79. 133 - Cold input flag ΓòÉΓòÉΓòÉ
Menu Command: 133
Option Data:
Description: Change cold input flag (not hot key).
Example: 5,133,Cold Input,,0
ΓòÉΓòÉΓòÉ 7.80. 134 - Screen length ΓòÉΓòÉΓòÉ
Menu Command: 134
Option Data:
Description: Change screen length.
Example: 7,134,Length of screen,,0
ΓòÉΓòÉΓòÉ 7.81. 135 - Pause flag ΓòÉΓòÉΓòÉ
Menu Command: 135
Option Data:
Description: Change pause flag.
Example: 3,135,More Prompts,,0
ΓòÉΓòÉΓòÉ 7.82. 136 - Handle ΓòÉΓòÉΓòÉ
Menu Command: 136
Option Data: NONE
Description: Change handle.
Example: 3,136,Change Handle,,0
ΓòÉΓòÉΓòÉ 7.83. 137 - Password ΓòÉΓòÉΓòÉ
Menu Command: 137
Option Data:
Description: Change password.
Example: B,137,Change Password,,0
ΓòÉΓòÉΓòÉ 7.84. 138 - Screen width ΓòÉΓòÉΓòÉ
Menu Command: 138
Option Data:
Description: Change screen width.
Example: 6,138,Width of screen,,0
ΓòÉΓòÉΓòÉ 7.85. 139 - Phone number ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.86. 140 - User interests ΓòÉΓòÉΓòÉ
Menu Command: 140
Option Data:
Description: Change interests.
Example: E,140,Interest,,0
ΓòÉΓòÉΓòÉ 7.87. 141 - Display user info ΓòÉΓòÉΓòÉ
Menu Command: 141
Option Data:
Description: Change information to be shown to other users.
Example: E,141,Info Shown,,0
ΓòÉΓòÉΓòÉ 7.88. 142 - Expert mode ΓòÉΓòÉΓòÉ
Menu Command: 142
Option Data:
Description: Change expert mode.
Example: E,142,Expert Mode,,0
ΓòÉΓòÉΓòÉ 7.89. 144 - ANSI cursor flag ΓòÉΓòÉΓòÉ
Menu Command: 144
Option Data:
Description: Change ANSI cursor movement flag.
Example: A,144,Ansi Movement,,0
ΓòÉΓòÉΓòÉ 7.90. 145 - Set User misc. flags ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.91. 146 - File X-Fer protocol ΓòÉΓòÉΓòÉ
Menu Command: 146
Option Data:
Description: Change file transfer protocol.
Example: P,146,File Transfer [P]rotocol,,0
ΓòÉΓòÉΓòÉ 7.92. 147 - New message at logon flag ΓòÉΓòÉΓòÉ
Menu Command: 147
Option Data:
Description: Change new message at logon flag.
Example: N,147,Toggle New Messages At Logon,,0
ΓòÉΓòÉΓòÉ 7.93. 148 - New files at logon flag ΓòÉΓòÉΓòÉ
Menu Command: 148
Option Data:
Description: Change new files search at logon.
Example: N,148,Toggle New Files At Login,,0
ΓòÉΓòÉΓòÉ 7.94. 149 - Limit file list flag ΓòÉΓòÉΓòÉ
Menu Command: 149
Option Data:
Description: Change limit file list flag.
Example: L,149,Change Limit,,0
ΓòÉΓòÉΓòÉ 7.95. 150 - Misc news flags ΓòÉΓòÉΓòÉ
Menu Command: 150
Option Data:
Description: Change see misc. news.
Example: N,150,Toggle News,,0
ΓòÉΓòÉΓòÉ 7.96. 151 - Ask to download flag ΓòÉΓòÉΓòÉ
Menu Command: 151
Option Data:
Description: Change ask download.
Example: A,151,,,0
ΓòÉΓòÉΓòÉ 7.97. 152 - Chat availability flag ΓòÉΓòÉΓòÉ
Menu Command: 152
Option Data:
Description: Change user available for chat flag.
Example: C,152,Toggle Chat Flag,,0
ΓòÉΓòÉΓòÉ 7.98. 154 - Full screen flag ΓòÉΓòÉΓòÉ
Menu Command: 154
Option Data:
Description: Change full screen editor flag.
Example: 8,154,Full screen editor,,0
ΓòÉΓòÉΓòÉ 7.99. 155 - Export mail type flag ΓòÉΓòÉΓòÉ
Menu Command: 155
Option Data:
Description: Change mail export type.
Example: 8,155,Export Type,,0
ΓòÉΓòÉΓòÉ 7.100. 156 - User birthday flag ΓòÉΓòÉΓòÉ
Menu Command: 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!!
Note: Displays the localized date format.
Language.Text file prompt #320.
Example: D,156,Birthday,,0
ΓòÉΓòÉΓòÉ 7.101. 157 - Clear screen flag ΓòÉΓòÉΓòÉ
Menu Command: 157
Option Data:
Description: Change clear screen.
Example: 4,157,Clear Screen,,0
ΓòÉΓòÉΓòÉ 7.102. 158 - User computer type ΓòÉΓòÉΓòÉ
Menu Command: 158
Option Data:
Description: Change computer type.
Example: F,158,Computer Type,,0
ΓòÉΓòÉΓòÉ 7.103. 159 - Gender flag ΓòÉΓòÉΓòÉ
Menu Command: 159
Option Data:
Description: Change gender (should be used from NewUser.Menu
ONLY) Use sparingly.
Example: C,159,Change Gender,,0
ΓòÉΓòÉΓòÉ 7.104. 161 - Avatar flag ΓòÉΓòÉΓòÉ
Menu Command: 161
Option Data:
Description: Change to Avatar.
Example: A,161,Change to Avatar,,0
ΓòÉΓòÉΓòÉ 7.105. 162 - ANSI-TE2 flag ΓòÉΓòÉΓòÉ
Menu Command: 162
Option Data:
Description: Change ANSI-TE2.
Example: A,162,Ansi-Te2,,0
ΓòÉΓòÉΓòÉ 7.106. 163 - 8.3 file name conversion flag ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.107. 164 - Avatar/ANSI flags ΓòÉΓòÉΓòÉ
Menu Command: 164
Option Data:
Description: Change Avatar/Ansi Flags.
Example: C,164,Change Avatar/Ansi Flags,,0
ΓòÉΓòÉΓòÉ 7.108. 165 - View off-line mail status ΓòÉΓòÉΓòÉ
Menu Command: 165
Option Data:
Description: Change View off-line mail status.
Example: V,165,Toggle viewing,,0
ΓòÉΓòÉΓòÉ 7.109. 166 - Default archiver ΓòÉΓòÉΓòÉ
Menu Command: 166
Option Data:
Description: Change default archiver.
Example: I,166,Change Archiver,,0
ΓòÉΓòÉΓòÉ 7.110. 167 - Deposit bank time ΓòÉΓòÉΓòÉ
Menu Command: 167
Option Data:
Description: Deposit Bank Time.
Example: D,167,[D]eposit time,,0
ΓòÉΓòÉΓòÉ 7.111. 168 - Withdraw bank time ΓòÉΓòÉΓòÉ
Menu Command: 168
Option Data:
Description: Withdraw Bank Time
Example: W,168,[W]ithdraw time,,0
ΓòÉΓòÉΓòÉ 7.112. 170 - List files in current area ΓòÉΓòÉΓòÉ
Menu Command: 170
Option Data:
Description: List files in current area.
Note: Use Menu 70 for display Style-1.
Example: L,170,[L]ist File In This Area,,0
ΓòÉΓòÉΓòÉ 7.113. 171 - Search files in area - keyword ΓòÉΓòÉΓòÉ
Menu Command: 171
Option Data:
Description: Search files in current area. Asks for search
string.
Note: Use Menu 71 for display Style-1.
Example: 3,171,Current Area String to Match,,0
ΓòÉΓòÉΓòÉ 7.114. 172 - Search files in area - keyword / date ΓòÉΓòÉΓòÉ
Menu Command: 172
Option Data:
Description: Search files in current area newer than specified
date. Asks for search string and date.
Note: Use Menu 72 for display Style-1.
Example: 1,172,Current Area Date & String to Match,,15
ΓòÉΓòÉΓòÉ 7.115. 173 - Search new files in area - date ΓòÉΓòÉΓòÉ
Menu Command: 173
Option Data:
Description: New files in current area. asks for date.
Note: Use Menu 73 for display Style-1.
Example: 2,173,Current Area Date to Match,,15
ΓòÉΓòÉΓòÉ 7.116. 174 - Search new files in All areas - sequentially ΓòÉΓòÉΓòÉ
Menu Command: 174
Option Data:
Description: New files in all areas, searched sequentially.
Note: Use Menu 74 for display Style-1.
Example: 5,174,All Date to Match,,15
ΓòÉΓòÉΓòÉ 7.117. 175 - List All files - alphabetically ΓòÉΓòÉΓòÉ
Menu Command: 175
Option Data:
Description: List ALL files in alphabetical order.
Note: Use Menu 75 for display Style-1.
Example: 7,175,All A-Z Listing,,15
ΓòÉΓòÉΓòÉ 7.118. 176 - Search files in All areas - keyword ΓòÉΓòÉΓòÉ
Menu Command: 176
Option Data: Search String
Description: Search files in all areas. Asks for search string.
Note: Use Menu 76 for display Style-1.
Example: 6,176,All String to Match,,15
ΓòÉΓòÉΓòÉ 7.119. 177 - List files in area - chronologically ΓòÉΓòÉΓòÉ
Menu Command: 177
Option Data:
Description: List files in current area, in dated order newest to
oldest.
Note: Use 77 for display Style-1.
Example: 4,177,Current Area List Files,,15
ΓòÉΓòÉΓòÉ 7.120. 178 - List files in area - alphabetically ΓòÉΓòÉΓòÉ
Menu Command: 178
Option Data:
Description: List files in current area, in alphabetical order.
A->Z
Note: Use Menu 78 for display Style-1.
Example: L,178,[L]ist File In This Area,,15
ΓòÉΓòÉΓòÉ 7.121. 190 - Toggle bits in User1 attribute ΓòÉΓòÉΓòÉ
Menu Command: 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:
ΓòÉΓòÉΓòÉ 7.122. 191 - Toggle bits in User2 attribute ΓòÉΓòÉΓòÉ
Menu Command: 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:
ΓòÉΓòÉΓòÉ 7.123. 192 - Toggle bits in User1 flag ΓòÉΓòÉΓòÉ
Menu Command: 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:
ΓòÉΓòÉΓòÉ 7.124. 193 - Toggle bits in User2 flag ΓòÉΓòÉΓòÉ
Menu Command: 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:
ΓòÉΓòÉΓòÉ 7.125. 200 - Write message ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.126. 201 - Write message - NameData ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.127. 300 - Prompt user for data ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.128. 301 - Store DataField as user input ΓòÉΓòÉΓòÉ
Menu Command: 301
Option Data: Menu Name
Description: Temporarily stores text in data field as last user
input.
Example: N,300,Name,Joe,0
ΓòÉΓòÉΓòÉ 7.129. 305 - Get birthdate in European format ΓòÉΓòÉΓòÉ
Menu Command: 305
Option Data: NONE
Description: Prompt user for the birthdate in European format, ie
DD-MM-CCYY.
Note: Minimum and Maximum Age in
Config->BBS->General Settings... must be set for the
european dates to work.
Example: N,305,,,,,
ΓòÉΓòÉΓòÉ 7.130. 400 - Internode chat - DataField ΓòÉΓòÉΓòÉ
Menu Command: 400
Option Data: 'Chat Area'
Description: Internode chat, with Area defined in data field
Example: G,400,Chat About Games,Games,0
ΓòÉΓòÉΓòÉ 7.131. 601 - Toggle ANSI color flag ΓòÉΓòÉΓòÉ
Menu Command: 601
Option Data: NONE
Description: Toggles ANSI color flag
Example: T,601,Toggle Ansi Color,,0
ΓòÉΓòÉΓòÉ 7.132. 602 - Toggle High ANSI flag ΓòÉΓòÉΓòÉ
Menu Command: 602
Option Data: NONE
Description: Toggles high ASCII flag
Example: T,602,Toggle High Ascii,,0
ΓòÉΓòÉΓòÉ 7.133. 603 - Toggle More prompt ΓòÉΓòÉΓòÉ
Menu Command: 603
Option Data: NONE
Description: Toggles MORE prompt flag
Example: T,603,Toggle More Prompts,,0
ΓòÉΓòÉΓòÉ 7.134. 604 - Toggle Clear screen flag ΓòÉΓòÉΓòÉ
Menu Command: 604
Option Data: NONE
Description: Toggles clear screen flag
Example: T,604,Toggle Clear Screen,,0
ΓòÉΓòÉΓòÉ 7.135. 605 - Toggle Cold input flag ΓòÉΓòÉΓòÉ
Menu Command: 605
Option Data: NONE
Description: Toggles cold input flag
Example: 5,605,Cold Input,,0
ΓòÉΓòÉΓòÉ 7.136. 606 - Toggle Address flag ΓòÉΓòÉΓòÉ
Menu Command: 606
Option Data: NONE
Description: Toggles show address flag
Example: S,606,Show Address Toggle,,0
ΓòÉΓòÉΓòÉ 7.137. 607 - Toggle Phone flag ΓòÉΓòÉΓòÉ
Menu Command: 607
Option Data: NONE
Description: Toggles show phone flag
Example: S,607,Show Phone Toggle,,0
ΓòÉΓòÉΓòÉ 7.138. 608 - Toggle Real name flag ΓòÉΓòÉΓòÉ
Menu Command: 608
Option Data: NONE
Description: Toggles show real name flag.
Example: R,608,Show Real Name Toggle,,0
ΓòÉΓòÉΓòÉ 7.139. 609 - Toggle No kill flag ΓòÉΓòÉΓòÉ
Menu Command: 609
Option Data: NONE
Description: Toggles no kill flag.
Example: K,609,Toggle No Kill Flag,,0
ΓòÉΓòÉΓòÉ 7.140. 610 - Toggle deleted flag ΓòÉΓòÉΓòÉ
Menu Command: 610
Option Data: NONE
Description: Toggle deleted flag.
Example: D,610,Toggle Delete Flag,,0
ΓòÉΓòÉΓòÉ 7.141. 611 - Toggle Expert flag ΓòÉΓòÉΓòÉ
Menu Command: 611
Option Data: NONE
Description: Toggle expert flag.
Example: X,611,Toggle Expert Flag,,0
ΓòÉΓòÉΓòÉ 7.142. 612 - Toggle Twit flag ΓòÉΓòÉΓòÉ
Menu Command: 612
Option Data: NONE
Description: Toggle twit flag.
Example: T,612,Toggle Twit Flag,,0
ΓòÉΓòÉΓòÉ 7.143. 613 - Toggle New files flag ΓòÉΓòÉΓòÉ
Menu Command: 613
Option Data: NONE
Description: Toggle new files flag.
Example: N,613,Toggle New Files,,0
ΓòÉΓòÉΓòÉ 7.144. 614 - Toggle New messages flag ΓòÉΓòÉΓòÉ
Menu Command: 614
Option Data: NONE
Description: Toggle new messages flag.
Example: N,614,Toggle New Msgs,,0
ΓòÉΓòÉΓòÉ 7.145. 615 - Toggle DL New messages flag ΓòÉΓòÉΓòÉ
Menu Command: 615
Option Data: NONE
Description: Toggle download new messages flag.
Example: D,615,Toggle DL New Msgs,,0
ΓòÉΓòÉΓòÉ 7.146. 616 - Toggle DL New files flag ΓòÉΓòÉΓòÉ
Menu Command: 616
Option Data: NONE
Description: Toggle download new file list flag.
Example: D,616,Toggle DL New List,,0
ΓòÉΓòÉΓòÉ 7.147. 617 - Toggle View misc news flag ΓòÉΓòÉΓòÉ
Menu Command: 617
Option Data: NONE
Description: Toggle see misc. news flag.
Example: N,617,Toggle News,,0
ΓòÉΓòÉΓòÉ 7.148. 618 - Toggle Ask Download flag ΓòÉΓòÉΓòÉ
Menu Command: 618
Option Data: NONE
Description: Toggles ask download flag.
Example: D,618,,,0
ΓòÉΓòÉΓòÉ 7.149. 619 - Toggle Novice flag ΓòÉΓòÉΓòÉ
Menu Command: 619
Option Data: NONE
Description: Toggles novice flag.
Example: N,619,Toggle Novice,,0
ΓòÉΓòÉΓòÉ 7.150. 620 - Toggle Point mail only flag ΓòÉΓòÉΓòÉ
Menu Command: 620
Option Data: NONE
Description: Toggles point mail only flag.
Example: P,620,Toggle Point Only,,0
ΓòÉΓòÉΓòÉ 7.151. 622 - Toggle Locked-out flag ΓòÉΓòÉΓòÉ
Menu Command: 622
Option Data: NONE
Description: Toggles locked out flag.
Example: L,622,Toggle Locked Out,,0
ΓòÉΓòÉΓòÉ 7.152. 623 - Toggle Chat availablity flag ΓòÉΓòÉΓòÉ
Menu Command: 623
Option Data: NONE
Description: Toggles chat availability.
Example: C,623,Toggle Chat,,0
ΓòÉΓòÉΓòÉ 7.153. 624 - Toggle List user display flag ΓòÉΓòÉΓòÉ
Menu Command: 624
Option Data: NONE
Description: Toggles protected from user list display.
Example: P,624,Toggle Display,,0
ΓòÉΓòÉΓòÉ 7.154. 625 - Toggle Misc News display flag ΓòÉΓòÉΓòÉ
Menu Command: 625
Option Data: NONE
Description: Toggles misc. news display.
Example: N,625,Toggle News,,0
ΓòÉΓòÉΓòÉ 7.155. 626 - Toggle File list current area only flag ΓòÉΓòÉΓòÉ
Menu Command: 626
Option Data: NONE
Description: Toggles limit file list to current area.
Example: F,626,Toggle File List,,0
ΓòÉΓòÉΓòÉ 7.156. 628 - Toggle Verified flag ΓòÉΓòÉΓòÉ
Menu Command: 628
Option Data: NONE
Description: Toggles verified flag.
Example: V,628,Toggle Verified,,0
ΓòÉΓòÉΓòÉ 7.157. 629 - Toggle ANSI TE2 graphics flag ΓòÉΓòÉΓòÉ
Menu Command: 629
Option Data: NONE
Description: Toggles ANSI TE2 graphics.
Example: T,629,Toggle ANSI-TE2,,0
ΓòÉΓòÉΓòÉ 7.158. 630 - Toggle RIP graphics ΓòÉΓòÉΓòÉ
Menu Command: 630
Option Data: NONE
Description: Toggles RIP graphics.
Example: T,630,Toggle RIP,,0
ΓòÉΓòÉΓòÉ 7.159. 631 - Toggle ΓòÉΓòÉΓòÉ
Menu Command: 631
Option Data: NONE
Description: Toggle AVATAR graphics.
Example: T,631,Toggle Avatar,,0
ΓòÉΓòÉΓòÉ 7.160. 632 - Toggle Offline mail monitoring flag ΓòÉΓòÉΓòÉ
Menu Command: 632
Option Data: NONE
Description: Toggle off-line mail monitoring.
Example: I,632,[M]onitor,,0
ΓòÉΓòÉΓòÉ 7.161. 640 - Pack & DL Offline mail ΓòÉΓòÉΓòÉ
Menu Command: 640
Option Data: NONE
Description: Pack up and download off-line mail.
Example: P,640,Pack&DL,,0
ΓòÉΓòÉΓòÉ 7.162. 655 - Change Archiver ΓòÉΓòÉΓòÉ
Menu Command: 655
Option Data: NONE
Description: Change archiver.
Example: C,655,Change Archiver,,0
ΓòÉΓòÉΓòÉ 7.163. 656 - Edit File X-Fer list ΓòÉΓòÉΓòÉ
Menu Command: 657
Option Data: NONE
Description: Edit file transfer list (tagged files).
Example: E,656,Edit Tagged,,0
ΓòÉΓòÉΓòÉ 7.164. 700 - Tag All areas for Offline mail ΓòÉΓòÉΓòÉ
Menu Command: 700
Option Data: NONE
Description: Tag all areas for off-line mail.
Example: T,700,[T]ag All,,0
ΓòÉΓòÉΓòÉ 7.165. 701 - Untag all areas for Offline mail ΓòÉΓòÉΓòÉ
Menu Command: 701
Option Data: NONE
Description: Untag all areas for off-line mail.
Example: T,701,Untag All,,0
ΓòÉΓòÉΓòÉ 7.166. 702 - Toggle area for Offline mail - AreaData ΓòÉΓòÉΓòÉ
Menu Command: 702
Option Data: NONE
Description: Toggle a specific area for off-line mail.
Example: T,702,[T]ag/Untag Area,,0
ΓòÉΓòÉΓòÉ 7.167. 703 - Set mail export type ΓòÉΓòÉΓòÉ
Menu Command: 703
Option Data: NONE
Description: Change type of mail export (Text, QWK, Fido, etc).
Example: C,703,[S]elect Mail Type,,0
ΓòÉΓòÉΓòÉ 7.168. 704 - Edit Last message read ΓòÉΓòÉΓòÉ
Menu Command: 704
Option Data: NONE
Description: Message area Last message Read Editing.
Example: L,704,[L] Select Default Type,,0
ΓòÉΓòÉΓòÉ 7.169. 800 - Run OS/2 door ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.170. 801 - Spawn session door - ExeData ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.171. 802 - Spawn session door (I/O) ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.172. 803 - Spawn session door (Semaphores) ΓòÉΓòÉΓòÉ
Menu Command: 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:
ΓòÉΓòÉΓòÉ 7.173. 810 - Spawn session door (Adept environment) ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.174. 811 - Spawn session door (OS/2 environment) ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.175. 815 - Spawn session door (foreground) ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.176. 820 - Spawn session door (DOS background) ΓòÉΓòÉΓòÉ
Menu Command: 820
Option Data: Program Name/Batch File (COMMAND.COM /c Batch.Bat)
Description: Spawn a background DOS session door.
Note: Currently the door runner assumes that
"VX00.SYS" and the OS/2 "ANSI.SYS" is in the Adept
directory (if required) and that the Adept directory
is "X:\Adept".
Example: 1,820, Some Vague Door, VagueDor.Bat {LN,0
ΓòÉΓòÉΓòÉ 7.177. 821 - Spawn session door (DOS foreground) ΓòÉΓòÉΓòÉ
Menu Command: 821
Option Data: Program Name/Batch File (COMMAND.COM /c Batch.Bat)
Description: Spawn a foreground DOS session door.
Note: Currently the door runner assumes that
"VX00.SYS" and the OS/2 "ANSI.SYS" is in the Adept
directory (if required) and that the Adept directory
is "X:\Adept".
Example: 2,821, Yet Another Vague Door, YAVD.Bat {LN,0
ΓòÉΓòÉΓòÉ 7.178. 900 - Check mail ΓòÉΓòÉΓòÉ
Menu Command: 900
Option Data:
Description: Personal Mail Check
Example: C,900,Check Mail,,0
ΓòÉΓòÉΓòÉ 7.179. 950 - Shutdown BBS !! ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.180. 999 - LogOff - Leave message to Sysop ΓòÉΓòÉΓòÉ
Menu Command: 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
ΓòÉΓòÉΓòÉ 7.181. 1000 - LogOff ΓòÉΓòÉΓòÉ
Menu Command: 1000
Option Data: NONE
Description: Log use off, displays Goodbye.Asc and Prompt #202
(language.text) before hanging up.
Example: ~,1000,Goodbye/Logoff,,0
ΓòÉΓòÉΓòÉ 7.182. 1001 - Instant Logoff ΓòÉΓòÉΓòÉ
Menu Command: 1001
Option Data: NONE
Description: Instant log off.
Example: Y,1001,,,5
ΓòÉΓòÉΓòÉ 7.183. 1002 - LogOff &Re-LogOn ΓòÉΓòÉΓòÉ
Menu Command: 1002
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
ΓòÉΓòÉΓòÉ 7.184. 1003 - Change Language.Text ΓòÉΓòÉΓòÉ
Menu Command: 1003
Option Data: NONE
Description: This allows the user to select/change Language.Text
prompt files on the fly.
Example: L,1003,,,5
ΓòÉΓòÉΓòÉ <hidden> Adept Rexx Functions ΓòÉΓòÉΓòÉ
Overview of functions:
AdeptGetVersion
AdeptGetTempUser
AdeptGetTempUserVar
AdeptPutTempUserVar
AdeptFreeTempUser
AdeptSaveTempUser
Adept16BitCRC
Adept32BitCRC
AdeptAddToXferList
AdeptCall
AdeptChangeGroup
AdeptCheckCard
AdeptCheckBit
AdeptClearXferList
AdeptCls
AdeptConvert
AdeptCurPos
AdeptDropGlobalVar
AdeptFile
AdeptGetGlobalVar
AdeptGetVar
AdeptPutVar
AdeptGetUserVarByRecord
AdeptPutUserVarByRecord
AdeptHitReturn
AdeptInKey
AdeptInput
AdeptLibrary
AdeptLocation
AdeptLog
AdeptMenu
AdeptMenuType
AdeptMessage
AdeptMore
AdeptPause
AdeptPlayMM
AdeptPostTextMessage
AdeptExportTextMessages
AdeptPrint
AdeptPrintL
AdeptPutKey
AdeptRead
AdeptRecv
AdeptRequestsLogoff
AdeptSayGen
AdeptSend
AdeptSetBit
AdeptSetGlobalVar
AdeptSetTimer
AdeptShow
AdeptSleep
AdeptTimedInKey
AdeptTimeLeft
AdeptTimerUp
AdeptUnsetBit
AdeptWaitKey
AdeptWrite
AdeptBBS Variable Numbers:
ΓòÉΓòÉΓòÉ <hidden> AfSys Rexx Functions ΓòÉΓòÉΓòÉ
Overview of functions:
AfSysAddFile
AfSysAddIndexEntries
AfSysClose
AfSysDelFile
AfSysFindExact
AfSysFindFirstName
AfSysFindNextName
AfSysFirstName
AfSysGetAge
AFSysGetAreaFileList
AfSysGetCopyFile
AfSysGetDLAble
AfSysGetFileArea
AfSysGetFileDate
AfSysGetFileDESCRIPTION
AfSysGetFilename
AfSysGetFileSize
AfSysGetFreeBytes
AfSysGetFreeFile
AfSysGetFreeTime
AfSysGetListable
AfSysGetPathName
AfSysGetSecLevel
AfSysGetTimesDL
AfSysGetUploader
AfSysListFirst
AfSysListNext
AfSysMoveFile
AfSysOpen
AfSysRawReadFileRecord
AfSysReadDESCRIPTIONLine
AfSysReadFilePath
AfSysResetDescFilePtr
AfSysResetFilePtr
AfSysSetAge
AfSysSetCopyFile
AfSysSetDescOffset
AfSysSetDLAble
AfSysSetFileArea
AfSysSetFileDate
AfSysSetFileDESCRIPTION
AfSysSetFilename
AfSysSetFileRecord
AfSysSetFileSize
AfSysSetFreeFile
AfSysSetIndexAreaNumber
AfSysSetIndexEntryDate
AfSysSetIndexFileName
AfSysSetIndexRecordOffset
AfSysSetListable
AfSysSetPathIndex
AfSysSetReadDescFlag
AfSysSetSecLevel
AfSysSetUploader
AfSysWriteFilePath
AfSysZeroFileRecord
AdeptBBS Variable Numbers:
ΓòÉΓòÉΓòÉ <hidden> AdeptCom Rexx Functions ΓòÉΓòÉΓòÉ
Overview of functions:
AdeptComDial
AdeptComDoDTR
AdeptComFlush
AdeptComGetBlock
AdeptComGetByte
AdeptComGetString
AdeptComPeekByte
AdeptComPutC
AdeptComWaitConnect
AdeptComWrite
AdeptRawComClose
AdeptRawComGetBlock
AdeptRawComGetString
AdeptRawComLink
AdeptRawComOpen
AdeptRawComWrite
AdeptRawOpenSocket
AdeptRawSetBPS
AdeptBBS Variable Numbers:
ΓòÉΓòÉΓòÉ <hidden> AdeptSysChat Rexx Functions ΓòÉΓòÉΓòÉ
Overview of functions:
AdeptSysChatConnectUser
AdeptSysChatCustomMsg
AdeptSysChatGetMsg
AdeptSysChatInput
AdeptSysChatJoinConf
AdeptSysChatLeaveConf
AdeptSysChatMsg
AdeptSysChatMsgWaiting
AdeptSysChatNoPrePubMsg
AdeptSysChatPrivMsg
AdeptSysChatPubMsg
AdeptSysChatReconnectUser
AdeptSysChatUserConnected
AdeptSysCheckForServer
AChatGetMsg
AChatSendMsg
AdeptBBS Variable Numbers:
AdeptSysChat Constants:
ΓòÉΓòÉΓòÉ <hidden> Miscellaneous Rexx Functions ΓòÉΓòÉΓòÉ
Overview of functions:
AdeptChainRexx
AdeptChainRexxNc
AdeptKillRexxThread
AdeptStartRexxThread
AdeptStartRexxThreadNC
Print
Printf
ALStrip
ARStrip
AStripCR
AStripChars
AToUpper
AdeptDumpTossLog
ΓòÉΓòÉΓòÉ <hidden> AdeptREXX Functions ΓòÉΓòÉΓòÉ
BBS Functions
File System Functions
Communications Functions
ChatServer Functions
Miscellaneous Functions
ΓòÉΓòÉΓòÉ 8. AdeptREXX Functions ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 8.1. BBS Functions ΓòÉΓòÉΓòÉ
AdeptREXX BBS Functions:
AdeptGetVersion ( ) Returns the Current
Adept Version.
AdeptGetTempUser ( ) Gets a Temporary User
record.
AdeptGetTempUserVar ( ) Gets a Variable from a
Temporary User record.
AdeptPutTempUserVar ( ) Places value in a
Temporary User record.
AdeptFreeTempUser ( ) Frees the userid
record.
AdeptSaveTempUser ( ) Saves any changes made
to the userid record.
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.
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.
AdeptGetUserVarByRecord ( ) Returns UserVariables 1
thru 57 by userfile
record number.
AdeptPutUserVarByRecord ( ) Sets UserVariables 1
thru 57 by userfile
record number.
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.
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.
AdeptExportTextMessages ( ) Export selected
messages the AdeptXBase
message base area to a
file.
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).
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.
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.
AdeptBBS Variable Numbers AdeptXBBS User Info,
BBS Info, Modem/Mailer
Info Variables.
ΓòÉΓòÉΓòÉ 8.1.1. AdeptGetVersion ΓòÉΓòÉΓòÉ
AdeptGetVersion ( )
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
ΓòÉΓòÉΓòÉ 8.1.2. AdeptGetTempUser ΓòÉΓòÉΓòÉ
AdeptGetTempUser ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.1.3. AdeptGetTempUserVar ΓòÉΓòÉΓòÉ
AdeptGetTempUserVar ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.1.4. AdeptPutTempUserVar ΓòÉΓòÉΓòÉ
AdeptPutTempUserVar ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.1.5. AdeptFreeTempUser ΓòÉΓòÉΓòÉ
AdeptFreeTempUser ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.1.6. AdeptSaveTempUser ΓòÉΓòÉΓòÉ
AdeptSaveTempUser ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.1.7. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.8. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.9. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.10. 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
ΓòÉΓòÉΓòÉ 8.1.11. 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
ΓòÉΓòÉΓòÉ 8.1.12. 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
ΓòÉΓòÉΓòÉ 8.1.13. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.14. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.15. 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
ΓòÉΓòÉΓòÉ 8.1.16. 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
ΓòÉΓòÉΓòÉ 8.1.17. 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
ΓòÉΓòÉΓòÉ 8.1.18. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.19. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.20. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.21. AdeptGetVar ΓòÉΓòÉΓòÉ
AdeptGetVar ( )
Description: Retrives any of the AdeptXBBS Variables. This
function duplicates some of the functions in the
AdeptREXX language.
Syntax: rc = AdeptGetVar(LineNumber, Variable)
Arguments:
Line Number: Node Number passed to REXX
routine from Adept as first
parameter.
Variable: Number of AdeptXBBS Variable to
return.
Returns: The value of the of the Variable
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 ( )
AdeptGetUserVarByRecord ( )
AdeptPutUserVarByRecord ( )
ΓòÉΓòÉΓòÉ 8.1.22. AdeptPutVar ΓòÉΓòÉΓòÉ
AdeptPutVar ( )
Description: Sets any of the AdeptXBBS Variables. This function
duplicates some of the functions in the AdeptREXX
language.
Syntax: rc = AdeptPutVar(LineNumber, Variable, Data)
Arguments:
Line Number: Node Number passed to REXX
routine from Adept as first
parameter.
Variable: Number of AdeptXBBS Variable to
Set.
Data: Data that is to be placed in
Variable.
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 ( )
AdeptGetUserVarByRecord ( )
AdeptPutUserVarByRecord ( )
ΓòÉΓòÉΓòÉ 8.1.23. AdeptGetUserVarByRecord ΓòÉΓòÉΓòÉ
AdeptGetUserVarByRecord ( )
Description: Returns User Variables 1 thru 57 by UserFile record
number.
Syntax: rc = AdeptGetUserVarByRecord(LineNumber,
RecordNumber, UserVariable)
Arguments:
Line Number: Node Number passed to REXX
routine from Adept as first
parameter.
Record Number: UserFile record index number.
Note: The User file index
starts at 1 not 0.
UserVariable: Number of AdeptXBBS UserVariable
to be returned. (1 thru 57 are
valid)
Returns: The value of the of the UserVariable
Notes: The RecordNumber is not the UserID, unless the
UserFile has been ReIndexed (uNuke.Exe -r). The
UserID is available however as one of the
UserVariables.
Example: The following example calls AdeptGetUserVarByRecord,
and returns the users handle for record number 24.
rc = AdeptGetUserVarByRecord(LineNumber, 24, 2)
AdeptPrint(LineNumber, rc)
AdeptPrint(LineNumber, "\r\n")
Related: AdeptGetVar ( )
AdeptPutVar ( )
AdeptPutUserVarByRecord ( )
ΓòÉΓòÉΓòÉ 8.1.24. AdeptPutUserVarByRecord ΓòÉΓòÉΓòÉ
AdeptPutUserVarByRecord ( )
Description: Sets User Variables 1 thru 49 & 52 thru 57 by
UserFile record number.
Syntax: Call AdeptPutUserVarByRecord LineNumber,
RecordNumber, UserVariable, Data
Arguments:
Line Number: Node Number passed to REXX
routine from Adept as first
parameter.
Record Number: UserFile record index number.
Note: The User file index
starts at 1 not 0.
UserVariable: Number of AdeptXBBS UserVariable
to be set. (1 thru 49 & 52 thru
57 are valid)
Data: Data that is to be placed in
UserVariable.
Returns: N/A
Notes: The RecordNumber is not the UserID, unless the
UserFile has been ReIndexed (UNuke.Exe -r). The
UserID is available however as one of the
UserVariables.
UserVariables 1 thru 49 & 52 thru 57 are valid,
Variables 50 & 51 are not "PUTable".
Example: The following example calls AdeptPutUserVarByRecord
and sets the users handle to "BoneHead" for record
number 24.
Call AdeptPutUserVarByRecord LineNumber, 24, 2, "BoneHead"
Related: AdeptGetVar ( )
AdeptPutVar ( )
AdeptGetUserVarByRecord ( )
ΓòÉΓòÉΓòÉ 8.1.25. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.26. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.27. 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_ALPHANUMERIC Letters
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 ( )
ΓòÉΓòÉΓòÉ 8.1.28. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.29. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.30. 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.
(spawning the session)
Returns: N/A
Notes: N/A
Example: The following example calls AdeptLog, and logs the
User's activity.
Call AdeptLog LineNumber,2, "Mylog"
Call AdeptLog LineNumber,1,1, "MainMenu Started"
Related: N/A
ΓòÉΓòÉΓòÉ 8.1.31. 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
ΓòÉΓòÉΓòÉ 8.1.32. 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
ΓòÉΓòÉΓòÉ 8.1.33. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.34. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.35. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.36. 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
ΓòÉΓòÉΓòÉ 8.1.37. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.38. AdeptExportTextMessages ΓòÉΓòÉΓòÉ
AdeptExportTextMessages ( )
Description: Export selected messages from any native AdeptXBase
message base area to a specified text file.
Syntax: Call AdeptExportTextMessages Line, AreaNum,
AreaName, Subject, ExportFileName, CTL_A, DelMsgs
rc = AdeptExportTextMessages(Line, AreaNum,
AreaName, Subject, ExportFileName, CTL_A, DelMsgs)
Arguments:
Line Number: Node Number passed to REXX
routine from Adept as first
parameter.
AreaNum: Message area number to be
exported.
AreaName: Name of the message area to be
exported.
Subject: The subject text to be matched
in the messages from the
specified area(s).
ExportFileName: Name of the text file for
exporting the messages to.
CTL_A:
0 The export kludge ^A lines
are not required.
1 The export kludge ^A lines
are required.
DelMsgs:
0 Do not delete the exported
messages.
1 Mark the exported messages
as deleted.
Returns: N/A
Notes: - At least one message area or number must be
specified.
- The export message header uses Language.Text's
lines #441-447 (as does the normal message export).
- AdeptExportTextMessages() will only work for
native AdeptXMsg bases (for now).
- The AdeptExportTextMessages() function is
currently CPU intensive...
Example: The following example calls AdeptExportTextMessages,
exporting all messages which have the subject line
as "TeStiNg" (case insensitive) from Area #2 to a
file "Export.Text" to the root of the current drive,
not exporting the kludge lines, and deleting the
messages that are exported.
AdeptExportTextMessages( AdeptLineNumber, 2,, 'TeStiNg!', '\Export.Text', 0, 1 )
Related: N/A
ΓòÉΓòÉΓòÉ 8.1.39. 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! <User> to
<BBS Name>, you are User number 12." to the User on
that linenumber.
UserNumb = 12
AdeptPrint(LineNumber, "Hello {U0, Welcome to {S6, you are User number ", UserNumb, ".")
Related: AdeptPrintL ( )
ΓòÉΓòÉΓòÉ 8.1.40. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.41. 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
ΓòÉΓòÉΓòÉ 8.1.42. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.43. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.44. AdeptRequestsLogoff ΓòÉΓòÉΓòÉ
AdeptRequestsLogoff ( )
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
ΓòÉΓòÉΓòÉ 8.1.45. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.46. 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 Kill After Transfer.
2 Truncate After Transfer.
4 Free Time. (no time
subtracted)
8 Free File. (not added to
the byte count and free
time)
16 Free bytes. (bytes are
not added to the count)
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: Do not use trailing backslashes. For example:
Call AdeptSend AdeptLineNumber,8,'','\FAQ.Txt'
results in '\FAQ.Txt', and is acceptable, but:
Call AdeptSend AdeptLineNumber,8,'G:','\FAQ.Txt'
results in 'G:\\FAQ.Txt', and will cause the
function to fail.
Example: The following example will Send the file(s) that is
in the file called List.
Call AdeptSend LineNumber,,,'@C:\List')
Related: AdeptRecv ( )
AdeptAddToXFerList ( )
ΓòÉΓòÉΓòÉ 8.1.47. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.48. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.49. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.50. 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
ΓòÉΓòÉΓòÉ 8.1.51. 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
ΓòÉΓòÉΓòÉ 8.1.52. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.53. 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
ΓòÉΓòÉΓòÉ 8.1.54. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.55. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.56. 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 ( )
ΓòÉΓòÉΓòÉ 8.1.57. 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 ( )
ΓòÉΓòÉΓòÉ <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 User Flags #1 (returned as a 32-bit long) *
43 User Flags #2 (returned as a 32-bit long) *
44 User Attributes #1 (returned as a 32-bit long) *
45 User Attributes #2 (returned 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 #1 (returned as a 32-bit long) *
116 BBS User Default Attribs #2 (returned as a 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 Attribs #1 (32-bit long) *
139 BBS Attribs #2 (32-bit long) *
283 BBS Attribs #3 (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
Note: * - The symbolic flag names as "#defined" in the
Appendix, are available to the AdeptREXX scripts if
AdeptInitRexx is called.
ΓòÉΓòÉΓòÉ 8.2. 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
AfSysFindExact ( ) Loads a file's
record by Name and
Area.
AfSysFindFirstName ( ) Loads the First
file record by the
Name matching a
search string.
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".
AfSysGetFileDESCRIPTION ( ) Copies the
DESCRIPTION for the
current file
record.
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".
AFSysGetAreaFileList ( ) Undocumented
AfSysGetFileDate ( ) Returns the Date
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".
AfSysGetPathName ( ) Returns the file
Path in Text
format.
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.
AfSysListNext ( ) Loads the Next file
record as found in
the criteria
indicated by
AfSysListFirst.
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.
AfSysRawReadFileRecord ( ) Reads Rrom the
current file
pointer to the End
of the record.
AfSysReadDESCRIPTIONLine ( ) Reads in the
DESCRIPTION file
line by line.
AfSysReadFilePath ( ) Reads in the
physical path
associated with the
Path Index
AfSysResetDescFilePtr ( ) Sets the file
pointer to the
Beginning of the
DESCRIPTION file.
AfSysResetFilePtr ( ) Sets the file
pointer to the
Beginning of the
file.
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.
AfSysSetFreeFile ( ) Sets the "Free"
status for the
current file
record.
AfSysSetFilename ( ) Sets the File Name
for the current
file record.
AfSysSetIndexAreaNumber ( ) Sets the Area
Number for the
current file record
in the Index files.
AfSysSetIndexEntryDate ( ) Sets the Date for
the current file
record in the Date
Index.
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)
AfSysSetListable ( ) Sets file as
Listable.
AfSysSetPathIndex ( ) Sets the Path Index
for a physical
file.
AfSysSetReadDescFlag ( ) Sets the reading of
DESCRIPTION to 'ON'
or 'OFF' (when
reading in the file
data record).
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.
ΓòÉΓòÉΓòÉ 8.2.1. AfSysAddFile ΓòÉΓòÉΓòÉ
AfSysAddFile ( )
Description: Undocumented
Syntax: N/A
Arguments:
N/A
Returns: N/A
Notes: N/A
Example: N/A
Related: AfSysDelFile ( )
AfSysMoveFile ( )
ΓòÉΓòÉΓòÉ 8.2.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:
ΓòÉΓòÉΓòÉ 8.2.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 ( )
ΓòÉΓòÉΓòÉ 8.2.4. AfSysDelFile ΓòÉΓòÉΓòÉ
AfSysDelFile ( )
Description: Undocumented
Syntax: N/A
Arguments:
N/A
Returns: N/A
Notes: N/A
Example: N/A
Related: AfSysAddFile ( )
AfSysMoveFile ( )
ΓòÉΓòÉΓòÉ 8.2.5. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.6. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.7. AfSysListNext ΓòÉΓòÉΓòÉ
AfSysListNext ( )
Description: Loads the Next file record as found in the criteria
indicated by AfSysListFirst.
Syntax: call AfSysListNext(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 ( )
ΓòÉΓòÉΓòÉ 8.2.8. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.9. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.10. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.11. AFSysGetAreaFileList ΓòÉΓòÉΓòÉ
AFSysGetAreaFileList ( )
Description: Undocumented
Syntax: N/A
Arguments:
N/A
Returns: N/A
Notes: N/A
Example: N/A
Related: AfSysGetFileArea ( )
AfSysSetFileArea ( )
ΓòÉΓòÉΓòÉ 8.2.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 ( )
ΓòÉΓòÉΓòÉ 8.2.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 ( )
ΓòÉΓòÉΓòÉ 8.2.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: AFSysGetAreaFileList ( )
AfSysSetFileArea ( )
ΓòÉΓòÉΓòÉ 8.2.15. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.16. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.17. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.18. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.19. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.20. 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: AfSysSetFreeFile ( )
AfSysGetFreeBytes ( )
AfSysGetFreeTime ( )
ΓòÉΓòÉΓòÉ 8.2.21. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.22. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.23. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.24. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.25. 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
ΓòÉΓòÉΓòÉ 8.2.26. 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
ΓòÉΓòÉΓòÉ 8.2.27. 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: AfSysListNext ( )
ΓòÉΓòÉΓòÉ 8.2.28. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.29. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.30. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.31. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.32. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.33. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.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 ( )
ΓòÉΓòÉΓòÉ 8.2.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 ( )
ΓòÉΓòÉΓòÉ 8.2.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 ( )
ΓòÉΓòÉΓòÉ 8.2.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 ( )
ΓòÉΓòÉΓòÉ 8.2.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 ( )
AFSysGetAreaFileList ( )
ΓòÉΓòÉΓòÉ 8.2.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 ( )
ΓòÉΓòÉΓòÉ 8.2.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 ( )
ΓòÉΓòÉΓòÉ 8.2.41. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.42. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.43. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.44. AfSysSetFreeFile ΓòÉΓòÉΓòÉ
AfSysSetFreeFile ( )
Description: Sets the "Free" status for the current file record.
Syntax: Call AfSysSetFreeFile(fSysHandle, Bool)
Arguments:
fSysHandle: Handle to the currently open
file system. Created by
AfSysOpen.
Bool: "TRUE" / "FALSE"
Returns: 0 - No Error
>0 - Error
Notes: N/A
Example: N/A
Related: AfSysGetFreeFile ( )
ΓòÉΓòÉΓòÉ 8.2.45. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.46. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.47. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.48. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.49. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.50. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.51. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.52. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.53. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.54. 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
ΓòÉΓòÉΓòÉ 8.2.55. 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 ( )
ΓòÉΓòÉΓòÉ 8.2.56. 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 ( )
ΓòÉΓòÉΓòÉ 8.3. 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.
ΓòÉΓòÉΓòÉ 8.3.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 ( )
ΓòÉΓòÉΓòÉ 8.3.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
ΓòÉΓòÉΓòÉ 8.3.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
ΓòÉΓòÉΓòÉ 8.3.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 ( )
ΓòÉΓòÉΓòÉ 8.3.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 ( )
ΓòÉΓòÉΓòÉ 8.3.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 ( )
ΓòÉΓòÉΓòÉ 8.3.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 ( )
ΓòÉΓòÉΓòÉ 8.3.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
ΓòÉΓòÉΓòÉ 8.3.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 ( )
ΓòÉΓòÉΓòÉ 8.3.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
ΓòÉΓòÉΓòÉ 8.3.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 ( )
ΓòÉΓòÉΓòÉ 8.3.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 ( )
ΓòÉΓòÉΓòÉ 8.3.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 ( )
ΓòÉΓòÉΓòÉ 8.3.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.
- AdeptRawComLink will accept an escape sequence of
"===000", if entered by either the remote or local
host, it will then drop the linked connection.
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
ΓòÉΓòÉΓòÉ 8.3.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 ( )
ΓòÉΓòÉΓòÉ 8.3.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
ΓòÉΓòÉΓòÉ 8.3.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
ΓòÉΓòÉΓòÉ 8.3.18. AdeptRawSetBPS ΓòÉΓòÉΓòÉ
AdeptRawSetBPS ( )
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
ΓòÉΓòÉΓòÉ 8.4. Chat Functions ΓòÉΓòÉΓòÉ
AdeptREXX Chat "ChatServer" Functions:
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.
AdeptSysChatMsg ( ) Sends a chat
message to a user.
AdeptSysChatMsgWaiting ( ) Checks to see if
the User has a chat
messages waiting.
AdeptSysChatNoPrePubMsg ( ) Undocumented
AdeptSysChatPrivMsg ( ) Sends a private
message to a user.
AdeptSysChatPubMsg ( ) Sends a public
message in the
current conference.
AdeptSysChatReconnectUser ( ) Reconnects a user
to the chat server.
AdeptSysChatUserConnected ( ) Checks that the
user is properly
connected to the
Chat server.
AdeptSysCheckForServer ( ) Checks that the
Chat server is
available.
AChatGetMsg ( ) Undocumented
AChatSendMsg ( ) This function is
untested... (may be
removed)
AdeptREXX Chat Constants
Note: AdeptInitREXX(line) must be called first.
ΓòÉΓòÉΓòÉ 8.4.1. AdeptSysChatConnectUser ΓòÉΓòÉΓòÉ
AdeptSysChatConnectUser ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.4.2. AdeptSysChatCustomMsg ΓòÉΓòÉΓòÉ
AdeptSysChatCustomMsg ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.4.3. AdeptSysChatGetMsg ΓòÉΓòÉΓòÉ
AdeptSysChatGetMsg ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.4.4. AdeptSysChatInput ΓòÉΓòÉΓòÉ
AdeptSysChatInput ( )
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
ΓòÉΓòÉΓòÉ 8.4.5. AdeptSysChatJoinConf ΓòÉΓòÉΓòÉ
AdeptSysChatJoinConf ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.4.6. AdeptSysChatLeaveConf ΓòÉΓòÉΓòÉ
AdeptSysChatLeaveConf ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.4.7. AdeptSysChatMsg ΓòÉΓòÉΓòÉ
AdeptSysChatMsg ( )
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
ΓòÉΓòÉΓòÉ 8.4.8. AdeptSysChatMsgWaiting ΓòÉΓòÉΓòÉ
AdeptSysChatMsgWaiting ( )
Description: Checks to see if the User on LineNumber has a chat
message waiting.
Syntax: rc = AdeptSysChatMsgWaiting(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
ΓòÉΓòÉΓòÉ 8.4.9. AdeptSysChatNoPrePubMsg ΓòÉΓòÉΓòÉ
AdeptSysChatNoPrePubMsg ( )
Description: Undocumented
Syntax: N/A
Arguments:
N/A
Returns: N/A
Notes: N/A
Example: N/A
Related:
ΓòÉΓòÉΓòÉ 8.4.10. AdeptSysChatPrivMsg ΓòÉΓòÉΓòÉ
AdeptSysChatPrivMsg ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.4.11. AdeptSysChatPubMsg ΓòÉΓòÉΓòÉ
AdeptSysChatPubMsg ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.4.12. AdeptSysChatReconnectUser ΓòÉΓòÉΓòÉ
AdeptSysChatReconnectUser ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.4.13. AdeptSysChatUserConnected ΓòÉΓòÉΓòÉ
AdeptSysChatUserConnected ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.4.14. AdeptSysCheckForServer ΓòÉΓòÉΓòÉ
AdeptSysCheckForServer ( )
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
ΓòÉΓòÉΓòÉ 8.4.15. AChatGetMsg ΓòÉΓòÉΓòÉ
AChatGetMsg ( )
Description: Undocumented
Syntax: N/A
Arguments:
N/A
Returns: N/A
Notes: N/A
Example: N/A
Related:
ΓòÉΓòÉΓòÉ 8.4.16. 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
ΓòÉΓòÉΓòÉ <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.
ΓòÉΓòÉΓòÉ 8.5. Miscellaneous Functions ΓòÉΓòÉΓòÉ
AdeptREXX Miscellaneous Functions:
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.
AdeptKillRexxThread ( ) Terminates the rexx
thread with the ID
"TID".
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.
AdeptDumpTossLog ( ) Force Adept to
append to the
AdeptToss.Log, the
net/echo areas in
which new messages
have been posted
to.
Print ( ) Displays the
argument(s) on the
given line.
Printf ( ) Sends the argument
to pmprintf.
ALStrip ( ) Strip ASCII
Charactersto the
Left.
ARStrip ( ) Strip ASCII
Charactersto the
Right.
AStripCR ( ) Remove the Carridge
Return (CR) from a
string.
AStripChars ( ) Remove a specific
sequence of
characters from a
string.
AToUpper ( ) Convert string(s)
to upper-case.
ΓòÉΓòÉΓòÉ 8.5.1. 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 ( )
ΓòÉΓòÉΓòÉ 8.5.2. 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 ( )
ΓòÉΓòÉΓòÉ 8.5.3. 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 ( )
ΓòÉΓòÉΓòÉ 8.5.4. 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 ( )
ΓòÉΓòÉΓòÉ 8.5.5. AdeptStartRexxThreadNC ΓòÉΓòÉΓòÉ
AdeptStartRexxThreadNC ( )
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 ( )
ΓòÉΓòÉΓòÉ 8.5.6. AdeptDumpTossLog ΓòÉΓòÉΓòÉ
AdeptDumpTossLog ( )
Description: Forces Adept to write to the AdeptToss.Log, the
net/echo areas in which new messages have been
posted to.
Syntax: Call AdeptDumpTossLog ()
Arguments:
None:
Returns: N/A
Notes: Mainly for testing, debugging and special cases. -
not meant (or required) for normal use.
Example: The following example will force Adept to write to
the AdeptToss.Log file.
AdeptDumpTossLog()
Related: N/A
ΓòÉΓòÉΓòÉ 8.5.7. 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 ( )
ΓòÉΓòÉΓòÉ 8.5.8. 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
ΓòÉΓòÉΓòÉ 8.5.9. ALStrip ΓòÉΓòÉΓòÉ
ALStrip ( )
Description: Removes trailing ASCII space or null characters from
a string.
Syntax: rc = ALStrip(String)
Arguments:
String: String to be stripped of
trailing characters.
Returns: Converted(concatinated) stripped string.
Notes: N/A
Example: The following example calls ALStrip, printing both:
"| I like to ALStrip !! |", and
"|I like to ALStrip !! |".
String1=' I like to ARStrip !! '
AdeptPrint(line,"|",String1,"|" "\r\n\n")
String5= ARStrip(String1)
AdeptPrint(line,"|",String5,"|" "\r\n\n")
Related: ARStrip ( )
ΓòÉΓòÉΓòÉ 8.5.10. ARStrip ΓòÉΓòÉΓòÉ
ARStrip ( )
Description: Removes leading ASCII space or null characters from
a string.
Syntax: rc = ARStrip(String)
Arguments:
String: String to be stripped of leading
characters.
Returns: Converted(concatinated) stripped string.
Notes: N/A
Example: The following example calls ARStrip, printing both:
"| I like to ARStrip !! |", and
"| I like to ALStrip !!|".
String1=' I like to ARStrip !! '
AdeptPrint(line,"|",String1,"|" "\r\n\n")
String5= ARStrip(String1)
AdeptPrint(line,"|",String5,"|" "\r\n\n")
Related: ALStrip ( )
ΓòÉΓòÉΓòÉ 8.5.11. AStripCR ΓòÉΓòÉΓòÉ
AStripCR ( )
Description: Remove the Carridge Return (CR) from a string.
Syntax: rc = AStripCR(String1)
Arguments:
String1: String to be stripped of the CR.
Returns: String stripped of the CR.
Notes: N/A
Example: The following example calls AStripCR, printing both:
"Hello
Wacky
World"
and the stripped string: "Hello Wacky World"
Name1='Hello' || x2c('0d0a')
Name2='Wacky' || x2c('0d0a')
Name3='World' || x2c('0d0a')
AdeptPrint(line, Name1 Name2 Name3"\r\n\n")
Name4 = AStripCR(Name1)
Name5 = AStripCR(Name2)
Name6 = AStripCR(Name3)
AdeptPrint(line, Name4 Name5 Name6 "\r\n\n")
Related: N/A
ΓòÉΓòÉΓòÉ 8.5.12. AStripChars ΓòÉΓòÉΓòÉ
AStripChars ( )
Description: Remove all occurances of a specific sequence(s) of
characters from passed string(s).
Syntax: rc = AStripChars(String1 ... , Arg1 ...)
Arguments:
String1 ...: String(s) containing the
characters to be stripped (and
concatenated).
Arg1 ...: String(s) of specific characters
to be stripped from String1.
Returns: String - stripped(concatenated)
Notes: N/A
Example: The following example calls AStripChars, printing
"Hello Hello World Wide Web" and then the
stripped(concatenated) string:
"He He WoWieWe" (Hello Hello World Wide Web).
Name1='Hello Hello'
Name2='World Wide Web'
AdeptPrint(line, Name1 Name2 "\r\n\n")
Name3 = AStripChars(Name1, "llo")
Name4 = AStripChars(Name2, "rl" "d" "b")
AdeptPrint(line, Name3 Name4 "\r\n\n")
Related: N/A
ΓòÉΓòÉΓòÉ 8.5.13. AToUpper ΓòÉΓòÉΓòÉ
AToUpper ( )
Description: Convert ASCII string(s) to upper-case.
Syntax: rc = AToUpper(String1 ...)
Arguments:
String1 ...: String(s) to be
converted(concatenated) to
upper-case.
Returns: Converted(concatinated) upper-case string.
Notes: N/A
Example: The following example calls AToUpper, printing both
"Hello World" and "HELLO WORLD"
Name1='Hello'
Name2='World'
AdeptPrint(line, Name1 Name2 "\r\n\n")
Name3 = AToUpper(Name1 Name2)
AdeptPrint(line, Name3 "\r\n\n")
Related: N/A
ΓòÉΓòÉΓòÉ <hidden> Adept Utilities Catagories ΓòÉΓòÉΓòÉ
Adept Utilities:
BFSMake.Exe
fUtil.Exe
fList.Exe
ReIndexFile.Exe
XMsg.Exe
ChatServer.Exe
CServer.Exe
uNuke.Exe
ReadArc.Cmd
XSendPM.Exe
GateKpr.Exe
ΓòÉΓòÉΓòÉ 9. AdeptXBBS Utilities ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 9.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.
ΓòÉΓòÉΓòÉ 9.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.
ΓòÉΓòÉΓòÉ 9.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.
ΓòÉΓòÉΓòÉ 9.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.
ΓòÉΓòÉΓòÉ 9.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"
ΓòÉΓòÉΓòÉ 9.6. ChatServer.Exe ΓòÉΓòÉΓòÉ
ChatServer.Exe:
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"
ΓòÉΓòÉΓòÉ 9.7. CServer.Exe * ΓòÉΓòÉΓòÉ
CServer.Exe:
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.
ΓòÉΓòÉΓòÉ 9.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.
ΓòÉΓòÉΓòÉ 9.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
ΓòÉΓòÉΓòÉ 9.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.
ΓòÉΓòÉΓòÉ 9.11. GateKpr.Exe ΓòÉΓòÉΓòÉ
GateKpr.Exe:
GateKpr (Gate Keeper) - An AdeptXBBS FidoNet Mail Tosser
Handles all the functions needed to import and export FIDO echos.
ΓòÉΓòÉΓòÉ 9.12. Appendix Catagories ΓòÉΓòÉΓòÉ
Appendix Catagories:
Appendix A
Sample ASCII Menu Files.
Appendix B
BBS Structure.
Appendix C
User Base Structure.
Appendix D
Message Base Structure.
Appendix E
File Area Structure.
Appendix F
Message Area Structure.
Appendix G
Library Area Structure.
Appendix H
Group Structure.
Appendix I
File System Structure.
Appendix J
Message Base Index Structure.
Appendix K
Miscellaneous Structures.
ΓòÉΓòÉΓòÉ 10. Appendix ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 10.1. Sample ASCII Menu files ΓòÉΓòÉΓòÉ
Appendix A - Sample ASCII "*.MENU" Files:
Sample 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
Sample "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
Sample "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
ΓòÉΓòÉΓòÉ 10.2. BBS Structure ΓòÉΓòÉΓòÉ
Appendix B - AdeptXBBS BBS Structure:
Note: The following symbolic flag names are available to the AdeptREXX
scripts if AdeptInitRexx is called.
Symbolic flag names for the 'bbs.attribs' bits:
#define B_LOGALLHELP 0x00000001
#define B_PREREGISTERED 0x00000002
#define B_NOPRETTY 0x00000004
#define B_INTL 0x00000008
#define B_NOHAPPY 0x00000010
#define B_ANSINEWS 0x00000020
#define B_NODUPENUMS 0x00000040
#define B_COLOR 0x00000080
#define B_HIGHASCII 0x00000100
#define B_PAUSE 0x00000200
#define B_CLEAR 0x00000400
#define B_COLD 0x00000800
#define B_WIDTH 0x00001000
#define B_LENGTH 0x00002000
#define B_SHOW 0x00004000
#define B_PHONE 0x00008000
#define B_ADDRESS 0x00010000
#define B_HANDLE 0x00020000
#define B_PASSWORD 0x00040000
#define B_INTERESTS 0x00080000
#define B_COMPUTERS 0x00100000
#define B_NO_NEW_EDIT 0x00200000
#define B_LOGONQUOTE 0x00400000
#define B_COMPRESS 0x00800000
#define B_LOGOFFQUOTE 0x01000000
#define B_LOGOFFMSG 0x02000000
#define B_FIRSTLOGMSG 0x04000000
#define B_FIRSTLOGCALLBK 0x08000000
#define B_ALWAYSCALLBACK 0x10000000
#define B_AUTOPASSWORDS 0x20000000
#define B_FOLLOWBBS 0x40000000
#define B_SYSOPIN 0x80000000
#define BIT_1 0x00000001
#define BIT_2 0x00000002
#define BIT_3 0x00000004
#define BIT_4 0x00000008
#define BIT_5 0x00000010
#define BIT_6 0x00000020
#define BIT_7 0x00000040
#define BIT_8 0x00000080
#define BIT_9 0x00000100
#define BIT_10 0x00000200
#define BIT_11 0x00000400
#define BIT_12 0x00000800
#define BIT_13 0x00001000
#define BIT_14 0x00002000
#define BIT_15 0x00004000
#define BIT_16 0x00008000
#define BIT_17 0x00010000
#define BIT_18 0x00020000
#define BIT_19 0x00040000
#define BIT_20 0x00080000
#define BIT_21 0x00100000
#define BIT_22 0x00200000
#define BIT_23 0x00400000
#define BIT_24 0x00800000
#define BIT_25 0x01000000
#define BIT_26 0x02000000
#define BIT_27 0x04000000
#define BIT_28 0x08000000
#define BIT_29 0x10000000
#define BIT_30 0x20000000
#define BIT_31 0x40000000
#define BIT_32 0x80000000
Symbolic flag names for the 'bbs.attribs2' bits:
#define B2_ANSI 0x00000001
#define B2_USEVER7 0x00000002
#define B2_AUTOVERIFY 0x00000004
#define B2_FTNTOALL 0x00000008
#define B2_MINIMIZEBBS 0x00000010
#define B2_SMALLFONT 0x00000020
#define B2_DATAPHONE 0x00000040
#define B2_FAXPHONE 0x00000080
#define B2_BUSPHONE 0x00000100
#define B2_ADDRESS2 0x00000200
#define B2_ADDRESS3 0x00000400
#define B2_CITY 0x00000800
#define B2_STATE 0x00001000
#define B2_ZIPCODE 0x00002000
#define B2_USEHANDLE 0x00004000
#define B2_NOVIDWHENMIN 0x00008000
#define B2_ABORTREXX 0x00010000
#define B2_NOBBSSCREEN 0x00020000
#define B2_CANFASTLOGIN 0x00040000
#define B2_ADDRESS1REQ 0x00080000
#define B2_ADDRESS2REQ 0x00100000
#define B2_ADDRESS3REQ 0x00200000
#define B2_CITYREQ 0x00400000
#define B2_STATEREQ 0x00800000
#define B2_ZIPREQ 0x01000000
#define B2_HOMEREQ 0x02000000
#define B2_DATAREQ 0x04000000
#define B2_BUSINESSREQ 0x08000000
#define B2_FAXREQ 0x10000000
#define B2_NOREGTXTINMSG 0x20000000 //JM960109
#define B2_NUMONLYPHONE 0x40000000 //JM960109
#define B2_ALWAYSSAVEINI 0x80000000 //JM960109
Symbolic flag names for the 'bbs.attribs3' bits:
#define B3_UNVERIFIED_NEWMENU 0x00000001
#define B3_NO_NEWUSERALIAS 0x00000002
#define B3_DROP_CARRIER_ON_TIMEUP 0x00000004
#define B3_BBS_WATCH_THREAD 0x00000008
#define B3_NO_TELNET_TIMEOUT 0x00000010
#define B3_ENABLE_ACCOUNTING 0x00000020
#define B3_ENABLE_EXCEPTIONS 0x00000040
#define B3_FLUSH_SYSTEM 0x00000080
#define B3_FLUSH_SYSTEM_LOG 0x00000100
#define B3_NOSTATUS 0x00000200
#define B3_STARTFTP 0x00000400
#define B3_NOCHAT 0x00000800
#define B3_SYSTEM_INFO 0x00001000
#define B3_BBS_INFO 0x00002000
#define B3_SYSOP_MAIL 0x00004000
#define B3_FULL_LANG_BUF 0x00008000
#define B3_ALLOW_KILL 0x00010000
#define B3_POP_KEEP 0x00020000
The AdeptXBBS "BBS" structure:
typedef struct _bbs_info
{
long numcalls;
unsigned long last_userid;
unsigned int last_pointid;
short minage;
short maxage;
long credit;
unsigned short expiredays;
long expiremins;
unsigned short time_per_day;
unsigned long security1;
unsigned long security2;
unsigned long flags1;
unsigned long flags2;
unsigned long ukperday;
unsigned long dkperday;
unsigned long attribs;
unsigned long attribs2;
ULONG DefaultGroup;
unsigned short maxusers;
char origin[66];
short maxattempts;
char _UnUsedOldFlags[512];
// char msgflags[128]; //JM931022
// char fileflags[128]; //JM931022
// char bbsmsg[128]; //JM940816
// char bbsfile[128]; //JM940816
word defaultcost;
long quotepos;
unsigned short time_per_call;
short ulmulti;
short quoteodds;
short localbbs[2],mainthread[2];
char inbound[3][133]; // Inbound directories
char okfiles[3][133]; // Okfiles for freq
short maxpage;
char bbs_name[50];
unsigned long uattribs;
unsigned long uattribs2;
char oldsysop[20];
#if defined(__IBMCPP__)||defined(__IBMC__) // C++ or C mode
USHORT sysopin; //JM960210
#else
USHORT sysopin: 1;
USHORT reservedb: 7;
#endif
STIME beginpage;
STIME endpage;
unsigned long maxuserpkt; // max offline packet size in bytes (text & fido export)
char QWKCityState[20];
char QWKBBSID[9];
char QWKPhone[21];
USHORT MaxBankTime;
USHORT DaysBetweenPWChanges;
USHORT BadBadSysop;
BOOL UseButtonBar;
ULONG InternetAttribs;
CHAR DomainName[128]; // depricating gwz030796
char NNTPServer[128]; // depricating gwz030796
CHAR EMailUserID[32];
CHAR EMailPass[32];
char sysop[24];
char BulletName[128];
char WelcomeName[128];
char MasterFileName[128];
char SerialName[60];
ULONG SerialNumber;
BOOL TelnetServer; // depricating gwz030796
BOOL SocketServer; // depricating gwz030796
USHORT TelnetPort; // depricating gwz030796
USHORT SocketPort; // depricating gwz030796
ULONG RegNumber;
LONG BaseNodeNumber;
CHAR ChatServerLocation[CCHMAXPATH];
BOOL NNTPClient; // depricating gwz030796
USHORT NNTPRescan; // depricating gwz030796
BOOL RealTimeXfer;
CHAR SMTPServer[128]; // depricating gwz030796
ULONG EMailArea; // depricating gwz030796
BOOL SMTPActive; // depricating gwz030796
LONG RevisionLevel;
char outbound[133]; // NC -- 970613 -- outbound directory
BOOL POPActive;
char POPServer[ 128 ];
ULONG attribs3;
ULONG attribs4;
UCHAR NC_Reserved[372];
UCHAR bbsmsg[MAX_TAG_SIZE];
UCHAR bbsfile[MAX_TAG_SIZE]; // JM940816
UCHAR msgflags[MAX_TAG_SIZE]; // NC970727
UCHAR fileflags[MAX_TAG_SIZE]; // NC970727
char Reserved[1629]; // JM950828
VARIABLES *sharevars; // Shared variables
} BBS, *PBBS;
ΓòÉΓòÉΓòÉ 10.3. User Base Structure ΓòÉΓòÉΓòÉ
Appendix C - AdeptXBBS User Base Structure:
Note: The following symbolic flag names are available to the AdeptREXX
scripts if AdeptInitRexx is called.
Symbolic flag names 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
Symbolic flag names for the '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
#define U2_NOSHOWBDAY 0x00001000 // Don't show birthday
#define U2_ALLOW_NET_ATTACH 0x00002000
#define U2_ALLOW_LOCAL_ATTACH 0x00004000
#define U2_NO_ALT_ED 0x00008000
#define U2_POP_SCAN 0x00010000
#define U2_KEEP_SEENBY 0x00020000
#define U2_ALLOW_KILL 0x00040000
#define U2_POP_KEEP 0x00080000
The AdeptXBBS User Base structure:
typdef struct _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 (must match Group->Number)
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
CHAR Country[24];
USHORT weight;
CHAR height[5];
CHAR Pref;
CHAR LangIdent[4]; // Permanent language identifier
USHORT MailDLsToday; // JM960118
USHORT UsesOLMail; // JM960119
CHAR POPPassword[16];
CHAR POPLogin[16];
CHAR POPServer[128];
CHAR NoLongerUsed[22];
UCHAR _UnUsedOldTags[256];
// UCHAR usermsg[128]; // Message areas user can access (JM940624)
// UCHAR userfile[128]; // File areas user can access (JM940624)
ULONG PasswordCRC; // User password CRC
ULONG PasswordCRC2; // User password CRC2
USHORT Max_Mail_Pkt; // Max msgs to pack for off-line mail
CHAR ReAsked; // TRUE if reasked question were answered
USHORT timeout;
USHORT CurrMsgGroup;
USHORT CurrFileGroup;
CHAR EMail[37];
CHAR FidoMail[32];
} USER, *PUSER;
ΓòÉΓòÉΓòÉ 10.4. Message Base Structure ΓòÉΓòÉΓòÉ
Appendix D - AdeptXBBS Message AdeptXBase Structure:
Note: The following symbolic flag names are available to the AdeptREXX
scripts if AdeptInitRexx is called.
Symbolic flag names for the FIDO Message bitmap attributes: (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
Symbolic flag names for the Adept Message bitmap attributes: (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
The AdeptXBBS Message base structure:
typedef struct _xmsg
{
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 OrigMsg; //
ULONG miscdatlen; // Length of message
ULONG miscdatstart; // Starting postition in text file
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 network number
USHORT d_node; // Messages destination node number
USHORT d_point; // Messages destination point
USHORT cost; // Unit cost charged to send this message
USHORT fflags; // FidoNet related flags (Attribute/behavior of the message)
USHORT xflags; // XBBS related flags (Extra attributes)
ULONG bflags; // Internet related flags
ULONG cflags; // Other network related flags
} XMSG, *PXMSG;
ΓòÉΓòÉΓòÉ 10.5. File Area Structure ΓòÉΓòÉΓòÉ
Appendix E - AdeptXBBS File Area Structure:
Note: The following symbolic flag names are available to the AdeptREXX
scripts if AdeptInitRexx is called.
Symbolic flag names for the File Area flags: (areaflags)
#define F_FREE 0x00000001
#define F_NOUP 0x00000002
#define F_NODOWN 0x00000004
#define F_LEECH 0x00000008
#define F_DOWNBACK 0x00000010
#define F_UPBACK 0x00000020
#define F_CHARGE 0x00000040
#define F_CANTLIST 0x00000080 // Uploads not listable
#define F_CANTDL 0x00000100 // Uploads not downloadable
#define F_NOFBBS 0x00000200 // No FILES.BBS at all
#define F_COMMONONLY 0x00000400 // Use only common FILES.BBS
#define F_UPBLIND 0x00000800 // UL get desc. afterwards
#define F_COPYFILE 0x00001000 // copy download from CD to HD
#define F_NODIR 0x00002000
#define F_NOCOMMON 0x00004000
#define F_NOSEARCH 0x00008000
The AdeptXBBS File Area structure:
struct _filearea
{
char *name;
char *descr;
int minage;
int maxage;
unsigned long r_security1;
unsigned long r_security2;
unsigned long r_flags1;
unsigned long r_flags2;
unsigned long w_security1;
unsigned long w_security2;
unsigned long w_flags1;
unsigned long w_flags2;
unsigned long s_security1;
unsigned long s_security2;
unsigned long s_flags1;
unsigned long s_flags2;
unsigned long areaflags;
unsigned long groupnum[256];
int cost_per_k;
unsigned int number;
char *upath;
char *dpath;
char *password;
char *ftpname;
LONG TimeFactor;
struct _filearea *next;
struct _filearea *prior;
};
typedef struct _filearea FILEAREA, *PFILEAREA; //JM931019
ΓòÉΓòÉΓòÉ 10.6. Message Area Structure ΓòÉΓòÉΓòÉ
Appendix F - AdeptXBBS Message Area Structure:
Note: The following symbolic flag names are available to the AdeptREXX
scripts if AdeptInitRexx is called.
Symbolic flag names for the Message Area flags: (areaflags)
#define M_NOORIG 0x00000001 // No Origin or tear
#define M_ANSI 0x00000002 // Allow Ansi Messages
#define M_PRIVATE 0x00000004 // Force Msgs Public
#define M_PUBLIC 0x00000008 // Force Msgs Private
#define M_ECHO 0x00000010 // Is a Echomail
#define M_NET 0x00000020 // It a Netmail area
#define M_MCI 0x00000040 // Allows MCI Commands
#define M_ANON 0x00000080 // All Msgs Annon.
#define M_REAL 0x00000100 // Requires Real Name
#define M_ASSOC 0x00000200 // Msg area allows assoc
#define M_FORCE 0x00000400 // Always force
#define M_COMPRESS 0x00000800 // Allow LZSS comp here
#define M_GROUP 0x00001000 // groupmail
#define M_USENET 0x00002000 // usenet conference
#define M_QWK 0x00004000 // qwk conference
#define M_SQUISH 0x00008000 // Squish MSG Base
#define M_EMAIL 0x00010000 // Internet E-Mail
#define M_FIDO 0x00100000 // Star . msg Format
#define M_JAM 0x00200000 // JAM msg Format
The AdeptXBBS Message Area structure:
struct _msgarea
{
char *name;
char *descr;
char *forceto;
char *origin;
char *path;
char *usenettag;
int minage;
int maxage;
unsigned long r_security1;
unsigned long r_security2;
unsigned long r_flags1;
unsigned long r_flags2;
unsigned long w_security1;
unsigned long w_security2;
unsigned long w_flags1;
unsigned long w_flags2;
unsigned long s_security1;
unsigned long s_security2;
unsigned long s_flags1;
unsigned long s_flags2;
unsigned long areaflags;
unsigned long *groupnum;
PADDR addr;
PADDR feeds;
unsigned int number;
LONG TimeFactor;
char *password;
struct _msgarea *next;
struct _msgarea *prior;
};
typedef struct _msgarea MSGAREA, *PMSGAREA; //JM931019
ΓòÉΓòÉΓòÉ 10.7. Library Area Structure ΓòÉΓòÉΓòÉ
Appendix G - AdeptXBBS Library Area Structure:
Note: The following symbolic flag name is available to the AdeptREXX
scripts if AdeptInitRexx is called.
Symbolic flag names for the Library Area flags: (areaflags)
#define L_ANSIONLY 0x00000001
The AdeptXBBS Library Area structure:
typedef struct _libarea
{
char *name;
char *descr;
int minage;
int maxage;
unsigned long r_security1;
unsigned long r_security2;
unsigned long r_flags1;
unsigned long r_flags2;
unsigned long w_security1;
unsigned long w_security2;
unsigned long w_flags1;
unsigned long w_flags2;
unsigned long s_security1;
unsigned long s_security2;
unsigned long s_flags1;
unsigned long s_flags2;
unsigned long areaflags;
unsigned int number;
char *path;
char *password;
struct _libarea *next;
struct _libarea *prior;
} LIBAREA, *PLIBAREA;
ΓòÉΓòÉΓòÉ 10.8. Group Structure ΓòÉΓòÉΓòÉ
Appendix H - AdeptXBBS Group Structure:
Note: The following symbolic flag names are available to the AdeptREXX
scripts if AdeptInitRexx is called.
Symbolic flag names for the AdeptXBBS Groups flags
#define G_FLAGSOVERWRITE 0x00000001 // if not overwrite, then accumulate
#define G_SECOVERWRITE 0x00000002 // if not overwrite, then ignore
#define G_RATIOONBYTES 0x00000004 // if not bytes, then files
#define G_TIMEOVERWRITE 0x00000008 // if not overwrite, then ignore
The AdeptXBBS Group structure:
typedef struct _GROUP
{
PSZ Name;
PSZ Password;
LONG Number;
ULONG Flags;
ULONG MinutesPerDay;
ULONG MinutesPerCall;
ULONG DaysBeforeExpiration;
LONG ExpireToGroup;
ULONG MaxBankTime;
ULONG MaxUKPerDay;
ULONG MaxDKPerDay;
ULONG ULDLRatio;
ULONG RatioCredit;
ULONG Security1;
ULONG Security2;
ULONG Flags1;
ULONG Flags2;
int CreditsPerUnit;
int CreditsPerUnitPeek;
int FreeCreditsDay;
int FreeCreditsWeek;
int FreeCreditsMonth;
int FreeCreditsPercentage;
int MaxDebt;
LONG GroupIfBroke;
USHORT DaysBetweenPWChange;
PSZ MainMenu;
PSZ MainMenuUnVerified;
struct _GROUP *Next;
struct _GROUP *Prev;
} GROUP, *PGROUP;
ΓòÉΓòÉΓòÉ 10.9. File System Structure ΓòÉΓòÉΓòÉ
Appendix I - AdeptXBBS File System Structure:
The AdeptXBBS File System "File.Data" file structure:
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.
ΓòÉΓòÉΓòÉ 10.10. Message Base Index Structure ΓòÉΓòÉΓòÉ
Appendix J - AdeptXBBS Message Base Index Structure:
The AdeptXBBS Message Base ".Index" file structure:
*.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;
ΓòÉΓòÉΓòÉ 10.11. Miscellaneous Structures ΓòÉΓòÉΓòÉ
Appendix K - Miscellaneous structures and bitmap flags:
Note: The following symbolic flag names are available to the AdeptREXX
scripts if AdeptInitRexx is called.
Symbolic flag names for the String_input bitmap flags:
#define STRF_UCASE 0x00000001
#define STRF_LCASE 0x00000002
#define STRF_REQUIRED 0x00000004
#define STRF_NOECHO 0x00000008
#define STRF_ENCRYPT 0x00000010
#define STRF_HOT 0x00000020
#define STRF_EDIT 0x00000040
#define STRF_PRETTY 0x00000080
#define STRF_MUSTHOT 0x00000100
#define STRF_NEAT 0x00000200
#define STRF_NOHELP 0x00000400
#define STRF_NOQUE 0x00000800
#define STRF_NOQUEONE 0x00001000
#define STRF_CHATCLNT 0x00002000
#define STRF_NOTIMECHECK 0x00004000
#define STRF_NOANSIINCHECK 0x00008000
#define STRF_ENTEROK 0x00010000
#define STRF_ALWAYSCHAT 0x00020000 //JM960202
#define STRF_NOFIRSTPROMPT 0x00040000 //JM960202
Symbolic flag names for the Data Types flags:
#define STRT_ALPHA 1
#define STRT_NUMERIC 2
#define STRT_ALPHANUMERIC 3
#define STRT_HEX 4
#define STRT_FILENAME 5
#define STRT_FILESPEC 6
#define STRT_ALL 7
#define STRT_ANY 8
#define STRT_YN 9
#define STRT_MULTFILES 10
#define STRT_MULTSPECS 11
#define STRT_YNQ 12
#define STRT_YNQS 13
#define STRT_JUSTFILE 14
#define STRT_MULTJUST 15
#define STRT_TELEPHONE 16
#define STRT_YNNUM 17
#define STRT_TELEPHONENUM 18
Symbolic flag names for the Input flags ("do_more", "wait_inkey", etc):
#define IF_RETURNONERROR 0x00000001 // return lost carrier, or timeout
#define IF_NOQUEUE 0x00000002
#define IF_NOTIMECHECK 0x00000004
#define SINGLE_INPUT 0x00000008
#define PASSWORD_PROMPT 0x00000010
Symbolic flag names for the Input Return Codes flags (along with TIMEOUT and LOSTCARRIER):
#define IRC_NOTIMELEFT -3
#define IRC_LOCKEDOUT -4
#define IRC_MORON -5
#define IRC_REPROMPT -6
#define IRC_ENDSYSOPCHAT -7
#define IRC_CHATWAITING -8
#define IRC_CHATDOWN -9
#define IRC_IDLETIMEOUT -10
The following symbolic flag names should be self explanatory:
#define SMALLEST_MSG_SIZE_FOR_PACKING 384
#define MAX_MSG_AREAS 10240
#define MAX_FIL_AREAS 10240
The AdeptXBBS Personal Message Index structure:
typedef struct _Personal_Message_Index
{
LONG areanumber;
LONG msgnumber;
CHAR From[60];
CHAR Subject[70];
CHAR Date[20];
} PMI, *PPMI;
The AdeptXBBS Caller Log Record structure:
typedef struct _Caller_Log_Record
{
CHAR name[36];
CHAR handle[36];
CHAR city[20];
CHAR state[5];
CHAR zipcode[10];
CHAR Gender;
time_t LogonTime;
time_t LogoffTime;
ULONG CallerNumber;
ULONG NodeNumber;
ULONG BaudRate;
} CALLREC, *PCALLREC;
ΓòÉΓòÉΓòÉ <hidden> About this Document ... ΓòÉΓòÉΓòÉ
Document Versions...
Document: AdeptXBBS Users Guide
Version: 0.10.a (25 August 1998)
Editor: Watson Works Editor - EPM 6.03b
Compiler: OS/2 Information Presentation Facility Compiler (Version
4.00.000)
Coded By: Mark Mellin (mmellin@plinet.com)
Note: This document is optimally viewed at 1024x768.
ΓòÉΓòÉΓòÉ <hidden> Document Versions ... ΓòÉΓòÉΓòÉ
About this document...
Document Revisions:
0.10.a (25 August 1998) : Released IPF source code as public.
Added Files->"Groups" documentation.
Added Introduction->"AdeptXBBS Contacts"
Added Introduction->"Thanks!!" (Hidden)
Added AdeptREXX->->"Miscellaneous functions"
Added "HPFS" (Hidden) - from IBM's OS/2 INF
docs.
Added "Configuring AdeptXBBS"
Added Configuring AdeptXBBS->->"Named pipe
configuration"
Removed Files->"Colors.Ctl" documentation.
Removed the "History", versions documentation.
Removed version specific information (eg: (1.07)
).
Moved the "old 1.07 style ASCII menus" back to
Text Files->"Menus" from the Appendix.
Moved the "AdeptREXX Interface", and "AdeptREXX
Useage" to "Text Files".
Reformatted "Meta Variables".
Reformatted "Utilities."
Reformatted "Appendix".
Updated the graphic images.
Updated "General Configuration".
Updated Introduction->"Copyright Information"
Updated "Installation"
Updated Installation->"Directories"
Updated the AdeptXBBS structures.
Updated the User/BBS Variables.
Updated the Adept Menu Commands.
Updated "AdeptRexx Interface"
Updated AdeptRexx using source code, changes are
as follows:
Added: AdeptFileCopy
AdeptDumpTossLog
AfSysSetFreeFile
AdeptExportTextMessages
AdeptCheckForReLogin
AdeptSetReLogin
AdeptPeekKey
ValidateUser
AdeptGetMsgAreas
AdeptGetFileAreas
AdeptCheckForMail
AdeptReg
AdeptSerial
AdeptUserExpire
AdeptFindUsers
AdeptImportSMTP
AdeptStartNNTP
EnableREXXWatch
DisableREXXWatch
SetREXXWatchTimeout
AdeptSysChatNoPrePubMsg
AChatGetMsg
AdeptNodeLink
RestartNode
ReturnComPort
ARStrip
ALStrip
AStripCR
AToUpper
AStripChars
Removed: AfSysDeleteIndexEntries
AfSysGetPassword
Renamed: AfSysGetFileAreaList to
AFSysGetAreaFileList
AFSysFindList to AFSysListNext
AdeptSysChatMessageWaiting to
AdeptSysChatMsgWaiting
AdeptGetVarByRecord to
AdeptGetUserVarByRecord
AdeptPutVarByRecord to
AdeptPutUserVarByRecord
0.01.e (24 July 1997) : Added new Metas, Menu, Rexx, and other updates.
Moved the old 1.07 style ASCII menus to the
Appendix (A).
Updated Introduction, added new AdeptXBBS Logo.
Moved AdeptSoft Info, Copyright, Wizards, and
Freeware announcment.
Reformatted Menu command pages.
Reformatted Meta Variable pages.
Rebuilt AdeptREXX section(s).
0.01.d (7 April 1997) : Initial Release
0.01.c (5 April 1997) : Added AdeptREXX Miscellaneous & 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)
ΓòÉΓòÉΓòÉ <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> ΓòÉΓòÉΓòÉ
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'
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
AdeptXBBS Menu Port Flags:
Used as a number, or combination of numbers:
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.
The Local Login is considered as a Com Port login.
ΓòÉΓòÉΓòÉ <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.