home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software of the Month Club 1995 December
/
SOFM_Dec1995.bin
/
pc
/
os2
/
adeptbbs
/
read.me
< prev
next >
Wrap
Text File
|
1995-10-31
|
53KB
|
1,316 lines
r
This version of the BBS software includes the following changes:
The Area.Control.Sample file should give people an enough of a example of
how to setup areafix echo request forwarding, and auto add capabilities.
The English.Text file is no longer called English.Text, but instead called
Language.Text in order to be language neutral.
The BBS software now includes Multi-Linqual support. The following is a
example 'Languages' file. The Language file is the configuration file for
the multi-lingual 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 dir 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.
-- 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-dir in the language
directories corresponding to the language they refere to.
If a user chooses a language and the BBS cannot find the Language.text
file in the \Adept\Languagename\System sub-dir it will default to the
language.text in the \adept\system dir.
Fixed a bug in menu option 200, and 201. If you had a message being
forced to a specific subject or node number the BBS would also force
the message to the sysop of the BBS. This command now works as
documented.
Added a option when replying to a message that would allow you to change
who it was to, and the subject, and will also prompt for carbon copies
if the person has the right security level.
Added the ability to set a users inactivity timeout period. The timeout
period is listed in minutes. Set it to 1440 for a unlimited timeout.
The BBS software now uses a new multi-system, multi-server capable chat
server. You can configure the base node/line number from the config
->BBS->general settings menu. Right now this only supports multiple
copies of adept running on the same network. It will be expanded to
support serial, internet, and other network links.
In order for multi-line chat to work, you will need to run the deamon
ChatServer.Exe in anouther Window.
The EMSI mailer session have been QUITE cleaned up! At the moment
AdeptXBBS connects with every mailer we have tested it with and vice
versa. I personally have not seen a failed connect in a few weeks.
Fixed a bug in the files system where the BBS would crash on a uploaded
file.
Worked more on stability and speed issues.
Fixed a bug in GIOMT. Sometimes when connecting to a program with a borken
zmodem implementation implementaton protocol engine would completely freak
out and create a GIOMT.LOG from hell sucking all CPU and writing a file
until it ran out of disk space or until you rebooted your computer.
Fixed the Bluewave Mail importing!
96a - Fixed two bugs in Gatekeeper. Removed the PM version. The two
bugs in Gatekeeper where it would not allow areas above 1024
and was not unarchive/arciving mail properly.
97 - Fixed a bug in the mailer, we couldn't sucessfully complete a mail
session with Xenia.
Fixed a bug in the multi-lingual support. The BBS software wasn't
running the MAIN.CMD from the languages menu sub-dir but instead
from the BBS's default sub-dir.
Fixed a possible timeout bug having to do with the new inactivity
timeout options.
Fixed a video display problem that was causing the system to act
like it wasn't working locally when DOS doors when being run.
Fixed several other Misc. Bugs in Gate Keeper.
Fixed a bug in the message editor, when the sysop would exit chat
mode it would abort the message.
Added a user list to the Find Users Option.
I was accidently shipping a old, thus bad, version of the fsys .dll
for the BBS. This was causing readon crashes in trhe BBS software
especially if the user had entered the file system at some point.
I am now shipping Othello, with full source to give both users and
authors the ability to work with type 802 doors. These can be VERY
powerful. It will allow you to write native OS/2 doors without
having to deal with things such as com port access and what type
of connect they are comming in on.
Rexx now includes the following new functions:
AdeptCheckBit, AdeptSetBit, AdeptUnsetBit.
Retcode = AdeptCheckBit(line, BIT NUMBER, Numeric Long)
Returns '1' if the BIT is set, '0' if it is not.
This can be used to test if a users bit is turned on for any of the
LONG bitmap'd flags.
AdeptSetBit(line, BIT NUMBER, Numeric Long)
Will set BIT Number 1 - 32 to ON.
AdeptUnsetBit(line, BIT NUMBER, Numeric Long)
Will set BIT Number 1 - 32 to OFF.
'Example:'
-- BEGIN --
/* - - - - - - - - - x - - - - - - - - - - - - - - - - - - - - - - */
UserFlag = AdeptGetVar(line, 42) /* 42 - User Flags */
IsOn = AdeptCheckBit(line, 10, UserFlag)
if IsOn = '1' then
adeptprint(line, "Flag 10 is on!\r\n")
AdeptUnsetBit(line, 10, UserFlag) /* turns bit 10 off */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
AdeptSetBit(line, 5, UserFlag) /* Turns bit 5 on */
/* - - - - x - - - - - - - - - - - - - - - - - - - - - - - - - - - */
AdeptPutVar(line, 42, UserFlag) /* Make changes to the user record */
-- END --
The changes are not saved until you put the changes back into active
memory with the AdeptPutVar option.
AdeptDoDTR(line, '0' or '1')
0 - Drop DTR (Will leave it dropped)
1 - Raise DTR (Will Leave it raised)
Ret = AdeptPeekByte(line, length)
Will place the next char in the incomming stream that is waiting.
It will NOT remove it from the incomming data steam.
Length is the amount of time to wait for the next char to
enter the data stream. (This is a RAW comm function).
The software will return TIMEOUT or LOSTCARRIER.
NNTP Support! This is the first version of the BBS software with
native Internet Newsgroup Support via NNTP!
*WARNING* The BBS software WILL CRASH if you are pulling in a news
group that is NOT setup in the message area configuration!!!
To setup NNTP go to the Config->BBS->Internet Options and fill in
the name of your NNTP News Server. Next 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 NET. When the software first connect to the server it will
pull down the available newsgroup list. This could take 5/10
minutes.
After you have the list it is recomended that you then decide what
newsgroups you would like to get. There will be a file in the
\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.
Be Warned!!! Do to a bug that will be fixed in the next release
if you try to shut the BBS down while your news client is 'BUSY'
the BBS will have a tendency to 'LOCK' your entire computer for
30 seconds. DO NOT freak out! It will release the message que
within 30 seconds. If you shut the BBS down with the upper left
hand corner this will not happen, but your newgroup last reads and
other important info will nto be saved.
Fixed a couple of bugs in the AdeptGetVar and AdeptPutVar REXX
functions.
The Events Editor is BACK! It actually works this time too. :)
Fixed DUPE Checking in GateKeeper.
Fixed the Dupe Area 0 Warning.
Changed the packet headers a slight bit so that some programs
would stop complaining about our packets being non-standard.
The ability to post messages in a newsgroup is now available.
I added additional options to the BBS that should allow it to
hangup on the user almost everywhere now. Before it wasn't
always hanging up when you hung up, or locked out a user.
fList is a complete update. Looks like I was accidently
distributing a WAY OLD version of this utility. No wonder it
didn't work right.
fUtil is also a complete update, same mistake as above.
AdeptComFlush - now really makes sure the incoming/outgoing port
info is flushed.
More new REXX functions!
AdeptPrintL(line, "Text to print locally ONLY")
AdeptPrintL works exactly like AdeptPrint except it prints to the
LOCAL screen only.
AdeptWaitConnect(line, time)
AdeptWaitConnect will wait for a modem connect or error code. It
will return 0 if it time outs if it doesn't timeout it will
then return the return code from the modem i.e. 'CONNECT 28800'
'ERROR', 'OK', 'NO CARRIER'.
The time is in the format of milliseconds.
AdeptDial(line, "STRING TO DIAL")
AdeptDial will parse 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'.
Added a new Meta command to be used with the who is on, {CQ will
display the users handle, it defaults to {CG the users real name.
97a - Fixed a possibility that the BBS could go into a loop if a rexx
script had changed the state of carrier checking and accidently
exited do to error or a trap.
Made some MAJOR stability enhancements in serveral sections and
areas of code. The mysterious BBS 'vanishing' symptoms should
not accure. As you know the BBS will shut itself down cleanly
if it encounters a problem it cannot handle. There should be
less of a chance that it will now encounter a problem it cannot
handle.
The BBS now retains the last known settings for the outbound box.
Fixed a bug in the Message Area configuration, it wouldn't handle
the message base path properly, now it does. It was still creating
some of the files in the \adept\system dir not the path to the
message area dir.
The message base will no longer allow illegal charecters. ALL
message base utilities had to be updated. These chars will no
longer be allowed '\, /, *. ?, ^, %' and will be converted
to '_'.
Added some code the the mailer the will let it settle down a
little better durring mail session, helping to prevent fewer
bad mail connects.
The BBS software no longer crashes when you are editing a
outbound icon and it rescans.
Added a new menu option '28' Message Searching!
Moved several hard coded pieces of text into the Language.Text file.
GateKpr accepts lines in an Areafix style message that
begin with '+'
GateKpr accepts lines in an areafix style message that
begin with '%' the two key words recognized are
'query' and 'list' all other words are ignored at this
time.
Attempted fix on routed netmail occasionally getting
put into a type 2.2 packet.
New GateKpr keyword: IMPORTALLNETMAIL
This keyword causes any netmail going thru a system
to be imported into the netmail area. If this keyword
is not present, the current default behavior occurs.
Fixed a bug with time calculation in the system events.
Changed Config->BBS Action Flags, and Config->BBS->Default User
Settings.
New REXX Function. AdeptChangeGroup(line, group_num)
The AdeptChangeGroup function will return '0' if the users
group was not upgraded, or not found. It will return '1'
if the users group was upgraded. 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.
97b Definately fixed the bugs in the Events Editor this time around.
Increased stability even more, a LOT more.
EMSI Mail Sessions are MUCH MUCH smoother now! Sysops who have
seen failed connects in the past should not see them as much
or at all.
If the BBS software encounters a error it cannot handle it should
edit with a errorlevel of '1'. With this you can automatically
restart adept in event of a error.
This is definately one of those historic moments. The SYSOP CHAT
PAGE TIME NOW WORKS!!!
The BBS_Configuration grunding seems to be gone, we also added some
additional protection to the mailer configuration saving even though
we have had no reports of problems with it. So far the word back
on this one is good.
Fixed a bug in the logon sequence, if you where running multi-linqual
support it wouldn't obey login timeouts.
97c - Fixed a bug in the time bank, it would let a user put in as much
time as they wanted. And would let the store ALL of their time.
Added support for Send Crash Mail ONLY, and Send Crash Mail No
Matter what the cost. We where not handling this properly, now
we do.
You can now adjust the amount of time a user used today. This can
be changed form the users record of from the right mouse popup while
they are on-line.
The file list now goes from 1 - 99, then repeats.
Edit Tagged Files List should now allow you to add files when
chosen from a menu.
FileAreas.asc/ans/avt/etc and MessageAreas.asc/ans/avt/etc will
now handle meta variables, and more prompts.
Fixed a bug in the file listing more prompt, if you hit any key
other then one of the ones on the list it went into continuious
list mode.
In the events editor, if you removed or cleared the COMMAND option
it wouldn't make the changes.
Added ReadArc.cmd to the distribution archive.
When searching messages the Next key acted as the abort key, and the
abort key acted as the next key.
Fixed a bug in XMSG it wouldn't handle message bases on multiple
drives/directories when doing a personal message index scan.
The local user editor would close the second a user logged off,
now it should not.
New type 803 DOOR. The type 803 door works exactly like a type
802 except that it sets, and allows your to set several 32-bit
semephores 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.
97d - I wasn't expecting to release v0.97d so soon, but since several
major bugs are fixed I figured it was important to get this one
out fast. Some of the bugs we where going to fix in 97d will
be moved to 97e.
GateKpr now has a 1.2 meg message size limit. Also GatePm is
back! :)
Areafix SYS 3175's should be gone! Please let us know!
Users have reported some problems with user handles when they
log on, this is now fixed.
I think I found what was causing AdeptXBBS to not run on
some systems. The culprit seems to be OS/2 v2.x and it was
a limitation in the values we where using that OS/2 v3.0
could handle but v2.x could not.
Included new REXX DOCS and Examples, these docs where written
by Steven Tower and Jean-Ray Arseneau.
97e A lot of sysops who resgistered the REXX module have asked what
will it be getting me. We have been working on a enhanced REXX
module for some time now. As I have said that ONLY the functions
that duplicate what the .menu system allows will be available to
the sysops who have not purchased the REXX module. Since this
version of the BBS supports the enhanced REXX module I will outline
what this module will be giving you.
Several things will change in reference to the REXX system
in this next beta. We will no longer run .CMD file. We have
decided to call .CMD files .SRX (Standard REXX) files. This
will pave the way for .ERX (Extended REXX) files. .ERX files
are preprocessed REXX files for use with Adept. Sysops who own
the REXX module will be able to execute .ERX files. Sysops who
do not will ONLY be able to execute .SRX files.
Why ERX files?
ERX files are REXX files that have been preprocessed with the
AdeptREXX Processor (SrToErx). ERX files are typically 50% smaller
and always faster then standard REXX files (When run Cached).
We are acking that people who write rexx scripts for Adept that
are not pre-processsed please use the extention .srx. The
preprocessor will ONLY process files with the .srx extention.
SrxToErx.Exe FileNameWithoutExtention will yield a file with the
same name, but the .erx extention. If you are a commercial
developer is is recomended that you preprocess your rexx .srx
files before distributing them. Also it it recomended 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 look for .erx versions of files that we
feel are ok to pre-process. 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 recomended that you do not preprocess anything
that you are NOT going to be distributing.
AdeptXBBS now includes REXX Caching. And two new REXX functions for
chaining REXX files within REXX files. The first AdeptChainRexx
runs the rexx script in cached mode. The second runs it in NON
cached mode. Once a REXX script is cached it's cached until you
shut down your copy of Adept.
There is also a new menu option 11. Menu type 11 runs a REXX
script in NON cached mode. Menu option 10 runs rexx scripts in
Cached mode.
AdeptChainRexx("RexxScripName", line)
AdeptChainRexxNc("RexxScripName", line)
Messages posted in a area that has messages marked as forced
private will be forced private no matter what the off-line mail
reader tells it to post it as. This has been causing confusion
with users who find that they can read some of the messages in
the Private Mail area because some mail reader was marking
messages in a private area as public.
Now when a user send a /s,## message to anouther user NOT in
multi-node chat a press any key is displayed before the message
scrolls off the screen. (Prompt #420)
The Call Collision checkmark on the Mail Settings dialog now works.
Changed the way the outbound mail scan works. It's much less CPU
intensive!
Fixed the New Message scan bug. To clean up your current new
message scan it is recomended that you run XMSG -I to rebuild
Personal Mail Index's.
There is a new ATO on Data checkbox in the Modem Settings option.
This is for people who are using the FAX cmd files to receive fax's
with Adept. Some modems want a ATO after the DATA string is
received, soem do not. This allows you to specify which you wish
to use for your specific modem.
Made some changed to the BBS Configuration internal functions to
see who/what how it's getting currupted.
UNREGSITERED SYSOPS:
This will be the last beta of AdeptXBBS that will handle more
then 2 nodes, and run .erx files, and with REXX caching. The folling
REXX functions will NO longer be available to sysops who do not and
have not purchased the REXX module.
AdeptComFlush
AdeptComWrite
AdeptPutVar
AdeptPutC
AdeptPutKey
AdeptDoDTR
AdeptPeekByte
AdeptSetTimer
AdeptTimerUp
AdeptDial
AdeptWaitConnect
Adept16BitCRC
Adept32BitCRC
The following REXX functions will be NEW in the next major beta
AdeptChatSendMsg - Multi-node chat
AdeptCharRead - Multi-node chat
AdeptChatDeleteAll - Multi-node chat
AdeptChatUnavailable - Multi-node chat
AdeptCheckCard - Validate credit card
-- Userbase minipulation functions --
AdeptGetUser - Get a user and pull their record into a temp var
AdeptNextUser - Get next user in the file and pull into a temp var
AdeptPrevUser - Get prev user in the file and pull into a temp var
AdeptGetUserVar - Get functions for temp user in memory
AdeptPutUserVar - Put functions for temp user in memory
AdeptSaveUser - Saved the temp memory vars to users record
-- More REXX to come --
SysEdit.Exe is a local OS/2 command prompt version of SysEdit. It
should be run from the Adept directory.
SysEditR.Exe is a remote Adept 802 door version of SysEdit.
The menu option woud look like:
"R, 802, Remote Editor,SysEditR.Exe,0"
Plus whatever security level you want for that program.
This is the first version.. User editor only! More to come very soon!
97f - Bug Fix, Pressing OK on New user Defaults caused the BBS to crash and
wouldn't save the changes.
Ok, on the CPU Priorities will used to also cause a crash.
97g - AdeptChainRexxNC is broken, do not use it with .erx files, it will
still work with .cmd, and .srx files.
AdeptChainRexx and AdeptChainRexxNC have syntax changes, and notes
that need to be addressed here and now.
I have been informed that ALL rexx functions in the software enless
you are looking for a value should be called with the CALL function
NOT with the () method as documented. i.e.
call AdeptChainRexx "RexxCmdFile.Cmd", line
NOT - AdeptChainRexx("RexxCmdFile.Cmd", line)
The second one will usually not work correctly. The first works.
Also you should try to use the call functioname ANY time you are
not get a value back i.e.
call AdeptPrint line, "This is a line to print"
key = AdeptWaitKey(line)
Also I documented the AdeptChainRexx, and AdeptChainRexxNC functions
wrong. The proper syntax is "call AdeptChainRexx ScriptName, line",
and "call AdeptChainRexxNC ScriptName, line" please make a note of
this. Using the function the way I originally documented it can
cause the script to exit wrong, and our cause the BBS software to
crash.
Fixed a serious bug in the outbound mail scanning/handling. When
a node was sent mail, their entry in the outbound box wasn't being
pulled for up to 5 minutes after the poll was completed. It was
causing the system ot be polled again and again until the 5 minute
timer was up. This is corrected. This wouldn't have created any
dupe problem, and multiple copies of the mail packet where not
sent, it was just causing accessive calls to be made.
BBS Action flags editing, and New User Default flag editing would
cause the BBS software to crash. This is also fixed.
Made some additional speed improvements in the software.
Some people have been confused by the fact that we store our
Fidonet mail packets in x.x.x.x.x.domain_name format. Our mailer
is 100% Fidonet Standard compatible and will convert the long
filename on the file to the fidonet xxxxxxxx.xxx format when
transmitting the mail to anouther fidonet mail. We store our
mail in this format to make 5-D addressing easyer, and I personally
don't think any of you want to sit there and do HEX calculations
to figure out that xxxxxxxx.xxx is actually a packet going to
p.1.369.210.0.Fidonet. If you try to do 5-D addressing with
mail in the standard fidonet xxxxxxxx.xxx format you lose the
Zone, Point ID and Domain Name. The xxxxxxxx.xxx is only a 3-D
capable format and must be put through a lot of work to make it
4-D and 5-D capable. For example you then need a Sub-directory
for each seperate domain. Then hope you don't have a BBS with
the same zone, node and net number, because then we're talking
serious problems. So as you can see, we eliminate a lot of
headaches and potential problems with using our format.
Expectations...
Several people have expected a Printed Manual, Box, and
Diskettes when registering thier copy of AdeptXBBS. Several
things prevent us from being able to do the above. Cost, Time,
and the fact that Adept is, and will continue to be in such
rapid development. First Cost. I have made it clear that I will
gladly start shipping AdeptXBBS with a professional Box, Disk,
and Manuals when either of the following occure. The price
doubles, or we become the #1 selling BBS program available.
Time, there are only a handful of us here. We've already have
so much to do that we cannot keep up with it. Stuffing envelopes
with diskettes, binding manualls, and then shipping them
would be the straw that would break us as a company. We're
trying to put out the best bbs program ever written. If you want
pretty box's and bound documentation there are several companies
who will give you fluff, but very little content.
Last but not least, rapid development. We have no plans to stop
the rapid development process that has been going on for the last
3 years. You can certianly expect to see new versions, upgrades,
bug fixes, and blinding speeds. This also includes revisions to
the documentation, enhancements of options, and more. I would
like to keep this pace up rather then be bogged down with
things that in no way effect the programs performance, features,
and how well it runs, and how satisfied you are with it.
For example we have spent the last several weeks boosting our
support team, and getting tech support up to something that is
acceptable. We're not quite there yet. Please if you are having
problems log into our support BBS (407) 477-6310, or telnet to
AdeptSoft.Com (199.227.57.1) and go into message area #10. Post
what you need help with or are having a problem with. Someone
will certianly help you!
Several people have asked about registrations, I will be spending
all this next week making sure that every single registered sysop
has thier registration keys. If by the end of the week you have
not received your key e-mail Julies@AdeptSoft.Com,
Tower@AdeptSoft.Com and Jlawlor@AdeptSoft.Com. This will insure
that you absolutely DO get your key.
We would also like to thank everyone who registered. Please remember
your feedback on this product is VERY important to us. We need to
know your about your good experiences, bad experiences, gripes,
sugestions, and ideas. It is you who will mold the direction and
what features go into this program!
I guess thats enough of my soapbox mode. Thanks for all of your
support!
-- Steven
97h - When a user forgets their password or entered it wrong 3 times
the BBS will look for and autoexecute the menu BadPass.Menu.
We also look for and display BadPass.Asc/Ans/Te2/Etc
Fixed a bug in both the message and file areas. We where not
really handling message and file areas above 1024, this is
now definatly fixed.
In a Rexx Script we where not allowing access to the bbs variables
and when they where accessed the BBS software would completely
crash. This is corrected.
97i - Not released do to the fact that 97i, and 97l will look almost exactly
alike and we're not out to totally confuse people.
97j - Policy Change - REXX is NO LONGER A OPTION. #1 Since so few people
have not registered AdeptXBBS without the REXX programing sub-system
and since there are so many rexx scripts being released in such a
small amount of time we've decided to no longer offer AdeptXBBS
without the REXX options. The REXX sub-system is one of the most
unique features of AdeptXBBS, with over 270 keywords and functions
and over 500 of our own predefined constants and structors it makes
adept the most unique BBS ever written for OS/2. We've told people
that the rexx engine will give you total control over the BBS. With
version 97j we've completely lived up to this promise.
Not all the new rexx functions are going to be completely documented
in this beta. In the 3 weeks since the release of the last beta
we've added so many new functions that keeping up with the docs
has been a impossible task. As you can see though some of the
functions are quite concisely documented and this will be the
format we will be using for a complete rewrite of the docs in the
next few weeks. Once the new docs are finished v1.0 of AdeptXBBS
will be released.
Added: AdeptCurPos(line, ##, ##) or AdeptCurPos(line)
The AdeptCurPos function works identically to the OS/2 SysCurPos
rexx function, except that you must pass the line number, and like
the SysCurPos function it's 0,0 based, not 1,1. I.E. In ANSI codes
1,1 is the upper left hand corner, in Screen Positioning like
what SysCurPos and AdeptCurPos 0,0 is the upper left hand corner.
Fixed mailer connection problems with Intermail.
Fixed mailer connection problems with VFIDO.
Fixed a bug in AdeptChangeGroup, it would go into a endless loop.
Fixed a bug with not recognizing +FCO fax connects.
Fixed the spawning of sessions durring events. The BBS should now
properly free the port, spawn the program, and restart the port.
Added better filtering to the EMSI mail sessions.
Fixed the 'Lockup' on shutdown problems.
View files is now working again.
Fixed a bug in the Events file save routiens.
Fixed a bug in events ignoring costs, and bad calls, etc based on
the events setup.
Fixed several problems with REXX and .menu interaction. For example
if a menu was called from a rexx script the only way to get back to
the rexx script was to simulate a user loging off. This is no longer
the case, a menu will now return to a rexx script when the Clear All
Gosubs is called, and when your have reached the first gosub and it
was the menu called by the rexx script. Also when a user presses
the menu items for logoff it trigures a option so that you can check
and see apon returning from your menu if the user wants to log off.
rc = AdeptRequestsLogoff(line) will return 0 of the user doesn't
want to log off, or 1 if the user
wants to log off.
Function keys now work from the local window!!! And Shift-F10 will
bring up the right mouse popup if you do not have a mouse.
Fixed the problems with files grunging. You shouldn't see any
more problems with the user file grunging, along with the
configuration and other files.
Did a near complete rewrite of the off-line mail functions.
.QWK, Bluewave, Fidonet, and Text export should all give the
same display feedback, and should function identically. It
should also be faster.
Changed the date storage method in the message base so that GIGO
doesn't complain anymore.
Fixed several misc bugs having to do with the message base.
The BBS will now look for and display MsgAreas###.ext, and
FileAreas###.ext, first before displaying MsgAreas.ext, and
FileAreas.ext. The ### is the security level of the user.
The [RUN] option in the language.text will execute a rexx script
of your choice.
AtEnd.Cmd is now executed locally.
NoMoreTime.[ext] will now be properly displayed when a user is
logged off and has no more time remaining.
Fixed a bug where adept would count BUSY's as no-connects and report
that it had lost carrier after a busy signal.
Fixed some bugs in the chat, menu driver, edit options, message base,
text display functions, and numerious other little fixes here and
there.
Fixed a message write security bug.
Fixed numerious bugs in the new rexx engine, along with a working
AdeptChainRexxNC function.
Now when the BBS cannot initialize a modem instead of killing the
node it marks the node as inactive. The node can be reactivated
when the problem is corrected by clicking on mailer, and then
clicking on Inactive.
RetCode = AdeptRexxStartThread(FileName, [var1 var2 var3 var4])
PARAMETERS
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. See - AdeptSetGlobalVar, and AdeptGetGlobalVar
RETURNS
Rexx Error Codes
EXAMPLE
ThreadID = AdeptRexxStart('Thread.Cmd', line)
DESCRIPTION
This will cause the program Thread.Cmd to be run in the backgroung
with the rexx programing calling it as the parent. When the
parent ends, all children and grandchildren are killed with it.
Just one programing note. DO NOT use functions in the background
script that sit 'inside' internal adept functions. For example
AdeptInput should NEVER be used from a child if you want to be
able to kill that thread with the AdeptKillRexxThread function.
RELATED FUNCTIONS
AdeptKillRexxThread, AdeptSetGlobalVar, AdeptGetGlobalVar,
AdeptDropGlobalVar
AdeptRexxKillThread(ThreadID)
AdeptSetGlobalVar('VarName', Value)
AdeptGetGlobalVar('VarName')
AdeptDropGlobalVar('VarName')
Data = ARStrip(Var) /* Right strips leading spaces and tabs from Var */
Data = ALStrip(Var) /* Left strips leading spaces and tabs from Var */
Data = AToUpper(Var) /* Converts all text in Var to upper case */
Date = AStripCr(Var) /* Strips remaining Cariage returns from Var */
<---------------------------------------------------------------------------->
RetCode = AfSysOpen(Directory, fSysHandle, Create)
FSysOpen should be called by each program in the process which wants
to use the file system.
PARAMETERS
Directory -
This is the directory that the files system is located in. Normally
a program whis 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 - output
This contains the handle to the file system.
Create - input
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.
RETURNS
Return Code.
AFSysOpen may return the following values:
0 No errors.
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
REMARKS
A successful AfSysOpen request returns a handle to the file system. All
other calls to the file system functions require this handle.
Note: 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 CODE
This example calls AfSysOpen, and uses the current file system files.
RetCode = FSysOpen('.\Files', 'FSysHandle', 'FALSE')
<---------------------------------------------------------------------------->
RetCode = AfSysClose(fSysHandle)
AfSysClose close the file system.
PARAMETERS
fSysHandle - input
Handle to the currently open file system.
RETURNS
Return Code.
AfSysClose may return the following values:
0 No errors.
EXAMPLE CODE
This example calls AfSysOpen, and creates new file system files, then
closes the file system.
RetCode = AfSysOpen('.\Files', 'fSysHandle', 'FALSE')
.
.
// use the file system.
.
.
RetCode = fSysClose(fSysHandle)
<---------------------------------------------------------------------------->
RetCode = AfSysDeleteIndexEntries(fSysHandle)
AfSysDeleteIndexEntries deletes a file from all of the indexes.
PARAMETERS
fSysHandle - input
Handle to the currently open file system.
RETURNS
Return Code.
AfSysDeleteIndexEntries may return the following values:
0 No errors.
92 FSYS_ERROR_SEM_TIMEOUT
190 FSYS_ERROR_DELETING_DATED
191 FSYS_ERROR_DELETING_ANAME
192 FSYS_ERROR_DELETING_NAME
REMARKS
AfSysDeleteIndexEntries deletes all refrences to a certain file in the
indexes. It does NOT remove that files record from the data file.
To set which file you wish to delete, you must either search for, and
find the file using the searching functions, or you must use the
AfSysSetIndexXXXXX series of functions to set the correct filename, date,
area name, and file record offset. Obviously it is best to search for
the file, find it, and confirm it is the file you wish to delete before
you delete it.
EXAMPLE CODE
Assuming you have already set the file index information this example
calls AfSysDeleteIndexEntries to delete the file from the indexes.
RetCode = AfSysDeleteIndexEntries(fSysHandle)
<---------------------------------------------------------------------------->
RetCode = AfSysAddIndexEntries(fSysHandle)
AfSysAddIndexEntries adds entries in the indexes for a file.
PARAMETERS
fSysHandle- input
Handle to the currently open file system.
RETURNS
Return Code.
AfSysAddIndexEntries may return the following values:
0 No errors.
92 FSYS_ERROR_SEM_TIMEOUT
200 FSYS_ERROR_ADDING_DATED
201 FSYS_ERROR_ADDING_ANAME
202 FSYS_ERROR_ADDING_NAME
REMARKS
Index data should be set using the AfSysSetIndexXXXX series of functions
before adding a file to the indexes.
EXAMPLE CODE
This example deletes the old index entries for a file, set the new index
data, then adds in the new index entries.
FSysDeleteIndexEntries(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 */
FSysAddIndexEntries(fSysHandle);
<---------------------------------------------------------------------------->
AfSysSetIndexFileName(Handle, FileName)
AfSysSetIndexRecordOffset(Handle, Offset)
AfSysSetIndexAreaNumber(Handle, PathIndex)
AfSysSetIndexEntryDate(Handle, Year, Month, Day)
(If Year, Month, and Day are omitted it will use the current date)
AfSysSetFileName(Handle, FileName)
AfSysGetFileName(Handle)
AfSysSetUploader(Handle, UserName)
AfSysGetUploader(Handle)
AfSysSetFileSize(Handle, FileSize)
AfSysGetFileSize(Handle)
AfSysSetFileArea(Handle, AreaNum)
AfSysGetFileArea(AreaNum)
AfSysSetFileDate(Handle, Year, Month, Day)
(If Year, Month, and Day are omitted it will use the current date)
AfSysGetFileDate(Handle, 'Date.')
Returns Date.1 - Year, Date.2 - Month, Date.3 - Day
AfSysGetFileDescription(Handle, 'Buffer')
Fills Buffer with the full description.
AfSysSetFileDescription(Handle, Buffer)
Will write buffer as the files description.
AfSysSetListable(Handle, 'TRUE' or 'FALSE')
AfSysGetListable(Handle)
AfSysGetFreeFile(Handle)
AfSysGetFreeTime(Handle)
AfSysGetFreeBytes(Handle)
AfSysgetSecLevel(Handle)
AfSysGetCopyFile(Handle)
AfSysGetAge(Handle)
AfSysGetDlAble(Handle)
AfSysGetPathName(Handle)
AfSysGetTimesDl(Handle)
AfSysSetPathIndex(Handle, PathIndex)
AfSysSetAge(Handle, Age)
AfSysSetDlAble(Handle, 'TRUE' or 'FALSE')
AfSysSetSecLevel(Handle, SecLevel)
AfSysSetReadDescFlag(Handle, 'TRUE' or 'FALSE')
AfSysSetCopyFile(Handle, 'TRUE' or 'FALSE')
AfSysSetFileRecord(Handle)
AfSysSetDescOffset(Handle, Offset)
AfSysReadFilePath(Handle, Index, 'PathBuffer')
AfSysWriteFilePath(Handle, Index, FilePath)
AfSysFindFirstName(Handle, Buffer)
AfSysFindNextName(Handle)
AfSysFindExact(Handle, Buffer, AreaNum)
AfSysListFirst(Handle, AreaNum, Date, SearchString)
AfSysListNext(Handle)
AfSysZeroFileRecord(Handle)
AfSysFirstName(Handle)
AfSysAddIndexEntries(Handle)
AfSysResetFilePtr(Handle)
AfSysResetDescFilePtr(Handle)
AfSysReadDescriptionLine(Handle, 'DescBuffer')
AfSysRawReadFileRecord(Handle)
AdeptComPutC(Line, Int)
AdeptComWrite(Line, Buffer)
AdeptComPeekByte(Line, CheckTime)
AdeptComGetByte(Line, CheckTime)
AdeptComDoDTR(Line, '1' or '0')
AdeptComFlush(Line)
AdeptComGetString(Line, Len, CheckTime, WatchChar, Ignore, 'Buffer')
AdeptComGetBlock(Line, Len, CheckTime, 'Buffer')
AdeptComWaitConnect(Line)
AdeptComDial(Line, 'String to Dial')
AdeptRawOpenSocket(Flags, 'HostName', PortNum)
AdeptRawComOpen(PortName, BaudRate, 'N' or 'E' or 'O', Parity, StopBit, Flags, 'HandleBuf')
AdeptRawComClose(Handle)
AdeptRawComGetBlock(Handle, Len, CheckTime, 'TRUE' or 'FALSE', 'Buffer')
AdeptRawComGetString(Handle, Len, Term, CheckTime, 'TRUE' or 'FALSE', 'Buffer')
AdeptRawComWrite(Handle, Buffer, Length)
AdeptRawSetBPS(Handle, BaudRate)
AdeptRawComLink(Handle, ToComHandle)
ReturnComPort(Line, Port, Port, Port, etc)
AdeptTimeLeft(Line, [NewTime, '1' or '0'])
AdeptCurPos(line, etc etc, check the OS/2 docs)
Print(line, 'data to display')
The print function differs from all the other print functions in that
meta variables and \ metas are not converted. i.e. \r\n will not produce
a carriage return/new line.
AdeptPrintL
AChatSendMsg(Line, Flags, Msg, Text)
AChatGetMsg(Line, To, From, Text)
AdeptCheckCard(Card Number)
--- Language Text Changes ---------------------------------------------------
If you decided NOT to overwrite your Language.text you will need to replace
the following lines with the below info.
#590
[Cvt][Str]File: %s ** Page #%u\r\n
#591
(END)
#592
[Cvt]\r\nNot found\r\n
#593
[Cvt][Str]\r\n Search string: [%s]\r\n -> ;
#594
[Cvt]\r\nNot yet implemented\r\n
#595
Next Page
Prev Page
Home
End
Find String
Over
More
Stop
#596
[N]ext Page, P)rev Page, H)ome, E)nd, F)ind String, O)ver, M)ore, S)top
--- Language Text Changes ---------------------------------------------------
Sorry about the state of the READ.ME file. While the pre-release is
available we'll work on the docs, and read.me's to make them more
professional.
v1.02
When checking use socket and use telnet it would check both - Fixed
The BBS Software would trap if it couldn't bind a socket - Fixed
Hanging up on a user sometimes doesn't work - Fixed
Yoohoo/2u2 Sessions would sometimes fail - Fixed
Zedzap sessions with TBBS and other systems was fail - Fixed
Added a 'NOEMSI' option to the Mailer->Controls pulldown.
Archive was missing the following files:
XMSG.EXE, Unuke.Exe, and Usermod.Exe - Included
GS.EXE was corrupt - Replaced
GATEKPR.EXE now defaults to the text mode version. GatePm.Exe is the
PM version of gatekpr. The doscall1.dll errors should be fixed. I think
it too was a cause of a corrupt .exe file.
v1.04
Fixed several Zmodem problems that cropped up in the v1.0x series of the
BBS software.
Increased Zmodem efficiency.
Fixed several bugs in Gatekpr.exe, there is ONLY the PM version in this
release.
Fixed several problems with the Prompts System, it should be over twice
as fast.
Fixed some problems with the meta conversion system, it too should be
almost twice as fast.
Fixed NNTP File Corruption.
Added two new command line options.
/NOFREEALIAS - This could fix some possible traps that some people are
having and should not really effect system usage much at
all.
/MEMDEBUG - Turn on memory allocation debugging. This will REALLY slow
the BBS Software down, but will give us info on anything
in the memory allocaton/deallocation that might go wrong.
Added several very high level file system functions to the AdeptREXX system.
AfSysGetAreaFileList(hFsys, AreaNumber, 'ListBuffer')
Returns = ListBuffer.0 = Number of Files in Current Area
ListBuffer.1.1 = File Name
ListBuffer.1.2 = File Path
ListBuffer.1.3 = File Size
ListBuffer.1.4 = File Ul Date
ListBuffer.1.5 = Times Downloaded
ListBuffer.2.# - Next File Name until last number of files
AFSysAddFile(hFsys, AreaNumber, FileName, FilePath with trailing '\',
Description, FileSize)
AfSysMoveFile(hFSys, AreaFromNumber, AreaToNumber, FileName)
AfSysDelFile(hFSys, AreaNumber, FileName)
Comming in v1.05 -
Full Enhanced Support for Durand Communications Windows Interface Protocol.
More Internet Options.
v1.05 -
W.I.P. was delayed while we rewrite the AdeptXBBS menu system.
Included the complete documentation for the @SPTH supported by AdeptXBBS
with sample source and more. If you are a developer PLEASE add support
for this much improved 'PATH' line into your software. Once two other
programs support the SPTH we will gladly add support for the PATH
kludge. The PATH line is a 2-D fidonet Kludge, the SPTH is a 5-D
capable version of the PATH.
v1.05 has probably the most tested and debugged version of AdeptXBBS
released to date. This is one of the reason why there has been such a
gap between the release of v1.04 -> v1.05.
The following known bugs have been fixed in the BBS software and related
programs.
All known .TIC processing bugs are fixed.
All known Areafix processing bugs are fixed.
Fixed a password packet problem with Gatekpr.
Gatekpr trapping on exit is fixed for most people, we have a debug version
for those who are still having trap problems. You can contact us on the
support BBS for a copy.
FAX is fixed! The setup of the fax has also changed. Now when the BBS
receives a fax connect it spawns the file FIX#.CMD # = the node number
that is receiving the fax. Please check out the AdeptXBBS FAQ for more
details on setting up faxing.
Fixed a serious design flaw in the BBS software. We had to rewrite two
very large sections of code in order to fix this one. With this rewrite
some areas of the BBS software are now 4-5x's faster then the previous
versions. This fixed all known random traps! People who couldn't get
AdeptXBBS to stay up for more then a short period of time should no
longer have any more stability problems.
All known startup problems are fixed in v1.05. Those of you who couldn't
get the software to even run before shouldn't have any problems now. The
events problem mentioned in install.cmd may still exist.
If you are still having stability problems, I.E. ZedZap not working, or
random traps in .QWK or Bluewave support delete your Line_#_Configuration
files and reconfigure the BBS software. It looks like these files have
been corrupted on some people over time and have caused strange problems
with the BBS software.
Added a NNTP Ctrl pull down. This will let you know the status of
incomming and outgoing NNTP messages. We also fixed many known bugs
in the NNTP support. You can abort a NNTP mail process by clicking on
the STOP option in this pull down. It will cleanly close a NNTP
connect so that you can shut the BBS down.
The BBS software was not displaying toomanypages.asc when a user had
paged the sysop too many times.
I would really like to thank several of our registered sysops (you know
who you are) who willingly went through hell to help us find the bugs
in this latest version, we wouldn't have found them without you.
/* Sample Rexx Script to see if a user has expired and expire them */
ARG Line
Expire = AdeptUserExpire(line)
if(Expire < 10) then
do
AdeptPrint(line, '\r\nYou expire in ' || Expire || ' Days\r\n')
end
if(Expire = 0) then
do
ExpGroup = AdeptGetVar(line, 65)
AdeptChangeGroup(line, ExpGroup)
end
/* End Sample Rexx Script */