Hagar WatCom 586 optimized AdeptXbbs Builds.
============================================

Welcome to the latest version of AdeptXbbs, we are working hard to improve
adept and make it the best bbs system available for Os/2, since we started
working on it, things have generally gotten better. People are asking
"Is this really free ?" to that we say a resounding "YES"!! Once thing that
might make us work even harder is a postcard from your city with your name
on it, just to show you support AdeptXbbs<g>. There is no requirment to send one
but if you would like to my Address is:

Mario D'Ulisse
4 Paladin Ave.
Sault Ste. Marie, Ontario
Canada
P6B-3P6

************************** NEW**********************************************
Check out the official AdeptXbbs WebPages (Right TWO of them)
at
http://summitcnty.com
and
http://www.comland.com/~bkirby
Latest updates and other good stuff can be found at these sites, and a resounding
thanks to Mike Burton (aka ALT) and William Kirby (Aka Wikk) for taking the time
(A *LOT*) of time to generate and maintain these two fine AdeptXbbs pages.
They have donated their precious time (and money)to support a *FREEWARE* product!!

******************************************************************************

===============================================================================

Note: This readme may refer to builds not yet released, I update it as I go
so if u see a build number that's not out yet, it'll just give you some idea
of what'll be in the next release .. :>



*READ*

It has come to my attention that many of the sysops out there who
have TCP/IP or IBM's Internet Connection installed do not have
the local loopback setup correctly.  I sugest that you add the
following line to you adept startup .cmd file or your system
startup.cmd.

ifconfig lo 127.0.0.1

This will not effect the use of any other aspects of the operating
system.  The local loopback should ALWAYS be setup, IBM's just too
unbelievably stupid to setup up as a default (Almost every other
OS that uses TCP/IP in the history of computers does) but some brain
dead schmuck at IBM doesn't have a clue so you have to do it yourself.

The local loopback of 127.0.0.1 is required for *ALL* the new
builds of the BBS software if you wish to have multinode chat work.
If you don't set this loopback up, adept will pause for up to two
minutes at logon time while it looks for the chatserver, even if you
have not started cserver.exe running adept still looks for this loopback
address so SET THE LOOPBACK!!!

AdeptXBBS MUST have the local loopback to operate correctly to operate
 correctly.  This means that you MUST have IAK installed, or Warp 4.
 To set it up is not that hard but must be done.  To do this just follow
 these simple steps.

1) Edit or create the startup.cmd file in the root of your boot drive.

2) Add the following to it:
        ifconfig lo 127.0.0.1

3) save the startup.cmd file.

4) reboot your machine.

That's all there is to it...  AdeptXBBS is now ready to fire up...

If you haven't used any of the Hagar Builds before, but are upgrading from
1.08.0x series Adept to a Hagar Build, you should *READ* this document
from top to bottom.
There are drastic changes and the the menus need to be converted to a new
format. (If you have been running Towers 108a series exe's you've already
converted yur menus and there is no need to do it again!!!!!!! However
you do need to delete *.menu.BIN in yur menus dir, adept needs to
recompile a fresh set of binary menu files. Just delete the bin files
and adept will automatically recompile them.

If you are currently running 1.08.0x series exe, then u *DO* need to convert your
menus to the new design)

Ok there's some confusion about old vs new menu styles so let's take a moment
to explain.

if yur menus have entries like this:

W,42,Who's On Line,,0

then u have the *OLD* menu style and u need to put /oldmenus on the adept
command line. I.e adept /nodes 4 /oldmenus, adept will now look for your
old style menus and use them instead of the default new menu structure.

if yur menu entries look like this:

BEGINMENUITEM
  KEY          W
  MENUCOMMAND  42
  DISPLAYCOLOR 0
  MINSEC1      50
ENDMENUITEM

then you can just drop the hagar exe's in place and run,
by typing adept /nodes 4 or however many nodes your starting up.

Hope the above helps people wanting to try the Hagar WatCom586 builds...

********************** NOTE:**************************************

I have had reports of adept not starting up for some people, this is usually
caused by a missing language.text in the \adept\system dir *OR* missing
events.text.x (where x is the node number) files in the \adept\events dir.
You *MUST* have an event file for each node you're starting up, otherwise
results are unpredicatble.....
Note: if u don't want seperate events for each node, just create a
generic Events.Text file, it will be used for all nodes that don't have
a node specfic events.text.x file.
******************** NOTE2 *****************************************

I have also had reports of adept "hanging" in atend.cmd rexx script if it's
a multi-line bbs, what i have found is that it will hang if more than one line
is in use and someone logs off on another line, the culprit seems to be
ADDRESS CMD statements in the atend or a script called by atend, (ADcaller.erx,
called by atend.cmd on some systems has an address cmd staement in it) for some
reason this hangs the rexx script. Don't know why, but it'll do it every time.
Workaround i simply to avoid the use of address cmd staements in *ANY* adeptrexx
script, or you can go back to the warp 3 distribution rexx dll's, they allow
address cmd statements to process normally. IBM changed something in the rexx
and I don't know what it was, but *SOMETHING* definitly changed. Personally
I have modified all my rexx scripts to avoid using address cmd statements
all together. Rexx has built in functions to do most of what i used to use
address cmd for anyway...

*******************************************************************

Join the adept e-mail list: Simply send an e-mail to:
adept-request@mail.snoval.com with the words, subscribe adept in the body
of the message, once you get yur confirmation message back you can post
to the list by sending messages to adept@mail.snoval.com, your posts will
automatically go to everybody on the list. P.s. I announce new build availability
on the list regularly.

1.09.66 ---  Revisited the new files list display routines, rewrote them from
             scratch, this version is a lot smarter, ie it respects the length
             of the users terminal screen as well as wrapping the text a lot
             better. Note: Wider line art boxes are gonna look kinda funny due
             to the word wrapping, but if you keep the width down to 40 chars
             or less, they'll display fine..
             Fixed a bug I introduced in menu type 51 displays while trying to
             solve the last character eaten problem in displays, moral of the story
             is end your ansis with a cr/lf ie instead of last thing being
             {PC or {PB, make it {PC or {PB followed by a cr/lf, and displays
             will be fine.

1.09.65 ---  Added Betels NNTP mods to the nntpserver, these mods are designed
             to protect the control files from corruption, and appear to work
             as advertised here...

1.09.64 ---  Ohhhhhh Man!!! I need a rest.. Farking file_id.diz's anyway.. OK,
             I finally got the formatting for the new files display engine
             working like it should, ie splitting lines on a space instead
             of midword and stuff like word wrap and padding with the neccessary
             amount of spaces.. .63 would do stuff like spilt a line in the middle
             of a word, or put a new line after a split line, causeing all sorts
             of werid displays.. This one seems to work as advertised now..
             (Scott if you don't run Adept now, I'll reach thru the internet
             connection and strangle you where you sit <g>)


1.09.63 ---  Found and fixed a bug in the compile language.text routines, this
             one was responsible for the array mismatch at line 125 expect crash
             message (Language.Text.Compiled was hosed at this point). It now
             compiles the language file properly.
             Scott Drake of isonline.com fame did not like the default adept
             files lister display, he says rest of world is using the Quickbbs/
             RemoteAccess/Proboard/Lora display style, so ok here it is, if
             you add 100 to any of the file display menu commands (ie 73 becomes
             173) you will now invoke the new display routines. For this to
             work though you need to add two lines to your language.text, make
             lines 870 and 871 look like this:

#870
[Mta]\r\n[0;34mศ{FF{B2 Name [0;34m{B1ออออออออออออ{FC{B2 Size [0;34m{B1ออ{FB{B2 Date [0;34m{B1อออ{FB{B2 Description\r\n
#871 actual file     name    date    size [Mta][Str]{B1[0m%u[K\r\n[K ภ> {FF{B1%-30s  {FE%5luk  {FB%s {FC[%5.5lu] {FD%s[0;36m\r\n
[Asc][Mta][Str]{B1[0m{C1[K\r\n[K ภ> {FF{B1{C3  {FE{C5k  {FB{C0 {FC{FD{CB {CA{FC\r\n
[Ans][Mta][Str]{B1[0m{C1[K\r\n[K ภ> {FF{B1{C3  {FE{C5k  {FB{C0 {FC{FD{CB {CA{FC\r\n

             I suggest cutting and pasting the above directly into your
             Language.Text. Course if you like the old display style you don't
             really need to modify language.text, however u should just to stay
             current.

1.09.62 ---  Found and plugged yet another small memory leak.
             Found and fixed a problem in AdeptToss.Log file creation, I broke
             it changing the name DOH!!! Fixed now, also added the pm version
             of my gatekpr build into the update archive.
             Recompiled rexx lib and adept from scratch...


1.09.61 Update 97/06/02 23:00
        ---  Two new metas added, {VN = Handle of last user on this node, and
             {VO = FullScreen Editor ON/OFF.
             Changed the name of the echotoss log file to match safehex's
             name (AdeptToss.Log) so those who prefer to run the vac gatekpr
             can do so and retain the same functionality of the adepttoss.log
             file. Note the gatekpr included in this archive is a watcom
             compile and has a new command line switch to force scanning of
             all areas if u desire the full scan, just place an S on the command
             line params and this gatekpr will scan all message areas for outgoing
             echomail. Example Gatekpr GateKpr.Ctl E RO S
             that command line will start gatekpr in scanout mode only, tell it
             to scan *ALL* msg areas and do routing. Other command line params
             are docced in gatekpr.doc, or is that gatekpr.txt, i forget, but
             they're in there.
             Added X to command line switches, this will force it to do a
             outbound scan *ONLY* if the adeptlog.toss file exists, if it
             does not it will simply exit, stead of scanning all bases...

1.09.61 ---  .60 ran for over 20 hours here, no errors, no memory leaks, .61 adds
             a file for gatekprs use, and the archive contains a gatekpr that
             makes use of this file. The idea is if echomail is entered into any
             echo area, the dropped file will contain the areanumbers of the
             areas that need to be scanned out, gatekpr will look for this file
             and if it exists, will only scan out the listed areas, if the file
             does not exist, it will default to doing a scanout of *ALL* areas
             as it did before. The file name is Echo.Fil and it will be created
             in the default dir (wherever adept is started from, most cases this
             will be \adept directory) and gatekpr looks for it in the default
             dir as well. The file is a flat ascii file with one areanumber per
             line, it can be viewed or edited (if you feel the urge to edit it)
             with any ascii text editor. I have tested it here as best I can,
             and am putting out this archive with the hopes of getting feedback
             on the operations of the thing...
             The Gatekpr enclosed here is the disk friendly version text mode
             gatekpr, If the need is there I will build a pm version of it but
             there really is no need IMHO of a pm version, cause who wants
             to sit there and watch a tosser at work ?? This version will also
             run in a VIO window, which is how i run it here, if I want to see
             what it's doing, I open the window and take a peek. Works well...


1.09.60 ---  Well lxliting the exe introduced some problems here, so this build
             will *NOT* be lxlited.. rebuilt rexx library and adept from scratch
             lets see if this build is stable again...
             Found yet another mem leak and plugged it.


1.09.59 ---  Turned compiler optimizations back on and lxlited the exe, it is now
             less than 700k big.. If anybody experiences *ANY* problems with this build
             please e-mail me...
             Found and plugged another memory leak, if anybody still notices
             free ram shrinking or swap file growing please e-mail me..

1.09.58 ---  Exe update 97/05/31 20:30 EST
             Added initials to quoted text in full screen editor, bumped nntpserver
             thread stacksize to 256k. Userfiles are now secure, only opened if the
             program requires userdata from the file, otherwise memory data is used.
             I have successfully copied users and index to backups with users on 3 nodes,
             no problems, and as far as I can tell no performance hit involved in
             open/read/close sequences, since the files are only accessed by a very
             small percentage of the code. My system has been copying users files to
             backup filenames every night in a nightly event without shutting down
             adept the way I used to have to do this, for a week now. Note that if
             os/2 crashes or power fails while a user is at enter name and password prompt
             the user files are open at that point and subject to corruption, but there's
             no way around that, since the user data has not been read in yet, but that's
             about the only vulnerable spot left for those files.. (Watch now some wise
             guy is gonna run a unuke -r with users on line and wonder why his userbase
             got trashed when they logged off <g>) While Unuke will prolly run to
             completion with users on line, when those users log off, the user base
             *WILL* be trash, since adept expects to write user data back out to the
             record pointed to by tyhe index file, and if u've changed the index, well
             you can well imagine what will happen. Moral of the story is *DO NOT* run
             unuke without shutting down adept first.. or if u insist on trying it
             "just to see" COPY THE FILES to backups first...



1.09.58 ---  Ahhhhh last one, adept would pull a usersrvr.dll trap when killing
             a message, this is now fixed.. BTW .57 was up for 2 days 5 hours before
             i shut it down today.... we're getting there..


1.09.57 ---  Sigh!! There was another one buried, in the import e-mail routine
             Fixed now, if anybody gets *ANY* usersrvr.dll traps, send me yur
             adept.log and the linex.log that corresponds to the last line started
             in adept.log, don't bother bout the popuplog.os2, if it's a usersrvr
             .dll trap i know exactly where it is..

1.09.56 ---  Added thread security to the open/close of users files, hopefully
             this will elimnate the usersrvr.dll traps i have been getting
             sporadically...

1.09.55 Update 21-5-97 18:40
        ---  Damn missed another one, this one would trap adept if a user tried
             to edit his parameters (natch the file was closed DOH!), this time
             I did a search for *all* userrecord functions and it does look like
             that's the last one to be found.

1.09.55 Update 21-5-97 07:45
        --- Found and fixed new users not being saved due to closed users
            file, they are now properly saved

1.09.55 --- Ok the userfile stuff seems solid now, *BUT* I have found a
            bigtime memory leak in the menudrvr, seems GOTO new menu and
            GOTO new menu with password, work quite a bit differently in
            the new menuengine, if u use goto's extensivly you will eat memory
            every time u switch menus. I have not been able to come up with
            a way around this, without sacrificing gosubs, so i have compromised,
            GOTO's are no longer supported, GOSUBS can do anything you want
            anyway, and since there is no limit on the number of gosubbed
            menus in the engine, you should be able to do anything you want.
            The type 3 Clear all gosubs and return to top menu can be used
            as a goto any menu simply by placing the desrired menu name in the
            optional data field. With no menu name specified it goes to the
            top menu.


1.09.54 --- DUH!! Found and fixed an oversight on my part, there were a couple
            more places the code was expecting the user files to be open (but
            i had closed them on it) so it trapped on me this morning. Found
            all the places it expects the files to be open and put in the same
            open/close logic as in the login code. Think I've got em all.
            It stayed up over 11hours though, so it's looking good..

1.09.53 --- Made yet another change to the userfile logic, adept will now
            open the usersfile when a user signs on and close them again
            just as soon as he's finished entering his password successfully
            instead of keeping it open for the duration of the logon. This
            should virtually eliminate the possibility of corrupting the user
            base files, still it's a good idea to back up vital files
            on a regular basis. This also means u should be able to run
            unuke while users are on line now..
            Also plugged in another mem leak fix from safehex, still have not
            plugged in menutypes 820,821,8, & 9, these gave me some probs, so
            I'm still not sure if i'll add em yet or not.

1.09.52 --- Made another change to the user file open code, cause I was getting
            traps in usrsrvr.dll on my system, hopefully these are now gone.
            Restore yur user file from a backup (the index too) just to be
            safe...


1.09.51 --- Fixed a user file trashing problem in the new user file mods,
            You should *RESTORE* your users files from your backups (you did
            make backups before firing up .50 right) before firing up this
            build, chances are good they're trashed.


1.09.50 --- Update, found a memory leak in the new mods to the menudrvr,
            so i have pulled support for types 820,821,8,9 till Nitin and I
            can sort this out..

1.09.50 --- Fixed the user files open problem, user file is only opened if
            a user (local or remote) actually connects, this should make
            adept a little more resitant to os2 crashes scrambling the users
            file or index files. I've tested this here as far as i Can, but
            you should back up your users files before firing this build up
            for the first time.

            Added Safehex's addition to the menu command set, added types are
            820,821,8,9 Docs are below...

1. Added my DOS door runner into Adept itself as menu types 820 and 821.
   Why 2? well...820 keeps the session in the background and 821 keeps
   it in the foreground. I like foreground and Hagar likes background :)
   Syntax is the same as for type 801 etc...eg:

        1,820, Some Vague Door, VagueDor.Bat {LN,0
        2,821, Yet Another Vague Door, YAVD.Bat {LN,0

   I can think of some improvements on this, but after I get some
   feedback as to what other sysops feel/think about this option.

   Currently the door runner assumes that VX00.SYS and the OS/2 ANSI.SYS
   is in your Adept dir (if req) AND that your Adept dir is \Adept.
   I will fix this later...if req :)

4. Added 2 new MenuItems for the Old Menu Style, which I have not
   currently included in the new menu engine as it might not be really
   required by most sysops. If there are a sufficient number of SysOps
   wanting that in the new menu style engine, I will try to add it to
   that as well. The new menu funtions added to the Old Style menus are:

   Menu Type 8 - Switch to a given Message area and then Gosub a Menu
   Menu Type 9 - Switch to a given File area and then Gosub a Menu

   For example:

        A,8,[1] Switch to Message Area,Message.Menu;Message Area Name,0
        B,9,[2] Switch to File Area   ,Files.Menu;File Area Name,0

   Keep in mind that the Area Name should NOT be in quotes even if it
   has spaces in between. Oh well...I was using 2 line rexx scripts
   just to do this...the other option was to use the AutoMenu as
   suggested by Hagar, but I guess I am too lazy :) so I plugged in a
   single command for it.


1.09.49 ---    Ok, now that we know adept will indeed start 512 or even 1024
               nodes if yu have the mcahine to support that, I'm cutting the
               max nodes back to 32, if anybody requires more than this, then
               send me an e-mail with the number of nodes you req. and we'll
               do a build special for you.
               Modifed attach file to local message function so that if either
               forcetoname or forcesubject flags are set it will not ask
               the upload a file question, will just skip that code alltogether.
               Fixed post a message function that I inadertently broke plugging
               in the mem leak fixes DOH!! Gotta be more careful with my cut
               n paste function <g>.
               Did some more work on cserver, new cserver.exe in this archive
               please use it.. and e-mail me any traps u might get..
               Added ability for local logon to do file attaches to messages.

1.09.48 ---    Fixed a small bug in the events editor re mincost and maxcost
               fields, if u entered a 0  it was not saving as a 0, it does
               save as a 0 now for both those fields, blanking out the field
               will leave it unchanged if it exists or will not write an
               entry if it does not already exist.
               Plugged safehexs mem leak fixes into the files list routines.
               Found an anomly in the new user login routines, if yur rexx
               callback verifer is one of those that drops dtr on yur new users
               forcing them to call back, the user record will never be saved
               and that user will have to logon as new again. Reason for this
               has to do with the time cheat bug fix i put in a while back, what
               happens is the record is not saved if logon, is not completed
               properly (Ie the routine has to execute all the way instead
               of being interrupted by carrier drop) so if yur callback
               verfifer disconnects the user after verifying him, adept thinks
               the user never finished logon, and does not save the user record
               to disk. The way to get around this, is to allow yur new users
               to successfully complete user logon, don't drop carrier on
               them during logon sequence. I simply changed my callback verifer
               to not drop dtr on them and everything is fine. You may call
               this a bug if you like, but i'm not changing the behavior
               since doing that will allow time cheats again. Just consider
               it the nature of the beast.

               Plugged in Safehex's latest round of memleak fixes...
               Did some more work on Cserver to try and get rid of those
               Phantom chat symptoms some users experience in rexx chat.



1.09.47 ---    Well I got brave and tried to start 512 nodes here and it
               started 435 before i ran outta Vram, so it should start
               512 on systems with enough resources...

1.09.46 ---    Found and fixed the memory leak I have been tracking down in
               the new caching file I/O system, built a 64 node enabled version
               for those who want to play with larger "live" nodes, just fire
               it up with the number of nodes u want to bring online as per
               usuaual , max is 64 nodes. Now to get some runtime on this
               sucker.. letting my users loose on it now...
               Later on.. looks like the mem leak is definitly fixed, to find
               out for sure, I'm enabling 512 nodes in this build, and BJ
               is gonna try bringing all 512 online in setup mode, let's see
               what happens...

1.09.45 ---    Never saw the light of day, cept for some alpha testing,
               discovered a huge memory leak somewhere, so it's gonna take a bit
               to track it down....

1.09.44 ---    Implemented a bbswatcher thread into adept, now if a bbs
               node hangs for whatever reason, the watchdog thread will
               issue a DosKillThrea() call which should terminate it and
               anything it was hung in, I've tested it as far as I can
               but i'm having a hard time trying to make a node hang on
               my board. Lets see how well it works in the real world, you
               should never see adept sitting there counting negative time
               for a user who has long ago dropped carrier again.
               At least that's the theory...
               Looking good, that bbswatcher thread is doing it's thing,
               I tested it with several rexx scripts that used to just sit
               there waiting for input on a carrier drop and it killed them
               off just fine. Here's one for you, ever seen a user fire up
               yur ftp.cmd script, start a several meg download and drop
               carrier on it?? I have, it sits there ftping till the transfers
               finished, THEN recycles the node, well not anymore, 5 seconds
               after carrier drop now the ftp.cmd and it's transfer are
               killed.. Node is back up and waiting for calls instead of
               just not answering for several minutes till the ftp finished.
               Note: ATEND.CMD can still be a problem, hanging a node, there's
               not much I can do about this, cause ATEND.cmd is not started
               till *AFTER* carrier is already gone, so I've got no way to
               know if it ever completes running or not, and the way it's
               started I don't have access to the thread id anyway, so
               make sure you know what yur atend.cmds are doing...

               Fixed a minor glitch in the cold input more y/n prompt where
               a user had to hit two <cr> to continue, a single <cr> will do
               the job now, as is the case with hit enter to continue and
               press any ket to continue.

1.09.43 ---    Looking good, 20+ hours uptime here with over 65 callers in
               that time, not a single error. Reports from the other sites
               so far all positive too.....

1.09.42 ---   .41 was never released, .42 adds Towers revamped Caching
              file I/O subsystem to adept, this stuff is *FAST* and is looking
              very solid here, if yur worried about testing this build live
              stick to .40, but if .42 proves stable, i'm gonna stick with
              the new i/o system, it's definatly a speed increase.
              This build is currently running at a few test sites, we'll see
              what kind of reports come in.

1.09.41 ---   Fixed something I had fixed back in the days of Hagar builds,
              which somehow got lost in the shuffle, that being locked files
              being left behind if a user dropped carrier in middle of a qwk
              or bluewave export run.
              Added a check for existance of Atlogin.menu, instead of blindly
              calling the menudriver and letting it discover the menu does not
              exist, this was causeing a delay of 5 seconds or so between time
              news.asc was displayed and time new files scan came up, if the file
              does not exist there will be no delay now cause menudriver doesnt
              have to shuck and jive and see it's missing etc.. The local message
              file attach seems to be working just fine here.. so i'm not gonna touch
              it unless someone reports a problem with it..
              Increased the bbs threads stack to 800k by default and mailer
              thread stack to default to 500k, these can be tuned from the
              command line, ie adept /nodes 4 /bbsstack=262000 /mailerstack=262000
              would set the stacks to 260k.
              Fixed a bug in rexx function posttextmessage that was not allowing
              the private message bit to be set, should be ok now..
              Re-enabled FTS-001 support cause of complaints that adept mailer
              is not to FTN specs.


1.09.40 ---   Had a sugesstion that i tie the netmail file attach privelege
              and import file functions to the area SYSOP security !! Why
              didn't I think of that, I totally forgot about the sysop security
              setting for message areas, so it's done, to enable netmail
              file attaches simply set yur sysop security level 1 to greater
              than 500, this same security level is checked before allowing
              import of a text file into the message editor, so now you have
              control of these functions not only on a security privilege
              level but also by selected message areas (for text file import)
              netmail file attaches will only be avilable in the netmail area
              of course, but this allows yur co-sysops to have that feature
              if you want him to.
              Fixed a bug in the local file attach upload code, turns out if
              a user was really fast and logged out before the transfer box
              was finished updating adept would trap out. The status box
              update is properly terminated on the up/download now so that
              problem is no longer there.

1.09.39 ---   File attach to local *PRIVATE*
              messages are in this build, and all the testing I've done here
              indicates success, so I'm gonna release it for live use.
              This is the way it works, if a user enters a message into any
              LOCAL message base and the message is flagged PRIVATE, the
              system will prompt the user asking if they wish to attach a
              file to this message, if they answer yes, they are prompted for
              a protocol then prompted for
              a file name, and an upload starts using the protocol the user
              has selected. The file will be received into the dir
              .\Hold meaning by default the \adept\hold directory, note you
              must create this directory, make it in yur default \adept dir
              and all will be hunky dory. The file will remain in the hold
              directory untill the receipient logs on, when he reads this
              message he will be informed that there is a file attached to
              this message and asked if he wants to download it. If he says
              Yes the standard file transfer dialog will come up letting
              him change protocol if he chooses. Once the file has been
              downloaded it is deleted from the hold dir. Once the file
              is deleted the user will not be prompted again if he rereads
              that message.

              Found and squashed a bug with the quickscan menu command,
              it will now return to the list of messages stead of dumping
              to the messages menu..

              Pulled the old menu engine outta this build, result ? Menu
              execution speed doubled, if anyones running old style menus
              *CONVERT* em, it's not that hard to do and you only need do
              it once.

1.09.38 ---   Safehex released this build for those who want to try it.
              Filename is Vacu38.Rar, this is a vac build of V1.09.37

1.09.37 ---   Farkity fark, I screwed up with .36, accidentaly selected
              small memory model in the compiler options, soooooooo I
              Changed compiler switches yet again, recompiled
              rexxlib,cserver,avi and adept with the new switches, seems
              stable enough here.
              SafeHex sent a fix for an obsure LMR trashing bug, it was
              actually included in .36 but i forgot to mention it.
              Safehex spotted a bug in trashcan checking routines, fixed
              in this release.
              Did some more work on cserver, it was still trapping occasionally.


1.09.36 ---   Fixed the list user function, so selecting = on a more
              prompt properly displays nonstop , it worked locally but
              was broken for remote logins.

              Have had reports of users being expired when you don't want
              them to be, if u have expire days for a sers group set to
              anything other than zero, the expire code will take effect and
              if they have expired, they will be downgraded. If u don't want
              expiry code checking for a group (like sysop) set the expire
              days to 0. this effectivly disables the code.

              Made some more changes to cserver.exe, hoping to stop this
              phantom chat syndrome...

              Safehex found a bug in the meta conversion routines that
              might explain some random traps in the meta engine, this
              has been fixed...

              Revisited netmail file attach routines, it was pointed out to
              me that some sysops adjust sec2 in login scripts or in atlogin.menu
              based on groups and access levels, so sec2 is not a good candiate
              to enable the file attach feature, same goes for sec1 and the flags
              words, so what I have done is put in a check for the users name
              against the bbs sysops name, (The name u configed in bbs setup)
              and if it matches, I allow the option of file attach. Hope this
              change meets with everyones approval.

              Decided to make the same change in the Import A text file into
              current message function (^KL) instead of blindly checking for
              a security level of 99 or greater, this frees up the use of sec1
              and sec 2 for whatever u want to implement it for, without
              compromising system security. Note if some signs on as *YOU* though
              they will get access to these features, so protect your passwords.
              I thought of restricting them to a local login only, but some
              sysops may have use for them from remote logins, so i left that
              check out.


1.09.35 ---   Made a change to chat client code, if the socket numbers
              of client ever get high enough to reach the common port
              defined in cserver it will refuse to connect that client.

              File attach to netmail entered from adepts message editor
              is now supported, this feature will only be avilable to
              users with a security level 2 (NOTE 2) of 5000 or higher.
              If yur sec2 level matches 5000 or greater, you will be
              prompted for path\filename to attach to the netmail.
              This feature is enabled on *ALL* netmail entries, meaning
              new message entry or reply to netmail or reply as netmail,
              you will be prompted, default is no so hitting enter allows
              a normal netmail to be entered.



1.09.34 ---   Got a report that if u double clicked on the outbound
              window to get rid of title bar immediatly after it becomes
              visisble, it would never scan the outbound, sure enough,
              it stops the outbound scan. So now if you double click
              on the outbound window soons it comes up, the action is
              delayed till the message and file areas load code has completed.
              This load code can take quite a while on systems with large
              file/message bases. The double click is qued so it will take
              effect once the semaphore has been posted by the load threads.
              The other 3 windows also have this delayed action in them.

              Found and fixed a bug in the user time for session calculations,
              if time/day == time/call, results would be unpredicatable, since
              they were using the min() macro, min does not (as far as i can
              tell) know what to return if both values are equeal).

              Some people are leaving the expire to group # in groups set to
              0, if this is the case and a user logs on and is expired, it
              will show him Expired.A?? and log him off without trying to
              downgrade him to a non-existant group.

              Same behaviour is now implemented if accounting is active and a
              user goes bust, but group to set him to when broke is set to 0,
              it will just show him Nocredits.A?? and log him off without further
              action.

              Fixed the outbound problem where M. and H. files were not being
              deleted after a mail session with that node, they now get deleted.

              Recompiled cserver.exe and avi.dll to use the same compiler
              switches as adept and the rexx lib, shouldn't have caused any
              problems, but better to have all code generated with the same options.
              Be sure to replace avi.dll and cserver.exe with these ones.


1.09.33 ---   14:00 update (97/5/4) fixed a bug in the chatclient
              routines that was not allowing people to be deregistered
              from chatserver. Cserver would show them in a chat room
              even if they had left chat. (Rexx chat)

1.09.33 ---   Fixed a logon bug that would cause adept to trap,
              didn't happen here cause i was still running with
              /acct in my command line, an important variable was not
              being set unless you were running with /acct.
              It is now set regardless of the /acct switch.

1.09.32 ---   Added the shutdown options to the popup menus of the
              adept status window. (The one that shows uptime etc)
              Click on any line number to get the popupmenu.
              Safehex added compile time information to the product
              information box, now you can see exactly when yur copy
              was built.
              Fixed the Hot/Cold input routines to now work as advertised,
              if a user has no hot keys turned on he will have to follow
              his selctions with an enter keypress. (Note for the local
              console hotkeys are *ALWAYS* on regardless of the hotkey
              setting)
              Added user expirey code to the login routines, the bbs will
              now check the users group number and if expire days is set to
              a non zero, it will check his expiretime and drop him to the expireto
              group if his time has come up.

1.09.31 ---   Changed adept's Origin signature to reflect it's freeware
              status, it will now put (*FREEWare*) in the origin line.

              Fixed a small problem in the drop dtr from bbsscrn popup
              menu, it would only drop dtr on the guy if that node had
              the focus in Line# selection, it will now drop dtr on the
              user even if that node does not have the focus.

              Enabled and fixed user accounting, if you start adept with
              /ACCT on the command line accounting will be enabled. You
              set up accounting details in GroupEditor->Accounting button.
              The groupto downgrade user to on bankruptcy of account is
              also working, if a user who is in an acountable group goes
              bust, he will be expired tot his group number. Note the
              credit field of the user is also debited on a netmail post
              as per cost per netmail message.
              If a user tries to login and his remaining time exceeds his
              remaianing credit, he will be shown NoCredits.Asc/Ans/Avt.
              and logged off after his group number is adjusted and saved.
              Along with this are two new metas, {SF to show users remaining
              credit,and {SG to show credits charged per minute.

              Fixed the bug that was causing Badpass.menu to not allow
              a user to post a message to sysop. You can now give your
              users the option to write you a message from that menu, or
              do whatever you want from that menu. This menu is executed
              after the user gets his password wrong for the number of times
              you have configured.


1.09.30 ---   Cserver seems ok now, did some work on adepts end of it
              though, worked on the chatlient code in adept, trying
              to make it more reliable.
              Safehex added the routines from the new menuengine to the
              old menuengine, you should now be able to use the same
              menucommands in either engine.
              Got a report of rexx trapping adept, this build should cure that.

1.09.29 ---   Safehex has been busy, found 3 or 4 other places in adept
              that had the same kind of bug as the menudrvr code, this has
              been fixed. These kinds of things probably account for a good
              many of adepts unexplicable traps for no reason stuff.
              Did some more work on cserver hoping to cut the traps
              down or elimnate them if possible..

1.09.28 ---  .27 introduced a bug in the netmail message entry (would
              trap on node lookup) it would ask for subject and adept
              would crash. This build fixes that...


1.09.27 ---  Safehex is doing a bang up Job on finding/fixing obscure
             gremlins in the menudrvr code, since the menudrvr is the heart
             of the bbs system, it makes sense to go thru it with a fine tooth
             comb and pull out whatever we can find. this build will have the
             latest menudrvr in it.
             Went thru every single source file and changed all memfree()
             calls to the new macro that checks for null pointers before
             freeing em (freeing a null pointer is a sure way to trap
             adept) so this should reduce the traps a lot.
             Changed compiler code optimzation options on safhex's recommendation
             to some safer switches, the ones i was using could allow
             gremlins in the code. It's still pentium optimized though.

1.09.26 ---  Done painting<g>.. Ok did some more work on the chatserver
             code, decided it was stupid to add another function when
             there is already one to disconnect the user, so i pulled
             the AdeptSysChatRemoveUser() rexx function, and simply had
             the AdeptSysChatLeaveConf function do both, it will now
             cleanly remove a user (just as if he has logged off) and
             clear him from the conference. Tested here, seems to work ok.
             I inadvertently broke public messages in rexx chat too, sorry,
             this is now fixed. I got safehex's timeout routine wrong, it's
             not for transfers, but to keep adept from keeping a user online
             all the time counting negative time. The transfer thing, well
             the transfer is done in a dll, not much we can do about it at this
             point.

1.09.25 ---  Hrmmm, where to start, Ok SafeHex has identified a few
             instances in the menuengine that could cause adept to trap,
             these have been repaired, thanks to him.
             He also added a timeout for when a user drops carrier
             during a file transfer, now instead of adept just sitting
             there counting down time, it will hangup and recycle the node.
             Added a new AdeptRexx function, AdeptSysChatRemoveUser(Line)
             will now disconnect a user cleanly from the chat server, use
             this *AFTER* a AdeptSysChatLeaveConf, the leave could
             get buggered if a user quit and reconnected during the same login.
             This should fix that and may cure the cserver traps to boot.
             Avi.Dll, has been updated again, removed the last vestiges of the
             Frank Sexton fix attempts..Missed one in the last cleanup and
             this was causing probs with ATI boards for sure.

Update 28-April-97 11:30 EST

1.09.24 ---  Worked some more on Cserver.Exe trying to get it to stop
             trapping on busy chat systems.
             Abandoned Vac builds for now, Vac builds had trap problems
             if yur still running a Vac build beware, suggest you upgrade
             to 109.24 watcom build asap.


1.09.24 ---  Fixed a bug in the {VL (First name only) meta,
             plugged a hole in the login routines that was allowing
             users to scam more than their daily alloted time allowance
             as set by the sysop.

             Reports of some video problems being caused
             by the last avi, prolly due to that patch i put in to try
             and fix this last cirrus cards bug. So I pulled that pactch
             but left in the older cirrus/trident cards fix. Be sure to
             use this avi.dll. I have done all I can on getting that last
             brand of video card to work properly with adept, nothing I've
             done makes any difference to this card, I can only conclude
             the card or driver for it is broken at anything over plain VGA.
             It works fine in plain Vga. The card in question is made by
             JATAN Corp. and is dubbed the 5446-JT/2Meg, billed as an
             VGA/MPEG video card, if your trying to run adept at greater
             then 640x480x16 resolution on this specfifc card, well all
             I can say is I tried, but sorry your own your own with this card.

             Fixed a long standing "feature" where mail up/downloads were
             being added to file transfer stats, they will no longer be
             counted, file transfer stats are now just file transfer stats.

             Added the toggle DTR option to the bbs windows popup menu, I
             find it a pain when I've got the bbs window in the forground
             and want to disconnect that user for some reason or another, to
             switch to the asdept main window just to toggle dtr. You can
             now do it right from the popup menu, you know, the one u use
             to get into sysop<->user chat.

             Fixed the broken multi-lingual support in this build, it now
             works as documented in AdpXbbs.Doc.

             New Cserver.Exe in this build, looks to be more stable than
             previous builds of cserver...


1.09.23 ---  This is our first VAC compile, it's build 1.09.22 really
             with a few cleanups and checks in the code.
             We have come up with a scheme to let you know what your getting
             by the name of the files, all Full installs will be called
             like this ad109f23.zip = full install VAC build, there will
             be no watcom full install. All upgrades will come in two
             flavors, watcom and vac compiles, ie 109u23.zip = watcom
             upgrade and VACu23.zip = vac upgrade. This allows those
             who believe one compiler is better than the other to run
             the flavor of their choice. Both builds will be Pentium
             optimized, but will run on lesser platforms too.


update 26/4/97 13:00

1.09.22 ---  Grrrrrrrr!! Fixed /NoStat which somehow got broken bewteen
             builds.18 and .22. It now works again as documented.

update 26/4/97 11:00 EST

1.09.22 --- Thanks to mattis I found and fixed a big hole in the
            user login dupe user check, it is now no longer possible
            to logonto two nodes at once.
            Added 2 new mets to adepts meta engine, {SD will return
            The Time Os/2 was booted at and {SE will return the time
            OS/2 has been up since boot.

1.09.22 --- .21 was never released, not because of bugs, but because of
            a major new twist. U remember how some people liked the 107
            style menus? Well this build will allow u to use your choice
            of menu formats. If you run it as usual you don't have to worry
            bout the new feature nothing changes on your current hagar
            build system. However if you add /oldmenus to the cmd line
            u use to fire up adept, it will look for the old menuengine
            style ascii menus.. (The ones you used with v1.07 and 1.08.0xx
            versions of adept.) So now adept is even more flexible, you have
            your choice of rexx menus, newengine menus (compiled) or plain
            ascii text menus. You can thank Safehex alias Nitin Chandra
            for this piece of magic. (Glad he's on the Adept team and
            not the Lora project :>) Other good news is Nitin's got Vac
            for os/2 so expect a vac compile with all the latest
            features in the very near future. (Soons i get word back on
            this stupid cirrus bug). This build has all the features
            listed below too...
            Got word back from Sexton today, transparent screens still
            exist on his pci 5446 cirrus card, this included Avi.Dll
            is another attempt to fix that. Have had one report that
            adept is trapping in the video driver on one system, if
            this happens to you try switching back to the pre-cirrus fix
            avi.dll (you did back it up right ?) and see if your problem
            goes away, if you are having video traps I wanna hear from you.

1.09.21 --- Users uploaded msgs via bluewave/qwk are now added to his
            user record of uploaded msgs count (Thanks to safehex for this
            mod)..
            Added a new system meta variable to show bbs uptime, put a {SC
            in any asc/ans file and it will show the uptime in days:hrs:mins
            format.
            New Avi.dll included, this is yet another attempt to fix the
            one remaining case (That I know of) of transparent local bbs
            windows...waiting to hear back on this fix, but it does not
            affect systems who did not have the problem so i see no harm
            in releasing it.
            --- Never Released see 1.09.22 ---

1.09.20 --- Found and fixed a bug in the new pmi update code (for a
            user deleting mail after entering it) I recommend you
            take the precaution of deleting every file in \adept\personal_mail
            as this bug was eating the pmi files.. could cause traps if
            you don't clear the grunged files.
            Also included is another avi.dll to try and fix the cirrus bug
            which is now only happening on the new pci 5446 card and drivers
            from cirrus, if you have a 52 series card you should be all right
            as the previous fix is still in there.
            Have also had problems with long files names (The message area
            name is used as the filename of the msgbase) being directly
            entered into the message_areas file. The pulldown editor is
            programmed for a 60 character maximum length, but since virtually
            nobody uses the editor to create message_areas, we have been seeing
            some ridiculosly long file names, specially if yur setting up
            news groups and are using the group name as the areaname. Soo in
            the load msgareas code  have put in a hard limit of 128 chars
            for the areaname, if you have a longer area name than that it
            will simply be cutoff at the 128th byte.

1.09.19 24-April-97 19:30 EST Update

        --- Fixed a *LONG* standing bug with farking file ratios, the
            ratio credit field of the groups editor was totally broken
            so it would always save a garbage number in the credit field
            usually a negative number, this threw the ratio calcs out
            the window. it now saves as it should and defaults to 0
            as it should. You'll have to edit your groups to set this
            the way you want it.

1.09.19 --- New Cserver.Exe in this build, trying to eliminate the traps
            that plague cserver on a busy chat system.
            Did some work on the adeptrexx engine, for the same reasons,
            and working on those two of course means i have to recompile
            adept.exe too. Be *SURE* to put both the cserver.exe and adept.exe
            online toether, *DON'T* mix old cserver with new adept and vice
            versa, some of the changes I made to Cserver directly affect
            the way adept works...
            Added yet another Meta Variable, {VM will show the last user
            who was on this node. (Full Name).

1.09.18 --- 24-April-97 09:00 EST Update
            Have added something  have wanted for a looonng time into
            adept. A first name only meta variable. {VL will display
            the users first name only. While I was at it  added {SA
            this will display the users current status as shown in the
            status window of adepts pm screen. And finally {SB, this will
            display the connect string that user used to get on line with,
            useful for pulling ip addresses out with rexx on telnet/vmodem
            connects and other such stuff..
            baud rate /arq etc are also in this line, it's the string
            returned by the modem itself..

1.09.18 --- 23-April-97 10:30 EST Update

            Ok. I think I have finally found the infamous cirrus logic
            card transparent screen bug, included in this update is a new
            Avi.Dll. This dll should fix that stupid bug once and for all.
            (I hope :> wish I had a cirrus card to test with, but i don't
            so.....)

1.09.18 --- Bluewave import had a prob with some area names if the
            first 5 or so chars were the same, it could post the
            msg in the wrong area, this should be fixed now.(Lemme know Bill)
            Fixed the menutype 53 (Who's in this chat channel) so
            it now displays real names properly too (if u use the real
            name meta in yur language.text that is)
            Added a check to see if the chatserver is running before
            sending the users input out to the channel, if the server
            went down while the guy was typing, he could wind up in never
            never land.. Recompiled the adeptrexx library.
            Made another attempt at fixing the cirrus logic bug, last
            attempt didn't change anything <sigh>.
            Put some code in place so a user who's time has been adjusted
            due to upcoming forced event cannot simply go to the time
            bank and withdraw enough time to overrun the event. It will
            simply tell him he can't have that much and exit..

1.09.17 --- So much for working on soffits and deck :>
            This build is my first attempt to fix the cirrus logic
            and trident display drivers transparent bbs screens.
            I found a problem in the code that could account for
            the display problem. Lemme know if it's fixed. (If u have
            trident or cirrus card that is)

1.09.16 --- Major menudrvr bug,type 4 and 5 commands (goto,gosub with
            password protection) were totally farked. they now work
            as documented.
            Note: those using the language file oout of the full install
            may want to edit line #314 to reflect their own systems name
            instead of mine<G>. Just change DogStar BBs to whatever your
            system is called, this line is displayed on a who's online
            command.
            No more builds for a few days.. gotta fix my soffits and
            repair my deck.

1.09.15 --- What a farking day <sigh>!! Mattis (of course) had another
            bug to report. Seems he has 7000 msgareas defined and adept
            would trap when it hit area 2016. Turns out area 2016's
            name was 53 characters long. Adept uses the name as the
            filename, and of course somebody hardcoded a 64 char
            path/filename limit into just about every source file
            that opens a file. Spent the day tracking down all those
            damn hard coded limits and changing em to 512. Adept
            no longer traps on mattis's msgareas.
            Fixed the more yn= problem where on a remote call, if
            a user was listing message areas and hit = for nonstop, it
            would only show him one more page and stop listing. This
            was not evident in a local login, only for remotes.
            Hitting = now causes adept to scroll the message areas
            as fast as the users modem can handle the data.

1.09.14 --- Mattis reported a bug that I can see being a problem on
            a busy system such as his. If a user enters a message
            or messages, then changes his mind and deletes 1 or two
            of them for whatever reason, we have a problem, the person
            the message was to has already had his personal mail index
            file updated (PMI Index). The bug comes in when that person
            logs on, he's notified of new mail, but the message has been
            deleted. Result, he cannot read any new mail past that deleted
            message, the pmi is farked at that point. So what I did was
            to put in the delete routines a call to update the pmi index
            (removing the deleted message from the pmi file), and I went
            one step further, if the brain dead user who entered the message
            in the first place changes his mind and UNDELTES it, the pmi
            index is again updated. Result deletes/undeletes now properly
            update the pmi index.
            Second, adept was letting people on even if their name was
            in the trashcan file, it was only checking trashcan on new logins,
            it now checks names already in the userbase too..


1.09.13 --- Non existant I hate 13 !!

1.09.12 --- Too many updates, time for another minor version increase
            Added one more flag value to the type 51 menucommand,
            flag = 128 will now execute a clear screen before it displays
            the text file. This flag is summable with the others, so you
            can have it clear the screen and prompt to hit enter to continue
            at end of file if you like, so to get more prompting, allow
            interruption of display etc use 151 (128+16+4+2+1).
            Bill-e has reworked the docs, and they are included in the
            archives for this build.
            Note: there is an existing bug in Adept that everybody should
            be aware of, it is in the adept telnet mode. If you select
            telnet active for a port and enable only telnet server, adept
            will trap on the first connection to that port. Workaround
            for now is to enable *BOTH* telnet and socket servers, in
            both the line config and internet options configs. With
            both telnet and socket enabled, all works wonderfully.
            Will see if I can figure why it traps without sockets selected.


1.09.11 --- 20-April-97 07:30 Update...
            Fixed a cosmetic logging problem that was showing up if
            a colors.ctl file was not found.
            Built a new cserver.exe that does not generate a chatdebug.log
            file, this logfile could get quite huge if left to grow on a busy
            chat system. I'm including the new cserver in the update zip.
            Also made a change to the code to try and keep adept from
            farking the events files on a trap condition, this happened to
            me a few times, where an events.text.x file was truncated to
            0 len because of a trap or abnormal shutdown condition. This
            change should keep that from happening again.

1.09.11 --- 19-April-97 23:30 Update...
            Ok, Mattis (of Lakebbs fame, telnet to lakebbs.cn-newc.com.au to
            see an excellent 32 node adept system) reports a problem with
            users faking out the dupe user checks on telnet nodes especially
            and using this to gain more than their alloted time for the day
            on the bbs. I have looked at the dupe user check, if the timing
            is just right they can slip thru the crack. Soooo I have added
            a *SECOND* dupe user check right after they enter their password.
            Adept will check, ask for password if they passed the first check
            then if they get past the password it checks once again, if it
            finds the guy on another node, it will hang him up. This should
            take care of that timing window. Mattis, let me know how it's
            working out for you, if it's still an issue, i'll think of
            something else.
            Now a word about who's on line displays, and real names versus
            handles displays. Both the rexx chat who's on line and the regular
            menu type who's on line commands share a common language.text
            line entry. the line in question is #314. If you have a {CF in that line
            then who's on line will display *REAL* names. If you change them to
            {CG then who's on line will display handles. You have your choice,
            currently there is no way to display both short of someone coding
            a rexx script to handle it. (Shouldn't be that hard if someone wants
            to tackle it, both real and handles are available to adept rexx
            and the line number can be incremented to step thru all available
            nodes, soooo, if someone wants to get a bit of adeptrexx excercise
            this would be a good project. ) The way this function is coded in
            adept does not lend itself to an easy way to allow a dynamic display
            of either real or handle. It's simply coded as a choice you have to
            make as Sysop.


1.09.11 --- 19-April-97 21:30 Update...
            I'm tired of manually adding {PC's to text files to give users
            a chance to read the displayed file, like lord scores etc. So
            have modified type 51 menu types, if 16 is included in sum of
            optional flags it will now automatically prompt user to hit
            enter to continue at end of displaying text file. See the docs
            for what the rest of the flags values are, they all work as documented
            default is still 7 if no flags value specified on optional data
            line.

1.09.11 --- Sometimes, if you started adept and then immediatly hit
            Shutdown from the pull down menu, adept would start shutting down
            before all the init threads had finished running. Result,
            adept hangs with part of itself in memory, preventing you from
            starting it back up again. Reboot was the only way to clear
            this condition. This sucks and has bit me quite a few times.
            Sooooo, Adept will now post an itnternal semaphore when the
            load msga areas and load file areas threads are complete. I put
            the semaphores in these two threads, cause they are the ones
            who take longest to complete. (It takes 20 seconds to load
            my 1000 msg areas here.) So when you hit shutdown now, the
            shutdown does not go into action till those semaphores are
            set indicating thread completion. So be aware, if you have
            a lot of file/msg areas, and you fire up adept, then immediatly
            hit shutdown, it may seem like forever before it actually
            shutsdown. It's actually waiting for the load msg/file areas
            threads to complete before shutting down. So be patient, let
            it do it's thing, it will eventually shutdown normally. Note this
            has no effect on the close button in upper left corner, I recommend
            not using that button in any case, unless it's an emergency
            situation, like a hung rexx script or some such. Hitting close
            does not save configs and stuff, and in somce cases, depending
            on what adept was doing when you kill it like that, can actually
            corrupt config/events/etc files. Always try to go thru the shutdown
            menu to ensure and orderly shutdown.


1.09.10 --- Revisited the events editor, add,delete,insert,and edit all
            work properly. Editing a nodes event file that does not exist
            or is 0 length used to trap Adept, it will no longer trap,
            instead it brings up the add dialog and lets you create an
            events file for that node on the spot, it will save this file
            when u answer yes to the sasve your changes to disk dialog.

1.09.09 --- Due to popular demand, I have taken the automatic execution
            of the ifconfig lo command out of the adept and cserver exe's.
            It was causing problems on some systems apparently, so it's gone.
            It is now up to the sysop to configure the local loopback, (as
            discussed at the very beginning of this document) to configure
            his/her machine's local loopback. Adept *NEEDS* this local
            loopback, as does chat server.

1.09.08 update 9-Apr-78 10:00 EDT

            Pulled the local line recent events logging, it was casuing
            problems here, would only show up if you logged on locally a lot
            so it's back to normal, ie local line recent events does not show.
            If you need to know what happened on the local line, look in
            \adept\logfiles\line0.log that's what it's there for.

1.09.08 update 9-Apr-78 07:45

            fixed a small bug in the lookatbbs function when it is
            called by right clicking on an active line number from the
            AdeptStatus window...

1.09.08 update 8-Apr-97 14:30

            Put in some code to keep bluewave and qwk from trapping adept
            when it can't find an archiver for the uploaded packet. Or if
            there's a problem unarchiving the reply packet. Used to trap
            adept, should not happen now.

1.09.08 --- Addressed several issues with the Qwk - bluewave import/export
            functions. Bluewave import should not produce duplicate
            msgid's on uploaded messages. The from field of bluewave exported
            messages is now truncated at 35 chars as specified in the blue wave
            spec. A space character is now added to begining of blue wave
            exported text, again as per blue wave spec. The qwk/bluewave
            export threads will no longer bomb out on blank to/from fields
            in the messages it is exporting.
            I have one report of the ifconfig commanf that adept (and cserver)
            now generate on startup, the report claims that it messes up the
            tcpip stuff , (symptom of not being able to dcc) I need to know
            if this is true on anybody else's system. i know it's not true
            here, but my system is not complex, would appreciate feed back from
            somebody who is using tcpip network (or anybody to whom it *IS*
            causing a problem). The obvious way to test this is to shutdown
            adept and restart it a dozen times or so, if yur tcpip is not messed
            up after a dozen starts, it's prolly not an issue.


1.09.07 update 7-Apr-96 08:45

            Fixed the bug in menutype 53 (Show users in chat channel) that
            was causing the display to show wrong names..

1.09.07 update 21:00 EST

            Found a potential problem, if after a fresh reboot, you bring
            up Cerver.Exe without having done an ifconfig lo 127.0.0.1 first
            then bring up adept, cserver will start logging giomt traps
            forever, slowly chewing up your hard drive space with a huge
            giomterr.logfile. So included in this build is a cserver.zip
            that contains Cserver.Exe V0.60.05. This build of cserver will
            on startup execute an ifconfig lo 127.0.0.1 to set up the loopback
            it needs to run properly. Both adept and cserver now do this, i left
            it in adept too cause single node systems may want to run without
            loading cserver.exe. In any case your covered, should you reboot
            and load either of these two without having setup the loopback, they'll
            now do it themseleves instead of going south to peoria.

1.09.07 update 16:30 EST

            Ok got it right this time, recent events will now log local
            line stuff and no mixing of video when yur logged on local.
            The titles on the windows will now relect Line 0 which is the
            local logon session.

1.09.07 update 13:22 EST

            Well that didn't work to well, so i pulled the change, the
            recent events window is back to old behaviour now...
            sorry bout that.

1.09.07 --- Too many updates, so new subversion number.
            By request I have changed the recent events box behaviour
            to display the local login logstuff same as if it was a remote
            login. the title will still say Recent Events: 1 but the info
            will be coming from the local login. When u logoff it will
            revert to line 1 loginfo ( or whatever line u select).

            Now I know I've threatened this before <g>, but this time
            I really gotta do it. I'm not gonna mess with the code for
            a minimum of 2 days, we can't get any decenent runtimes
            if everybody is shutting down their adept everday to upgrade.
            I need to know the build is stable before we do anything else,
            and the only way is to let it run and see what happens. Hopefully
            it'll be a nice stable piece of code.


1.09.06 update 6-Apr-97 09:30 EST

            Ok. I just finished helping a guy out in IRC chat, who was
            having problems logging into adept, it would hang at login,
            sound familiar?? Turns out he had rebooted and forgotten to
            execute the ifconfig lo 127.0.0.1 command before firing up
            adept, well since adept absolutly *NEEDS* that loopback to be
            set, i have hard coded the command into the Adept.Exe. First
            thing it does now is spawn an os/2 window and runs ifconfig lo 127.0.0.1
            It does this *EVERY* single time you start adept, executing
            that command more than once does no harm, and this ensures
            the loopback will be set for adept to use.

1.09.06 update 6-Apr-97 07:45 EST

            Fixed a memory overwrite in the events editor..

1.09.06 update 5-Apr-97 07:30 EST

            Got a report that trying to edit the *LOCAL* lines
            eventfile (What pervert would think of trying to make an
            events file for line 0 anyway? <Sigh!!>) would trap adept.
            Sure enough it does. Reason is there's no provision for
            having an events file for line 0, it does not even attempt
            to load an events file for line 0. Fixed it so if you try
            to edit line 0 events file, it does nothing. Just dismisses
            the pulldown menu.

1.09.06 --- Ok the events editor is fully functional again, Next,Prev,
            Insert,Delete,Add all work, just a couple things u should be
            aware of. If there's only one event in yur events file your not
            allowed to delete it. The Add button is disabled untill you
            get to the last event in your file, ie u hit next till the Add
            button lights up. Insert works just great, remeber that it
            inserts *BEFORE* the currently displayed event. A quirk, if
            you hit add or insert, you can fill in all the fields, but
            the day of week buttons are grayed out. You can only choose
            everyday, no bigge once u've added or inserted the area, hit
            next or prev then go back to the area u just added, click off
            the everyday selection, and the days of the week buttons will
            light up. I think this has always been there and is probably
            not a result of the work I did on the editor. Anyway, it's
            functional. Note: it makes a backup if you say yes to save
            your changes to disk. Ie events.text.1 will be saved as
            events.bak.1  !!

1.09.05 --- The config->events dialog would crash adept if you hit
            the Prev button or the delete button. Fixed Prev button so it
            works as expected, but I had to disable the delete button, the
            add, adn the insert buttons. The only way (for now anyway) to
            add,insert, or delete an event is to shutdown adept, and directly
            edit the events.text.x files in \adept\events subdir. The
            config->events pulldown menu can be used to look at or change
            existing events.
            These changes will keep adept from trapping on you if you go
            into the events editor.

1.09.04 --- Reading back thru Steven Towers Alpha readme's reminded me that
            he had found a really nasty bug in the 107 series code's Events
            subsystem. This bug could toast Os/2, resulting in traps, Adept
            shutting down for no reason, system hangs, etc. A lot of weird
            behaviour could be attributed to this bug, and it would never
            be the same symptom twice. Soooooo to make a long story short
            I pulled the entire 107f Events Subsystem and replaced it with
            Towers fixed code. The only thing this means to you, the sysop
            that the first time you fire up this build, *ALL* events will be run
            as the Events subsystem gets things in Sync. Once it's finished
            executing all the events, it will be business as usual. This new
            events system does *NOT* use the binary event files (the Event.1
            Event.2 etc) events files, instead it uses the TEXT event files.
            I.e the Events.Text.1 etc files. It will add one new keyword
            to the text files, LASTRAN, this keyword tells the events system
            when the event was last run. You don't have to add it, it will
            be done for you when you first start this build. Events editor
            will now save to the text files instead of the binary files.

            I added a History.Doc file to the zips in an attempt to document
            the new features that have been added to these builds. this document
            is not a replacement for AdpXbbs.doc, but is meant as a supplement
            to it. All the new functions/keywords/enhancements have been gathered
            in the History.Doc file.

1.09.03 --- Made it so that when u use the /nostat switch adept fires
            up just as fast as when you don't use that switch, no more
            20 second delay waiting for the system status box to come ready.
            (Since it is never gonna come ready, why wait on it.)

1.09.02 Exe UpDate 2-Apr-97 16:30 EST

               Added a new command line switch, (Just for WIKK) if
               start adept with adept /nodes x /nostat it will fire
               up *WITHOUT* the adept status screen, looking like pre 1.07
               days before they added that status screen. Note it takes a little
               longer to come up but it does come up, have patience..

1.09.02 Exe Update 2-Apr-97 07:30 EST
               Found and fixed a bug in the menu compiler, there were
               occasions where a menu (the text file) would become
               corrupted or overwritten. Fixed now..

1.09.02 ---    Added 4 new menu commands, menu commands 119 and 120.
               These work as the description for menu types 25 and 26.
               Except, that these two will only act on *TAGGED* message
               areas. The offline mail tags are what is inspected by them
               when showing u the next area. So it is now possible for
               your users to tag a bunch of msg areas, and using type
               119 or 120 do a read of tagged areas. It tells the user
               number of messages in the area, his last message read, then
               the user has the option of reading the area, skipping it
               setting direction etc.. just like types 25 and 26.

               Menu Commands 121 and 122, these two will do a quick(121)
               or detailed(122) scan of tagged message areas. Again the
               user has the choice of doing the scan on the area presented
               or skipping it. If he chooses R)ead he will read the message
               headers. just like menu choices 16 and 17, but for all tagged
               message areas instead of just the current area.

               Give your users the option to tag message areas from yur
               msgs menu by using either (or both) menu types 50 or 702.
               The beauty of this scheme, is that the user can permanently
               set tags that will be rememebred across logins, but at
               any given login can (for that session only if he chooses) tag
               a bunch of areas he doesn't want to be permanently tagged.
               Unless the user saves his tags they will be lost at the next logon.

               Note: If u have 5000 message areas and u tag area 1 and 5000,
               and invoke one of these menu types, there's gonna be a noticeable
               delay between the time u read the last message in area 1 and the
               time area 5000 is presented to you for action. It takes *TIME*
               to scan 5000 message areas looking for the area tagged bit.

1.09.01 ---    Removed some debug printf's that were still in my color
               loading routines. Went thru and cleaned up the compile
               time warning messages that actually meant there was something
               amiss with the code. Recompiled Rexx and Adept from
               scratch. A full fresh compile.

1.09.00 Exe UpDate 31-Mar-97 21:33 EST

        --     Fixed a small glitch in the system status window, the
               boot time was displaying current time instead of the
               system boot time, now it displays date and time
               os/2 was booted at correctly.

1.09.00 Exe Update 31-Mar-97 09:30

         --    Alt suggested a reply to any message as E-Mail reply, good
               idea, this function now works, the tilde key invokes the
               reply as e-mail option from the message reader menu. You
               can reply to a message in *ANY* area as e-mail and not lose
               your place in the area you are reading. Change line 901
               of language.text so it looks like this now"

#901  (Next Page, Prev Page, Over, Abort, Reply, Forward-thread, Backward-thread, Quit-thread, Kill, Move, Copy, Locate, LocateNext, LocatePrevious, #Msg, Description, rUles, =Again, Scan, Without stopping, !Toggle Ctrl-A, LocateUser)
[Str]NPOAR][.KMCL/\#DU=SW@! X*~:        <---- Note the tilde key right after
                                              the *.

1.09.00  --    This build removes the alpha (or Beta) designations from
               my builds, I think they've proved themselves stable enough
               to be called releases, don't you ??
               New fetaure, couple guys were asking bout the possibility of
               of replying to echomail with a netmail, well it's done, and it
               works. I've tested it here works like a champ. To enable this
               little feature (yeah little after it works <G>) you need to edit
               line #901 in your language.text file. Make it look like this:

#901  (Next Page, Prev Page, Over, Abort, Reply, Forward-thread, Backward-thread, Quit-thread, Kill, Move, Copy, Locate, LocateNext, LocatePrevious, #Msg, Description, rUles, =Again, Scan, Without stopping, !Toggle Ctrl-A, LocateUser)
[Str]NPOAR][.KMCL/\#DU=SW@! X*:

               Note the added * character before the : it used to read X:
               change it to X*: the * key will activate the reply as netmail
               option when yu are reading any echomail message. Hell make that
               *ANY* message, if you want to reply to a local base with netmail
               well you can do so, didn't feel it was worth the added effort
               to filter out the local bases. Note that all security options
               and flags still apply here. If you don't have the flags or
               security level to post in yur netmail area you won't be able to
               enter the message. Oh and it doesn't matter what you call
               your netmail area, i scan for the NETMAIL flag (you should
               have it checked in your message areas setup already right?
               Right!)


--- aH20 --    30/3/97 11:00 EST Exe UpDate
               Ok, people have been bitching cause adept adjusts a users
               time on *ANY* upcoming event, well as of today, adept will
               only adjust users time if the upcoming event is *FORCED*,
               ie the Forced flag is set for the upcoming event.
               Note: If yur gonna do any experimenting with this, be *SURE*
               you don't try to test it from a local login, since Line 0
               (Local login line) has no events file, it skips the calculation
               of time to next event. Either call in or telnet in since all
               remote lines *MUST* have an events file. If yur running without
               an events file for a particular node your asking for trouble.
               It may run, but yur gonna get all kinds of strange happenings.
               If a node is active, it *MUST* have a corresponding Events.Text.X
               file where X = The node number that file corresponds to.



--- aH20 --    Dropped squish support entirely, Squish is 4-d Adept
               is 5-d. The two just don't mesh, too many kludges required
               to work around squish's limitations. Why should I have to
               break Adept to get it to work with Squish. Makes no sense
               to me.
               Same goes for *.msg for netmail area, why should i kludge
               a perfectly good 5-d aware program to *try* and get it to
               run with a 3-d aware message style. Again makes no sense
               to me.
               Onwards.. made a change to the files download routines to
               try and fix this intermittent DosCall1.Dll traps that I and
               others have experienced when a user tagged a lot of files
               for download. Hopefully this is fixed now.

29/3/97 15:45 EST Update... Reworked the control info calculation for the
                 squish message base stuff. (I learned a bit more about
                 squish and realized I was doing it wrong.) The testing
                 I have been able to do here indicates success. This squish
                 support is still considered *ALPHA* ware, use with caution.
                 I.e. I wouldn't rush out and convert all my bases to squish
                 without running some tests first.

--- aH19 --   Ok here we go, this build has adept reading/writing
              Squish message bases, this support is in there in a limited way.
              By limited i mean:

              1> NetMail, Internet E-mail, and Usenet message areas cannot
                 be made into squish bases. These type message areas are
                 gonna have to remain Adept style message bases.

              2> Adept will only read/write *EXISTING* squish message
                 bases at this point in time. (This may change if I get the
                 ambition up to have adept create an empty squish base, gotta
                 learn more about the squish structure first.) So if your
                 gonna make an area a squish message base you will need something
                 to create the message base files for you, i understand there
                 are external editors out there that will  do this, heck even
                 the squish tosser can do it for you if your tossing echomail
                 with it anyway, just be sure you don't try to write a message
                 from adept into a squish message base that has not been
                 initialized yet. Once the base has been initialized adept
                 has no problems read/writing to it, I even made it so bluewave
                 and qwk imports will post properly into a squish base.

              3> To turn an area into a squish area, you will have to edit
                 your message_areas file in \adept\system dir and set the area
                 flags to 32768, do *NOT* set the EchoMail flag, this will result
                 in adept not writing to the squish base, squish bases are
                 echomail by default in adept. (See restriction 1 above).

              4> If your gonna use squish bases for echomail it's assumed
                 you know how to setup and run squish (the tosser/scanner)
                 program. *DON'T* ask me about it, I've never ever used
                 squish bases in my life. Of course it goes without saying
                 Gatekpr does not now and may never support squish bases. (Why
                 should it, you wanted to run squish didn't you?)

              5> Depending on available time, i may or may not get around to
                 making adept capable of creating a squish base from scratch.
                 But that's a ways down the road.

              6> Oh almost forgot, you'll need the squish dll's in yur libpath
                 somewhere for all this to work, I included them in the
                 zip file, i put mine in the same place as my adept dll's
                 and things seem to work fine in the limited testing I've been
                 able to do.

              7> Last but not least, this stuff is largley *UNTESTED* so use
                 at own risk applies. It reads and writes from adepts read/write
                 menu commands, I have no way of knowing how squishp.exe is gonna
                 react to finding a domain in the control info, it may puke all
                 over the place. As far as I know (correct me if I'm wrong)
                 squish is *NOT* domain aware..


--- aH18 --   Revisited the colors stuff, changed the method of
              obtaining the nearest possible RGB background color for
              any given color depth. Hopefully this is the end of
              it.

27/3/97 11:30AMEST - Kay it looks like colors are solid now, all I did in this
              update is to fix a small problem with the {M2 meta variable,it
              was displaying one more than it should have.. Fixed now.

27/3/97 20:30EST - Thanks to Donovan for pointing out the status screen was
             just a Tad cluttered, and for coming up with a layout that looks
             much nicer, easy fix once you know how you want it to look, and
             Dono had a definite suggestion as to how it should look, soooo
             presto, chango, Done.

--- aH17 --   A purely experimental build, I turned on *ALL* optimization
              options in the watcom compiler. You may want to wait till
              reports come in on wether this build is as stable as the
              regular builds before you install it, however i need
              *somebody* besides me to run it <g>.

25/3/97 10:45EST Ok, still getting a glitch with s3 and cirrus cards as far
              as color settings go, this is an attempt to fix that. BTW the
              fully optimized version ran here for over 24 hrs, looking good.

25/3/97 12:00EST Sigh!!! Once more around the park please, another attempt
              to fix colors for some video cards that are having a hard
              time setting the backgroundcolors...

--- aH16 --   Ok, cleaned up the rest of the colors display bugs, should now
              work properly on anybody's system. I decided to leave the main
              frame as a Gray background rather than making it configurable
              too... Put the msgarea loading code back the way it was,
              mainly cause I got a trap when a user connected this afternoon
              and it's the only code I touched in the mailer/bbs, rest of work
              was all done in display subsystem. If u get *ANY* traps at all
              record the trap information so i can try and figure out what
              was going on when it trapped. the numbers i'm interested in are
              the last set ie they lool like this:
              Adept.Exe 0002:00019ef9   if it doesn't say adept.exe then it's
              of no use to me, i only have source for the exe not the dll's.

23/3/97 09:00 EST Update... The Adept Status window was displaying funky
              colors when u switched to it, this should fix it. BK lemme
              know if it does the trick for you...

23/3/97 10:00 EST Update... Minor glitch in Status:1 Box reported by Taz,
              this update should cure that...


--- aH15 --   On my system Adept sometimes traps at startup, usually in the
              loading msgareas code. The loadmsgareas was being started as a
              seperate thread, and was sometimes still doing it's things
              when adept was ready to initialize things, i have changed it
              so it's no longer a seperate thread, it should now wait till
              all msgareas are loaded before the init code runs. You may see
              a slightly longer startup time (I.e you won't see the waiting
              for call status till the msgareas are all loaded) than before
              but i believe it's worth the extra few seconds in exchange for
              a more reliable startup sequence.
              In the archive is another sample color.ctl file, named multi-color.ctl
              just rename it colors.ctl and adept will  use those colors for
              it's screens, this layout is what Wikk likes on his system<g>.
22/3/97 16:30 Ok I think i've nailed the clors bug, at least it works in
              1024x768x64k and 800x600x16mill here, should work on *ANY*
              resolution now. give it a whirl and lemme know, I'm late for
              Dinner...


--- aH14 --   I don't like the number 13 <g>..
              This build heralds Adepts coming into the color age, included
              in this zip is a file called colors.ctl, simply place this file
              in your \adept\system dir, edit the values to your liking, then
              fire up adept. The screens will come up with fore/back ground
              color combinations *YOU* selected. So if you like Lora's colors
              fer instance you can set adept up to look like it. The screens
              are all individually controlled as you can see in the colors.ctl
              file, so be creative, choose color combos that look good to *YOU*.
              NOTE: if the colors.ctl doesn't exist, Adept will still come up,
              but it will come up with a set of default colors *I* picked.
              If u wnat the old standard GRAY screens, simply set all background
              to 204 and all foreground colors to 0, that'll give u black
              text on gray background...


19/3/97 19:00EST Update - I just realized, i left test code in there, all windows
              will take on colors of LOGBOX, sorry folks, they now respect
              the settings you set for the other windows...

20/3/97 08:00EST UpDate Fixed a cosmetic problem with The status box, it wasn't
              always being updated with the right background color, now it
              is...

21/3/97 14:00EST Update, some people are reporting funky background colors
                 this is an attempt to fix that... I'll need feedback cause it
                 does not happen here, I suspect that only really fast machines
                 like p166's were having the problem... and Cirrus Cards
                 continue to be a bitch, dunno what I can do about that.
21/3/97 15:30EST Update, due to popular demand the close button has been
                 renenabled, and if colors.ctl does *NOT* exist adept
                 tries to default to black text on gray background..

--- aH12 --   This builds made special for _Dutch_, all I'm gonna say is
              Click your Right Mouse Button on any Line# in the Adept Status
              Window, (The one that displays system uptime and all that).

 3-16-97 07:45EST - Did some more work on the adeptrawcom functions, cause
              telnet.cmd caused adept to trap again last night, found a
              problem where one of the functions was not setting the return
              code at all, fixed that and recompiled the rexx lib, we'll see
              what happens now...
 3-16-97 09:00EST - Changed the number of chars displayed by {A8,{A9,{AA from
              20 to 40 , this was a request to allow usenet address to display
              better... Note, that to get a 40 char display u have to change
              line # 361 in Language.Text from 30.30 to 45.45 or u will only
              display 30 chars in the From field..
 3-16-97 15:00EST - Noticed that if selected bbs window from the status screen
              right mouse button popup, then minimized it, then went to adepts
              main status screen and tried to call up the bbs window from there
              it would not (cause the focus was no longer on that line #) so
              I added some code to restore focus to line it was originally on.
              Not a big deal but people might have wondered why it would not
              call up the bbs window sometimes...anyhooooo fixed!.
 3-17-97 06:30EST - Changed the display of {A8 etc back to what it was, the
              system uses these meta's all over the place, and it was messing
              up the nicely layed out displays, for quick/detailed/pmi etc
              functions.


--- aH11 --   Added the FTPName field to the pm file editor, it works the same
              way as the other fields, i.e. u need to hit save after making a
              change to an area, or the change won't be written to disk...

              Cut the exe size down to a shade over 600k =)

              Well I ran the adept ftpd for a day or so, seems to work with
              a few quirks, 1> it doesn't know what to do with ACCT commands,
              so ftppm.exe in os/2 barfs, won't connect to adeptftpd, 2> neologic
              ftpd won't send the filename to get to adeptftpd fro some reason
              if autodetect (the default) is used... os/2's command line ftp
              works fine with it, others may or may not. The bulk of the ftp
              engine is in a dll to which we don't have source code, so there's
              not likely to be any more improvements to this part of adept.
              I'm back to running neologic's ftpd on my site, simply cause
              ftppm, neologic ftp clients etc can connect and transfer with
              no hassle..

--- aH10 --   Fixed the ftp server so it doesn't trap adept anymore when
              the remote transmits a PWD request as the *FIRST* command
              after logging on, this was causing a trap cause file area
              information had not been loaded yet, so now it will automatically
              place the user in file area 1 on the first pwd command, subsequent
              pwd commands will work as expected. Everything seems to work
              fine, but bear in mind the server uses the adept file system, so
              if you have files in accesible areas that have not been imported
              into adepts filebase, the ftpd won't see them... The ftpd will
              respect security levels and flags on a per area basis, same operation
              as the regular filebase menu commands..
              To have anonymous ftp available, log in as anonymous, use any
              password for now, then logoff. Now go into useredit and set the flags,
              security, and other things you want this anonymous user to have, (I set
              mine to new user status, which means if someone actually logs onto the
              bbs with this name, they can't do squat.) and finally edit the password,
              when the password entry screen comes up simply hit tab once, then hit enter,
              it should ask u if u really want to set password to zero length, say yes.
              and save the user record. People can now log into your ftpd with the
              username anonymous and anything at all for a password. (Something *MUST* be
              entered, simply hitting enter won't let them in) You now have anonymous
              ftp set up for your adeptxbbs.
              To enable the ftpd simply start adept like this: adept /nodes x /ftp where
              x is the number of nodes u wanna start and /ftp tells adept to start the ftpd.
              That's it, if you wanna see it from a users point of view ftp to
              206.248.78.1 I'm running it here...
              One last thing, you need to manually add the FTNAME areaname to
              yur existing files_area file, the pm editor doesn't do FTPNAME yet
              and in fact will wipe it out if it exists, so just use a text editor
              on File_Areas and yu'll be all set...
              19:20 update fixed a memory overwrite in sysystat thanks to betels
              sharp eyes fro finding this one, am putting lots of info in
              that adept status window and i forgot to increase the buffer
              size accordingly... fixed now..


--- aH9 ---   Made a change to the RawCom functions adept rexx routines,
              in an attempt to stop telnet.cmd from trapping adept if a user
              hangs up at a critical point in the script, it's a rare timing
              problem but it happens at least once a week on my system, so
              hopefully this will cure it. And since I rebuilt the rexx
              lib, rather than just relinking, i decided to recompile the
              whole shebang from scratch...
              Also Chris and I exchanged Code Diff's last night, Have added all
              his PM cleanup code to my code, we should be at the same level
              of fix/enhancements with this code exchange... cept for the few
              things that are unique to the code streams, ie menuengine stuff
              and mailer stuff...

--- aH8 ---   Found some more vestiges of towers attempt at a new file i/o
              system for adept. Removed all that stuff and recompiled...
              found that if a user dropped carrier at logon prompt, files
              were not being closed properly, even the mainmenu.ans
              file could remain open...it now closes any open files..


--- aH7 ---   Ok, did the same as Betel, Shutdown menu is disabled till
              adept has started the outbound window, this should prevent
              shutting down being initiated during startup, it used to happen
              that if the threads had not all completed initialization and
              you hit the shutdown button, adept would get confused, leaving
              a portion of it's self in memory, effectivly preventing you
              from starting adept up again. You used to have to reboot to
              clear this state..
              Betels, Bluewave import change of not checking for carrier drop
              during import was already in this code, so no worries there.
              What else.. oh yeah, the outbound box cannot be closed, it will
              simply minimize if u try to close it. That's about it...
              Changed the default background colors to pure white
              background, this one outta display properly even on a
              16 color system.. (I *HATE* Gray <g>>)

19:30 Update..DUH!!! Plugged a hole in the time to next event calculations,
              seems if a user used all his time and called right back, the calc
              would go negative, fail the if and give him time to next event
              letting him back on, now it logs him off if he's used all his
              time for the day... sorry bout that folks..

--- aH6 ---   I've been playing with PM stuff, this build is an attempt to
              get adept to respect System Background colors, the windows
              should take on the colors of the system background,  (That you
              set in scheme or color setup or wherever it's set.) the dialog
              boxes will still take on color of the system dialog colors
              which default to pale-Gray.. On my system the background color
              is set to red=0,blue=255,green=255, I kinda like it.. lemme know
              how this goes over.. (I was so *SICK* of that pale-gray background
              adept defaults to)...
              However... not everyone has true color and adept was pulling up
              a lot of funky color combinations, so it's back to  that pale
              gray stuff (I *HATE* gray<g>)...looked real nice on my system
              though..oh well..


--- aH5 ---   Put in Wikk's Fax fix to class 2 faxmodems, if the settings
              are wrong blame him<g> I don't have a class2 faxmodem here, he
              does...sooooooooo.....
              Recompiled to get an up to date map, I inadvertently misplaced
              the map from the last build, made a few changess to the
              file i/o code... nothing big, the relogin menu option, menu type
              1002 relogin should now work (I haven't tested this so ... )
              and here is towers original story on how it's supposed to work.

              Added a new menu type, 1002.  Logoff and Relog on.
              This will display prompt #935 (currently unused) and display the
              file Relogin.Asc/Ans/Avt to the user before commencing with the
              relogin.  This is a COMPLETE logoff with relogin, except that it
              doesn't drop carrier.  ATEND.CMD will be run, etc.  I have added
              two new rexx function functions.

              AdeptSetRelogin(line, TRUE/FALSE) - Tells the BBS to relog the user back
                                    on after logoff is completed.

              AdeptCheckForRelogin(line) - Will return 1 if the user is requesting a
                             relogin after logoff.

              So there you have it, as I said the code is in there but I haven't
              personally tested it yet... I thought I'd enable it in case
              someone out there has a need  for this function.

--- aH4 ---   WatCom586 Build by Hagar...
              realized i was still using the 107f rexx library, this may have
              been responsible for some weird stuff I was seeing on my system
              so I have replaced the rexx library with towers code, to keep
              everything in sync. Rebuilt the library and did a full recompile
              of adeptx.
              Moved users age calculations back to where they were, think moving
              them up introduced a nasty bug, anyway users age is not available
              in the time adjusted screen cause it hasn't been calculated yet, it
              will always show as 0...

--- aH3 ---   WatCom586 Build by Hagar...
              Told ya I couldn't keep my hands off it<g>...
              Ok, I have added the ability to use custom login.asc/ans files
              on a per node basis, the bbs now looks for loginx.asc/ans where
              x is the node number, so you can have a login1.asc/ans login2.asc/ans
              etc..(Note if yur going to use this method, the .asc *MUST* exist or
              the search will fail.) if it can't find a loginx.asc file, it will
              default to the old behaviour of displaying the plain login.asc/ans.
              This gives you great flexibilty and control over  your login displays
              for each node.
              Of course I have also added the ability to display a custom
              WelComex.Asc/Ans screen, again on a per node basis, if welcomex.asc
              for that node doesn't exist, it will try to display welcome.asc/ans,
              and if that doesn't exist it won't display a welcome message at all.
              Note: these linex.asc/welcomex.asc files must be in the text dir
              just the way the old files were in the text dir.
              Later.... fixed a problem with the timeadjusted.asc/ans/avt/rip file
              it wasn't showing the {V3 (users age) correctly, this was due to
              the fact  that age had not been calculated till after the file was
              displayed, moved the age calcs up before the file display and all
              is well...
              OK i added a small check to see if address is locked before trying
              to send anything for a node who calls in while gatekpr is tossing
              mail. Before it would send the archive (even if gatekpr had not
              finished yet) now it should wait till gatekpr is done before
              releasing the archive to the polling node...


--- aH2 ---   WatCom586 Build by Hagar The Horrible
              determined that the add files to the edit download list function
              is blamemless for the trap report i got so i put it back in...
              added a carrier check in qwk  and bluewave import routines, was getting
              reports of traps if a user logged off too fast..lets see what this does..
              DOH!!!! Fixed my calculation to next event, was always giving user
              all the time to next event.It works properly now. (Hey I never was
              any good at Math<g>)
              ...Later in the afternoon, double DOH!!! I just realized, line 0
              *DOESN'T* have an events file, no wonder my testing was coming
              up with weird shit... and I was only calculating time to next
              event of the *LAST* line that started.. i.e in my case, node 8's
              event file was being used. Added code to skip time to next event
              calculations if line is local logon, and added code to ensure
              that the events file of the node the user was logging into is
              being used. DOH!!!

--- aH1 ---   WatCom586 Build by Hagar The Horrible  (Hence the H1 :>)
              all future builds will end in H? where ? is the build number...
              At long last adept will now respect events. It will check the users
              remaining time allowed in the bbs for this logon, compare it to
              the active events end time for  this node (It is assumed that the next
              event starts immediatly after the current one ends, valid assumption I think
              since you should not have holes in yur event schedules anyway for proper
              operation of the mailer) and if the users time is greater than time to next
              event, his time will be adjusted accordingly. If  an adjustment is made to
              the users time he will be shown (if it exists in the text dir) the file
              timeadjusted.asc/ans/avt/rip. You create this file and make it read
              anything you like. Meta's are valid in this file just like all other
              text files, so u can show the user his adjusted time if u like, or simply
              inform him his time has been adjusted.. it's up to you.
              I have included a timeadjusted.asc/ans file in this archive as a sample
              of what u can do with it. Not fancy but it meets my needs for my bbs, do
              with it what you will. =)


--- a50 --- Watcom586 build by Hagar
            Ok so I can't keep my hands off it =)
            fixed a bug in the intenet e-mail posting routines, if u had allow
            anonymous messages turned on it would ask the question, but always
            used the users handle in the post. Now if u say no to enter message
            anonymously, it posts it with your real name.
            Also all areas it now checks fro use rewal name flag and if it's
            checked it uses real name, if real name is not checked it checks the
            anonymous flag and  if it's set it uses the handle, if both real name
            and anonymous are not checked it will offer the user the choice.
            Betel and i are now shipping the same set of dll's once again, if
            in doubt use the set in this archive, they're the ones I linked with.


--- a49 --- WatCom 586 build by Hagar

            Have received several reports of giomt.dll trapping at various times
            so in an effort to cure these traps, i have regressed to the vac4
            giomt.dll. It is included in this archive, rest of the dll's have not
            changed but i include them just to be complete. Be sure to use these
            dll's for running a49. The exe was linked with this specific set so
            it only makes sense to use them at runtime...
            Changed the default icon to hagar, will make it easier to identify
            my builds from any others out there..
            Whoooohoooooo!! added system boot time to the adept status screen..
            it now shows system boot time, system uptime, adept online time, and
            current time of day...!!
            Made a change to the user editor to allow up to year 3000 stead of the
            year 2000 limit that was there previously... hopefully this will not break
            anything else, but *BACK UP YUR USERS FILE* just to be safe....
            Pulled my (A)dd files to list code from the edit tagged files item,
            the way i Had it had potential to trap adept... will re-examine this
            and try to come up with something else..but for now it's back the way
            it was...
            Whooooohoooooo, now u can see at a glance what version yur running,
            simply  by looking at the adeptstatus screen, version number is now
            displayed as first line. (Had to give you *SOME* way of keeping up
            with the rapid fire releases as of late. <g>)
            Ok. I'm gonna lay off releasing anything else for a while, wanna make
            darn sure I've got a stable bbs (A49 uptime 6hrs so far) system here.
            So unless someone reports a serious bug, this will be the last exe for
            a few days at least. Thanks to all who have helped test the "Hagar"
            builds over the past few weeks. Your input is invaluable. Keep up the
            great work folks.


--- a48 --- WatCom 586 build by Hagar

            Extended the menu PROMPT field from 128 chars to 512 chars, this should
            be enough for anybody, if u have a menu prompt that is longer than 512
            chars u need serious help <G>... and it will cut it off at 512 chars.

            NOTE: YOU MUST DELETE *.BIN in your \adept\menus dir and let adept
            recreate them, if you don't do this Adept will trap soons it tries to
            load the main menu!!!!!!!!!!!!! (Natch the old .bins don't have the same
            bytecount as the new .bins will have)

            Thanks to safehex for some system uptime code, we now have a system
            started at and system uptime on the adeptxbbs status screen, looks
            KEWL!! Thanks Safehex, I count u as one who "Sent Code" in the true
            binkley spirit... (Only our stuff is better than bink <g>)...
            Fixed add to download list from the edit tagged files prompt, it will
            now prompt you for a file name, whn yur finshed entering filenames
            it will enter the download dialouge....


--- a47 --- WatCom  586 build by Hagar
            lesse, first, fixed a bug in the /noinit, if u tried an
            adept /nodes 1 /noinit 1, adept woult trap...fixed.. it now works
            as does /setup...
            Fixed the broken adept native telnet sessions, ie
            telnet polls now work if u want to use them instead of using
            vmodem for your telnet stuff. I tested it here and even pulled in
            two 100k mail packets from dutch, no problems...
            Note: there is a potential problem, where if u start adept and then
            immediatly hit shutdown from the pulldown menu, adept gets confused
            and stuff remains in memory, if u then try to restart adept, you get
            an error messge and adept won't start. Only way i've found to clear
            this condition is to do a reboot. This seems to occur because of the
            load message areas thread not having completed before u told adept to
            shutdown, it's very prevalent here with 1000 msg areas it has to load.
            Moral of the story, is don't tell adept to shutdown before all the
            startup threads have completed. It can take as long as minute and a half
            to get evrything initilaized to a know state, prolly longer if u have a massive
            files and msg areas section. Give it time to complete, then shut it down
            things will work ok then...



--- a46 --- WatCom 586 build by Hagar
            I screwed up, when i dropped towers mailer back in I forgot to
            drop in some essentgial support files as well. This caused erratic
            behaviour in the mailer. I.e adept would not send files to another
            system, it would report sending files, done, without actually
            transferring anything.
            Reworked the file tagging stuff, it should now only tag the first
            occurence of a file. (Note that if u try to tag 4 or 5 files at once
            and it finds a dupe on the second file it will stop tagging without
            tagging the rest of them. If it finds no dupes, it will tag all the
            files u requested to be tagged). I tested this here with a dupe filename
            and it worked as advertised soooo.....lemme know how it works for you.

--- a45 --- WatCom 586 build by Hagar
            did some more work on the files tagging scheme, it should now only
            tag the first  file it finds by that name (hopefully it's the one
            in the current area) and on download option will put *EVERY* file
            that matches into the download list (which is editable by the user
            before he downloads).. Taz i need you to test  this for me again,
            I haven't been able to get duplicate filenames into my files system.


--- a44 --- WatCom 586 build by Hagar
            Added a bit of logic to honor autologoff requests on Offline mail
            downloads, if user requests autologoff the lmrs are automatically
            updated and the system starts logoff counter...
            Fixed a security hole I had created in offline mail, ie. area 1 was
            unprotected and could be downloaded by anybody, it now honors same
            checks as the rest of the areas...

--- a43 --- WatCom 586 build by Hagar
            Added some code to ensure unique msgid's in bluewave imports...
            Added some code to prevent files with the same name from being tagged
            for download, i.e if u have a bunch of files called 00index.txt only
            the first one will be tagged, i haven't been able to test this here
            cause I only have unique filenames in my filesbase, anybody that has
            dupes  in different areas, I would apprciate a feedback on wether this
            works or not... TAZ ?? U were asking, can u test it ??
            Fixed a problem with reading asc/ans files, ie if {PC was the last
            thing on the line, the C was not being read in. It workks properly
            now. Safehex this one's for you. :>


--- a42 --- WatCom 586 build by Hagar
            Put Towers mailer code back in the mix, since he had fixed some
            bugs in the mailer and generally made it more robust. Seems to be
            working fine.
            Guess I'm just writing this to remind myself what I have done from
            now on since I have decided not to release any more of my builds.
            Was confusing people no end having different menu systems, so I'll
            be the only one running a42 and up...


--- a41 --- WatCom 586 build by Hagar
            Fixed a *LONG* standing bug where mail export would never export
            message area number 1. It now does so.
            Added a status messge to the offline mail IMPORT function, it will
            now tell you how many messages were successfully imported, and also
            log it in the system\linex.log.
            Both qwk aand bluewave imnports have this function now.
            Hopefully fixed the multiple background exports thread problem where
            it would start a background export every time u hit download  instead
            of realizing an export was already in progress, at least I can't get
            it to happen here anymore. There is a cosmetic problem where the system
            will say created export thread will let you know etc.. after the an
            export is already in progress message.

--- a40 --- WatCom 586 build by Hagar

            IMPORTANT NOTE:
            I have switched to using Betels dll's, (The ones enclosed in his
            full distribution pak) to make life easier for anyone trying the
            two different versions. You will now only have to change menusets
            to match the exe yur running, no more switching dll's. PLEASE
            UPDATE your dll's with the ones in this zip file if you were running
            *ANY* previous alpha build!!!!!!!

            Yes, it's now optimized for pentiums, I am told it should
            still run on 386/486 platforms. Let's hope they're right<G>
            Worked on the lmr prompt to make it more pleasing, still some
            work to do on it...
            Ok i was not real happy with my LMR prompt, so now it's an
            entry in the language.text file it should look like this:
              -----Snip-----
                   #908 LMR Update prompt
                   [ans][0m[2J\rUpdate your LastRead Msg Pointers?[Y/n]
                   [asc]Update your LastRead Msg Pointers?[Y/n]
              --------------
            edit yur language.text to reflect this change and yur users will
            have a prompt after download.


--- a39 --- WatCom 386 build by Hagar
            Fixed a problem with the rexxx function AdeptChangeGroup.
            Also my providors newserver finally came back up allowing me to
            test nntp in/out and it works like a charm I'm pleased to say.
            Had a report of screen corruption during nntp configuration,
            that too is gone (at least it dosen't happen here now).
            New feautre (tiny one) on offline mail downloads rather than
            blindly updating lmr's it will now prompt you to find out what
            you want to do, update em or leave em as is.
            No change required to language.text for this one
            Possible problem with msgeditor not respecting uers timeleft
            should be  cured with this build too...
            Also cured a problem where adept was searching for mmpm.dll, this
            was caused by me at link time, it is now cured and u should not
            need mmpm installed to run adept anymore. Sorry bout that to you
            folks who have no soundcard and are trying to run one of my earlier
            alpha's.


--- a38 --- WatCom 386 Build By Hagar
            Ok. Found (thanks to safehex) another nast bug that could trap
            adept. If u hit enter or reply to a message in netmail area
            adept would trap. Terminated with extreme prejudice this farkin
            bug...
            And also badpass.menu now works, this menu if it exists in
            \adept\menus will be executed when a user exceeds the password
            retry count u have set... DumbUser.Menu should work now too
            (I haven't tested this one but it's virtually an identical call
            to the badpass.menu thing so it should work).
            Put in some code to hopefully nail this problem where if a user
            timesout due to inactivity it will now hang him up stead of just
            sitting there fat dumb and happy counting time :> I need help
            with this one cause i haven't been able to make it happen here..
            so lemme know if it's any better now.
            Found and (hopefully) fixed a problem with downloads, where if a
            user hungup during a download adept would just sit there.
            Should be ok now.

--- a37 --- WatCom 386 Build By Hagar

            Fixed a nasty bug  where if a user dropped carrier during an
            offline mail pack, the files would remain locked, effectivly
            disabling offline mail downloads for that node till adept was
            shutdown and restarted. Thanks to safehex for reporting this nasty
            and being so detailed about his bug report, made it easy to spot
            the problem and correct it. I have tested the fix here by tagging
            all message areas (all 900 of them) and telling it to do a download
            then rudely disconnecting on it. The files remained unlocked. Next
            call i could do a normal download, if there is *ANY* where else in the
            system u know of that files are remaining locked please point it
            out to me.

            One more thing, I haave had a trap in pmmerge.dll on startup
            two times now with various builds, I don't know yet what's causing
            this weirdness, but a subsequent start comes up ok for me. Weird.
            I'm running warp3 fixpak26 with the warp4 rexx dll's installed.
            If anybody else gets pmmerge.dll traps on startup, I would love to
            hear  what your system is running.  Maybe it's just my mix of
            software, in any case let me hear from you. (If it simply won't
            come up no matter how many tries u do, try adept /nodes x /dontslam
            this maybe enough to get it to come up, meantime I'll keep looking)


--- a36a --- WatcCom 386 Build by Hagar

             Didn't change the version number in this one, basically what i did
             was take the most stable version i had (1.07k) and add the new
             menudriver and new features to it, in an attempt to address
             safehex's off-line mail problems with locked files if a user
             drops carrier during a mail pack run. The code should be really
             stable at this point. I  would just like to suggest a simple
             adept command line, start it with adept /nodes 32 or however many
             nodes u have confgured for your machine. Nothing else should be
             necessary on the command line, if u have *ANYTHING* else on the
             command line take it out, it will run better with the defaults
             for all other parameters. I run mine here with adept /nodes 8 and
             so far have had *NO* troubles. Thanks for trying my build.


--- a36 --- WatCom386 Build by Hagar !!!

--- Added my first feature<g> and i didn't break anything (kewlness). The bbs will
now display the file ToLow.Asc (in the text dir) if it exists whenever a user
tries to access a menuitem that his security does not allow him to use. No more
users wondering why menu option don't work for them. Thanks to BK for this
great suggestion...  Oh and by the way this build is very stable, been running
here for 3 days, no traps or other problems/weirdness. Looks like my surgery
of the code was a success<g>.

---  Late breaking change, have also added check for min/max age on menuitems and
will diplay ToYoung.Asc/ToOld.Asc respectivly if the user fails min or max age.
Will only display the files if they exist in the text dir, otherwise it's business
as usuual<g>....



--- a35 --- WatCom386 Build by Hagar !!!

Fixed the "sticky" pm pulldowns so they don't bleed thru other apps
anymore. Fixed a bug in the menu driver that could cause adept to
trap randomly. Fixed nntp out, it should now work as advertised.
Fixed a bug with rexx loading "large" erx files, these should no longer
cause traps. Fixed the quickscan/detailed scan options so they return
to the list instead of returning to the msg menu. Fixed local text
import into adepts editor, (Note u must have sec1 > 99 to use this) to
import a text file just hit escape (or Control K) followed by an L, it will
prompt you for a filename to read in. Fixed the events save function, it will
now correctly save start and end times stead of rounding them off. Note, this
build uses 1.07g style BINARY event files compiled from a text Events.Text.x
where x is the node number, ie 1 2 3 etc.., if u still have 108 style text
event files just edit them to take out the LASTRAN keyword and they will
work fine, if u do not remove the LASTRAN keyword, results will be unpredicatble.
I have also included Mcd's excellent language.text file, if yur gonna use it
instead  of just modifying yours to match, please use the enclosed login.a??
files so the fielded login prompts will look proper, edit login.a?? to suit
your system, this is the way they appear on my system. (I like them others may not)
You will note, there is a full set of dll's in this zip, *USE* these, I linked
a35 with these dll's and know they work, others may or may not work. These will
work, nuff said. :>
As i said above the language file is Courtesy of Matt Davis (McD on irc chat)
ask him about mcmail the absolute best mail list...


... Hagar...

Bug Reports to:
e-mail: mariod@ican.net
fidonet: 1:222/10.0@fidonet
telnet/ftp: 206.248.78.1
The DogStar BBs

--- a26 ---  ***** NOTE *********************************************

             Everything from this point on down is/was towers original
             changes, I have included this stuff here as it's  prolly
             the only documnetation of the new chatserver and new
             menu sstructures, as well as some new features like
             external full screen editor support etc. You should
             read this document from EOF to top to get a picture of
             just what's in Alpha (Now Known as Hagar Builds)
             series Adept.exe's

             **********************************************************

Fixed a bug in the TCP/IP support for mail sessions.  It would try to
'dial' the site and always return no carrier.  Works like a charm now.

Fixed a bug if a new user answered 'N' to the Are you a new user
question it would act as if they had said yes.

Made some changes in loging a user off.  It wasn't always hanging up
or resetting the comm port.

--- a25 ---

Made some changes that should make EMSI mail sessions more reliable
if done over TCP/IP or a bad connection.

Found the cause of several of the infamous SMTP and NNTP mail traps.
Bad date fields.

Changed NNTP out to work like SMTP out, hopefully this will fix the
outgoing NNTP bug.  Not sure.

I now have an official support site for placing files on and I am
in the process of setting up a support BBS at os2.kcmo.com.  Please
help support and grow the site.  I will place all alphas, betas and
releases of adept and any utilities that exist on this site.

tower@sound.net is my current e-mail address.

PLEASE limit bug reports to the latest full alpha release on the
os2.kcmo.com site.  I.E. Your adept.exe and .dll's must be those
includes in the adept108aXX archives and no other archives.  It
would be best if you also made sure you can reproduce the bug
with the latest release on the site.  I need the module name and
the ####:######## number that is after it.  Bug reports for
anything other then the alphas will be ignored.

--- a24 ---

Fixed several possible bugs where files wouldn't get closed in mail
import or export.

Royally screwed up on the rexx interface to the chat on a intrum beta
that I put out.  It's fixed now.

Put ansi metas back to the way they where, looks like we where doing em
right just that some stupid shit terminals don't follow the ansi spec
100 percent.

Fixed a bug in AdeptSysChatCustomMsg where it would never send the
custom message to the server.

Changed the way the 'Node' field works in the ChatMsg's formats.  It
will ONLY accept numbers now, and -1 in Custom message means send to all
in the channel.


--- a23 ---

I am now including my GIOMT.DLL as standard to be used with a23 and
beyond.  I am adding some changed to GIOMT.DLL that a23 is dependent
on.

NOTE: a23 will run with previous builds of GIOMT except the adept
      linking functions escape sequence will not work.

AdeptRawLink and AdeptNodeLink now accept an escape sequence of
'===000'  if this is typed by either the remote or local host
it will drop out of the linked connection.  If you are using
AdeptRawLink, for things like Telnet and or Dialout, I.E. YOU
opened the port that it's linked to and going out on YOU must
CLOSE the port with AdeptRawClose or it will continue to remain
open.  DO NOT Close the users (line) port.  Or you will hang up
on them.

The '===000' should allow Binary transfers because the odds of a
'===000' in that exact sequence in 1.5 seconds of each other is
extreamly low.  This is similiar to the escape sequence used in
TIA and other interfaces that allow Binary compatability.

If you do not have the ####:######## number next to Adept.EXE,
GIOMT.DLL or the module that crashed, ALONG with the module name I
WILL Need your Popuplog's and your trap.logs to help diagnose
bugs.

--- a22 ---

In a earyler version I disabled autopassword generation, looks like
I didn't catch it in every spot.  It's eradicated now.

Looks like memory will still squeezed a little too tight on a21
so some people had random traps.  Bumped it up some more in this
build.

I am including a new version of GIOMT.DLL, it's called "GIOMT.DL_"
you must rename it to GIOMT.DLL if you want to use it.  This build
will log all exceptions extencively to a file called stgiomttrap.log.

This DLL can also be used to help find GIOMT traps in CServer.exe

--- a21 ---

I crunched memory way too tight in a20 so that it crashed almost
instantly.  This should be fixed.

--- a20 ---

Fixed a bug in the message area, if the user said 'yes', quote the message
it would work fine, if they said, NO, it would crash the BBS.

Fixed a bug in the user editor, if the sysop edited the users offline
mail tags it would never save them.

Restructured the way the BBS software starts up it's nodes.  It should be
a LOT faster now.

Found a huge, nasty, major bug in the events system!  This has been there
a while and can easyly account for random traps, OS/2 system crashes,
system hangs, a long long list of possible problems.  Right now
the new events system uses the same events.text file, the events
editor DOES NOT WORK, DO NOT USE IT!!!  Binary event files no longer
work in this build.  The BBS software will see all events as reset
after this version starts up so any and all forced events will be
run again.  However after they have run once everything should act
and work like the old versions, i.e. only run a forced event once
within it's time period.

Shrunk the memory footprint of the BBS software signifigantly, those
running large node counts will see a dramatic difference in system
memory usage.

--- a19 ---

Fixed a I/O bug that was causing some files to get filled with grunged
data.  This is one of those bugs that could cause all sorts of
problems all sorts of places in the software.

Fixed a long standing bug in the ANSI Metas, wouldn't reset the high
bit for colors.

Made some changes to cserver.exe

Added the rexx function AdeptNodeLink, allows you to link up 2 nodes
directly to each other.  Could be used for things like allowing
two players to play doom with each other, transfer files, whatever.

AdeptNodeLink(NodeFrom, NodeTo);

Fixed a long standing bug that existed in the mailer,  (At least as
far back as v0.97) if sending mail to multiple domains it wouldn't
delete the stray or remaining archives/packets that where sent.
Now it does.

--- a18 ---

Fixed the quite annoying EMSI CRC Failure bug!!!  This within itself
is grounds for a new release.   I also made some changes that should
fix some of the EMSI timouts several have complained of.

The /ignorecrc option is no longer available.

Fixed a bug in reply quoting with external editors.

Fixed the last few bugs in menucvt.cmd, it should really only be run
once, it can be run as many times as you want.  It now propely
converts all menus.

Fixed smtp and nntp posting from QWK and BlueWave.

--- a17-r2 ---

Added support for the dorinfo1.def drop file.  It will put the file
dorinfo1.def into the System\line# sub-dir.  This follows the base
dorinfo style format, no additional extentions.

--- a17 ---

The BBS will now create a msgtmp file in the .\System\Line# sub-directory
for external editors to use for users who want to quote their messages.

The BBS wasn't running extle.cmd if the user has line editor chosen
it would run extfse.cmd, this is fixed.

The BBS wasn't running the external editors if the message was a
reply, this is also fixed.

NewCLNT.cmd now works as a complete replacement for the internal
chat.  I also added some better feedback and the tab key will
redisplay what you last typed if you press it.  I sugest you
use this, I will be adding more and more features as the builds
go on!


--- Example use of AdeptSysChatMsg ---

/*
   This will annouce a users logon to the entire system  if placed in your
   atstart.cmd
*/
ARG line

UserName = AdeptGetvar(line, 1)
UserNode = Line

SendString = '{FC--- {FGSystem Message {FC---{FG' || UserName ||' {FChas logged on to node {FG' || UserNode

AdeptSysChatMsg(line, SendString)

/* End Logon Notice Sample */

/*
   This will annouce a users logoff to the entire system  if placed in your
   atend.cmd
*/
ARG line

UserName = AdeptGetvar(line, 1)
UserNode = Line

SendString = '{FC--- {FGSystem Message {FC---{FG' || UserName ||' {FF has logged off node {FG' || UserNode

AdeptSysChatMsg(line, SendString)

/* End logoff notice sample */

Fixed a bug in AdeptSysChatPrivMsg, if the message was to node 0 it
wasn't ever sent.

Changed the syntax of AdeptSysChatInput

AdeptSysChatInput(line, "BUFFERNAME", AbortKeyList, InputText);

KeyList 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.

The keylist should not contain the ascii numeric value for a key but the
actual ascii key itself.  I.E. Ascii 3, ^C would be a heart.

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 passwed to the buffer.

AbortKeyList and InputText are optional, you don't need to pass them
for AdeptSysChatInput to work.

I forgot to document that AdeptSysChatInput returns a 1 if all is well
and the user pressed enter.

I also forgot to document that it can return LOSTCARRIER if the user
has dropped carrier.

Adept SysChatInput also now properly returns if the user has timed
out instead of LOSTCARRIER, I also added a new return code:

IRC_IDLETIMEOUT if the user idle's out


Added a new meta {ZZ don't convert any metas in this string past this
one.

Fixed several bugs related to the chat server.

The BBS wasn't running the the EXTFSE.CMD or LEFSE.CMD on replies, fixed.

I also stopped caching EXTFSE.CMD, EXTLE.CMD and MSGTOUSEON.CMD.

--- a16 ---

Fixed a few bugs in the menucvt.cmd file, it will not work from any
drive/sub-directory.  (Thanks to Jewie for the changes).

The AdeptInitRexx(line) command is REQUIRED in order to use the
following functions.

Constants such as the IRC_NOTIMELEFT are defined via this command so
if you don't use it you won't be able to use the system constants.

The IRC in the IRC_ constants stand for Input Return Code, NOT Internet
Relay Chat.

Added a new rexx function AdeptSysChatMsg(line, Text)

You format how the text is to be displayed to the remote user.  Please
use the {COLOR metas or ascii users will get ansi if you put it in the
Text.

This can be used for annoucements such as User so and so has logged on
via node such and such.  Be creative.

RetC = AdeptSysChatInput(line, "BUFFERNAME")

The above function will return 1 if all is well and the user pressed
return.   It can also return any of the below constants.

A function very similiar to AdeptInput except specificly designed to
be used with multi-node chat.

The IRC constants are:

LOSTCARRIER if the carrier had been dropped.

IRC_NOTIMELEFT if no time is remaining.
IRC_LOCKEDOUT if the sysop locked the user out.
IRC_MORON if the system hit the moron key.
IRC_REPROMPT to request a redraw of the prompt or screen.
IRC_ENDSYSOPCHAT if the sysop broke into chat and just ended it.

IRC_IDLETIMEOUT if the user idle's out

IRC_CHATWAITING if a chat message is waiting to be processed.
IRC_CHATDOWN if the chat server went down.


"Buffer" would be the variable name to place what the user typed on the
         input line.

RetC = AdeptSysChatGetMsg(line)

Ok, this command was extreanly complex, so I decided to symplify it as
best as possible.

You call this when you receive a IRC_CHATWAITING.

It will Return

0 - Didn't receive a packet or bad packet

1 - Received a chat packet that doesn't 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.

Instead of having you pass a bazillion variables I automatically stuff
the variables for you with the data and known names.

The variables are

The following are set if the return code is 1

PKTTYPE   - Packet type definitions follow.

           100 - Standard Public Conference Message
           101 - No Prepended Public Conference Message
           102 - Private message to anouther 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.

The following are also set if the return code is 2

CHATMSGFROM     - User or Node number the chat message was from.
CHATMSGFLAGS    - Flags for the message (Currently unused)
CHATMSGSCRAMBLE - Scramble code for the message, I.E. 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 use public chat.

The following are also set if the return code is 3

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.  4k limit.

RetC = AdeptSysChatJoinConf(line, ConferenceName)

0 = Join Not Successful
1 = Access Denied to Channel
2 = Channel Joined

RetC = AdeptSysChatLeaveConf(line)

Returns 1 every time.

If the user is in Conference name it will remove the user from the
conference.

RetC = AdeptSysChatPubMsg(line, Message Text)

0 = Message wasn't sucessfully sent misc error
1 = Message was sent

The user must be a in a conference for others to see the message
or it will just go into limbo.

RetC = AdeptSysChatPrivMsg(line, Node, Message Text)

0 = Message wasn't sucessfully sent mirc error
1 = Message was sent

If the user is not on a particular node it will also go into
limbo.


RetC = AdeptSysChatCustomMsg(line, PktType, To, Message)

0 - Syntax error
1 - Sent to server

AdeptSysChatCustomMsg allows you to send messages to the user that you
can parse via the rexx AdeptSysChatGetMsg.  This allows you to add new
chat options, functions and types.  You cannot specify a type below
1000, all types MUST begin with 1001 or higher, the bottom 1000 are
reseved for system use.  You can have fun with this.

RetC = AdeptSysChatUserConnected(line)

Return Codes are:

0 - Syntax Error
1 - User connected
2 - User not connected
3 - Server down, obviosly the user is not connected.

Checks to make sure the user is properly connect to the chat server.

RetC = AdeptSysChatConnectUser(line)

Return Codes are:

0 - Syntax error
1 - User connected with server
2 - Failed to connect user to server
3 - Server unavailable

Will connect/sign up a user with the chat server.

RetC = AdeptSysCheckForServer(line)

Return Codes are:

0 - Syntax error
1 - Server not available
2 - Server available

Checks to make sure the chat server is available.

RetC = AdeptSysChatReconnectUser(line)

Return Codes are :

0 - Syntax error
1 - User connected to server
2 - Failed to reconnect user
3 - Sever not available

ChatReconnectUser should only be used to reconnect a user to the chat
server after it has gone down and the user was chatting in a conference.

RetC = AdeptSysChatMessageWaiting(line)

Return Codes are:

0 - Syntax Error
1 - There is a chat message waiting
2 - Error User Not Connected
3 - Error Server is Down

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 menus sub-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.

The file chatread is not called if there are messages and your are
using the adeptchatinput function.  It is called while you are
using any other adept input or system function.

The BBS Software will now look for the file EXTFSE#.CMD or EXTLE#.CMD
before loading the full screen or line message editor.  If the file
exists it will execute it instead of the internal editors.  If the
MSGTMP file in the users \Adept\System\Line# sub-directory doesn't
exist it considers the message as aborted, failed, etc.

YOU MUST HAS A SEPERATE .CMD FILE FOR EACH NODE.

The BBS will now execute (if exists) the .CMD file MSGTOUSERON.CMD
when a message is posted by anouther user on the BBS to anouther
user on the BBS.  You can this use this command file to notify
the reciepient that they have new mail waiting.  I also added

{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

A sample MSGTOUSERON.CMD is included along with this readme.

A sample newclnt.cmd is included with this readme as well.


The Q or q keys no longer cause cserver to quit, only ESC works now.
Fixed pgdn.

Fixed a bug in {PQ
You must also add {PQ to the end of prompt #336 for it to work properly.

If an event was set to reboot the machine it wouldn't, fixed.

--- a15 ---

Fixed a bug where the system would overwrite the first user record
if the user hung up durring new user login.

Added some EMSI crc debugging.

{PQ - Displays press any key to continue if the displayed amount of lines
      is more then the users screen length.

Fixed Menu Type 7's when called from a .menu file.

Menu type 6 was also broken when called from a .menu file.  It too
is fixed.

Found and fixed the cserver.exe DosCall1.DLL Trap.

Added a new line to language.text, item #435, User currently not
available for chat.  I.E. Writing a message or marked as busy.

CServer now supports the display of up to 32 nodes.  Actually
Cserver has no actuall limit on how many people are in chat, I just
haven't written the display code to match the complete capabilities
of the chat server.

Press Page Down for the second page nodes 17 - 33; Page up for the
previous list.

The ESC key or Q key will quit the chat server instead of having to
press ^BREAK anymore.

Changed the way cserver updates it's screens.  I'm now working on making
cserver faster/more effiecient.

Multithreade chat handling has been turned back on in CServer.  This
should speed it up considerably.

The way multinode chat in both the BBS and cserver have been changed
to allow faster/cleaner support of the chat system.

a14

Added checking for grunged file and message area config files.

Added some more carrier protection for the main BBS thread.

Fixed two seperate problems with carrier detect.  When a new user
logged into the BBS it would automatically set carrier detect checking
to off.  Oh joy.

In the message editor, there where some instances where carrier detect
wouldn't work properly.

While working on the carrier detect code I added better support for
carrier detect to the menu system.

Added a new menu type, 1002.  Logoff and Relog on.

This will display prompt #935 (currently unused) and display the
file Relogin.Asc/Ans/Avt to the user before commencing with the
relogin.  This is a COMPLETE logoff with relogin, except that it
doesn't drop carrier.  ATEND.CMD will be run, etc.  I have added
two new rexx function functions.

AdeptSetRelogin(line, TRUE/FALSE) - Tells the BBS to relog the user back
                                    on after logoff is completed.

AdeptCheckForRelogin(line) - Will return 1 if the user is requesting a
                             relogin after logoff.

Fixed several message area list/find bugs.

Fixed several bugs in QWK/Blue Mail Export.

-- Begin a13 Changes --

Lets hope this baby is lucky 13!

The auto password generation feature is no longer in existance, it was
quite annoying lots asked that it be removed, it's done.

Adept now has a FTP server built into the BBS software.  This is the
first alpha that it is available.   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 user the Anonymous accounts settings in order to
decide what areas and files the user has access to.

The server ALWAYS has an exception handler guarding it for now
since it is alpha.   Uploading of files is not permitted with
this build of the server for security reasons.

There is a new tag FTPNAME in the file area editor.  It allows you
to define the name of the directory shown to represent that area
on the server.  If you don't put a name it will use the area name
but I sugest you use a name, all lower case, 8 chars or so in
length instead of the area name (it could be the area name if you
wish).

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.

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.

The server will honor users time and file and age limits.

To start the ftp server add the /FTP command line option to
Adept.  Adept.exe /ftp

Ok, next more good news.

I think we got the cserver bug!  It was NASTY taking out the whole
damn operating system.  It's a bug in the design of IBM's TCPIP
stack that we where causing to expose itself.  It shouldn't
happen any longer.  If this build of cserver is clean I will
start adding lots of new functions to it. :)

I did fix a logout of chat conference bug that has been there since
build #1, if a user left a conference it still showed he/she in
the conference as if they didn't leave, now it removes them.

There where several other minor bugs in the BBS software that I
also fixed.

Fixed named pipes, appearently I broke em when I did the I/O redesign
several builds back.

-- end a13 Changes --


-- Begin a12 Changes --

Found a MAJOR bug in the BBS software.  Several sysops have reported that
adept hasn't been saving offline mail tags for users.  This was only
a minor bug caused by a major problem.

Is the design of the BBS software it relied on every user being assigned
a unique user number.  This number was tied to the their location in
the user file.  Well over the years it was untied in order to allow
more flexable use of this number field.  Well in doing so, in some
builds of adept the number was probably never updated, I know we
don't change it past the initial logon of the user, but this has
had to change with a12.  So much is coupled to this that it's amazing
this hasn't shown up before.

This bug will manifiest itself in several possible ways.  Offline tags
not being saved.  User files not being saved.  Users records not being
properly updated, including call times, time on-line, etc.  LMR's
not being properly saved or being wrong.

Fixed the user based number bugs.

I also included a file called msgfile.zip.  If you are running cserver
unzip this archive into your adept sub-directory or the same directory
cserver is being run from (cserver can run from anywhere).

CServer now has extencive exception handling.  This should allow us
to find out where the little bugger is trapping.  It will
create a file called CServerTrap.log when it traps.  It should
continue on without problems if there is a trap, however if more
then 5 traps accure the program will exit with a error level
of 1 and you can restart it.  I sugest running it from a .cmd
file that restarts it automatically.

The BBS software will now auto-reconnect you when you are in a chat
conference when the server goes down, it will now also auto-rejoin
the channel you where in along with sending the last message you
typed in.  If you are sitting idle it will inform you that the
server has gone down and try to reconnect the user.

-- Begin a11 Changes --

MORE SPEED.

That should say it all.  The BBS is blazingly fast now.  I have made
changes that will affect the ENTIRE system is some cases by factors of
thousands overall.  These changes do effect almost every aspect of the
entire BBS's operation.

Did a major overhaul of the 'new' menu system.  In doing so I also added a
new 'EMERGENCY ABORT' keystroke.  If a user presses ^A it will
automatically reset the entire menu system back to the original call to
the menu system.  This should prevent the possibility of users getting
'trapped' in a menu.  I do not believe that this will happen any more but
I added this option just in case.  The ^A should be a usable keystroke for
any user comming in on any type of connection.

The users current location should now be properly displayed.  Also check
out the 'NEWLOCATION' keyword for menu items. :)

The following Menu Functions are available.

BEGINMENU - Mark the begining of a menu.
ENDMENU   - Mark the end of the a menu.

Everything before and after the above are ignored by the menu parser.

PROMPT        - Menu Prompt Text
PROMPTCOLOR   - Menu Prompt Color
DISPLAYFILE   - File to display to users instead of menu item text
MENULOCATION  - Currently location on the BBS
MENUFLAGS     - Menu option flags.

The above options can be anywhere within the BEGINMENU and ENDMENU
options, but are preferably at the top of the menu to assist in
readability.


BEGINMENUITEM - Begin Item Definition
ENDMENUITEM   - End Item Definition

All of the below functions are ONLY available within the menu item
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 assing 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 comparason for access to this command flags #1
FLAGS2        - User flag comparason for access to this command flags #1
GENDER        - Genders (YES, Genders I.E. MFO (Male, Female, Other or
                whateever you have defined in the language.text as possible
                genders)) allowed to access this command.
STARTTIME     - Start time that this command becomes available. (24hr)
ENDTIME       - Ending time that this command becomes unavailable. (24hr)
MINONLINETIME - Minimum time user is online before they can use this
                command.
MAXONLINETIME - Maximum time a user can be online before command becomes
                unavailable.
MINCALLS      - Minimum calls that the user has made to the BBS before
                command becomes available.
MAXCALLS      - Maximum calls that the user has made to the BBS before
                command becomes unavailable.
MINPOSTS      - Minimum number of messages posted before user can access
                this command.
MAXPOSTS      - Maximum number of messages posted before command becomes
                unavailable.
MINUPLOADS    - Minimum number of uploads needed to access this command.
MAXUPLOADS    - Maximum number of uploads before command becomes unavailable.
MINDOWNLOADS  - Minimum number of download needed to access this command.
MAXDOWNLOADS  - Maximum number of downloads before command becomes
                unavailable.
GROUP         - Group number that the user needs to belong to to access
                command.
PORTFLAGS     - Type of port needed (TCP, Comm, Pipe) to access command.
NEWLOCATION   - Location to set when user executes this command for
                calls to items/functions that do not set the system
                location.

All of the above may exist within a BEGINMENUINITEM/ENDMENUITEM in any
particular order.

The rewrite of the comm I/O system handling in v1.08a8 has fixed many
bugs that have existed in Adept for a few years.  I.E. bad comm ports no
longer cause adept to crash.

Fixed several long standing bugs in the BBS's command line parsing.

I.E. On previous versions of adept if you typed adept /nodes without any
nodes it would crash, just added some checking.

The BBS Software no longer crashes after notifying you that it cannot
allocate the BBS structor if you accidently run two copies of
adept.

Menu Item #42 'Who is Online' was not working.  Fixed.

Fixed No Dialout always being turned on and not saving correctly.

Fixed No Mailer always being turned on and not saving correctly.

Put back the 'kludge' to keep random FTS-001 session from crashing
the software.

Fixed a bug in menucvt.cmd that was causing the prompt line to be
placed as if it where the first menu item.  This was causing all
sorts of problems in the BBS softwares new menu design.

--- a11 r2 ---

Wasn't updating the current location at every possible location, like
returning from a command.

Fixed a small bug in cserver.exe

Fixed a bug in menucvt.cmd wasn't saving the menu location keyword
correctly.  Does now.

Fixed a bug in the sysop logoff, the BBS still showed the sysop as
being on-line even after loging off.

Fixed yet anouther possible cserver.exe trap.

Added '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.

--- a11 r3 ---

Fixed a cosmetic bug in the chat auto-reconnect option.

Changed several functions that are called from the new user login.

Also made several changes to the new user login code.

Added some additional parameter checking to the autoexec menu
called by the new user login.

The BBS will now look for newuser##.cmd or newuser.cmd before trying to
auto execute newuser.menu.  And will call one of the above if found
in place of newuser.menu.

Added even more parameter checking to the chat server

-- End a11 Changes --


-- Changes previous to a11 --

VC - Denotes a VisualAge C++ Build
WC - Denotes a Watcom 386/C++ Build
CS - Denotes a CSet++ Build

------------------------------------------------------------------------------
AdeptXBBS v1.08a#                     - Copywrite 1993-1996 John Morris,
--------------------------------------+ Gordon Zeglenski and Steven Tower
                                      : All Rights Reserved
                                      +--------------------------------------

6/30/96 - Alpha Release -----------------------------------------------------

This build of AdeptXBBS now includes revision control to allow us to build
in convertion routiens that activate when a revision upgrade is needed.

This is the first version of AdeptXBBS build with VisualAge.

The startup proceedure for the BBS software has been heavely modified
and should remove any problems that have previously accured with the
loading of many nodes.

CPU Usage has been reduced by as much as a 1000 percent when
idle and waiting for a call.  Overall system performance and
response time should be faster now.

When you run the BBS software all conversions will be done for you
on the fly as it loads.  So just run the BBS as you normally would.

Please report bugs to Steven Tower, tower@sound.net

7/1/96 - Second Alpha Release

Added a new command line option, /NOUPGRADE.   If you use this command
line option AdeptXBBS will not upgrade the system directories and files
to any new formats.  This will allow people with v1.07 to test version
1.08 for any startup and simple runtime problems.  It is NOT recomended
that you run the software in this mode.  Also upgrades caused by
using the new Usersrvr.dll will not be effected since it's considered
a seperate program/part of the system.

7/6/96 - Third Alpha Release

Changed the PMIIndex support back to the old \Adept\Personal_Mail
sub-directory.

7/9/96 - Forth Alpha Release

This buils incorporates all the changes that where in Gordons vac1
build and then some.

The memory heap code is no longer used.  It looks like it was
de-stabilizing on some systems.  You will notice the heap usage
is at 0.00kb on this build.

New chat system.  Where do I start... This is a total 100% rewrite of
the BBS's chat server and a 80% rewrite of the internal chat code.

FLOODING will no longer crash the BBS software.  If you don't believe
me log in as 8 different users and upload 100k ascii/bin files into
the chat and watch it handle it quit nicely.

CPU efficiency is back up up, some of the pre-a4 alphas where a little
slugish on some functions.  Response times are up and cpu usage is
down.

The new cserver.exe has 1 command line option '/debug' this will write
out an extencive debug log file to determine where traps accure
if they do accure.  The chat system inside the BBS should be pretty
bullet-proof.  All the work has been deligated to the chat server
and so if anything is going to trap it should be the server not
the client.  This cserver can be taken on/offline at any time and
brought up any time while the BBS is in/not in use.

This chat server (while in alpha) uses IBM's TCPIP as it's connection
medium,  If you local loopback is setup wrong it will not work.

If you do not see the following when you type ifconfig lo on your command
line, your loopback is not setup correctly.

[C:\]ifconfig lo
lo: flags=809<UP,LOOPBACK>
         inet 127.0.0.1 netmask ffffff00x

If you are running warp connect you can add the line
ifconfig lo 127.0.0.1 to your \mptn\bin\setup.cmd

if you are running other versions of OS/2 you can
add 'ifconfig lo 127.0.0.1' to your startup.cmd.

The server has no limit to the number of users.

There was a bug with new users joining a chat area while text was
being piped to other users, it would cause a trap, this is now
fixed.

Known Bugs: If two people log on with the same name the server
            will trap.  This can only happen on the local and a
            remote node it's not possible on two remote nodes.

Tis' all.

7/12/96 - Alpha Release #5

READ READ READ READ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

The MENU SYSTEM HAS BEEN REWRITTEN!!!!!!

Included:  MenuCvt.CMD    -  this command file will convert your .menu
           files to the new format, it will rename your old .menu
           files to .menu.old.  You MUST run this or AdeptXBBS v1.08a5
           will not understand your menu structor!!!

           Run MENUCVT.CMD in your \adept\menus sub-directory.  It
           will parse all menus in the sub-directory, it can be
           run more then once it will not convert already converted
           menus.

This copy of Adept.EXE contains all of Gordon's Vac1 changes, plus some
major changes to the Comm Handling that should make adept more efficient
and a little more robust.  Menu execution times should be greatly improved
with this version of Adept.  Please report any bugs to tower@sound.net
or in the #Adept channel on IRC.

This build REQUIRES all files that are included in the archive.

This build doesn't change the way .PMI's are stored so no utilites should
be effected by any changes in this build.

This fixes numerious bugs in the Menu System, hence the rewrite.

Fixes the .ERX crashing bug.

Fixes several possible traps in the comm i/o handling.

I'm going to start redocumenting the Metas because it's obvious that all
are not documented.

{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!

-END Current Readme -

7/12/96 - Quick Fix, Decided NOT to change the revision number.

USENET Newgroups don't work correctly under Vac2 or 1.08a5.

This revision fixes the problem

7/13/96 - Alpha Release # 6 - More changes to the menu system.

The menu system is basically done as far as support for all old
functionality is concerned.

The only support not currently finished is the security options.
Gender, Time, Credit and Port Checking is not yet implemented.

Support for AutoExec menus is working, I totally forgot that the new
user login used a AutoExec'd menu.  Sorry folks. :|

The new menu system should be at least 100% faster then the old
design.

Limitation that existed in the old menu system no longer exist,
nested menus, aka go-sub'd menus are no unlimited before you
where limited to 18 gosubs.  The number of menu items supported
is now unlimited.

I haven't had any bug reports when it comes to the menucvt.cmd
file, nice to see something works the first time around. :)

The current menu system is now a 100% total rewrite of the previous
design.  With this new design I plan on adding a built in menu
editor to the BBS software.  Can we say 'yah'.

I have changed the way the clear all gosubs command works.  In
the original menu design (and currently with this one, however
it will not be the case in a week), when a user gosubs a menu
and then returns and their configuration has changed when they
return to the previous menu, that menu is only aware of their
previous configuration.  The clear all gosubs also clears out
all previous configuration states for the user and will reset
the main menu to the new configuration.  So I recomend that on
your configuration screen instead of using the return to
previous menu option that you use the clear all gosubs and
return to the main menu, this will make sure that the new
configuration will take effect immeadiately.  Somewhere around
a7-a8 configurations will be dealt with on the fly.

I made some DRASTIC changes to the ansi display routiens.  We should
see roughtly a 200+% speed increase and at the same time a reduction
in system usage load when displaying a ANSI/Ascii or Avatar screen.

You can now DELETE users!!! The delete button works properly.  BE WARNED
the second you click on the DELETE button that user is GONE FOR GOOD!

There is no clicking it again to undelete the user.

If you mark a user for deletion while they are on-line it will
delete the user the second they log off.

7/13/96 - Alpha Release #7

Fixed bugs that where created by the new ANSI/Ascii/Avatar display code
and even tweeked a little more speed out of it in the process.

Added a new /ignorecrc command line, this is a KLUDGE and will not
be in the release version (hopefully not in the next version) but
it will ignore a bad crc duurring EMSI mail sessions, this will
allow EMSI mail sessions to work again.

Changed menucvt.cmd it was not taking into account the menu flags
and current location options on the first line properly.  Please
copy your *.old files to *.menu and rerun the utility.  It will
fix the missing locations people have been reporting.

As with the Vac2 build this .exe will only run under OS/2 Warp and
Above.

Fixed several bugs in Cserver.exe.

Back to the old 'new' message area load code, the bug that caused me
to have to revert back to the old old code no longer exists and the
message areas now load properly.  Stupid typo. :|  This new code
will load message areas faster.

Menu prompts now display, in the last few versions you didn't get them
at all.

Menus are automatically recompiled by the system durring runtime if
a change has been made in the .menu file sine the last .bin build.

7/14/96 - Alpha Release #8

There is a /ignorecrc option, this is appearently needed to make
EMSI mail session work.  When this bug is fixed it will be
mentioned in the readme.

Also several sysops have reported odd I/O activity with AdeptXBBS running
on COM4.  The I/O addresses for COM4 are used by some video cards, you
will find that the problem will go away if you change to a different
comm port.

There have been some drastic changes to the way Adept handles Opening and
Closing of the Comm Ports, I have also totally revised the way adept
handles dropped carriers.

7/15/96 - Alpha Release #9

Fixed several bugs in the carrier handling code.

7/16/96 - Alpha Release #10

Fixed the {PB meta, no longer displays {PB after the press any key
prompt.

Fixed the display of meta commands in the login.asc/ans file.

Fixed the No Outbound always being checked bug.

Fixed F3 hangup on user, it no longer traps the BBS.

Fixed traps when running doors.

Fixed the Users Online Meta.

The Line Status Window's Current Info now matches the Status Screens current.

