home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1998 February / PCOnline_02_1998.iso / filesbbs / dos / nbeta087.exe / STUFF.EXE / BETA77.NFO next >
Encoding:
Text File  |  1996-06-19  |  100.6 KB  |  2,027 lines

  1.  
  2. 94/10/30
  3. NBETA000: The prototype beta envelope, never released.
  4.  
  5. 94/10/31
  6. NBETA001: The first released beta.  Several bugs reported within hours,
  7.           including:
  8.  
  9.            - The MORE in displaying the file menu help (and I assume in
  10.              many other places) wouldn't abort.  This was due to a logic
  11.              bug in the USEND routine.  Fixed 94/11/01.
  12.  
  13.            - Someone got a Runtime 003 when trying to insert a new user in
  14.              the user editor.  Runtime 003 is a "path not found" error, and
  15.              indicates that a path the BBS was trying to access does not
  16.              exist.  So the problem was chalked up to a lack of proper
  17.              pathing after I managed to duplicate it.  However, sysops
  18.              who unpack the archive into a direcory other than C:\BBS would
  19.              have a helluva time grappling with this same bug so I added code
  20.              to: make sure the system and temporary paths exist each time the
  21.              BBS is called (and create them if not), and: move all the
  22.              files to C:\BBS (creating if needed) before proceeding with
  23.              initial installation.  I agree that this is a patchwork
  24.              solution, and I actually have sketchy plans underway
  25.              already to implement a full-featured installation program
  26.              like those used by Apogee games some time prior to release,
  27.              possibly in the marketability-testing phase between Nov.21
  28.              and Nov.30.
  29.  
  30.            - An observation has been made that in local logons the last-8
  31.              log showed a baud rate of "115200" instead of the proper
  32.              "Local".  I was actually aware of this for a long time, and
  33.              never was bothered by it enough to do anything about it.
  34.              Nevertheless, it's fixed.
  35.  
  36.         Thanks go to John Richards for pointing out all of these and
  37.         several other things which I will address later.
  38.  
  39. 94/11/01
  40. NBETA002:
  41.  
  42.         I have added support for read-only message bases and a
  43.         [readpriv] UFO keyword which returns an error code if the user
  44.         is NOT allowed to post in the current area (insufficient access
  45.         or read-only area).  Also I have added support for exit
  46.         semaphores as a way to interface NanoBBS to external mail
  47.         processors through creative batch hacking.  I will document the
  48.         black art of batch file writing in detail in the release docs,
  49.         but the basic semaphores are listed in the docs.
  50.  
  51.         Also added to the doc file is a brief listing of keys you can
  52.         hit while the user is online.  Alt-C to chat and so forth.
  53.  
  54.         NBETA002 addresses all the bugs and "features" listed above in
  55.         NBETA001.
  56.  
  57. 94/11/02
  58. NBETA003:
  59.  
  60.         A comment from one of my users prompted me to do some cosmetic
  61.         cleanup in flagging files during a search or list.  I wasn't
  62.         happy with the appearance there anyhow.  I also noticed that
  63.         flagging was impossible during new file scans and partial
  64.         filename searches - seems the moretype variable wasn't being set
  65.         properly before the high speed searches were invoked. This is
  66.         fixed as of this beta.
  67.  
  68.         Also, I have added support for file-attach messages.  Any area
  69.         can be defined as a file-attach area and can have its own
  70.         file-attach directory.  File attach access requirements are also
  71.         definable on an area by area basis.  File attachment is
  72.         super-easy in the local mode: all you do is specify the filename
  73.         and path of the file you want to send the user, and the whole
  74.         uploading process is skipped.  For remote users using
  75.         file-attach is just like uploading and downloading files only
  76.         it's done in conjunction with a message, so that files can be
  77.         sent privately from user to user.  This is one of those creature
  78.         comforts that users just _adore_...
  79.  
  80.         As always, let me know how it works for you.  I have no path
  81.         enforcement code yet so I suspect the unprepared may get a
  82.         runtime 003 when the BBS tries to write or read a nonexistent
  83.         path...
  84.  
  85. 94/11/03
  86. NBETA004:
  87.  
  88.         In the echo, B.J. Verruyt has pointed out a few bugs; this
  89.         release fixes them.
  90.  
  91.         I have also done some more cosmetic cleanup.
  92.  
  93. 94/11/04
  94. NBETA005:
  95.  
  96.         On THC Freedom Online BBS, I set my adult cutoff at 18 years; I
  97.         think this is the legal age to buy adult stuff in BC.  Anyway I
  98.         had an 18 year old user point out a problem in the age
  99.         calculating code that prevented him from accessing the "fun"
  100.         doors at certain times of the month.  This was due to a logic
  101.         bug and is fixed for NBETA005.ZIP.
  102.  
  103.         I have installed a vastly improved swap routine that will swap the
  104.         BBS lock stock and barrel to EMS if available, or to a swap file
  105.         on the defined RAM disk.  It should leave you with LOTS more
  106.         memory to run doors or external archivers (and external
  107.         protocols when they are implemented).  In theory it is supposed
  108.         to leave you with only a few k resident, but I would be very
  109.         interested to know exactly how much memory the resident part of
  110.         NBBS occupies after it's been swapped.  I would appreciate it if
  111.         the OS/2 testing platoon would let me know how this works in a
  112.         DOS box...
  113.  
  114.         I have also noticed that I'd forgotten to update the version
  115.         number display with each beta.  I have properly set this
  116.         constant with this release and will try to be more vigilant from
  117.         now on [sheepish look].
  118.  
  119.         One last note for this beta: I have tightened one of the units
  120.         by over 10k.  This is to shrink the size of the overlay and
  121.         reduce overall memory requirements, and this will be repeated
  122.         for all the units by release time.  However it's possible that
  123.         in some places efforts to tighten the code may introduce new
  124.         bugs.  Please let me know if you encounter any!  The unit
  125.         tightened today was the one concerned witb processing UFO
  126.         keywords, so if you have been hacking in UFO keep it up!
  127.  
  128. 94/11/05
  129. NBETA006:
  130.  
  131.         Sure enough the code-tightening campaign created some new bugs.
  132.         String comparisons in UFO (in the IFEQ, IFNE, etc keywords)
  133.         suddenly became case sensitive.  RAID!  These keywords (should)
  134.         work again with this release.
  135.  
  136.         An earlier beta accidentally shut off displaying message text.
  137.         This is fixed.
  138.  
  139.         I have finally tackled some very elusive, but very annoying bugs
  140.         in the message reading code, particularly regarding the personal
  141.         new scan at login and reading messages in reverse order.  I
  142.         -think- these functions are smooth now; before today they were
  143.         useless.  These bugs had been with me for a very long time.
  144.  
  145.         I have also fixed a bug in the full screen message editor where
  146.         if you hit the end of a line and it wrapped, and the character
  147.         you happened to be typing at the moment was a space, the space
  148.         wouldn't be continued on the next line and your typing
  149.         afterwards would be concatenated to the previous word. This bug
  150.         has been fixed.
  151.  
  152.         I have added a hot key to invoke the user editor while the user
  153.         is on.  The key is Alt-E.  If you edit the user who is online,
  154.         his online parameters are also affected, so that the change
  155.         takes effect immediately.
  156.  
  157.         At the request of a user, I have added options in the user
  158.         [O]ptions off the main menu to set a default archiver and
  159.         default protocol.  If a default is set, the BBS doesn't ask for
  160.         protocol or archiver when downloading, uploading, or assembling
  161.         QWK packets.  I will add UFO keywords for these later.
  162.  
  163.         There is now a relatively pain-free way to have file
  164.         descriptions of virtually limitless length.  Read Nanobbs.Doc
  165.         for the details.  I will likely add another mechanism for the
  166.         same thing in order to have plug-and-play compatibility with a
  167.         CD I happen to have (Night Owl 13 has FILES.BBS with a
  168.         continuation mechanism different from mine).
  169.  
  170. 94/11/08
  171. NBETA007:
  172.  
  173.         A couple of days hiatus from coding was due to some hardware
  174.         problems here.  All is temporarily OK, and some new code is now
  175.         available.
  176.  
  177.         I have added another mechanism for continuing file descriptions.
  178.         See NANOBBS.DOC.
  179.  
  180.         I have also added automatic FILE_ID.DIZ importation: if NanoBBS
  181.         is able to extract a FILE_ID.DIZ from an uploaded file using any
  182.         of the archivers defined in the config file, it will do so and
  183.         will import it to the FILES.BBS description instead of asking
  184.         the user for a manually entered description.
  185.  
  186.         This uses the same code as the QWK upload processor.  If QWK
  187.         works so should this.  If this works, so should QWK.  Let me
  188.         know if either doesn't.
  189.  
  190. 94/11/10
  191. NBETA008:
  192.  
  193.         I have added some automatic path detection code which should
  194.         address problems reported by several testers.  As long as there
  195.         is a valid compiled config file and language file in the same
  196.         directory as the executables, NanoBBS should run fine even with
  197.         invalid paths specified.
  198.  
  199.         I am now working on adding a full RIPscrip suite to UFO (about
  200.         50 commands) and this will consume a great deal of time, so the
  201.         new betas will be pretty sparse for the next week or so.  I will
  202.         continue to attempt to address bugs as they are reported but the
  203.         next "new feature" will be a kickass RIP interface which is
  204.         several days off.  I wish there were more hours in a day.
  205.  
  206. 94/11/15
  207. NBETA009:
  208.  
  209.         I am still working on adding RipScrip graphics to NanoBBS, which
  210.         is why the long delay since the last beta.  Unlike most BBSes,
  211.         NanoBBS's RipScrip will not be limited to a built in detector
  212.         and a bit to set to determine whether to use a .ANS or a .RIP
  213.         file.  NanoBBS will have full plaintext command support for the
  214.         entire protocol built into both the language files and the UFO
  215.         language.  In fact the UFO RIP support allows the use of
  216.         iterated commands and variables integrated into the RIP support
  217.         to provide effects and interactivity of a calibre that is simply
  218.         impossible under BBS systems that use static RIP files only!  Of
  219.         course, support for static RIP files still exists as it should.
  220.         The protocol is now implemented but I am still working out some
  221.         picky bugs and will document the protocol when the bugs I find
  222.         are gone; this should be no more than a couple more days.
  223.  
  224.         Don St. Germain has reported trouble with the BBS hanging up at
  225.         the end of a call; I have noticed this on THC also and I have
  226.         added a 20 second timeout in the hangup code, and a slight
  227.         modification to the sequence of the DTR drop which is supposed
  228.         to cause the hangup.  Hopefully this should fix the problem.
  229.  
  230.         I have also (in the process of adding RIP) made NCOMP several
  231.         times faster - it compiles to memory instead of disk and saves
  232.         the whole enchilada at once.  Much faster!  And easier on the
  233.         hard disk.  I think I'll add this feature to UFO.EXE and make it
  234.         faster than Mecca - which is written in the allegedly-faster
  235.         Watcom C!
  236.  
  237.         There are also a few new (documented) UFO verbs; INC, DEC, SHL1,
  238.         SHR1, SHL and SHR.  These perform increments, decrements and
  239.         bitwise shifts left and right on variables in UFO.
  240.  
  241.         The debug code which printed out those C:\BBS\ type directories
  242.         at user logon has been eliminated.  It was never visible to
  243.         users anyway.
  244.  
  245.         Oh yeah, for those of you running Rancho Nevada, I took a little
  246.         time out this evening to fix a couple of bugs there too.
  247.         $RN332.ZIP can now be file requested from me at 1:340/26.  The
  248.         FEATURES.TXT file in the archive explains the fixes.
  249.  
  250.         One last thing, I would remind everyone on the beta team that
  251.         there is an echo whose purpose is reporting of bugs - and it's
  252.         the deadest echo on my system, while my netmail area is crammed
  253.         with bug reports!  Please, use the echo to report bugs so that
  254.         other testers experiencing similar problems can pipe up and
  255.         offer more details.  The quality of this BBS is equal to the
  256.         quality of the problem reporting each of you gives!  In order to
  257.         make a top-quality BBS I need top-quality feedback, so please
  258.         make this easier and use the echo!
  259.  
  260. 94/11/16
  261. NBETA010:
  262.  
  263.         Some of the RIP stuff is now documented.  Check out UFO.DOC.  I
  264.         have made improvements to NCOMP.EXE, and added totally
  265.         transparent RIP language support - each language has an
  266.         ASCII/ANSI language source file (ending in .TXL) and a RIPscrip
  267.         source file (ending in .RXL).  Very few other BBSes have this
  268.         level of RIP integration available, let alone the RIP UFO
  269.         scripting ability.  If both are present NCOMP compiles both.  If
  270.         a user has a language selected and is using RIP and a RIP
  271.         version is available the RIP version is used, otherwise the
  272.         ANSI/ASCII version is used.
  273.  
  274.         It's worth noting that the [rip_pixel] keyword is considered a
  275.         sort of "junk" command by the very people who designed the
  276.         specification for RIP; this is because they expected RIP to be
  277.         used in a static fashion as ANSI is today.  One of the .UFO
  278.         examples, RIPSTARF.UFO, uses this so-called "inefficient"
  279.         command to very good effect, and I am sure the imagination of
  280.         other sysops will give birth to much more spectacular results!
  281.  
  282.         I have included a couple of .UFO files which illustrate RIP UFO
  283.         tokens.  It's really cool (IMNSHO) to be able to do RIP in
  284.         near-plain English without buying an expensive paint program,
  285.         but I have already noticed several syntactic bugs and I assume
  286.         that there are more.  The chief symptom is that a command will
  287.         simply not execute or will execute totally wrong.  If this
  288.         happens to you you may have found a command which is not parsing
  289.         enough parameters; please let me know which command did this and
  290.         include a copy of your UFO source if possible.
  291.  
  292.         I have also made some refinements to the RIP detection sequence.
  293.         It still occasionally registers a false negative, but apparently
  294.         the timing of Desqview is more to blame than anything else.  I
  295.         will experiment with some special timeslice forfeiture
  296.         techniques RSN if this keeps up...
  297.  
  298.         Note: if RIP is detected NanoBBS will expect .RIP files in
  299.         certain places!!!  I have not yet built any .RIP files for these
  300.         but if you copy the .ANS versions to .RIP the users will be able
  301.         to use the system normally until I get some nice RIP.  Or, you
  302.         can build your own, whichever suits you after all it's YOUR BBS.
  303.  
  304.         The sample .UFO rip files are in the /misc directory...
  305.  
  306.         In other news, there are a couple of new UFO keywords; ADD and
  307.         SUB will quickly and efficiently add and subtract nouns.  This
  308.         is more convenient than using the mathematical adjectives (which
  309.         are still useful as they are more flexible).
  310.  
  311.         Also I have been informed that some users are getting no
  312.         linefeeds.  I still do not know if this is because they have
  313.         turned off their linefeeds (and couldn't figure out how to turn
  314.         them back on after the screen turned to mush) or due to a bug,
  315.         but I have taken two steps to solve the problem anyway:
  316.         Firstly, there is now an idiotproof subroutine which asks the
  317.         user how many rows of dots they see, and if they only see one
  318.         row they need linefeeds (and are told to respond that way).  The
  319.         other step I took was to add redundant code in several places to
  320.         force linefeeds on until the user has actually logged on.  This
  321.         may screw up some non-IBM types but they are a tiny minority
  322.         who can still turn the linefeeds off after they're logged in
  323.         anyhow.
  324.  
  325.         A cosmetic bug in the wait-for-call has been fixed.  It used to
  326.         not properly reset the "rings" counter to zero when an incoming
  327.         ring failed to produce a connection.  This is expected fixed
  328.         with this release.
  329.  
  330. 94/11/19
  331. NBETA011:
  332.  
  333.         I should clarify that the INSTALL procedure is for NEW
  334.         INSTALLATIONS ONLY.  DON'T RUN INSTALL EVERY TIME OR IT WILL
  335.         OVERWRITE YOUR EXISTING CONFIGURATION!
  336.  
  337.         The files PROGS.EXE and STUFF.EXE are self-extracting archives.
  338.         It should be safe to run PROGS.EXE every time (and you should).
  339.         You should run STUFF.EXE in a scratch directory and copy any new
  340.         files you need from that - like this one.
  341.  
  342.         The RIP tokens in UFO are now fully documented - they can also
  343.         all be used in language files exactly as they are in UFO except
  344.         that Nouns cannot be used - all embedded language RIP commands
  345.         must have constant parameters!  The syntax for RIP in the
  346.         language files is otherwise the same.  I should mention that
  347.         there are a few picky arcana in the RIP protocol which I was
  348.         unable to decipher from the Telegrafix spec sheet; in these
  349.         cases I have put in a comment like "please see the original
  350.         RIPscrip spec from Telegrafix for more information" - which you
  351.         should in those cases, as you likely will learn more than I know
  352.         about RIP by doing so.  I should mention that a week ago I
  353.         knew virtually squat about the technical end of the RIP
  354.         system... I have had to "grow up fast" on that one so there may
  355.         be BUGS, let me know...
  356.  
  357.         The language files now come with two sources: one for ASCII/ANSI
  358.         which ends in .TXL and one for RIP which ends in .RXL.  The
  359.         version of NCOMP released in NBETA010 compiles both in sequence.
  360.  
  361.         I have added support for a Time Bank to the BBS.  You can set
  362.         the maximum allowed withdrawal and deposit amounts in the
  363.         general config file using the MAX DEPOSIT {amount} and MAX
  364.         WITHDRAW {amount} keywords as illustrated in the example
  365.         NODE1.CTL.  It is fairly self explanatory for the users.  I
  366.         think I have it smooth, so that withdrawal limits are enforced
  367.         and the user is properly docked his time when he deposits.  Any
  368.         bugs, you know where to post...
  369.  
  370.         I have also added the ability to pass a time-to-next-event
  371.         parameter.  The /T{minutes} command line parameter can be tied
  372.         into your BBS batch files called up by Binkley or Frodo to force
  373.         the user into a time limit that may be shorts than he's
  374.         otherwise entitled to.  This can be used, for example, to ensure
  375.         that your mailer is available at the beginning of ZMH.  I have
  376.         not tested this feature in conjunction with the time bank at
  377.         all, and I suspect that the user may be able to defeat this
  378.         using the time bank if he has an existing balance.  Let me know
  379.         what happens.
  380.  
  381.         I have also fixed a long running bug in the code that
  382.         compensates users time for their uploads.  It now properly adds
  383.         time to the current call and properly reports this time to the
  384.         user when it is awarded.
  385.  
  386.         I have also added another security feature, the "barricade"
  387.         file.  This lets you selectively bar individual users from
  388.         specific message bases without otherwise affecting their access,
  389.         providing an unobnoxious way of complying with echomail
  390.         moderators' enforcement directives.  The NANOBBS.DOC file now
  391.         contains what will likely by the final form of the chapter on
  392.         this feature.
  393.  
  394.         I have improved the intelligence of the time warnings, so that a
  395.         five-minute warning that occurs two minutes before the user is
  396.         due to be axed does not tell the user falsely that s/he has five
  397.         minutes left.  There are many reasons (doors, external programs,
  398.         downloads) why a user might get the first time warning late, but
  399.         now it tells the user how many minutes s/he's REALLY got.  Ditto
  400.         the final warning; it no longer is fixed to 60 seconds (but
  401.         still displays its warning in seconds).
  402.  
  403.         Last update I reported a cosmetic bug fixed where the number of
  404.         rings received by the WFC screen was incorrectly reported.  That
  405.         bug was only made weirder and not fixed by NBETA010 but is fixed
  406.         (and I have personally tested it) with this version.
  407.  
  408.         Lastly, now that the gargantuan task of implementing a RIP
  409.         scripting language is substantially behind me, the updates
  410.         should start coming on a nightly or almost-nightly basis again.
  411.  
  412. 94/11/20
  413. NBETA012:
  414.  
  415.         What was to be whipped up in an hour ended up taking eleven
  416.         hours today.  But, the EVENTS are now coded!  See the new
  417.         NODE1.CTL for a set of examples; NanoBBS events are EASY to set
  418.         up!  Events can be forced or relaxed, and have great day/time
  419.         flexibility!
  420.  
  421.         I have fixed a rather horrific bug in the Alt-E user editor - it
  422.         would remain in local mode and the user would be unable to
  423.         resume his/her session after you returned from the editor!  This
  424.         is now confirmed fixed (I checked).
  425.  
  426.         I have twiddled with the low level comm code some more in an
  427.         effort to fix the problem where the carrier isn't dropped on
  428.         hangup (sometimes).  I am using an extremely straightforward
  429.         FOSSIL call so this shouldn't be happening.  However I have put
  430.         in some debug code to help me identify the problem when it
  431.         occurs.  The little blue hangup window will be a bit ugly for a
  432.         few days, sorry.  There -is- a timeout in place now so that your
  433.         whole system won't be brought to its knees when the program
  434.         can't drop DTR.
  435.  
  436.         I have added a neat feature that I used to enjoy in my Maximus
  437.         days: There are now 40 sysop-definable function keys.  The keys
  438.         F1 thru F10 will cause the compiled UFO files F1.BBS thru
  439.         F10.BBS to be run according to the key pressed.  This allows the
  440.         sysop to display a UFO file to the user at almost any point
  441.         within the user's call.  The example files F1.UFO, F9.UFO and
  442.         F10.UFO are included.  F1 simply sets the user's time left to
  443.         60 minutes.  F9 is my legendary(????) "Idiot User" key (grin)
  444.         and F10 is a key I used to love way back in the dark ages when
  445.         Blue Board had a function key to drop the user to a 5 minute
  446.         warning no matter how much time actually remained...
  447.         The other 30 keys are Ctrl-F1...Ctrl-F10 (filenames CF1.BBS to
  448.         CF10.BBS), Shift-F1...Shift-F10 (SF1.BBS to SF10.BBS) and Alt-F1
  449.         to Alt-F10 (AF1.BBS to AF10.BBS).
  450.  
  451.         I also found to my horror today that I had neglected to include
  452.         a [timeleft] noun in UFO - this unspeakable situation has been
  453.         ameliorated with the addition of a read/write [timeleft].  It is
  454.         used in more than one of the example F-key files!
  455.  
  456. 94/11/24
  457. NBETA013:
  458.  
  459.         Lucky 13!  A bug that was only visible thanks to a faulty
  460.         motherboard on my end is now fixed.  I'll explain the problem.
  461.         Every now and then, the tick interrupt would simply stop
  462.         occurring, and with that so would the DesqView timeslices and
  463.         the real time clock.  Usually it would come back within a couple
  464.         of seconds and if a user was online he could continue as if
  465.         nothing happened (and in fact might not even notice at all if
  466.         he's using a slow modem, thanks to buffer lag).  But sometimes
  467.         it would stay frozen long enough for the user to assume the BBS
  468.         had crashed and hang up.  When this happened in a file list, it
  469.         would cause the BBS to lock up tight.  I couldn't figure out why
  470.         until I decided the problem might be in the code that actually
  471.         writes out the file descriptions (since that's where the lockups
  472.         occurred).  Sure enough, there was NOTHING to prevent a loop
  473.         which writes the spaces that tab out the formatted description
  474.         from continuing should the user hang up.  Worse, with no carrier
  475.         it would wait on a dead com port for input, by now at a no
  476.         longer valid baud rate, never to recover.  Sometimes this loop
  477.         would actually tight-lock the whole system although I still
  478.         don't know why -that- happened.  Anyway, I added some extra
  479.         carrier checks to that part of the code and it should no longer
  480.         be a personal problem on my own BBS, nor for any other sysop
  481.         experiencing similar hardware trouble.
  482.  
  483.         This might possibly be related to a long-standing bug in Rancho
  484.         Nevada which Allen Walker and Don St. Germain have long
  485.         reported.  I will keep you posted on the RN situation.  RN and
  486.         NanoBBS share a lot of code; much of Nano's code was originally
  487.         developed for use in my doors, and many of Nano's code
  488.         improvements have been re-integrated into Rancho.  The two
  489.         products are as intimately related as if they were sisters.
  490.         That's why I am mentioning Rancho problems in the NanoBBS echo
  491.         and in this file.
  492.  
  493.         A few logic bugs have been fixed, and I have re-organized memory
  494.         usage such that you should have close to 80k more memory
  495.         available, or better yet it can run in windows as much as 80k
  496.         smaller than before!
  497.  
  498.         I have implemented a full internal TommCHAT in this version.  I
  499.         will be adding some UFO tools and canned main menu options to
  500.         work with the chat before release, but for now if you enable the
  501.         "multinode" keyword in the config file and specify a valid IPC
  502.         path your users will be able to chat with each other (assuming
  503.         you have 2 or more lines).  There is a new "/" command at the
  504.         main menu for the main chat system and a "W"ho's online command.
  505.  
  506. 94/11/27
  507. NBETA014:
  508.  
  509.         Time is now frozen in chat mode!  This is a rather important
  510.         feature if, like me, you sometimes get into REALLY long
  511.         protracted chats with users.  I was getting fed up with having
  512.         to manually give users time back, now you don't have to as time
  513.         spent in chat "doesn't count".
  514.  
  515.         A bug reported a few weeks ago by Don St. Germain, that global
  516.         newscans would go round in circles and never terminate, has also
  517.         shown up in downloading .QWK packets.  The cause is the same as
  518.         that of the global newscan bug, and the fix is exactly the same
  519.         as was the global newscan fix.  I have also made the packet
  520.         assembly procedure more informative for the user - if it turns
  521.         out that there is still an endless loop in QWK (which is very
  522.         unlikely now) at least users will know!
  523.  
  524.         I have also added the key code, node limits and the two
  525.         unregistered limitations.  Without a key, NanoBBS will only
  526.         allow two copies of the BBS to run with the same system
  527.         directory.  It also limits all calls - even for the sysop - to a
  528.         maximum of 60 minutes.  You will each be receiving a USL
  529.         (unlimited site licence) key within a day or so of receiving
  530.         this beta.  You'll also be getting a copy of the legalese that
  531.         goes with the key; it applies to all keyholders including the
  532.         beta team so read it!
  533.  
  534.         Another bug reported by Don is being investigated.  What happens
  535.         is that sometimes "K"ill defaults to an invalid message number.
  536.         I have added code to read in a valid current message, but I
  537.         somehow don't think this will solve the problem.
  538.  
  539.         There is now an option to blank out a user record in the user
  540.         editor.  As a safety feature, the user must be "deleted" with
  541.         the [Del] key first!  Use Alt-B to blank out users and remember
  542.         blanked users are NOT recoverable!
  543.  
  544.         IMPORTANT: I have changed the syntax of the SYSOPKEYS and
  545.         NEWKEYS keywords in the NODE1.CTL file!!!  THE OLD SYNTAX IS
  546.         GONE!
  547.  
  548.         Example of old syntax:
  549.  
  550.            ;This indicates that flags D, E and F must be set for sysop
  551.            ;functions!
  552.            SYSOPKEYS -------------XXX
  553.  
  554.         Examples of new syntax:
  555.  
  556.            ;Same thing!
  557.            KEYS SYSOP DEF
  558.  
  559.            ;No keys set for new users
  560.            KEYS NEW
  561.  
  562.  
  563.  
  564.         Also, the undocumented "plaque" command ($ at main menu) has
  565.         been enhanced.  It had been very buggy but was fixed around
  566.         NBETA007 or so... I had forgotten to mention this...
  567.  
  568.         Overall, I am noticing fewer and fewer problems.  As release
  569.         approaches, NanoBBS is looking more and more like a finished,
  570.         market-ready product.  Keep the quality bug reports coming,
  571.         guys!
  572.  
  573. 94/11/28
  574. NBETA015:
  575.  
  576.         The product is still getting smoother and smoother.  I'll be
  577.         able to see my face in it pretty soon...
  578.  
  579.         I have updated some of the user booleans and completely
  580.         documented their UFO syntax equivalents.  All user booleans are
  581.         now fully implemented.
  582.  
  583.         I have also fixed a few little problems I've noticed in NanoCHAT
  584.         and added a generic QUIT, HELP and EXIT command (with no slash)
  585.         so that NanoCHAT is more familiar to users who call Galacticomm
  586.         systems.  I think I may also add a super-k-neet0 /GO command
  587.         feature as well; this would be incredibly powerful and would
  588.         only take a little more extra code.  I'll work on it after
  589.         release... And maybe a clone of Galacticomm's Registry feature.
  590.  
  591.         I have fixed the problem where the screen is full of overwritten
  592.         diarrhea after returning from a door.  Seems it was
  593.         repositioning the cursor at (1,1) on the nicely saved and
  594.         swapped video screen.  This fault is no longer possible.
  595.  
  596.         I have added UFO keywords to deal with frozen time - the
  597.         [freezetime] and [unfreezetime] keywords do what their names
  598.         imply, while the [iftimefrozen] keyword processes to the next
  599.         mark if time is frozen.
  600.  
  601.         A problem with ANSi and RIP autodetection had been caused by
  602.         placing the detect routines in a little-used overlay whose
  603.         overlay overhead was too high for the timing required.  This has
  604.         been fixed by putting those two routines back where they came
  605.         from, which unfortunately increases the .EXE size a bit.  I have
  606.         also increased the size of the overlay buffer by 4272 bytes in
  607.         an effort to prevent future such problems.
  608.  
  609.         Don has noticed a few more bugs with the global new scans, and
  610.         in my efforts to fix them I have also noticed a couple of logic
  611.         bugs in the "S"etup Scans code.  I am pretty sure that it is now
  612.         impossible for the endless area scan loop to occur, and the bugs
  613.         in the lastread code which caused some weirdness in repeated
  614.         newscans are also fixed.  The "S"etup Scans are also
  615.         (apparently) fixed.
  616.  
  617.         NOTE: My BBS is 100% Squish based.  I have not tested NanoBBS
  618.         with *.MSG or JAM on any more than a trivial basis.  I have been
  619.         operating on the assumption that Mark May's MKMSG units are
  620.         uniform over each format and I realize that this may not be a
  621.         valid assumption.  However, since I don't run *.MSG or JAM I am
  622.         not able to exhaustively test these formats myself, therefore I
  623.         must rely on the beta team to provide me with -quality- bug
  624.         reports, meaning every little inconsistency between Squish and
  625.         *.MSG and JAM that you can find needs to be reported as
  626.         completely as you can.  I have the source - I can fix May's bugs
  627.         if need be.  I just hope I don't have to...
  628.  
  629.         Several picky NanoCHAT bugs are fixed.
  630.  
  631. 94/11/29
  632. NBETA016:
  633.  
  634.         No longer are "spaces" (actually nulls) displayed when using
  635.         sysop keys in chat mode.  Also it is no longer possible to
  636.         recursively invoke chat when you're already in chat.  No-one had
  637.         reported problems with this but it could get annoying and may
  638.         have caused a stack error if allowed to recurse too many times.
  639.  
  640.         There is now a freeze-time sysop key.  Hit Alt-F to toggle
  641.         frozen time.
  642.  
  643.         There is now a drop-to-DOS sysop key.  Alt-J swaps out the BBS
  644.         (giving you the maximum size window possible) and gives you a
  645.         real live honest to Gh0d DOS prompt!  Kool!
  646.  
  647.         I have also added the Alt-Z sysop key which switches between the
  648.         three video modes (TTY, ANSi and RIP).  It's still a bit buggy
  649.         but I'm working on it...
  650.  
  651.         When you edit a user online, if you change his access level, his
  652.         time limit is now immediately updated to reflect the change.
  653.  
  654.         I have added a %c parameter to the doors.  You can use %c in
  655.         place of the commmand.com comspec.  A use for this is if you
  656.         want to call up a door using a batch file (as is required by BRE
  657.         and some others).  Your COMMAND parameter would look like this:
  658.  
  659.                 command %c /c bre.bat
  660.  
  661.         This is documented in the DOORS.CTL file that comes with the
  662.         distribution archive.
  663.  
  664.         NanoBBS now attempts to auto-detect ANSi -before- the [Hit
  665.         Enter] prompt whose purpose is to swallow spurious connect
  666.         strings before they can fuck up the ANSi detector.  If ANSi is
  667.         not detected the BBS tries again after the [Hit Enter] and
  668.         before the licence banner... It is at this point that the line
  669.         is assumed to have settled down, and an attempt is made to
  670.         auto-detect RIPscrip.
  671.  
  672. 94/11/30
  673. NBETA017:
  674.  
  675.         I have added some improvements to Doors.  For starters, you can
  676.         now specify a "bogus" last name to be used when a user is using
  677.         a one-word pseudo.  You can also make NanoBBS use a user's real
  678.         name when calling doors instead.  I have also fixed a bug which
  679.         wrote a "local baud" instead of the proper "0 baud" to
  680.         DORINFO1.DEF.
  681.  
  682. 94/12/04
  683. NBETA018:
  684.  
  685.         Now working full time on the docs.  I will fix any more bugs
  686.         that are reported but all "new" features are finished!
  687.  
  688.         I have noticed that users can post to a real name message base
  689.         using a pseudonym via the QWK channel.  This is no longer
  690.         possible, doubtless to the delight of Scott James.  QWK uploaded
  691.         messages will now be posted with the real name or username as
  692.         apropos.
  693.  
  694.         I think I have fixed an undefined variable in the wait for
  695.         caller code which forced Nano to dump the user as soon as the
  696.         connection was complete.
  697.  
  698.         Runtime errors are now written to the NANOBBS.LOG file.
  699.  
  700.         NANOBBS.LOG now reports node numbers for multi-node installations.
  701.  
  702.         It is now logged when you enter and exit chat with a user.
  703.  
  704.         You can now log all text seen in SysOp chat.  Just hit Alt-L at
  705.         any time during chat to toggle SysOp chat logging.  This can be
  706.         useful if a user has been abusive or threatening in chat, or if
  707.         you want to save a phone number or some other piece of
  708.         information the user gives you in chat.  You could even capture
  709.         a text file this way although it'd be slow and inefficient.
  710.  
  711.         I have also fixed a bug in the NIDX / BBS/F code which would
  712.         abort with a runtime error after a certain number of file areas
  713.         had been processed.
  714.  
  715. 94/12/04
  716. NBETA019:
  717.  
  718.         I have added code to check for the presence of the IPC directory
  719.         and try to create it if it doesn't exist.  This is for when
  720.         you've specified a subdirectory of a RAM disk - which would not
  721.         exist at system startup and needs to be created.  I think this
  722.         is the cause of a Runtime 003 reported by John Richards.
  723.  
  724.         I have also located an undefined boolean (LOCALMODE) which caused
  725.         NanoBBS to write a baud rate of 0 to DORINFO1.DEF and DOOR.SYS
  726.         no matter what the user's baud rate was.  I run mostly my own
  727.         doors (and Allen Walker's) which aren't affected by this so I
  728.         hadn't noticed, but Don St. Germain pointed out that this causes
  729.         some doors to just sit there forever.  I am sure that it is
  730.         fixed now.
  731.  
  732.         The UFO syntax docs are finally complete!  This beta comes with
  733.         a comprehensive description of the UFO lexicon in UFO.DOC.
  734.  
  735. 94/12/06
  736. NBETA020:
  737.  
  738.         I have made major changes to the installation system.  It will
  739.         now -update- your language files, not overwrite them, preserving
  740.         your custom strings while adding in new ones.  If your
  741.         NODE1.CTL, MSGAREA.CTL, or FILEAREA.CTL files already exists it
  742.         will not overwrite ANY config files.  If any of the WELCOME.*,
  743.         BYE.* or LOGO.* files exist, it will not overwrite any of the
  744.         MISC directory files.  It will now always overwrite all of the
  745.         executables and overlays - this is important as a mismatched
  746.         version between the executable and overlay would cause an
  747.         immediate crash and probably a system lockup.
  748.  
  749.         It should be -safe- to install updated betas using INSTALL now!
  750.  
  751.         Some improvements have been made to the message base code.  I
  752.         have reduced the memory size for the message objects to just
  753.         above the maximum amount that Squish will toss.  JAM is
  754.         unaffected by this as it was already more memory efficient than
  755.         Squish or *.MSG.  It should be possible to get more message
  756.         objects into memory at once if need be, thus reducing the
  757.         possibility of an out-of-memory error...
  758.  
  759.         I have fixed a cosmetic bug in the sysop bar (it'd display
  760.         "ANSI" even if the user had RIP or TTY until an Alt-S).
  761.  
  762.         I have also fixed a couple of places in NanoCHAT where a user
  763.         who was not in chat could have actions and messages sent to them
  764.         - this is no longer possible.
  765.  
  766.         Until such time as I find a truly bulletproof way to handle the
  767.         .NNS (Nanobbs Node Stat) files in the event of a crash, I have
  768.         disabled rigid licence enforcement.  Better business to err on
  769.         the side of trust, and all that.  I will actually likely release
  770.         the software without fixing this.
  771.  
  772.         When will the software be released?  My "bug board" is empty and
  773.         I have no new features to code.  Barring any catastrophic
  774.         failure reports from any of you guys, the BBS will be released
  775.         to the public as soon as I get the docs done.  That means all I
  776.         have to do is finish NANOBBS.DOC as the UFO.DOC file is now
  777.         complete.  I should also create a shareware licence doc and
  778.         order form, I spoze.  Maybe a NanoBBS RIP icon too.  I am going
  779.         to release NanoBBS, and THEN I am going to hoist a Christmas
  780.         tree.  That's my general (revised) schedule.
  781.  
  782. 94/12/08
  783. NBETA021:
  784.  
  785.         Some long-standing logic bugs in the message reading code that
  786.         have plagued me since I first coded Nano back in February are
  787.         now FINALLY fixed!  I tested it using various usernames and
  788.         access levels and it is now smooth and stable and secure.  This
  789.         should address those message reading bugs reported by Don some
  790.         time ago.
  791.  
  792.         I have also noticed that File Attach messages weren't working -
  793.         it would let you upload the file but wouldn't attach it.  This
  794.         is also fixed.
  795.  
  796.         I have also fixed a logic bug in the ANSi detection - if ANSi is
  797.         not detected on the first go, the user is no longer asked TWICE
  798.         if s/he wants to proceed with ANSi anyway.
  799.  
  800. 94/12/09
  801. NBETA022:
  802.  
  803.         Several people have reported a runtime 158 copying various $I
  804.         files during INSTALL... err... MPATH shouldn't have been copying
  805.         those in the first place!  I have fixed a string compare which
  806.         caused this.  I am just amazed no-one lost all their BBS files
  807.         as a result, as that's what happened to me when I tried to
  808.         duplicate the scenario!  Good thing I was only using a test
  809.         scratch dirctory...
  810.  
  811.         I have also improved the intelligence and appearance of the
  812.         UPDLNG program which updates the language files.
  813.  
  814.         There is some debug code in the file search code.  If you're
  815.         running in debug mode, I expect file lists and such will be very
  816.         ugly for a little while.  I'll take this out in a release or
  817.         two, if it bothers you simply don't use debug mode.
  818.  
  819.         Most of today's effort has been in docs writing.  NANOBBS.DOC
  820.         is much improved with extended descriptions of all of the
  821.         NODE1.CTL parameters and about half the MSGAREA.CTL parameters
  822.         likewise better documented (with detailed examples) then those
  823.         found in the file itself.
  824.  
  825. 94/12/12
  826. NBETA023:
  827.  
  828.         I have been struggling with a bug in the code that gets a file
  829.         description.  Sometimes it would just lock right up!  This
  830.         occurred in file searches and new-file scans, and the fault was
  831.         damned intermittent.  But take heart; I have FINALLY pinpointed
  832.         this most irritating bug (which has caused me to wake up to a
  833.         frozen BBS many times) and the fix is included in this release!
  834.  
  835.         A temporary bug in which the 5 minute warning would tell you you
  836.         had 300 minutes is fixed (i.e. it's back to displaying it in
  837.         minutes, not seconds).
  838.  
  839.         John Richards has reported that /? in NanoCHAT doesn't offer a
  840.         More prompt as it should - this is due to earlier efforts at
  841.         removing such prompts from the automatic /m commercials.  It is
  842.         now fixed!
  843.  
  844.         The docs are getting there...
  845.  
  846. 94/12/15
  847. NBETA024:
  848.  
  849.         This will likely be the last beta before public release.
  850.  
  851.         I have noticed maybe two times in the past eleven months, and
  852.         again last night, a sharing violation in the code that updates
  853.         the NANOBBS.SYS file.  Although this is a near-freak occurrence,
  854.         I have added code that actually checks to see it it's alright to
  855.         open NANOBBS.SYS before updating it.  If not it retries up to 25
  856.         times.  This is code originally developed for TommCHAT/NanoCHAT
  857.         and is well tested, so the error should not occur any more.
  858.  
  859.         John Richards pointed out a problem where the User Editor screen
  860.         binary is not shown.  Additional path checking has hopefully
  861.         fixed this.
  862.  
  863. 94/12/15
  864. NANO100B/
  865. NBETA025:
  866.  
  867.         This beta is issued concurrent to the public release.  Last
  868.         night you got NANO100A; it's a non-beta and a non-release.  Nuke
  869.         it and use this.
  870.  
  871.         I have performed a number of cosmetic cleanups and added a
  872.         feature to compensate for the lack of .RIP files: if a .RIP is
  873.         not found, NanoBBS will try to fall back on a .ANS and then a
  874.         .ASC before giving up.  I'll make some nice RIP stuff in
  875.         January.
  876.  
  877.         The docs are complete.  They print fine on my Dataproducts 8070
  878.         printer.  Users of some HP printers may need to force 62 line
  879.         (or longer) pages.  Pages are 60 lines long.
  880.  
  881.         This is the last official beta until January.  If any emergency
  882.         bugs that cause your BBS to not work pop up I will fix them, but
  883.         otherwise I am taking two weeks off for the holidays, and to
  884.         write the THC Xmas Demo III.  Feliz Navidad!
  885.  
  886. 94/12/17
  887. NBETA026:
  888.  
  889.         Jerry Driscoll reports that his key no longer works.
  890.         Interesting, since I haven't changed the key encryption
  891.         algorithm at all.  However, the ubiquitous path error leapt to
  892.         mind as a likely culprit, so I added code to first check the
  893.         SYSPATH path, then the path where the executable actually runs,
  894.         then the current directory, and finally the root directory
  895.         before giving up and declaring the key nonexistent.  Jerry, let
  896.         me know if your key works now.
  897.  
  898. 94/12/18
  899. NANO100C/
  900. NBETA027:
  901.  
  902.         Although I am not officially developing right now, the bug
  903.         reported by Ryan Clifford (not a tester) of a runtime 003 was
  904.         deemed today to be too detrimental to post-release marketability
  905.         to leave to an information report, therefore an emergency
  906.         maintenance release has been issued.  The runtime in question
  907.         was caused by NanoBBS trying to write to a non-existent IPCPATH
  908.         directory.  Additional checking is now in place to disable all
  909.         multi-line communications in the event the IPC path does not
  910.         exist and cannot be created (as in the case of a non-existent
  911.         drive).
  912.  
  913. 94/12/27
  914. NBETA028:
  915.  
  916.         A problem reported by Don St. Germain has been fixed.  Seems
  917.         NanoBBS wasn't checking to see if the caller is local before
  918.         trying to upload or download.  The protocol engine has horrible
  919.         DCD checking (which I cannot fix without violating copyright) so
  920.         I added code to disallow uploads in all protocols, and downloads
  921.         in protocols other than ASCII, in local-mode logons.  Your
  922.         remote callers will be unaffected.  I should point out that this
  923.         is how Maximus behaves.
  924.  
  925.         An extremely unimportant cosmetic fix: when you go into
  926.         NanoCHAT, it now says "¡Hola!" (properly punctuated Spanish)
  927.         instead of "Hola!" (poorly anglicised).  This will only take
  928.         effect if you manually update your language files.  If you want
  929.         to do it yourself, the upside-down exclamation point is ASCII
  930.         173.
  931.  
  932.         RIPscrip parsing has been improved.  NanoBBS will try to keep
  933.         all lines of RIPscrip code to 65 characters or less, where
  934.         practical, and there is now only one "!" per line.  Should be a
  935.         bit faster on the user's end, and there should be less problems
  936.         with less-than-perfect emulations of RIPscrip on the terminal
  937.         end.
  938.  
  939.         I now have a NANOBBS_.ICN file - it's a really slick looking RIP
  940.         Icon of the NanoBBS graphic logo...
  941.  
  942.         A [rip_fill_pattern] example in UFO.DOC had several incorrect
  943.         decimal representations of the binary fill pattern (the sort-of
  944.         hexagonal pattern in particular).  This documentation error has
  945.         been corrected.
  946.  
  947.         Several RIP colour parameters were not being properly parsed by
  948.         NCOMP.EXE.  This is now fixed.
  949.  
  950.         Don reports that the BBS has frozen a couple of times at
  951.         the get-filenames prompt when downloading.  This prompt uses the
  952.         same input routine used throughout the BBS for string entry, so
  953.         I find it incredible that a bug should cause it to only freeze
  954.         at that one prompt.  I suspect it may be due to a user hanging
  955.         up at that prompt, possibly not knowing what to type there, and
  956.         the input routine may not be handling all carrier-loss
  957.         scenarios.  I have added additional DCD checks and a line of
  958.         code which prevents FOSSIL I/O calls when the carrier has been
  959.         lost.  If this clears the problem up, great, but I still
  960.         haven't duplicated it here.
  961.  
  962.         I have also added code to explain two common runtime errors and
  963.         how the sysop can resolve them without calling on me for
  964.         support.  Runtime 003 is a path not found error - this is
  965.         usually because of pathing problems, and although I have added
  966.         much code recently to compensate for sysop confusion over paths,
  967.         the possibility of some arcane pathing causing a problem will
  968.         always exist, so a reminder has been added when this error
  969.         occurs to check the paths in the config.  Similarly, Runtime 100
  970.         is an attempt to read past the end of a file, usually caused by
  971.         running a new version without running CONFIG first.  A reminder
  972.         is also displayed (and logged) when this happens.
  973.  
  974. 95/01/02
  975. NBETA029:
  976.  
  977.         I have added a new feature: "File Groups".  It is a convenient
  978.         way to classify groups of file areas by general fields of
  979.         interest, to make it easier for users to find a particular file.
  980.         This feature has been added in response to criticism from some
  981.         of my BBS's users that THC's 250+ file areas can be confusing to
  982.         wade through in search of files of interest.
  983.  
  984.         I have also sped up the behind-the-scenes login code quite a
  985.         bit.  By that, I mean the code that updates the user, updates
  986.         the logs, loads up the user's limits definitions, and a slew of
  987.         other necessary things that both user and sysop are blissfully
  988.         unaware of.  There is still a way to go on this, but I should
  989.         have truly fast logons by the end of January.
  990.  
  991. 95/01/03
  992. NBETA030:
  993.  
  994.         A cosmetic blemish in the language files has been fixed.  SysMsg
  995.         687, which informs the user that the BBS is searching for a file
  996.         (in a find-file search) now has a couple of carriage returns
  997.         after it, giving a neater appearance.
  998.  
  999.         Another item of concern was that the backspace key didn't go up
  1000.         to the next line if it occurred at the beginning of the line, as
  1001.         is expected in a screen editor.  This little featurette has been
  1002.         added for your convenience...
  1003.  
  1004. 95/01/06
  1005. NBETA031:
  1006.  
  1007.         I have added a debug line which displays when the hot-keys
  1008.         handler has been invoked.  I would like to find out if a
  1009.         rarely-occurring flaw in the hotkey handler (or routines that
  1010.         call it) might be responsible for occasional lockups such as
  1011.         those experienced by both Don and myself.  No other new items
  1012.         are in this release.  If the BBS locks on your user, see if the
  1013.         last thing the BBS wrote to the screen was "Hotkey Handler
  1014.         Called" or something like that...
  1015.  
  1016. 95/01/09
  1017. NBETA032:
  1018.  
  1019.         I have added much code to make it easier to handle the external
  1020.         ASCII, ANSI, RIP and compiled UFO files that NanoBBS uses.  In
  1021.         addition I have expanded the random welcome screen concept
  1022.         sixfold to allow random ANSI, ASCII and RIP in both the logo and
  1023.         post-logon welcome screens.  I have added a section to the
  1024.         NANOBBS.DOC documentation file explaining all the files in the
  1025.         /MISC directory.  Hopefully this will help...  And, the
  1026.         practical upshot of all this is that the problem mentioned earlier
  1027.         in this file (for NBETA010) about missing RIP files causing an
  1028.         error and user confusion, can not exist anymore if an ANS or ASC
  1029.         file is available!
  1030.  
  1031.         I have greatly streamlined the code which sets up NanoCHAT upon
  1032.         a user's logon.  Once a valid password is received, users should
  1033.         be logged to the system in about 1 second, not 10.  Much faster!
  1034.  
  1035.         If a .RIP file is being displayed, it is now "non-stop" so that
  1036.         spurious "more" prompts will not spoil long displays.
  1037.  
  1038.         I have created BYE.RIP.  I think it looks pretty cool.
  1039.  
  1040. 95/01/15
  1041. NBETA033:
  1042.  
  1043.         Most of this beta's accomplishments are infrastructural, to
  1044.         increase speed, stability and sysop convenience.
  1045.  
  1046.         Some more RIP improvements include code to always start a .RIP
  1047.         file on a new line, and two new languagefile entries for the RIP
  1048.         languagefile only which reset the windows at strategic places.
  1049.  
  1050.         I have streamlined the efficiency of the ASCII/ANSI/RIP/UFO file
  1051.         output by about 50% on heavily-ANSI-laden files, and by much
  1052.         more than that on files with little or no ANSI.  It should be
  1053.         noticeably faster now, especially in local mode!
  1054.  
  1055.         I have modified the same routine so that when it is aborted with
  1056.         a hotkey, the colour is always reset to light gray.  Of course,
  1057.         subsequent language stuff will probably change this right away
  1058.         but at least you won't be stuck with an unwanted background
  1059.         colour if you should happen to abort an ANSi with a background
  1060.         other than black.
  1061.  
  1062.         I have also added code to automatically select a memory-based
  1063.         rather than a disk-based text file output wherever possible.
  1064.         This will further speed things along and add UFO syntax
  1065.         capability to many more files.
  1066.  
  1067.         Fixed a runtime that could occur if the "Use FileGroups" option
  1068.         is enabled but no file groups dat file exists... it will now
  1069.         instead do a normal file area list instead.
  1070.  
  1071.         Fixed a bug that would cause a runtime if FILES.BBS exists but
  1072.         has a length of zero.
  1073.  
  1074.         Added the following Sysop file-area functions: Adopt/Redescribe
  1075.         (with auto-DIZ extraction), Global adopt, hide, raw directory,
  1076.         override path.
  1077.  
  1078.         If you have sysop access you can now download any file on the
  1079.         system no matter where it is, so long as it exists.  It doesn't
  1080.         even have to be in files.BBS.  Just use the override.  I'll add
  1081.         move and kill later.
  1082.  
  1083.         I have completely re-written the QWK scanner to be tighter, and
  1084.         to leave the message base "open" during the scan instead of
  1085.         opening and closing it for each message.  QWK packing should be
  1086.         MUCH faster now, even faster than most Fidonet message packers
  1087.         on a per-message basis.  By the way, the dots you see during QWK
  1088.         packing use a dot to represent four messages.  So if you see
  1089.         five dots, 20 messages have been packed.  This has been reduced
  1090.         from 10 messages per dot to increase the psychological illusion
  1091.         of speed, further enhancing the real speed improvements.
  1092.  
  1093.         A little while ago, in an effort to improve speed, I created a
  1094.         LIMITS.DAT file which is derived from LIMITS.CTL and compiled
  1095.         when CONFIG.EXE is run.  Unfortunately, it's not intuitive that
  1096.         changes to LIMITS.CTL are not automatic so I have added code
  1097.         which will detect when LIMITS.CTL has a newer filedate than
  1098.         LIMITS.DAT, and will recompile it automatically when the user
  1099.         logs on if this is the case.  Prettycoolhuh!
  1100.  
  1101.         I'm late for my January 15th release.  If you notice any new
  1102.         bugs PLEASE let me know RIGHT AWAY so I can get them fixed and
  1103.         get 1.01a out to the public SAP!  If I don't receive any
  1104.         non-trivial bug reports by the 19th I will place 1.01a (which
  1105.         will be this beta plus any minor bugs fixed in the interim)
  1106.         on THC and on several FTP sites on Friday, the 20th.
  1107.  
  1108. 95/01/16
  1109. NBETA034:
  1110.  
  1111.         OK, Don has pointed out a very nasty bug, which I have noticed
  1112.         on my own system, i.e. it took no effort at all to duplicate.  A
  1113.         new feature I had added, code named "Gerg Yur Up" (from a
  1114.         message generated by an external program by Greg Shergold which
  1115.         does the same for QuickBBS) would cause the BBS to go into
  1116.         ignore-carrier and out of dump-the-user-cause-he's-out-of-time
  1117.         mode, putting him back at the main menu, with a ridiculous time
  1118.         left (6:25:and change) and unable to function because the BBS
  1119.         was in local mode, as it should be after it thinks it has turfed
  1120.         the user.  However, GergYurUp wasn't working properly either,
  1121.         and as a result it was leaving the BBS in local mode where it
  1122.         wouldn't hang up the phone.  Big problem.  FIXED!  I hope.
  1123.  
  1124.         BTW, it's not documented yet, but Alt-G toggles GergYurUp.  I
  1125.         will probably call it "Sysop Waiting".  What it does is, after
  1126.         the user has logged off, the BBS will play a PagePlay tune to
  1127.         signal that the BBS is available, and it will wait for the sysop
  1128.         to hit a key, or for 5 minutes, whichever is sooner, before
  1129.         re-cycling.  This is to give the sysop a chance to log on or do
  1130.         important maintenance on a busy day without having to commit the
  1131.         social faux pas of throwing a user off...  When Sysop Waiting is
  1132.         active, a flashing black colon ":" on a cyan background appears
  1133.         in the lower left corner of the screen.
  1134.  
  1135.         Also, I am pretty sure that if, for any reason, a user ends up
  1136.         with negative time left, the BBS will always display 00:00:00
  1137.         instead of the negative time.  This used to cause serious
  1138.         cosmetic problems as the resultant time remaining would scroll
  1139.         off the screen, which in the sysop bar is one line long, and,
  1140.         well, if it's happened to you, you know what it looks like.
  1141.  
  1142. 95/01/19
  1143. NBETA035:
  1144.  
  1145.         This will most likely be NANO101A.
  1146.  
  1147.         As requested by Don, a NEWS.* file has been added.  It is
  1148.         displayed immediately following the WELCOME.* file.  The docs
  1149.         (NANOBBS.DOC) have been updated to explain this.  It's intended
  1150.         as a general system news file, and it follows the same general
  1151.         rules as most other system textfiles: first it looks for .BBS,
  1152.         then (.RIP/.ANS/.ASC) as apropos, .TXT, no extension, and so
  1153.         forth.
  1154.  
  1155.         The GergYurUp problem wasn't fixed after all.  Now it is.
  1156.  
  1157.         I have greatly streamined the process of checking for new email
  1158.         at logon.  I used to get mystery lockups during this, I think
  1159.         these are gone now.
  1160.  
  1161.         Additional new system textfiles: ULPOLICY.* and DLPOLICY.* are
  1162.         displayed prior to uploads and downloads, respectively.  Sample
  1163.         .TXT files are included.  They are used to indicate system
  1164.         policy regarding uploads and downloads, for the user's
  1165.         re-edification.  In terms of encouraging adherence to the BBS's
  1166.         rules, these work well in WildCat and other BBSes which use
  1167.         them.  So now we've got 'em.
  1168.  
  1169.         I am still chasing a really mysterious bug where the BBS
  1170.         sometimes won't drop DTR to hang up.  It should be; I have debug
  1171.         code in this beta which shows that the INT 14 drop DTR call -is-
  1172.         being executed.  I have temporarily killed the non-FOSSIL
  1173.         version of the DTR drop and the if-then which decides which
  1174.         method to use; I suspect I could solve the problem better the
  1175.         other way around, by not using the FOSSIL at all...
  1176.  
  1177. 95/01/23
  1178. NBETA036/
  1179. NANO101A:
  1180.  
  1181.         This finally fixes the bug where the BBS would go into local
  1182.         mode and stay there forever (until the sysop logs the user off
  1183.         manually) after a user runs out of time.  This is the
  1184.         "mid-January" official release.
  1185.  
  1186.         There's also a new "S"earch command off the files menu.  It is
  1187.         like "F"ind but it searches description strings, at a bit of a
  1188.         premium in speed.
  1189.  
  1190.         There have also been a couple of minor bug fixes in NEd.  Sysop
  1191.         keys are now properly trapped without generating phantom
  1192.         characters, and ^Y will no longer let you delete a line when you
  1193.         are already on the last one.
  1194.  
  1195. 95/02/05
  1196. NBETA037:
  1197.  
  1198.         I have made some improvements to the Account Expiry code, in
  1199.         order to facilitate some policy changes on my own BBS.
  1200.  
  1201.         The Alt-G SysopNext feature now works properly.
  1202.  
  1203.         I have modified logic somewhat such that "hidden" files
  1204.         (actually, files with no FILES.BBS listing including .QWK
  1205.         packets) are "free" - ratio is not updated, time is not
  1206.         affected, and download limits are ignored.  This should fix the
  1207.         problem where users exhaust their ratio downloading QWK packets,
  1208.         plus allow sysops to have free hidden files, for whatever
  1209.         nefarious purposes this will serve.
  1210.  
  1211. 95/02/18
  1212. NBETA038:
  1213.  
  1214.         I have added much to this beta, and I will give plenty of time
  1215.         to work the bugs out before I release.
  1216.  
  1217.         Firstly, Nano now has a "Chat Prompt" mode for multinode use, in
  1218.         which most prompts in the BBS will allow display of
  1219.         current-channel chat traffic (silencable) and even participation
  1220.         in chat from a prompt!  The /M auto messages can now be silenced
  1221.         by users of a specific access level, so that you can make this a
  1222.         "registered users only" feature if you want.  I'll release this
  1223.         feature to Joe Q. Public when I have it integrated with the UFO
  1224.         syntax...
  1225.  
  1226.         Secondly, there is now a "Review New Users" mode.  Hit Alt-R at
  1227.         the User Editor screen and any user the BBS quasi-intelligently
  1228.         deems non-validated is displayed for you to consider, nuke,
  1229.         edit, or quickly promote to a preset access level.
  1230.  
  1231. 95/03/15
  1232. NBETA039:
  1233.  
  1234.         Some users reported new-email check not finding their email.
  1235.         This is fixed.
  1236.  
  1237.         I think I have also fixed some sticky mystery crashes.  Hotkeys
  1238.         oughta work better now.  They DON'T work at the logon prompt,
  1239.         and this is deliberate - I want any extra connection characters
  1240.         to be swallowed before the user is expected to input anything!
  1241.  
  1242.         In addition, abortability of lists and other output with respect
  1243.         to NanoCHAT prompt messages is now considerably improved.
  1244.  
  1245. 95/03/20
  1246. NBETA040:
  1247.  
  1248.         A really weird lockup has been isolated and, we hope, fixed.  It
  1249.         seems to only affect multi-node installations.
  1250.  
  1251.         I am going to attempt to refine and debug the transfer
  1252.         protocols.  Please report in detail any problems you or your
  1253.         users have with file transfers that cannot be explained by user
  1254.         dummkopf error ;-)  In particular I need to know which terminal
  1255.         programs are giving users the most problems, especially in
  1256.         Zmodem, so that I can modify Nano's Zmodem to be more friendly
  1257.         with not-quite-perfectly-compliant terminals... And I am the
  1258.         first to acknowledge that the Zmodem in Nano itself may be
  1259.         deficient; this is what I most want to address and fix at all
  1260.         costs!
  1261.  
  1262. 95/03/22
  1263. NBETA041:
  1264.  
  1265.         There is extensive debug messaging in the logon procedure so I
  1266.         can ensure that I have really gotten rid of that lockup bug at
  1267.         logon - it'll be gone in another beta or two.
  1268.  
  1269.         I have also added two UFO verbs and a UFO adjective.  See
  1270.         UFO.DOC for updates - the verbs are [ghostpost] and
  1271.         [ghostpostp], and the adjective is [creditcard].  It is now
  1272.         possible to write a UFO script that accepts credit cards,
  1273.         upgrades the user's access based on this, logs the fact, and
  1274.         informs the sysop BY EMAIL!  Try THAT with an external Visa
  1275.         door!!!  I will be writing such a script for my own use before
  1276.         next beta and will include it in the distribution archive.
  1277.  
  1278. 95/03/30
  1279. NBETA042:
  1280.  
  1281.         A crash on my machine forced me to fall back on a backup of
  1282.         source from before [ghostpost] therefore it will not work as
  1283.         documented for a beta or two.  This has also given me the chance
  1284.         to identify some inefficiencies in code and clean them up, so
  1285.         all is not disaster and chaos.  (on a personal note, I know what
  1286.         caused my crash.  I'd like to tell you where NOT to buy an IDE
  1287.         multi-I/O card but I don't feel like being sued today...)
  1288.  
  1289.         I have added a little code to the chat system code which will
  1290.         prevent a rare runtime error from occuring when two nodes try to
  1291.         write to the same temporary filename simultaneously.  If a
  1292.         collision is detected the later task (meaning: the one which
  1293.         would have crashed before this mod) will try again with a
  1294.         different filename, preventing the BBS from booting the user off
  1295.         with a Runtime Error 5.
  1296.  
  1297.         A new "post rewards" system has been implemented.  When a user
  1298.         enters a message, a variable amount of time is deposited to the
  1299.         user's time bank balance.  There are two tiers so you can reward
  1300.         posters of long messages more than for trivial posts, and you
  1301.         can also set the cutoff of what counts as a "long" message.
  1302.         This does not count for QWK uploads (yet).
  1303.  
  1304.         Another new feature, related to the above, is the capacity to
  1305.         "freeze" time during message posts.
  1306.  
  1307. 95/04/30
  1308. NBETA043:
  1309.  
  1310.         After a month of poring over the Zmodem code (which I did not
  1311.         write) I believe that I have successfully identified and
  1312.         eliminated the problems some users have been experiencing in
  1313.         downloading with Zmodem.  With that, this Public Beta is
  1314.         released.
  1315.  
  1316.         The UFO [creditcard] token now recognizes Discover cards.
  1317.  
  1318. 95/05/02
  1319. NBETA044:
  1320.  
  1321.         NEd (NanoBBS Full Screen Editor) now has a Ctrl-A key which
  1322.         inserts a space into the current line at the cursor position.
  1323.  
  1324.         A runtime PagePlay and a bunch of page tunes are now included.
  1325.         PAGEPLAY.DOC explains how to create the tunes and use
  1326.         PAGEPLAY.EXE to test them without having to load up the whole
  1327.         BBS.  PagePlay itself is a stand-alone utility which, in its
  1328.         full implementation, can also play and convert tunes for other
  1329.         BBS software.  The two hardcoded tunes are PAGE.PPL (played when
  1330.         a user pages) and SOS.PPL (played when a fatal error occurs).
  1331.         Any other PagePlay tune can be played most anywhere through the
  1332.         use of the [pageplay] UFO keyword.  TUNES.ZIP contains the tunes
  1333.         that come with PagePlay.  Give them a try, some are very good,
  1334.         others are quite short and designed specifically to be used as
  1335.         sysop pages or error/warning messages.
  1336.  
  1337.         The UFO [ghostpost] and [ghostpostp] keywords are back!
  1338.  
  1339. 95/05/09
  1340. NBETA045:
  1341.  
  1342.         There was a place in the QWK packer where it could possibly hang
  1343.         if the user got impatient and dropped carrier while the packet
  1344.         was assembling.  (I hope) this is now fixed...
  1345.  
  1346.         A new CONFIG token has been added - SHOWUPLOADER, when active,
  1347.         will tell NanoBBS that, after a user uploads and describes a
  1348.         file, the user's username should be added to the end of the
  1349.         description, e.g. "Uploaded by: {UserName}".
  1350.  
  1351. 95/05/13
  1352. NBETA046/
  1353. NANO110:
  1354.  
  1355.         This is a public general release.  A freak hangup bug has been
  1356.         corrected.  A new config token "HIDESYSOP" which refrains from
  1357.         including sysop logons in user-viewable logs, has been added.
  1358.         The docs have been updated.  Some default textfiles have been
  1359.         changed (un-THC'd).  The NNS files and bogus licence violations
  1360.         are toast - I've gone to a completely different, much more
  1361.         stable licence enforcement system!  Also all of the cosmetic
  1362.         features (such as the $ info) which had been lost in the crash
  1363.         last month are now restored!
  1364.  
  1365. 95/05/27
  1366. NBETA047:
  1367.  
  1368.         MFB now supports an INCLUDE parameter, making it much easier to
  1369.         rotate CD-ROMs.  MMB and CONFIG also include this parameter.
  1370.         Several include files are, well, included as examples.  This
  1371.         should greatly simplify configuring multi-node systems.
  1372.  
  1373.         Formerly, when you went /ks in NanoCHAT, it would report -1
  1374.         bytes free on the IPC drive.  This has been corrected.  This
  1375.         problem also existed in the TommCHAT product and has been
  1376.         corrected there too.
  1377.  
  1378.         Four new UFO tokens have been added which will enhance
  1379.         flexibility for sysops who want to have multiple logons per
  1380.         online session.  The [logoff], [bye_nohangup], [donthanguponbye]
  1381.         and [hanguponbye] tokens let you control whether the BBS
  1382.         actually hangs up after a logoff.
  1383.  
  1384. 95/06/03
  1385. NBETA048:
  1386.  
  1387.         I have improved the intelligence of the line counter quite a bit
  1388.         - it now detects unintentional line wraps and bumps the counter
  1389.         so that More prompts occur like clockwork even when some lines
  1390.         are longer than the screen!  Likewise, the message headers now
  1391.         stay on the screen 'til the first More prompt, instead of the
  1392.         BBS displaying the full 24 lines of a message's text and shoving
  1393.         the header into limbo...
  1394.  
  1395.         I have also finally solved the last of the problems with
  1396.         searching new e-mail at logon.  Note that this feature only
  1397.         searches the private email area; to scan all areas users must do
  1398.         a global new scan (which can be time consuming).
  1399.  
  1400. 95/08/07
  1401. NBETA058:
  1402.  
  1403.         There have been a great number of fixes since NBETA048, so many in
  1404.         fact that there hasn't been time to type them all out here.  The
  1405.         bug where the last message area defined would not show up in a
  1406.         global scan or QWK scan is now eliminated.  The bogus "Missing"
  1407.         files are gone.  A number of very silly defaults in the
  1408.         distribution archive have been corrected.  The BBS will no longer
  1409.         crash on account of your not having run BBS /F beforehand.  There
  1410.         are now 32 user keys.  And yes, Don, you can now select whether you
  1411.         want new-personal-mail scans to include all areas in the user's
  1412.         scan list or just the defined private area.
  1413.  
  1414. 95/08/08
  1415. NBETA059(b): (Some testers may have 059, no letter, which lacks a few of
  1416.               the release 1.12 features)
  1417.  
  1418.         There is now true support for non-disclosed gender.  Assuming you
  1419.         have set gender as an optional user field, users may choose, during
  1420.         the new-user application process, to protect the privacy of that
  1421.         information by not disclosing the gender.  Non-disclosure is
  1422.         treated by NanoBBS as a third gender.  Thus, undisclosed users
  1423.         cannot access message areas that are restricted to women only or to
  1424.         men only.  You may want to apprise your callers of this fact before
  1425.         they apply for access.
  1426.  
  1427.         The docs have also been overhauled.  To be different (NOT to be
  1428.         politically correct!), all personal pronouns are now in the female
  1429.         gender (grin).  I did a series of search-replace macros, so it's
  1430.         unlikely I missed anything, but if you notice any serious
  1431.         grammatical or spelling errors (NOT stylistic warts) let me know.
  1432.  
  1433.         An inconsistency in the JAM code (versus the Squish and *.MSG code)
  1434.         has been detected that would cause, in JAM areas only, the BBS to
  1435.         fail to display the last line of each message.  This is now fixed.
  1436.         Also apparently affecting JAM areas only was that it was possible
  1437.         to create a message -20 if it was the first message.  Only problem
  1438.         was, NanoBBS chokes on negative numbered messages.  Both the
  1439.         illness (the negative numbered messages) and the symptom (Nano's
  1440.         tendency to choke on them) have been cured.
  1441.  
  1442.         The non-FOSSIL serial support has finally been added!  So far, beta
  1443.         testing has been done only with a USR Sportster V.32bis internal
  1444.         modem, but the results are very solid.  NanoBBS supports up to
  1445.         COM16 by itself; my alpha testing so far has encompassed COM1 and
  1446.         COM2 only.  You can set non-standard addresses and IRQs for any of
  1447.         the 16 ports.  If no port config has been set (i.e. if you're using
  1448.         a NODE1.CTL that came with an earlier version) NanoBBS will default
  1449.         to using settings that will work with virtually every COM1 and COM2
  1450.         in the world and with many internal modems on COM3 and COM4
  1451.         (assuming their IRQs mirror those of COM1 and COM2).  See the docs
  1452.         and NODE1.CTL for configuration examples and information.
  1453.  
  1454.         New code has been added to accommodate a few non-standard FILES.BBS
  1455.         files I have encountered on several CD-ROMs.  The new tokens in
  1456.         FILEAREA.CTL will allow you to run many CD-ROMs of questionable
  1457.         compatibility virtually straight out of the box!  There are now
  1458.         five example include files illustrating the use of these tokens,
  1459.         and with only some paths to be changed you could use the examples
  1460.         directly with the CD's they are designed for (Night Owl 15 and 16,
  1461.         Monster Media 10, PC-Sig 14 and The Hacker Chronicles ][).
  1462.  
  1463. 95/08/21
  1464. NBETA060:
  1465.  
  1466.         This beta includes the first of the new features for 1.2: it now
  1467.         supports UFO labels up to 16 characters in length.  This is a big
  1468.         improvement over [label BF] and [goto BF] - now you can put
  1469.         [label bigfat] or [goto bullfudge].  Labels are case insensitive.
  1470.  
  1471.         NanoBBS no longer updates lastreads when checking for personal
  1472.         email.
  1473.  
  1474.         The BBS now handles "free" files much better.  It no longer adds
  1475.         the byte counts for "free" files to the user's download totals,
  1476.         precluding later downloading of non-free files.  Before, you could
  1477.         download all the free files you wanted but if you went over your
  1478.         limit on them, tough.  The BBS now also hides the "/b" used to
  1479.         indicate a free file.
  1480.  
  1481.         The BBS no longer skips ratio checking on CD-ROM downloads.  This
  1482.         one drove me spare until I nailed it.
  1483.  
  1484.         The BBS can now handle even more kinky versions of FILES.BBS.  For
  1485.         example, on some really wacky CDs, FILES.BBS includes file dates
  1486.         and sizes, with the file size working backward until it actually
  1487.         touches the filename, like this:
  1488.  
  1489.  
  1490.                 SMALFILE.ZIP  50065 94-01-01 This is a smaller file.
  1491.                 FILENAME.ZIP1678082 95-01-01 This is a file.
  1492.  
  1493.         Previously, Nano would deem FILENAME.ZIP1678082 a "missing" file.
  1494.         Now, it detects this occurrence and splits it up, neatly displaying
  1495.         the file size (or not, if you have {correctly} specified the
  1496.         PCBSTYLE keyword in your filearea.ctl).
  1497.  
  1498.         A number of minor cosmetics have been cleaned up, mostly in the
  1499.         form of refinements to the file listing bug fixes of the 1.12a
  1500.         release.
  1501.  
  1502.         There are two more CD-ROMs included in the example control files:
  1503.         Night Owl 17 and Night Owl BBS Shareware (from 1994).  I have a
  1504.         source for a great many more and plan to include all of them if I
  1505.         can.
  1506.  
  1507. 95/08/31
  1508. NBETA60B:
  1509.  
  1510.         This, along with NBETA60A.ZIP (not written up here) is a sort of
  1511.         "emergency beta" for John Barnard.  The high speed file searches
  1512.         are totally, totally rewritten.  The file area file has a new
  1513.         structure so the file areas MUST be recompiled using the new
  1514.         MFB.EXE.  Also run BBS /F after MFB has been run!  The NANOBBS.HDX
  1515.         and NANOBBS.HXA files are obsolete and can be deleted now.  The new
  1516.         MASTER.FIL generated by BBS /F is larger but it is a plain ASCII
  1517.         file and delivers comparable speed on new-file searches and
  1518.         filename searches, and VASTLY GREATER speed on description
  1519.         searches!  This rewrite eliminates the remaining extended
  1520.         description display bugs and all runtime errors associated with
  1521.         description searches!  And it's a whole lot smaller in code size to
  1522.         boot!
  1523.  
  1524.         A note to the programmers on the beta team - Pascal purists will
  1525.         tell you that the GOTO statement is a travesty, an abomination in
  1526.         the face of God and J&W.  BULLSHIT.  In rewriting the file
  1527.         searches, the use of just three GOTO statements eliminated nearly
  1528.         20k of redundant source, plus at least 10 indices and booleans in
  1529.         the remaining code, enabling me to use a single universal search
  1530.         routine where I had needed three.  The source is more readable and
  1531.         the resulting program is faster and far more solid and airtight.
  1532.         There are some instances in programming where a GOTO is the
  1533.         absolute best way possible to get things done.  Never let anyone
  1534.         tell you otherwise.
  1535.  
  1536.         Also if you experience weird wrapping problems with the extended
  1537.         descriptions in the file lists, add a ~, embedded keyword to the
  1538.         beginning of [sysmsg 603] and [sysmsg 604] in all your language
  1539.         files and then recompile them with NCOMP.  ~, forces a carriage
  1540.         return if the cursor is not on the leftmost column already.  This
  1541.         is documented in NanoBBS technical bulletin #2.
  1542.  
  1543.         Once I add multinode paging, I shall release NanoBBS 1.14.
  1544.  
  1545. 95/09/09
  1546. NBETA61C:
  1547.  
  1548.         This is the last beta before the 1.14 release (barring a
  1549.         catastrophe).
  1550.  
  1551.         I have added Paging and Telegrams to the NanoCHAT features and
  1552.         added many of the TommCHAT bug fixes to NanoCHAT (in fact I ported
  1553.         the entire SmartActions code from the enhanced TommCHAT 1.13b
  1554.         product into NanoCHAT lock, stock, and barrel!).  If you have
  1555.         multinode enabled, I think your callers will really appreciate
  1556.         these new features - mine do!
  1557.  
  1558.         I have also strengthened the WAIT4IT function that waits for a
  1559.         locked file to come unlocked before attempting to open it.  Once in
  1560.         a while a user may experience a delay of up to 2 seconds in a
  1561.         multi-user function - this is WAIT4IT doing its job: the BBS would
  1562.         have exited with a runtime error otherwise.
  1563.  
  1564.         File Flagging is now much faster thanks to a last-200-files list
  1565.         buffer.  Most of the time, users will no longer have to wait for
  1566.         NanoBBS to search the whole index file when flagging a file or
  1567.         adding it to the batch from the batch menu.  The BBS will first
  1568.         search an in-memory list of up to 200 most recently listed files,
  1569.         and only if that fails to turn up anything will the BBS attempt a
  1570.         global search of MASTER.FIL.
  1571.  
  1572.         A new bug, where the Flagging option was absent from the More
  1573.         prompt in file lists and searches, is now fixed.
  1574.  
  1575. 95/09/11
  1576. NANO114:
  1577.  
  1578.         Owing to a lack of feedback (and rotgut) from Don St. Germain, I
  1579.         dub Nano 1.14 ready for prime time!
  1580.  
  1581.         Last minute tweaks:
  1582.  
  1583.         I noticed that if a caller enters a message and then aborts it
  1584.         without saving, the BBS wouldn't resume the clock if you have
  1585.         POSTFREEZETIME active.  Now it does.
  1586.  
  1587.         I've noticed a *possible* place where NanoCHAT might drop a message
  1588.         every now and then - under certain circumstances it could write the
  1589.         IPC itself but not update the receiver's .STC (stack) file.  You
  1590.         may or may not notice an improvement in NanoCHAT's reliability,
  1591.         depending whether or not you were experiencing such a problem
  1592.         before.
  1593.  
  1594.         I have also added PAGE and TELEGRAM as internal NanoCHAT commands,
  1595.         so they are accessible from within NanoCHAT as well as from the
  1596.         canned who's on menu.  They're also available in UFO as
  1597.         [canned_pageuser] and [canned_telegram].  I may never add un-canned
  1598.         components of these two tokens as they are a bit complicated.  Then
  1599.         again, I might yet.  Time will tell.
  1600.  
  1601. 95/10/14
  1602. NBETA062:
  1603.  
  1604.         I have spent the last few weeks taking a breather from serious
  1605.         programming after the release of 1.14, and I am now working on
  1606.         1.16.  Fitting with the new version numbering scheme, all 1.16
  1607.         betas will be version 1.15.
  1608.  
  1609.         In this beta, I have completely rewritten the global newscan code,
  1610.         which should eliminate many nagging problems in navigating through
  1611.         global newscans, email checks, and even general message reading.
  1612.         I've alpha tested this a lot today and found that all the old
  1613.         familiar quirks are blissfully absent... It also turns out that
  1614.         there was a logic bug in some of the code that was not rewritten,
  1615.         which had occasionally caused an elusive runtime 004.  This is now
  1616.         fixed.
  1617.  
  1618.         A new feature has been added: you can now type the message number
  1619.         of a message you want to read directly at any read prompt.  This
  1620.         way you can skip past large numbers of unwanted messages or quickly
  1621.         jump back or forward to a message whose number you know.  Most
  1622.         other BBS software already had this; Nano should've had it in its
  1623.         first release, it has it now.
  1624.  
  1625.         There's a new sysmsg 356 to service this feature.
  1626.  
  1627.         In addition, when you flag a file from a file listing, you get the
  1628.         "More" prompt again.  I will do some cosmetic work on this to
  1629.         minimize the number of lines scrolled out during a file flag; I
  1630.         might even implement some sort of a screen capture/redraw for a
  1631.         zero-disruption flag prompt!
  1632.  
  1633. 95/10/28
  1634. NBETA063:
  1635.  
  1636.         A couple of bugs in the new newscan code are fixed: it no longer
  1637.         shows private messages you shouldn't be seeing, and it no longer
  1638.         gets stuck in a prompt loop without going to the next base.
  1639.  
  1640.         I have streamlined a number of things resulting in 28k less heap
  1641.         consumption.  This means NanoBBS will run in tighter memory
  1642.         quarters than in the last beta.
  1643.  
  1644.         I have also fixed a cosmetic bug in the Telegrams where, when you
  1645.         received a telegram, you'd see your own name and node as those of
  1646.         the person who'd sent you the telegram.
  1647.  
  1648.         Quite some time ago, I added a new PagePlay kernal to the BBS for
  1649.         its chat page music, but neglected to add in hooks to the modem so
  1650.         that the user could abort the paging.  Up until this beta, only the
  1651.         sysop could abort a page.  Now, the user can too, as was originally
  1652.         intended.
  1653.  
  1654.         Additionally, three new UFO keywords have been added, [writebang],
  1655.         [noabort] and [abortok], and the UFO script compiler itself has
  1656.         been updated slightly as well, with a very rare infinite loop bug
  1657.         discovered and fixed.
  1658.  
  1659.         And, I have at last located the line of code that sent a carriage
  1660.         return but failed to increment the line counter (in file lists
  1661.         only) resulting in file lists that often scrolled 30 or 40 lines
  1662.         (when you're set up for a 24 line page) before you'd get a More
  1663.         prompt.  This is now fixed.  At the same time, I have added extra
  1664.         intelligence to the file description wraparound code: it will not
  1665.         auto-wrap an extended description that has a high-bit character or
  1666.         certain regular ASCII characters as the LAST character of the first
  1667.         line of the extended description.  If it detects such a character,
  1668.         it will assume that the extended description has extended ASCII art
  1669.         or a box or some other large column-sensitive graphic, and will
  1670.         honour its line breaks.
  1671.  
  1672. 95/11/01
  1673. NBETA064:
  1674.  
  1675.         There was an error in UFO.EXE where it would compile a GHOSTPOSTP
  1676.         as a GHOSTPOST and vice versa, resulting in public messages when
  1677.         you intended private.  This is now fixed.
  1678.  
  1679.         I have further refined the user editor's user flags editor.  It's
  1680.         much nicer now.
  1681.  
  1682.         I noticed that occasionally, when a user encountered a
  1683.         [harddownload] UFO keyword, it would fail to give the user the
  1684.         file, either because it was not in a FILES.BBS or because the
  1685.         user's ratio was unfavourable.  Since the most common use of
  1686.         [harddownload] is for files that ought to be free anyway (such as
  1687.         local FAQs, registration forms, must-have files like RIP icons,
  1688.         etc) I have added extra code that forces "free" mode when the
  1689.         keyword is invoked, so that files thus downloaded do not count
  1690.         towards the user's download totals and the ratio is not checked.
  1691.  
  1692. 95/11/04
  1693. NBETA64E:
  1694.  
  1695.         This is a response to a serious bug reported by Don St. Germain, in
  1696.         which the Chat Prompt would generate a runtime 104.  I was never
  1697.         able to duplicate the problem but I strongly suspect an aberrant
  1698.         FILEMODE caused the error, so I went over every FILEMODE directive
  1699.         in the source by hand and made a few changes which should fix any
  1700.         further "not open for input" problems (i.e. runtime 104).
  1701.  
  1702.         I have also enhanced the Sysop "file directory override" and "raw
  1703.         directory" options at the file menu.  The raw directory now lists
  1704.         directories and the override lets you use . and .. as well as
  1705.         partial paths.
  1706.  
  1707. 95/11/11
  1708. NBETA065:
  1709.  
  1710.         Some problems with flagging files and downloading files that are in
  1711.         the last-100-listed buffer have been fixed.  The last of the
  1712.         cosmetic fixes for file lists have been applied.
  1713.  
  1714. 96/01/06
  1715. NBETA066:
  1716.  
  1717.         OK, NanoBBS development is underway once again after a busy
  1718.         Christmas season which left me with no time for programming...
  1719.  
  1720.         The runtime errors which commonly threw users out of NanoCHAT have
  1721.         been obliterated!  I have put in beta code which prints a warning
  1722.         to the sysop screen only whenever the BBS thinks a runtime error
  1723.         would have occurred if this fix were not in place.  After a short
  1724.         time, you will notice how bad the problem was.
  1725.  
  1726.         I have added two more levels of indexing to the master file index.
  1727.         MASTER.PRE is a pre-index which is exactly 729 records in length
  1728.         and points to offsets in MASTER.IDX.  MASTER.IDX contains
  1729.         filenames, file area numbers and offsets into MASTER.FIL.  Although
  1730.         I have not yet incorporated the code that searches these new
  1731.         indices, the preliminary code (still in testbed) has shown
  1732.         incredible results; any file in the system can be located (even
  1733.         with wildcards) in less than 1 second on my 486-33.  That's in a
  1734.         MASTER.FIL of 2.3 megs in size, indexing 39,000 files totalling
  1735.         over 2 gigs.  Not bad!  Next beta will have the new searching
  1736.         capability in file flagging and in the Download command and
  1737.         File-Search commands.  The new-file scan and description scan will
  1738.         necessarily continue to use the flat-file technology currently
  1739.         employed in all file searching, which takes a noticeable time to
  1740.         find a file.  Although, the flat-file system itself may be improved
  1741.         before 1.16.
  1742.  
  1743.         There is now code in place to free disused heap blocks (such as
  1744.         in-memory FILES.BBS lists) prior to memory-critical operations such
  1745.         as message entry and saving.  This reduces overall real-world
  1746.         memory requirements and makes out-of-memory runtimes much less
  1747.         likely.
  1748.  
  1749.         This is the first beta of 1996!  Note new copyright dates.
  1750.  
  1751. 96/01/06
  1752. NBETA067:
  1753.  
  1754.         OK, the new searching code is in place in the file area.  The
  1755.         "D"ownload command, the flagging from within a file list, and the
  1756.         Batch Menu are affected.  All three of these functions are now much
  1757.         faster.  Next beta, the "F"ile Search (by filename/wildcard) will
  1758.         also have the same technology.
  1759.  
  1760. 96/01/07
  1761. NBETA068:
  1762.  
  1763.         Oops!  The new file searching code doesn't search the current
  1764.         directory.  This isn't a problem if you're in an indexed file
  1765.         section (as all files sections are indexed) but if you're in an
  1766.         override directory, that directory may not be indexed, in which
  1767.         case a download would fail to find your file.  I have added code to
  1768.         use the old method when adding files to the batch from an override
  1769.         directory.
  1770.  
  1771.         As promised, the "F" command at the file menu now uses the new
  1772.         search code.  It's now an FFFF (Fucking Fast File Finder)!
  1773.  
  1774.         One thing, the new search code has a weakness: because it derives
  1775.         its speed from indexing the first two letters of each filename
  1776.         (effectively resulting in a tree with 729 branches at the first
  1777.         level) it must search more files if less than two letters of the
  1778.         base filename are supplied by the user.  For example, if a user
  1779.         wants to download EX*.*, the BBS positions its index pointer at the
  1780.         beginning of the files beginning with EX and finds them all very
  1781.         fast.  But, if the user requests E*.DAT, the program must search
  1782.         through all the files beginning with E.  This may not be so bad
  1783.         because all the E's are in one block in the index, but in a large
  1784.         BBS it may be noticeably slower.  The worst case is when a user
  1785.         supplies only an extension, e.g. *.PHK.  Then, NanoBBS must search
  1786.         the entire database for files with a .PHK extension, and is only
  1787.         marginally faster than the flat-file code.
  1788.  
  1789.         The flat-file search engine, BTW, is still in place because it is
  1790.         still the fastest way to do a description search without creating
  1791.         another huge index file of description words.  The same applies to
  1792.         searches by date.
  1793.  
  1794.         Override keys like the ones you can program for the canned main
  1795.         menu are now also available in the File Section.  They work the
  1796.         same way, except that in the file section you can only have up to
  1797.         30 of them, and the keyword in the config file is FOVRSTR instead
  1798.         of OVRSTR.
  1799.  
  1800.         Doors can now be addressed by their number instead of just the key.
  1801.         The prior limitation used to effectively restrict NanoBBS to just a
  1802.         few dozen doors; this was unsuitable for a dedicated gaming BBS.
  1803.         The canned door menu still uses single keys but this should still
  1804.         be more than enough for most BBSes; those that need a huge number
  1805.         of doors can now (and should!) build a UFO script to present an
  1806.         extended doors menu.  The single-key syntax still works with the
  1807.         same UFO keyword, so that existing scripts are not broken.
  1808.  
  1809.         I have also taken out some very ugly debugging messages,
  1810.         particularly in the file flagging and QWK building code.  This and
  1811.         a few rewrites of various inefficient functions has saved nearly
  1812.         10k of memory usage.
  1813.  
  1814.         It's been a long and productive weekend.  I smell a public release
  1815.         coming up!
  1816.  
  1817. 96/01/16
  1818. NBETA069:
  1819.  
  1820.         Mostly cosmetic cleanups.  Only John Barnard got this one.
  1821.  
  1822.         I have added NanoWATCH, which is an IPC watcher.  Type BBS /A on an
  1823.         unused task on a busy multiline system and you'll soon see its
  1824.         usefulness.  It provides an at-a-glance status report on the
  1825.         current activity of up to 20 nodes.
  1826.  
  1827. 96/01/20
  1828. NBETA070:
  1829.  
  1830.         I have added a "divider" feature to message and file area lists.
  1831.         When you do a file area list or a message area list (i.e. use the J
  1832.         and ? keys) you can now use dividers to break up the list, perhaps
  1833.         in categories of topic or of mail network affiliation.  The syntax
  1834.         is explained in the sample MSGAREA.CTL and FILEAREA.CTL files.  For
  1835.         faster speed you can use a preset sysmsg from the language file, or
  1836.         for greater flexibility you can specify an external filename for
  1837.         each divider.
  1838.  
  1839.         I have also added an "automatic area number" feature to MFB.EXE and
  1840.         MMB.EXE.  By using the @NEXT keyword instead of an area number
  1841.         (e.g. filearea @next instead of filearea 650) you can have MFB or
  1842.         MMB automatically assign the area the number that comes after the
  1843.         area number of the previous area.  You can also instruct MMB or MFB
  1844.         to automatically increment areas by amounts other than one.
  1845.  
  1846.         I have fixed a problem with the full screen editor, in which quoted
  1847.         text no longer appears.  This was a new bug introduced in the last
  1848.         code-tightening and memory-efficiency campaign.
  1849.  
  1850.         I have made many critical NanoCHAT messages non-abortable.  The
  1851.         abortability of messages had caused some people to lose /p's and
  1852.         the such.
  1853.  
  1854.         I have updated the More prompts to be more informative and improved
  1855.         the appearance (and verbosity) of the flagging-file lists (lists of
  1856.         files that are being flagged from within a file list).  Eventually
  1857.         I intend to have a really slick full-ANSI file-tagging system such
  1858.         as the one in PC-Board but that's probably not going to happen
  1859.         until version 2.0.  Which may come out sooner than anyone expects,
  1860.         if progress on NanoBBS continues at this pace.
  1861.  
  1862. 96/01/27
  1863. NBETA071:
  1864.  
  1865.         This is the final beta before the release of 1.16.
  1866.  
  1867.         I have *FINALLY* nailed the bug where Zmodem transfer rates would
  1868.         sometimes really suck.  I had been unable to duplicate it because
  1869.         it only manifests for those who've locked their comports at 57600
  1870.         or faster, which I don't.  An uninitialized variable in Mark
  1871.         Dignam's protocol engine was the source - apparently Dignam did not
  1872.         forsee locked baud rates faster than 38400!  I have expanded that
  1873.         part of his code to take into account any baud rate up to 655360
  1874.         bps...
  1875.  
  1876.         I have also taken out the Zmodem beta text which was pretty ugly
  1877.         and has now served its purpose.  While I was at it, I improved the
  1878.         progress bar in the download screen - it uses a ▌ character to give
  1879.         twice as many gradations in the progress bar, so it advances twice
  1880.         as often now.  Overall it looks better that way.
  1881.  
  1882. 96/01/31
  1883. NANO116:
  1884.  
  1885.         This is the release version of 1.16.
  1886.  
  1887.         In addition to all the new features and function improvements and
  1888.         bug fixes since the release of 1.14 in September, 1.16 also
  1889.         includes a utility to convert the userbase, message area
  1890.         definitions, and file area definitions from a RemoteAccess 2.0
  1891.         system.
  1892.  
  1893.         New features have also been added: You can now prohibit one word
  1894.         pseudonyms or one word real names.  And, if you're in sysop chat
  1895.         you can squelch the user by hitting Alt-Q.  This is useful when
  1896.         you're busy and you just want to say one thing and get out of chat
  1897.         and the user won't stop typing.
  1898.  
  1899.         The docs are also clarified in a few places.
  1900.  
  1901.         The structures are now included.
  1902.  
  1903. 96/04/14
  1904. NBETA075:
  1905.  
  1906.         Fixed /KT in nanochat: erroneously changed node on user, now
  1907.         correctly changes channel.
  1908.  
  1909.         /S in NanoCHAT no longer counts nodes that are "waiting for a call"
  1910.         in the "number of users online".
  1911.  
  1912.         With the purchase of two 7-tray CD changers on THC, NanoBBS has
  1913.         been upgraded to support changers that require an external command
  1914.         to change the disc.  Through the use of a CD_ID filearea field, you
  1915.         can minimize unneccessary use of external CD change shells.  Your
  1916.         CD changer may come with a tray-swap program, I had to put mine on
  1917.         a dedicated server on the LAN and assign each tray's drive letter
  1918.         to a network directory name, which was then mapped on demand to a
  1919.         single common drive letter across the LAN.  Using this technique it
  1920.         is also possible to map multiple hard disk volumes to a single
  1921.         drive letter, providing a virtually unlimited file area
  1922.         addressability under DOS.
  1923.  
  1924.         I have fixed a long standing problem where internet e-mail
  1925.         addresses sometimes got truncated at 32 characters.  Email
  1926.         addresses can now be up to 80 characters.
  1927.  
  1928. 96/06/16
  1929. NBETA077:
  1930.  
  1931.         There has been so much added that I didn't have any time to write
  1932.         up NBETA076!  Where do I start?  For starters, the gender dysphoria
  1933.         in NanoCHAT is now finally fixed.  NanoCHAT also now supports up to
  1934.         1000 actions and can index them far faster than before; this is in
  1935.         preparation for the upcoming user-definable actions which should be
  1936.         ready next beta.  Also, >name commands which cause directed public
  1937.         speech in NanoCHAT are now implemented and have significant
  1938.         intelligence improvements over the one in Glop.  Also, you can now
  1939.         use /handle to send a /p to a user without really knowing his node.
  1940.  
  1941.         Not all the new stuff is in NanoCHAT.  I have also fixed ALL of the
  1942.         time usage problems by totally reworking the time usage calculation
  1943.         code.  To test it, I made the /i8 file in NanoCHAT and also added
  1944.         an option to display the same thing at logoff.
  1945.  
  1946.         I have fixed quite a few things in NEd, especially dealing with the
  1947.         Ctrl-Y line delete.
  1948.  
  1949.         There is now code in place to support miniature uses of the
  1950.         internal message editors for things like file descriptions, chat
  1951.         entry/exit messages, sig files, "about me" files and much more!
  1952.         This is preliminary to the user base structure integration which
  1953.         places the entry/exit messages in a Squish message base along with
  1954.         other message-like user data.  The same file will also hold an
  1955.         "about me" message which will be part of the upcoming Registry.
  1956.         Note: we will have to call the Registry something other than that -
  1957.         we're already stomping on Galacticomm's toes enough as it is.  Any
  1958.         suggestions?
  1959.  
  1960.         Now here's the big one: I have made a MAJOR change to the user
  1961.         record structure!  In order to assist sysops running 1.12, 1.14 and
  1962.         1.16 and associated betas, I have included the CONVUSER program
  1963.         which does an elegant job of turning the old userlog into the new
  1964.         one.
  1965.  
  1966.         The first benefit you will notice from the new structure is that
  1967.         user logons (and lookups) are way, WAY faster.  Prior to this beta,
  1968.         user #3000 took about 10 seconds for the BBS to find before even
  1969.         asking the password; now this lookup time is imperceivable.  The
  1970.         new userlog structure is indexed and the indices are updated on the
  1971.         fly as required.  There is also a UHASH.EXE program to rebuild the
  1972.         indices from scratch is they ever become corrupted.
  1973.  
  1974.         Users can now have up to 6 lines in their /u1 and /u2 NanoCHAT
  1975.         entry/exit messages.  They are now entered in a mini version of the
  1976.         message editor, AND they can now be "edited" instead of totally
  1977.         re-doing them!
  1978.  
  1979.         User passwords are now SECURE.  NanoBBS now stores a CRC32 of the
  1980.         user's actual password instead of the password itself.  The CRC, if
  1981.         known, cannot be used to logon.  I will shortly add an even more
  1982.         secure Base64 encrypted password system to the system as well.  At
  1983.         that point, you will be able to have plaintext, CRC32 and Base64
  1984.         encrypted passwords in the same user file, used at random.  At this
  1985.         writing, the user change-password facility and the new-user
  1986.         password entry both store the CRC, and the CONVUSER program turns
  1987.         1.16's plaintext passwords into CRCs.
  1988.  
  1989.         I have also started putting in code to make NanoCHAT friendly with
  1990.         "linked" chat systems.  I am sure I will have to write an entire
  1991.         chapter on links before I release 2.00.  When a user logs into an
  1992.         account that has been flagged as a "link" account (there is a key
  1993.         in the user editor to do this) they will be thrust directly into
  1994.         the chat system, their own messages will not echo back to them, and
  1995.         /q will disconnect the call.  In addition, ANSI is disabled.  At
  1996.         this writing, a remote system with dialout ASCII link capability
  1997.         should be able to call a NanoCHAT, log in, and comfortably be
  1998.         linked until its link account runs out of time.  Needless to say, a
  1999.         special account should be created for each system you expect to
  2000.         link in.  I will very soon write outgoing link code as well, with
  2001.         an internal dialer and script processor to make links a matter of
  2002.         using a /k command from NanoCHAT.
  2003.  
  2004.         Among the many other benefits of the new structures, is the keeping
  2005.         of a separate "Internet Name" field, which is a 9-character
  2006.         username suitable for use as the basis of an internet address.  The
  2007.         User Editor has had several new fields added to it, and among these
  2008.         is the Internet Name.  If a user doesn't have an Internet Name, you
  2009.         can give her one in the User Editor by simply hitting Alt-I.  This
  2010.         will make NanoBBS quasi-intelligently synthesize an Internet name
  2011.         out of the user's logon handle.
  2012.  
  2013.         I have also fixed 3 or 4 annoying bugs in the fast file searching
  2014.         code.  Chief among these was that when *.ext (where .ext is any
  2015.         extension) was specified in a filename search, NanoBBS would quite
  2016.         happily display any file it found that matched the wildcard,
  2017.         without regard for whether the user is allowed to download the file
  2018.         or not.  This, of course, was inconsistent with Nano's basic design
  2019.         philosophy that: areas the user may not access are invisible to
  2020.         her.  This is now fixed, and thank Ghod it never did let the user
  2021.         flag these errant files...
  2022.         
  2023.         There will be many amazing and innovative new features added in the
  2024.         coming weeks as support for the new userlog fields is added one
  2025.         feature at a time.
  2026.  
  2027.