________ ____ ____ ______ / / /______ ____ ____ ____ / \ / \ / / / / // / // \ / \ / \ / // // ___/ / //_ / _// / // __// - / / ---// ---//__ / / / / / / / / // / // / / // // / /___/___/ /__/ /_____//__/__//__/__/ /_____//_____//_____/ The Amiga's Premier BBS Host System By Hydra^cP! Changes ======= This file details everything I do to HBBS in a coding session starting with the newest first (so you don't have to scroll to the bottom of the file!) There is a lot of usefull information in here that might not be documented so Its best to read all the changes since the last release that you had (or all the file if you've not used HBBS before, if you've got the time) If you're stuck on something, then it might be worth searching this file for keywords to see if it's documented here. I've noted which versions were released next to the date, so you can see just how much (or little! :-) work I am doing between releases.. Where possible I've detailed the changes under a heading of the program's filename where changes have been made. 15-August-1999 ============== AwaitConnect ============ Does not display blank lines anymore. AddCreds ======== This door now logs the amount of credits that was given for an uploaded file. ShowPartUploads =============== Created this system door, it shows the users their partuploads, if any, with an option to delete them. See the docs for installation details! Upload ====== Calls the system door SHOWPARTUPLOADS. Download ======== Calls the system door SHOWPARTUPLOADS if the selected protocol is bi-directional. When doing a sysop download, the question: "Clear tags after copy ?" Always cleared the tags, regardless of the sysop's answer. (due to me not finishing the routine!) This is now fixed and works fine. Mail_Reply ========== A change I made to PostNewMail() that was meant to cure bugs actually caused one because in MailReply() I forgot to Msg->Data=NULL before I called PostNewMail(), so it tried to save random areas of memory to the message file instead of the output from the editor. OOOOps! Mail_Write ========== Updated example usage ("E ?" at bbs prompt) Mail_Read (not Mail_ReadUSER) ========= When a message in the list of messages that it had been passed had been deleted before the message could be displayed no message was shown and the message would stay in the list, now a message is displayed and the message is removed from the list. This could occur if a user skipped a mail message from a mailscan, the list of messages that the user still has to read is then saved. Then if the message was deleted (for any reason) and the user did a mailscan again, the message would still be in the list. The only way to remove it from the list would have been to mark it as read, but this probably wouldn't have worked for messages with the MustRead flag set. This behaviour is now fixed. Node ==== When the door log was enabled and no-one was logged in it would log "Handle: ,...". Now it prints out "Handle: Not logged on yet,...." When the watch window/screen is brought to the front, the window is now activated as well. (For those people that don't run a program that activates a window on the frontmost screen when you switch to a new screen) The node now calls "MailScan" *before* "Checktags" during the login process. The node now calls the new SHOWPARTUPLOADS system door after "CheckTags" during the login process. The node now checks the user's carrier status before running mailscan, checktags, showpartuploads and command prompt. (If the user looses carrier during login the bbs will now reset quicker) The first person to page the sysop after the node had started would have caused an enforcer hit (byte read from $0) Fixed! CheckFiles ========== This door now writes extra information to the callers log, relating to where the file was moved to. MoveFile ======== This door now writes an exact filename and path to the callers log for each file that was moved. 14-August-1999 ============== Parents piss me off, I'm between jobs at the mo (cos I'm a contractor) so I have to live in my parents house :-( Grr.. And when I have my A4000T on, the noise of the FAN and the HARD DISK keeps them awake. So when my Mum has the flu I can't use my sodding computers. So blame her for a delayed release of V1.10 On the bright side of things though, I did a bit of playing around with V1.10 on my A1200 (which has No fan and a quiet HD!) and found a few more bugs/things to do. Which I will fix tomorrow... 13-August-1999 ============== Wall. ==== for some reason the wall has started displaying the wallitems in reverse order, I don't know when this happend, but it's fixed now.. CheckFiles ========== Changed the colours of the ansi, where it displays the conference being used for the file. Node ==== Now displays an error message and closes the node if there was a problem initialising the modem (rather than sitting there, just getting confused, like it used to) When Get_Line() is called, any data waiting at the console is aborted. This should cure any problems you may have had when the node appeared frozen to the sysop, but the node console panel still responded when you clicked on it's gadgets. Doors that call DOOR_HangUp() will cause the node to display the message "Hanging Up" in the watch window (only the sysop will see the message). XPR and Hydra ============= These doors no longer update NodeData->User->#?Uploaded. (So that corrupt uploads and other files DON'T count towards the weektop) AddCreds ======== This door now updates NodeData->User->#?Uploaded. (So that uploads by the sysop are counted by the weektop) HBBSCommon.library ================== HBBS_AddCfgItem() always returned FALSE, fixed, it now returns TRUE or FALSE. Added HBBS_AddCfgList() which is used to add a linked list to a config file (so you can read in a stringlist or pathlist from a config file, update it and write it back again) 12-August-1999 ============== HBBSNode.Library ================ Wow! I'm so glad I found this bug.. I was doing this: FreeVec(NewIOMsg) Return(NewIOMsg->ReturnValue) oh my god.. I'm suprised HydraBBS even ran at all, as this was in the main door <-> node comminication passing routine! Blimey. I only found this cos I was playing around with the mungwall tool searching for memory leaks.. As a result, if you've ever experiances random problems with HydraBBS this may have been the cause, especially on multi-node systems where two users were on-line or heavily multitasking when a user was on-line. (due to the free'd memory being allocated by another task before the door could use the data) I'm glad I've fixed that one.. BulletinViewer ============== Oops! I forgot to change a function call, so the changes I made last time I updated the door didn't make any different. Fixed! (if you select a bulletin from the menu, you don't get a scrneen prompt before the menu is displayed, as the menu prompt is, in itself, a pause prompt!) Weektop ======= Created this door, see the docs for installation details. Features auto Mail Posting, and Last Week position (kinda like music chars, i.e. last week user X was at position Y in the week top uploaders chart!) Node ==== Did more work on DOOR_MenuPrompt() Also, if there was a problem with the logout door or the command prompt, the system now calls the SYSTEM door LOGOUT, instead of the USER door "G". Logout ====== Now does not allow other Logout doors to run if the user cancels the logout request if they still had flagged files. (so stuff like the weektop doesn't get run twice) 11-August-1999 ============== Control ======= Fixed more small memory leaks. 10-August-1999 ============== ExampleProgram ============== The ExampleProgram (not example door) has been updated to show beginners how to access data in the BBS system. Take a look at HBBS:Developer/ExampleProgram/Main.C Node ==== Now uses the MenuPromptANSI BBSColours.CFG when displaying prompts Mail_Write ========== Now uses the colours defined in your BBSColours.CFG file for its prompts. HBBSNode.library ================ Now reads in another BBSColours.CFG config option MenuDefaultOptTextANSI (see HBBS:Storage/Example_Configs/System/Data/BBSColours.CFG for an example) The defaults for BBSColours.CFG have changed, the example config actually just sets the defaults again! HBBS_SetCols() now loads the BBSColours.CFG with the LCFG_NOSTRIPSPACES loadconfig flag. THis means that end of line blanks will not be removed (normally you'll want an extra space on the end of the MenuPromptANSI option.) Make sure your text editor does not strip the spaces when you save the file! Docs. ==== Please see the updated BugReport section before sending me bug reports. HBBSNode.library ================ Implemented checking of ConfData->UserAllowed and ConfData->UserNotAllowed, so now you can use the respecitive ConfConfig options, ConfConfig/UserAllowed_XX and ConfConfig/UserNotAllowed_XX Note: because JoinConference uses HBBS_AllowConfAccess() function, no update is required to that door! (don't you just love HBBS ?) Control ======= Now loads the ConfConfig/UserNotAllowed_XX setting. Fixed loads of small memory leaks MailScan ======== Because of the fudged up defines.h, this door had to be re-compiled the default to read the messages changed to NO instead of YES as a result of the fudge. 09-August-1999 ============== KeyFiles ======== Due to the fact that no-one's registered HydraBBS I have implemented simple keyfile protection to HydraBBS (and no, I'm not telling you exactly which files have had the protection added) Hopefully, this will force people to register HydraBBS. I'm giving people a final warning now, register, or I stop development of HydraBBS. HBBSKeyCreator ============== Wrote this (rather nice) database program to generate all the keys files. Let's just hope I actually have to use it eh ? It's up to you.... Control ======= If you started control more than once, you'd get an error message saying so, but you'd not be able to continue using the running version of HydraBBS, and it'd most likey crash or overwrite other memory, randomly (because BBSGlobal was being set to NULL!) When you attempt to close Control when there are visitor windows on the screen that don't belong to a node or control, you were prompted to close them, but you couldn't cancel the request to close control. Now you can cancel the request to stop control from shutting down. Node ==== Removed extra ansi-reset's that were done when a screen was supposed to be displayed, even though it didn't exist. This fixes the flashing cursor in term when changing conferences etc.. Defines.h ========= oh blimey, I fudged up the defines for the getline flags and the continue prompt flags. All the old doors will have worked until they were re-compiled... to be exact (1< node communication routines so that it doesn't use a named port to send the messages (which speeds everything up a little). HBBSCommon ========== optimized some functions in library, the code size of the V1.07 library is now smaller than the V1.06 version! 04-August-1999 ============== Docs ==== More work on the developer docs. 03-August-1999 =============== WebSite ======= Revamped the site a bit, took new screen shots Docs ==== Added in-line documentation to HBBSNode.c which can be extracted with the autodoc tool. (using the -I and -C options). I have extracted the information in there to create HBBS:Developer/Docs/HBBSNode.library.doc and HBBS:Developer/Docs/HBBSCommon.library.doc It's great having proper function reference available for HBBS functions! yeah! About time.. Not finished documenting all of the functions yet, but I've done the most important ones. Also, I documented HBBS:Docs/Configuration/ConfConfig.guide/MenuPrompt because I noticed a few BBS's hadn't changed it from the defaults. As well as the rest of the settings for ConfConfig... Found a couple of mistakes in my UpdateIndex.guide file! oops! Defines.h ========= Tidied up the file as I was going through the defines for the functions that have now been documented. MailScan ======== After finishing the documentation for the ConfConfig file I realised that I'd not implemented the AutoMailScan option. Which I have now done! Basically, if AutoMailScan is enabled then the conference *will* be scanned during login. If it's disabled then it won't be included in the mailscan during a login. The user can still scan it later however. MailScan config to come... (had some cool ideas on this, see the todo list) HBBSNode ======== A few minor optimisations. Control ======= Set's a default value for AutoMailScan now (YES) so that you don't have to specify it in the ConfConfig for each conference. 29-July-1999 HydraBBS V1.06 update uploaded to Aminet (HydraBBSu6.lha) ====================================================================== Control ======= I was RecFill()'ing one column and one row too many, causing memory after each plane in the screen's bitmap to be overwritten. This had the rather nasty effect of currupting memory of some very important structures on my machine! It was difficult to trace because the area of memory overwritten was different each time, argh.. Still, armed with CyberGuard, Mungwall and Sushi I managed to pin it down, Am I good or what ? :-) The RectFill() that was causing the problem is the one that I had to use directly after opening a screen, because for some reason, when you use an SA_Backfill tag with OpenScreen() it DOES NOT call the backfill function. And it *should*. So I have to manually rectfill() the screen with the right background colour myself, and I passed it 0,0,Scr->Height,Scr->Width instead of 0,0,Scr->Height-1,Scr->Width-1 i.e. for a 640 width screen, pixels 0-640 were recfilled, instead of 0-639 (640!) pixels. This seemed more critical when using Picasso 96 in high resolutions and when using PAL: High Res. I am using a Cybergraphics 64/3D in my A4000T/060/PPC and a CyberGraphics64 in my A3000/040 myself and this problem never showed up at all. *weird!* Blimey... I tell you, I nearly gave up on this one, it was doing my head in.. Now I can get back to making HBBS better... rather than fixing bugs.. 28-July-1999 ============ Control ======= Great, just great, I've had reports of people not being able to use particular screenmode, so I've been checking it out, only to find problems with the backfill stuff (again!, I thought it was sorted). HBBS Works 100% without the backfill, so I've added an option to HBBS:System/data/CtrlScrnPrefs.CFG, UseBackfill=YES|NO which you should use if you get problems. Please report back to me with details if you get this problem. In trying to fix this problem I have done quite a bit of optimisation and found a few potential bugs, which have been fixed. 26-July-1999 ============ AccountEdit =========== Fixed browsing/searching/editing of users past the 128th user in the user data file (passed BYTE instead of ULONG to HBBS_LoadUser(). 23-July-1999 ============ XPR, Hydra ========== Completed the cancelling tests. XPR === When a file is resumed, a message is written to the callerslog. DupeCheck ========= Implemented "CHECKALLCONFS" so that the dupe checker can optionally check all other conference upload paths. 22-July-1999 ============ XPR, Hydra ========== Updated the canceling part of these two doors. 20-July-1999 ============ XPR,Hydra ========= Oops, I broke the file-resuming when I implemented HBBS_OkToUpload() (which checks if another use has just is is still uploading a file of the same name) FIXED! HBBSCommon.library ================== Changed the returned values for HBBS_OkToUpload() 19-July-1999 ============ Control ======= Fixed a memory leak. Set the internal stack size to 16k 17-July-1999 ============ ModifyDIZ, FileHistory ====================== Updated ANSI. 15-July-1999 HydraBBS V1.05 update uploaded to Aminet (HydraBBSu5.lha) ====================================================================== FileLister. ========== Now supports L lines for free download comments. AddDizToList. ============ Optimized A linefeed was not being added after the sentby. HBBSCommon.library. ================== HBBS_FindNode() now supports wildcards (yeah!), this means that you can now use wild cards in the FreeDLList.TXT file. HBBS_AppendStrToFile() optimized. FreeDL. ====== Fixed the LASTONLY mode, i.e. it didn't work if you only had one file tagged, sorry about that.. Updated Docs MakeFreeDL. ========== Completed 14-July-1999 ============ MakeFreeDL ========== Started coding this new door, nearly done! Node ==== Now deletes all files in the NodeX/Work directory when the user logs off and at startup. ErrorMessage ============ Fixed a *very* minor bug if reqtools.library was not available. 12-July-1999 ============ NewUser ======= FIXED: due to me using %c instead of %s when I was specifiying strings for a sprintf() call the start of the new users data would have been overwritten *randomly* which would cause the account editor to NOT find the new user. The door now reports more error messages in the main log file when there is a problem regarding adding of a user. Door would never let another door run after it, because it always set DOOR_Continue(FALSE), not it only sets it to false if adding a new user failed (which is what was intended..) No longer displays Banner_TOP screen, it does display the following screens though: PreDetails, DetailsDone and Joined AccountEdit =========== While building the list of users or while searching for new users it displays the user's handle, and the file offset, just to let you know it's doing something. Also, I re-wrote the part where it builds the lists of users so that it opens the file itself and scans the file itself, rather than using the function HBBS_LoadUser(). This meant I could store the offset from the start of the file for each user in the list, which I then used to pass to HBBS_LoadUser() as the file offset, rather than storing the UserID and getting HBBS_LoadUser() it to search for the a user with the same UserID. This has basically resulted in a scan of the user data file that is *loads* faster, also, when browing the list of users it's now loads quicker when editing/browing users at the end of the user data file. Dan dan dah!! HBBSCommon.library ================== Added more logging to some internal functions, errors are logged to the main log file. Added HBBS_OkToUpload(), to be used by protocol doors to decide wether or not to allow a particular filename to be uploaded (received) to the BBS. This is so that two users can't upload the same file at the same time, it also checks the playpen directories on other OPEN nodes to see if the file exists there. XPR and HYDRA ============= These doors now call HBBS_OkToUpload() when checking for files to upload. Node, Control and HBBSNode.library ================================== Recompiled due to structure changes for implementation of HBBS_OkToUpload() 10-July-1999 HydraBBS V1.04 update uploaded to Aminet (HydraBBSu4.lha) ====================================================================== AddTime and AddCreds ==================== Removed a couple of old DOOR_SysopText()'s AskConf. ======= Updated so that you can configure the messages displayed to a user from a config file. FreeDL. ====== Door created CmdPrompt. ========= Now writes to the callers log when the user runs out of time. Tag_File. ======== Updated to cope with free downloads. CheckTags. ========= Updated to cope with free downloads. AskDLFiles. ========== Updated to cope with free downloads. XPR & Hydra. =========== Updated to cope with free downloads. Node. ==== Updated to cope with free downloads. The LastCallers/PWFails/Pagers etc display in the info window (and thus, the same data in the Control area) is now time and date-stamped. If the user is kicked off by the sysop (via SHIFT+F10 when they're online) the callers log will now have a message in it tho this effect. Also a new action character will be added to the callers log actions log: "K". Control. ======= Changed the "BBS Config" button to "BBSGlobal". I might change this back when there's a GUI or alternate config file editor that can be specified. CheckTags. ========= File tags were cleared at login if user had tagged files and they dropped carrier at the "Keep tagged files ?" prompt, fixed! ExampleConfigs. ============== Oops, the example config called HBBS:Storage/Example_Configs/System/FileID was telling LHA and LZX to use a temporary directory of ":T" still But I didn't mention this in the docs, lha and lzx may not have been able to update file_id.diz's in some files if you didn't have a "T" directory in the root of the partition that HydraBBS was installed on. I have removed the "-w:T" paramaters from the example config now, please check to see if this is required or incorrect for your system. Setting the -w option for LHA and LZX (or other archivers that have to update very large archives) is a GOOD THING if you have a file bigger than your available memory. See the docs for LHA and LZX for more about what the -w option does. Adverts. ======= Finished the door. CheckFiles. ========== Added extensive carrier loss checking, things were being written to the screen after a user dropped carrier during a file check. Added NOSYSOPTEXT system option, use in HBBS:Commands/System if you like.. This limits checkfile's output of the current file check progress to the sysop. MoveFile. ======== It was displayed "file moved to download path" even when the file had been moved to a HOLD or BAD etc directory, now it just displays "File moved OK" If anyone wants this door to tell the USER where the file was moved to then let me know and I'll add it in (very simple) 9-July-1999 =========== Damn, Quake2 - Weapons factory is just SOOOOO good.. I can't wait for these new Riva TNT2 based gfx cards for the Amiga, man it's gonna kick serious amounts of ass! anyway... CheckFiles. ========== Now calls an "Adverts" system door Adverts. ======= Created this new system door, it's used to add adverts to files based on file types. The config file is *very* similar to the HBBS:System/FCheck config file. This door was requested by [-SPY-]. Not finished yet. 6-July-1999 =========== XPR. === Well now I've tested cancelling an xfer before the user actually started receving and it doesn't lock up the node or crash it now. tested using nullmodem.device and telnetd.device. both were OK.. However, when a user attempts to cancel the transfer it does not regognise or acknoledge the cancel request, the xpr window just sits there until the XPR transfer times out.. For your information, because the XPR and Hydra transfer doors are external, they must use the already opened serial device that is on-line, without using SERF_SHARED (because some devices do not support that mode of working), the problem with it has been releasing the serial device BACK to the node program. I think this is fixed now but it needs more people to test it and let me know that it's working OK. So please, if it works now and it didn't before then please let me know what serial.device driver you're using.. The HYDRA door used an alternate method of grabbing the serial port, which I've now implemented into the XPR door. FileHistory. =========== Removed SysopText()'s and make it use HBBS_DosCommand() instead of HBBS_RunDOSCMD() ExtractDIZ. ========== Changed to use HBBS_DosCommand() instead of HBBS_RunDOSCMD() ** IMPORTANT ** Please modify your "HBBS:System/FileID" file and remove all occurences of "<>NIL:" as the output from these commands is now handled by the system. HBBSCommon.library. ================== Added HBBS_DosCommand(). Similar to HBBS_RunDOSCMD() except that it accepts flags instead of a single paramater. You can use it with RDC_#? flags in defines.h. HBBSNode.library and HBBSCommon.library. ======================================= Libversion and Librevision were accidentally set to 17.2, Librevision CANNOT be set to ".04", so it'll be set to "0" until "V1.10". This only affects the version command when the library is in memory, as the actual $VER: string is correct, i.e. "V1.04", Fortunatly this is what most things use... Download. ======== Now checks if the tagged files are valid for sysop downloads (usefull if you tag files in a cd-rom conference and have a different or no cd in the drive) FileLister. ========== Added option to scan the BADFILES list for a conference. Check_Corrupt. ============= Created door, see the docs! HBBS:System/FileID is completely different now. see the docs. CheckFiles. ========== Adjusted calling of Check_Corrupt system door, paramaters re-organized and changed. Existing doors will have to be re-coded MoveFile. ======== It would never actually move a BAD file to the Conference's BADFiles directory - fixed. 5-July-1999 =========== Node & XPR. ========== Fixed the hanging of a node window when you cancel an XPR transfer, also, when you cancel an XPR transfer now, the other computer (i.e. the user's machine) receives the cancel message properly. All this happens because of an undocumented XPR library feature! Great... 4-July-1999 (did more work, at the request of [-Spy-] ) ======================================================= CheckFiles. ========== Now calls a system door called "Adverts" with the full path and filename of the uploaded file, so it's easier to add adverts to files without having to create a script to call the advert adder.. so you can use Adverts_Type_1=CLI Adverts_Door_1=MyFaveAdder {O} in the HBBS:Commands/System file... LastCallers. =========== Added an option NoScreenClear. then the output file won't contain a screen clear, so you can add headers to it! 4-July-1999 HydraBBS V1.03 update uploaded to Aminet (HydraBBSu3.lha) ===================================================================== Control ======= About text changed to fit on screens with a width of 640. SysopListViewer =============== Added the backfill, so now it looks right on screen with more than 8 colours. NewUserAnnouncer ================ Created door. MailAdd ======= Fixed SERIOUS bug, an attempt was made to free memory incorrectly, causing a software failure or crash! (oops!) Mail General ============ Fixed potential memory loss if a door accidently specified MailMsg->Data and a filename when calling PostMailMsg() 1-July-1999 HydraBBS V1.02 update uploaded to Aminet (HydraBBSu2.lha) ===================================================================== Documentation ============= Updated and created a couple of new documents, to do with account defaults. ExampleConfigs ============== Created some default "AccountDefaults" template files. The installer will have copied them to: HBBS:Storage/Example_Configs/System/Data/AccountDefaults/ *AND* HBBS:System/Data/AccountDefaults/ Even when upgrading from V1.01. (They're new configs!) Installer Scripts ================= Updated the installer script for doing upgrades (it's kewl, have a look!) It can be used to upgrade and re-install the latest version. Distribution ============ Re-organized my distribution layout (very complicated, I assure you..) so that doing an upgrade version and a full release at the same time is loads easier. (And better for reducing internet bandwidth usage!, unlike upgrades to Microsoft software!) Spelling Mistakes ================= Fixed spelling misake of ("Prefered" should be "Preferred") Updated the following parts of the system: HBBS:Developer/Include/HBBS/structures.h HBBS:Doors/System/Node HBBS:Docs/Reference/Screens.guide HBBS:Doors/User/AccountEditor/AccountEditor.HBBS HBBS:Doors/User/Joinconference/JoinConference.HBBS HBBS:Doors/User/Joinconference/OldJoinConference.HBBS BulletinViewer ============== When called with the name of a bulletin that exists, a pause prompt is displays. When in interactive mode the door will not display a pause prompt before returning you to the menu (the same as a pause prompt). So now you can go through the bulletins much easier! Control ======= Locks out the user data file until it's existance has been checked. AccountEditor ============= When changing the user's handle, it now checks for invalid characters using HBBS_HandleNameOK() Added call to HBBS_ApplyAccountDefaults() NewUser ======= Added call to HBBS_ApplyAccountDefaults() UserSettings ============ Changed to use HBBS_HandleInUse(), so that it doesn't write to the user data file twice, possibly resulting in incorrect data in the user file if the system was rebooted between the two writes. It now only writes to the file once, with the correct data! Also, it uses HBBS_HandleNameOK() now to check for invalid characters in the handle! (oops!) But with the default configs the users can't change their handle anyway, so i doubt you have a problem. To be sure, check all user accounts for the following characters and change if needed: =;?*# HBBSCommon.library ================== HBBS_ApplyAccountDefaults(), Added HBBS_AccessName(), Added 30-June-1999 ============ Control ======= After a couple of people tried to run HBBS without reading the quickstart guide (tut, bloody tut) I have changed the way Control starts and have added more error messages to it if something should fail early on. Added NodeDescription_XX option to HBBS:Nodes/NodeList. Control displays the first 10 chars instead of "Node xx" for each node that you specify a description for. HBBSCommon.library ================== HBBS_LockUserData(), Added. When doors need to access the user data file, they should call this function, which returns a lock to the user data file. They can then manipulate the file (use OpenFromLock(). Must be paired with HBBS_UnLockUserData(). The lock obtained from this function must be treated just as if you did Lock(filename). So read the autodocs on dos.library/Lock()! HBBS_UnLockUserData(), Added. Call when you've finished accessing the userdata file. See HBBS_LockUserData(). HBBS_AddCfgItemQuick(), Added low memory checking. HBBS_HandleNameOK(), Made smaller, faster and checks for more characters now. HBBS_AddUser(), fixed a potential loss of the last user in the user data file when overwriting an existing user failed. (Extremley unlikely!) HBBS_LoadUser(), changed the defination of the function and completed the function, all modes now work. Functionality is different! Where a door coded for HydraBBS prior to V1.02 called HBBS_LoadUser(), you need to change the call's paramater order like this to make it work the same way: old: HBBS_LoadUser(ID,NULL,NULL,User) new: HBBS_LoadUser(ID,0,NULL,NULL,User,LOADUSER_NONE) please see the developer docs for futher info. HBBS_ValidUserHandle(), recoded routine to use HBBS_LoadUser() HBBS_SaveUserData(), Now logs error messages if things don't go as planned. Fixed HBBS_RunDOSCMD, it wouldn't run any commands until struct BBSGlobal had been initialised. (i.e. this ever happens unless you manually screw about with the assigns or don't run the "Setup" script!!) HBBS_DoErrorMessage() was adding an extra space to the end of the command line, fixed. This caused no problems however... Changed SendMessage() to NOT call Forbit() and Permit() when sending a message from one task to another, this results in all door communications being faster and a better overall system speed on multinode or heavily multitasking machines. *removed* CountListNodes(), use the identical function HBBS_NodesInList() Calls to CountListNodes() will now return 0, library offsets may change with the next release, it is imperative that all door coders contact me via e-mail because of this change! (when this is finally removed you'll just have to re-compile your source code) *removed* cvtucase(), use UpperCase() instead. currently doors calling cvtucase will continue to work as the call is passed to UpperCase() internally, but it will be removed from the next release! see above. optimized UpperCase(), smaller and faster now. Added better low memory checking and handling to the config file loading routine. Node ==== The node now shows you the name of the serial device name and unit number if it fails to open the device. ErrorMessage ============ Wasn't displaying error messages with space's in the strings XPR === It now updates the node window's CPS/BAUD with the current CPS rate. Hydra ===== It now displays both rx and tx CPS rates in the window. It now updates the node window's CPS/BAUD with the tx CPS rate. (download) UserViewer ========== Displays CPS when a user is transferring a file GUI changed so that the colours are correct on an 8+ colour screen 28-June-1999 HydraBBS V1.01 update uploaded to Aminet (HydraBBSu1.lha) ====================================================================== Wow, great! Loads of people have downloaded HydraBBS since it's release kewl! Control ======= added __interrupt to the backfill function and re-enabled stack checking and stack extend. "ENV:HBBS_ScreenName" was not being deleted and was being appended to each time the Control was re-started or the screenmode changed! BulletinViewer ============== Created door. Node ==== Updated DisplaySpecialScreen() to cope with DSS_BULLETIN flag. HBBSNode.library ================ Added DOOR_DisplayBulletin() 25-June-1999 - HydraBBS V1.0 uploaded to Aminet! ================================================ Oh my god, I've actually released V1.0, about time.. WebSite ======= Updated web site. Node ==== Fixed bug in node where windows were left open if the serial device could not be opened. 24-June-1999 ============ Distribution ============ Finalised the following: C= installer script. AmigaDOS install scripts distribution layout example configs and example screens. Rebuilt all source code Note: All programs will have a version date of 01/July/1999 because that was when I planned to release it, but I made it early! Unsnapshotted all icons (using a tool I wrote in C today.. :-) Docs ==== Updated loads of documentation Hydra ===== Added WA_Backfill tag and documented changes to Hydra_GUI.c/.h XPR === Changed the WA_Backfill to use BBSGlobal->backfillhook instead of its own one, so that stack checking can be re-enabled.. Documented changes to XPR_GUI.c/.h Node ==== Removed a PutChar(' ') on Get_Line() with a timeout. AccountEdit =========== Made smaller and faster (exe size) but functionally the same FileHistory =========== Fixed ANSI. Utils ===== Added version strings. 23-June-1999 ============ Spent most of the day setting up the distribution and installation scripts. Docs ==== Updated quickstart part ofthe guide Example configs and Screens =========================== Updated and tested! FileLister ========== Made smaller (exe size) Added ZFR help Added more help ZFR only searches the fileid part of a file list and not the nuker comments and sentby stuff (another advantage of HBBS!) Node ==== Fixed node quit/crash when no "Device" file is present and UseDevice=TRUE. Updated ErrorMessage.TXT and Errors.h accordingly Fixed a bug with GL_COUNTDOWN caused by a PutText() cancelling a SendSerReadData, causing all serial input to be ignored until the end of the call to Get_Line() MoveFile ======== It was calling ValidConfNum() with an ofset conference number. so files could never be uploaded in one conference and moved to conference number 0. No longer tells the USER the final path of the uploaded file (why should a user want to know ?) Tells the Sysop the path of the uploaded file! Telnetd.device ============== requires the AT command "H0" in the modem init string or it will only accept one connection on each node until each node is re-started. LastCallers =========== If the user losses carrier due to an inactivity disconnect, an this will be indicated by an 'I' being displayed instead of a 'C' Developer Docs ============== Updated the files (SDK still not completed) 22-June-1999 ============ Mail_Read & Mail_Scan ===================== Implemented the MustRead option! HBBSCommon ========== Fixed HBBS_GetTimeDateString(), the month name and week day name were offset by 1, so Tuesday was coming up as Wednesday and June was coming up as July!. Node ==== Implemented NodeConnectScript Following changes to ContinuePrompt() * Added DCP_NODISPLAY * Added DCP_CLEAR * Added DCP_COLOURIZE * Changed behaviour of DEFAULT_NONE Node, Control, Example Configs, Docs ==================================== Changed NodeGlobal/StartScreen to OpenWatch as it makes more sense The option was first created and named when the watch window could ONLY be opened on it's own screen. Frontend ======== Impleted NodePWScript and SysPWScript Docs ==== Updated docs with reference to newly implemented scripts 21-June-1999 ============ Mail_Read & Mail_Scan ===================== More work on implementing the Must Read option 19-June-1999 ============ Happy birthday to me, happy birthday to me... oh shit.. I'm 25, fuck! Mail_Write ========== Implemented "Must Read" sysop option. Mail_scan & Mail_Read ===================== Implementing Must Read option (argh!, major headache!!) 21-May-1999 =========== HBBSCommon ========== Speeded up the config loading routine, with great results, my BBS starts up 2-3 seconds quicker now! KEWL! Docs ==== Wrote the protocols.guide docs Added some links to the directorys.guide file Node ==== Added IDCMP_CHANGEWINDOW to watch window and added support so that every time the window is moved, the variables that are used to save it's position are updated 20-May-1999 =========== Docs ==== Checked Docs/Configuration/BBSGlobal.guide, added loads to the ToDo.txt list :-( Added more details to Docs/Doors/NewUser.guide Control ======= Changed the operation of BBSGlobal/HideScreen so that the screen only opens behind other screens at startup, and not when you're changing screen mode! Also, when the program is loading, the loading window will now be shown for longer due to the placement of the ScreenToFront() call Changed default of BBSGlobal/ErrorLogFile to HBBS:Logs/ErrorLog LastCallers =========== Runs nearly twice as quick when doing an update and a create Fixed memory leaks HBBSMultiTop ============ Made it keep unknown @^@ sequences Fixed memory leaks Updated docs. Fixed possible memory corruption when using long @^@ sequences Added Best Byte Uploaders, which uses the formula below to work out a points rating. The higher the better. (UP + ActualUP) / (Actual UP / UP) / 10,000 19-May-1999 =========== Structures.h ============ Added BBSGlobal->backfillhook, which should be used when opening a window on the control screen, and should be used like this: CtrlScreenDrawInfo = GetScreenDrawInfo(BBSGlobal->ScreenInfo->Scr); OpenWindowTags(... CtrlScreenDrawInfo->dri_Depth >=4 ? (WA_BackFill) : (TAG_IGNORE), &BBSGlobal->backfillhook, ...); (default pens will suffice on screens that have a depth of < 4. ) Control and Node ================ Implemented installing and using the above hook, Also, worked on fixing the IntuiText's that are used, as they were using the wrong pens. JoinConf ======== Removed '\n' checking which was causing the program to exit if user was sending CR+LF when return was pressed, however, the \n came from the command prompt and was left in the serial buffer. so I have to check DOOR_GetLine()'s CR+LF handling/stripping.. Node ==== Fixed bug in where the settings window was not showing the correct status of N_ND->AllowLogins. NodeLibrary =========== Added another BBSStrings.CFG item, "NoLoginsAllowed" FrontEnd ======== Modified to accept the new BBSStrings.CFG item: "NoLoginsAllowed" Mail_Read ========= Fixed a memory leak. 18-May-1999 =========== Control ======= Implemented the backfill for the control, now just have to fix the ITexts on the settings window. Structures.h ============ Changed BBSGlobal->ScreenInfo to a pointer, had to re-build everything. XPR === Implemented the backfill for when it's on a 16 colour screen 14-May-1999 =========== Control ======= Optimized a bit of code, removed old comments from the source fixed an enforcer hit that would happen on program exit if you changed screen modes when HBBS was running. (freeing memory twice) 13-May-1999 =========== Control/Node ============ Flaffed about loads working on the WA_Backfill OpenWindow() tag, still can't get it to work properly.. Misc ==== Re-Built all user and system doors. 12-May-1999 =========== Blimey, Quake3Test should not have come out :-) Spent to much time playing it recently.. Sorry about that.. Control and Docs ================ Anyway, I didn't document the On-Line help system for "Control" that I've been implementing since the 26-April. If you press help on any open window, the help for that window will be displayed. Updated lots of docs in line with this too. Restructured the docs layout on the filesystem. Updated E-Mail address (hydrasmail@usa.net no-longer forwards to my ISP's POP3 mailbox, so send everything direct to dominicc@barrysworld.co.uk) XPR === Re-Added the cancel ZModem X-Fer request to the xpr_sread() function so that when the sysop clicks the close gadgeton the X-Fer window, the X-Fer is cancelled properly. Seems to work ok with xprzmodem.library 2.56 on both sides of the transfer anyway. NodeLibrary =========== The console window now uses the window flag WFLG_SIZEBBOTTOM so that you can get 79 chars of text in the watch window when it's on a screen that's 640 pixels wide. (So it doesn't linewrap, Yeah!!) 25-April-1999 ============= Yeah! Everything from yesterday seems to be OK finally.. Updated loads of icons with nice newicon style icons. 24-April-1999 ============= Global ====== Began changing N_ND->User from a struct NodeUser to a struct NodeUser * Began changing N_ND->User->NormalData from a struct UserData to a struct UserData * Began changing N_ND->User->CallData from a struct UserData to a struct UserData * Main Files: =========== Structures.h HBBSNode.c Node_Main.c Node_Input.c Node_Serial.c Node_Misc.c HBBSCommon.c Control.c added allocation/deallocation of N_ND->User and N_ND->User->NormalData and N_ND->User->CallData AwaitConnect/Main.c Rebuilt all utils, updated some docs Rebuilt all doors, created smakefiles for them all too.. Updated all source code icons to nice newicon style icons. Reset-up my entire development environment, I now use PManager. I still use TTX but with modified ARexx scripts for handling of public screens 23-April-1999 ============= HBBSCommon.library ================== Added InactivityTimeout to the BBSString.cfg and implemented. made N_ND->ConScreenName reflect the name of the public screen being used if the watch window is not on it's own screen. Node ==== Fixed a couple of potential bugs with inactivity timeout. Saves window positions when resized, no-longer has wrong window sizes when switching from full screen to windowed.. Fixed loading of BBSColours.cfg twice at startup Added status information to the action part of the node window. Also, the node window now opens before the serial device is opened, so that you can see the status information :-) Fixed potential bug where the node's iconified state was incorrectly set at node initialisation (functions may have thought the window was open when it actually wasn't..) Improved readability of the callers log file 21-April-1999 ============= FileLister ========== In LIST mode, with no-file list specified, it will now prompt the user to select a file list, based on file list descriptions! i.e. type F and press return at the command prompt and you'll see.. 5-April-1999 ============ Mail_Add ======== Added support for posting to multiple users, just use a comma seperated handle list, still doesn't support handles with spaces in though... Mail_Write ========== Fixed potential bug with writing to multiple users.. Shell ===== Changed ANSI 28-Febuary-1999 =============== Node ==== Disabled certain gadgets on the node control window if UseDevice is FALSE in the Node config. CheckUser ========= made checkuser check for time left! it logs the user off if they have no time left! uses the BBSStrings.CFG/OutOfTime cmdprompt ========= uses the BBSStrings.CFG/OutOfTime NodeLibrary =========== added "Sorry you've run out of time" to BBSStrings.CFG as OutOfTime= Control ======= added a default to the menu prompt Transfer ======== added countdown to logoff after x-fer 27-Febuary-1999 =============== XPR === When the window is re-sized, the information window is updated properly 26-Febuary-1999 =============== Node_Input.h ============ timeout timers for strings (using DOOR_GetLine() after a keypress now aborts instead of restarting. I can make this a paramater than can be specified if I get a request. Implemented GL_CountDown (yeah!), all doors that used GL_COUNTDOWN as a flag when calling DOOR_GetLine() will now have a nice ansi countdown displayed! KEWL... 08-Febuary-1999 =============== Oh my god, I've done bugger all recently... shit! I'm now implementing all features that have not yet been implemented. And will be changed the structures.h file radically very soon. release.h ========= Changed version to 1.0 AskConf ======= Changed the delay to pick a conf to 10 seconds instead of 3 Control ======= Updated gui and about requster Node ==== Implemented Add_Last_Pager(), Add_Last_Carrier() Add_Last_Pager() will not add the user's handle again if they were the last person to page. so you won't see the same user on the list twice if they page more than once! HBBSNodeLibrary =============== Implemented DOOR_Add_Last_Pager(), DOOR_Add_Last_Carrier() and DOOR_Add_Last_PWFail() Changed version to V1.0 HBBSCommonLibrary ================= Changed version to V1.0 Pager ===== Added call to DOOR_Add_Last_Pager() 31-October-1998 =============== AskConf ======= Added a timeout of 5 seconds to the "Are all files for this conference" prompt. 30-September-1998 ================= NewUser ======= Changed again, now displays OptionMSG_TOP and OptionMSG_BOT special screens Account Edit ============ If you edit or delete a user it'll skip to the next user automatically so you don't have to press N each time. Control and Node ================ Made it so they don't require UseSysPW and UseNodePW in the NodeLocal configs, if they're set in the NodeGlobal it'll use the setting from there If they're not set anywhere HBBS will use the defaults. 28-September-1998 ================= LastCallers =========== The update path of the program had a bug and was *very* slow on older Amigas. This path of the program has now been optimized and now it only takes 4 seconds to complete instead of 1 min and 20 seconds!!! (Basically, it was writing small amounts of data very frequently to the lastcallers.data file, now it writes large amounts in frequently) 27-September-1998 ================= NewUser ======= Changed ANSI's, now the special screen "OptionMsg" is displayed before a user is asked each question. Banner_TOP is also used. And "DetailsDone" is displayed when a user has enterd all the details, but before the account is actually added 2-September-1998 ================ Sorry, moved house (again) been busy with other life related stuff.. Docs ==== Corrected device.guide modemlog, modemdebug and dumpmodem Changed example configurations to reflect. Node ==== Changed the GUI and added DumpModem checkbox to the configuration window 12-August-1998 A17 Update #2 released ===================================== JoinConference ============== Ooops! a bit of a bug in my program caused it to ignore cursor up/down presses coming from the serial port of a remote computer.. fixed now.. 9-August-1998 A17 Update #2 released ==================================== JoinConference ============== Completed all new scrolling conference joiner program! and it's kewl! HBBSNode.library ================ Added DOOR_CheckCSI() Check raw's N_ND->CurrentLine[2] are now set to GET_SERIAL and GET_CONSOLE instead of 2 and 1 respectivly, check all source code that uses DOOR_CheckRAW() 30-June-1998 ============ Developer docs ============== Documentation of HBBSCommon.library is complete HBBSCommon.library ================== Optimized a few more functions to make the library smaller and faster! 29-June-1998 ============ Developer docs ============== updated them LOADS... documentation of HBBSCommon.library is nearly complete 28-June-1998 ============ Developer docs ============== updated them a bit.. NOTICE: after a bit of fiddling around with xprzmodem.library version it seems that 2.56 is stable for more users when using it over telnet... Both versions are now included with the distribution of HydraBBS Default will still be the newer one.. 21-June-1998 A17 Update 1 released ================================== FrontEnd ======== Added NamesNotAllowed_XX to FrontEnd.CFG, defaults to NamesNotAllowed_1=SYSOP Fixed Memory leak if hack occurs Control ======= Implemented Conferences and ConfPath amount checking for HBBS:Conferences/ConfList Node ==== After looking in the callers log for a node it seems there was something weird going on with MW= in the totals line. Turns out that I thought I'd changed N_ND->User.BytesUploaded and N_ND->User.BytesDownloaded to double types when in fact I hadn't. This caused sprintf() to go wonky as it was using %0.0f for both of them (why it affected the output for MsgsWritten I don't know. but hey that's what makes searching for bugs so much fun...:-) So, to recap. Changed variable types to suit, Just in case a user decides to upload or download more than 4.3GB in one session (!!!) Structures.h ============ Changed NodeUser.BytesUploaded and BytesDownloaded to V_HUGENUM's (double) types Rebuilt all libs/programs/doors and tools. 20-June-1998 ============ Control ======= Clicking the "Save" option in the "Config" window snapshots the window position of the control gui HBBSCommon.library ================== Now sets the default stack size of any spawned programs to 16384 Upload ====== If requester is cancelled, checkfiles is still called.. AddTime & AddCreds ================== Fixed three memory leaks in each. CheckFiles ========== sysop sees more verbose messages with regards to the file being processed The user does NOT see these messages. 19-June-1998 ============ HydraBBS A17 Released ===================== 18-June-1998 ============ Moved all mail doors from HBBS:Doors/User/Mail/#? to HBBS:Doors/Mail Mail_Add ======== Finished this door. usage described in the docs. Command Prompt ============== Updated to allow more than 80 characters of text to be used.. (And here I was wondering why my nicely coded Mail_Add wasn't working correctly :-) AccountEdit =========== Re-odered some items Structures.h ============ Added ListDesc to struct ConfData Control ======= Now Loads ListDesc from the ConfConfig files (see Docs below) Added error message regarding this if there was a problem loading them The purpuse of ListDesc is to describe each file list and use that description in place of the filename when showing it to the user. Docs ==== Write the docs for HBBS:Docs/Doors/Mail_Add.guide Updated HBBS:Docs/Configuration/ConfConfig.guide Defines.h ========= changed lenghts of LEN_TIMESTR and LEN_DATESTR (each 1 byte smaller, if you used these change all your defines or allocations to LEN_TIMESTR+1 or LEN_DATESTR+1 if you used either of them anywhere else check they are still correct. FileLister ========== changed so that it displays the FileList description instead of the filename of the list being displayed 17-June-1998 ============ HBBSNode.library ================ Fixed bug in HBBS_AllowConfAcs(), uninitalised pointer was being freed by HBBS_GetSettings(). Took bloody ages to find this... Mail_Add ======== Did loads more to this door (and caused the above bug to be noticed) MailSystem ========== Updated a few things here and there, moved some more common source to mail_lib.i and fixed a couple of minor bugs that'd probably never have shown up anyway. 14-June-1998 ============ Download ======== Programmed the sysop download part, uses reqtools to provide a requester for a destination dir. 13-June-1998 ============ HBBSCommon.library ================== Added HBBS_LoadConfigQuick() It accepts an extra patamater which is a pattern match string, it will only load config items that match the pattern. Wrote this so that when scanning for things like doors etc the entire config file does not have to be scanned. e.g. when scanning for the AWAITCONNECT door.. HBBS_LoadConfig("HBBS:Commands/System",LFCG_NONE) would now become HBBS_LoadConfigQuick("HBBS:Commands/System",LFCG_NONE,"AWAITCONNECT#?") this saves quite a lot of un-needed processing of config files, use this where ever you can. Upload ====== Finally!!! added the file requester to the local upload... CheckTags ========= Improved ANSI and general coolness (uses banners) CheckFiles ========== Uses Banners FrontEnd, Tag_File ================== Increased default stack FileLister ========== Updated so that it also a search program! use Z and ZFR commands at the BBS prompt, use the system options SEARCH and REVERSESEARCH 06-June-1998 ============ SelectLanguage ============== revamed even more, loads better now.. uses Banner_#? special screens too. MailScan ======== displays the Mail_SCAN special screen, and uses Banner_#? special screens Node ==== Added DoorLog button to the GUI (in the settings window, under callerslog) checks the carrier after every door is finished. just in case. I had a situation where an xfer was not completed and the telnet client rebooted. HBBS did not notice the carrier loss until an inactivity timeout occured.. Fixed now though.. 04-June-1998 ============ Pager ===== uses the screen PAGEANSWERED as well JoinConf ======== Uses special screens "Conf_TOP" and "Conf_BOT" instead of "ConfHead" Wall ==== Uses special screen "Wall" now Node ==== Fixed TimeLeft inactivity counter! Added CheckNodeScreens config option node NodeLocal & NodeGlobal. If set to NO the node won't check /Screens/Special when searching for screens Added a flag, DCP_COUNTDOWN, which is the same as GL_COUNTDOWN but for DOOR_ContinuePrompt() Modified CheckRaw() and DOOR_CheckRaw() to check for Function keys if CR_CHECKFUNC is used, it'll handle the functionkey presses and return CheckFunctionKeys() result code in N_ND->CurrentLine[3] Modified pager door to use above. took a break to fix my HIFI that wasn't playing the new Smashing Pumpkins CD. I had this really great idea of having multiple ANSI styles for the BBS that the user could pick. Using the Language settings in BBSGlobal I decided to implement this like so: LanguageName_1=Style 1 LanguageExtn_1=_S1.TXT LanguageName_2=Style 2 LanguageExtn_2=_S2.TXT so if a user has style_1 selected the screens searched for would be /[_]_S1.TXT e.g. HBBS:Screens/Special/Menu_50_S1.TXT only problem is that you *HAVE* to create an _S1.TXT and _S2.TXT for each screen file on your entire BBS. Which is a pain in the ass.. so I added a little extra bit of code into the DisplaySpecialScreen() routine to search for the file /[_]_DEF.TXT for each file it looks for (if the language one doesn't exist) Now, this will slow the system down but if you only have one language/style defined it will not search for the _DEF.TXT files. I'm sure you'll agree this is a cool feature! Now you can ask ASCII designers to create you loads of screens and you can create styles based on AScII given to you by each designer! (one for each ascii designer!) KEWL!!!! SysopChat ========= Now uses ChatStart and ChatEnd as the special screens rather than StartChat and EndChat SelectLanguage ============== Only prompts for a language if there's more than one available. AskConf ======= Updated to have a timeout on all prompts. HBBSNode.library ================ Added DOOR_AContinuePrompt() Same as continue prompt, but with another paramater for a timeout. 03-June-1998 ============ Control ======= Tweaked control gui to show currently selected node. dropped 2.04 support. HBBS is now 3.0 only. 02-June-1998 ============ I have been working on HBBS, but I lost my changes.txt file so changes are not documented between 20-April-1998 and now. General ======= Changed the date functions from ANSI dates to Amiga dates so that ENV:TZ is not accesses everything the date is required. Speeds HBBS up. This means all the dates stored in your user.data will be incorrect! Sorry about that.. the dates in the user.data will not cause any problems, it just means that anything using the dates before a user logs on, off and uploads may not produce the desired results. (i.e. "give me a list a users who've not called for 30 days" won't work...) The include "time.h" is now NOT used. This took me quite a while to complete the change over as there were quite a few doors that needed updating tocope with the changes, the bit that took the most time was the testing. See CVT_A15_A17 below. HBBSCommon.library ================== renamed one of the date functions to force coders to update doors to work with new dates. Node & Control ============== Changed "Pick Screen" buttons to "Screen Mode" The loading window appears in the centre of the screen now too.. CVT_A15_A17 =========== updated CVT_A15_A17 to convert A15 userdata files to A17 user data files, this will also reset all last called and last upload dates to 01-JAN-1978 CheckFiles ========== Updated to remove the .DIZ & .ADD from the work directory after a file has been processed by the list adders and diz modifiers 20-April-1998 ============= HBBSCommon.library ================== Updated HBBS_AddUser() to overwrite old users with a status of 'O' (USER_OVERWRITABLE) 19-April-1998 ============= Right, got my A4000T now, upgraded my A3000 to '040 as well. Spent most of the last 2weeks re-installing the machines and checking out new programs and development tools. AccountEditor ============= Added 2 new options, download bytes and download files 29-March-1998 ============= Hydra ===== Updated GUI to fix minimized window problem Updated GUI and added a listview so that all error messages will appear in that instead of being displayed on the node watch screen 28-March-1998 ============= MailScan ======== Fixed enforcer hit when a number greater than the amount of messages was entered. Node ==== fixed the loading of file tags to check the existance of a file before it attempts to get the current filesize. (if you flagged a file on a cd-rom then logged back on later when the cd-rom was not inserted it caused problems.. XPR === also now checks for the existance of each file before attempting to transfer them.. 27-March-1998 ============= MailScan ======== Mailscanner now shows messages that have been read if you access each message by it's number Also shows if message is Private too 22-March-1998 - Alpha Release A16 uploaded to web site ====================================================== HBBSCommon.library ================== Added the rather usefull functions HBBS_GetFileSize(filename) Added another cool function, HBBS_FileConfFile(confnum,filename,fullpath) returns full path and filename in fullpath.. v.handy indeed.. Node ==== changed the re-loading of tagged files so that the filesize is now taken from the actual file. also if the file cannot be found anymore then the tag is dropped (usefull for users who only call once ever 6 months and leav with tagged files :-) 21-March-1998 ============= HBBSMultiTop ============ Added BestCPS up/down Added BestEverCPS up/down fixed Best Callers Updated docs 16-March-1998 ============= HBBSMultiTop ============ Added more options, designed a few example screen templates, incorporated into my example scripts and screens Wrote comprehensive documentation on this program, see HBBS:Utils/HBBSMultitop.guide Node ==== fixed slight mistake i made when adding status details to the callers log during the process of removing 4.3gb limits.. Screens ======= Created some kewl StartChat.txt amd EndChat.txt screens with ansi animations using COOLTEXT (man I love that option in HBBS!) Right, that's it for today.. I'm off to beddie bies.. I don't expect to do too much tomorrow as I'm changing the 1.2 and 2.1 gb hard disks over in my a1200 and swapping the 2.1gb drive to a laptop (pc) so that'll take forever.. :-( 15-March-1998 ============= Control ======= Re-designed the GUI again cos I didn't like it. :-) It's much nicer now.. Account Edit ============ Added more options HBBSMultiTop ============ Ditched a couple of options, added some new ones that are more usefull this program is now functions as of today! yeah! a bulletin maker at last... more options and sortlists to be added soon! 14-March-1998 ============= Well, the rom's made no difference at all. So I've taken the 040 out and gone back to a reliable 030! :-( I've also ordered a nice new Amiga Technologies A4000 Tower, and will put my Cyberstorm MKII and lots of nice Zorro and ISA cards in that.. Also, for all you PPC fans out there, you'll be pleased to know that I will shortly be ordering a PPC upgrade for my A1200 (as they're cheaper than ones for an A3000/A4000) so HBBS will be ported to PPC as soon as I get that.. kewl! LastCallers =========== Updated to cope with 4.3GB limits.. Control ======= It now reports failure of opening HBBSCommon.library Re-designed the GUI, removed buttons that I'd not programmed in. Made the Config window pop back up after a screen mode change. Added a button called "Device" to the GUI, clicking it brings up the device config for the node last clicked on 08-March-1998 V0.78 =================== My A3000 is *Still* Playing up :-( My new OS 3.1 Roms are arriving on monday. The supplier of the accell is still blaming my softkicked roms for the continual crashing of the machine when the Cyberstorm '040 is installed, so we'll see.. I hope to buy a PPC Upgrade for my A1200 and out that in a tower in the near future. Either that or buy a second hand A4000. Node ==== InactivityDisconnect ==================== Well, this *appears* to be working now, at least I've set the timeout on my node 0 to 5 seconds and I've tried it from several doors etc with no problems encountered so far. FrontEnd ======== Added some options to the config file.. PromptTimeout - determines the amount of time that's waited for a username or password to be entered before they are prompted again. MaxAttempts - determines the amount of attempts a user gets at entering a handle. AlreadyLoggedInMsg - Message displayed to user if they're already logged in UseSpecialScreens - Use SpecialScreen files instead of text messages for errors. e.g. say you set HandleToShortMsg=HTSHORT the special screen HTSHORT will be displayed Docs ==== Updated some door documentation guides 23-October-1997 =============== Node ==== fixed a bug in DisplaySpecialScreen updated CheckDoorTypes so that it ignores all door types except HBBS and DOS if the carrier has been lost 4.3GB Limit removal. ==================== Well everything appears to be ok at the moment except for HBBS_GetSetting with a VTYPE_HUGENUM at the moment. HBBSCommon ========== Sped up the HBBS_GetSetting() routine, configs now load faster. >>> Wow! This has a huge effect on the bbs... More than i thought it would.. All doors are now found much quicker by the system so the whole bbs seems faster. and all in one line of code.. cool! (search for "speedup fix" in the source file...) CVT_A15_A16 (in HBBS:Source/Utils/CVT_A15_A16 & HBBS:Utils) =========================================================== Wrote this small utility to convert A15 user.data files to A16 data files HBBS A16 cannot function with an A15 user.data file. ******************************************************************************* * Important * Important * Important * Important * Important * *** PLEASE READ AND FOLLOW THE INSTRUCTIONS IN HBBS:Utils/CVT_A15_A16.TXT ***** * Important * Important * Important * Important * Important * ******************************************************************************* 22-October-1997 =============== Heheh, well, nearly a month of doing nothing, sorry. but i got fired and still have to find a new job so I've been looking for one and not had time to do anything on hbbs recently. Anyway... HBBSMultiTop (HBBS:Source/Utils/HBBSMultiTop) ============================================= Restarted this door from scratch after my brothers attempt was so lame.. 4.3GB Limit removal! ==================== done loads of work on all the doors that need updating to cope with me changing the Upload and Download byte counters to floats as opposed to longint's.. ARGH!! it seems that the c functions atof() and strtod() do not work with numbers larger than 4.3GB. They convert them but they are always out by about 2000 or so bytes... i.e. try settng the bytes uploaded using the account editor to 500000000000 and you get 499999997952. weird... you'll just hve to live with it for now though. All the doors that add bytes internally do it correctly however.. ******************************************************************************* * Important * Important * Important * Important * Important * > > > CODERS: RECOMPILE ALL YOUR HBBS PROGRAMS OR THEY WILL FAIL!!! < < < * Important * Important * Important * Important * Important * ******************************************************************************* 23-September-1997 ================= IMPORTANT: the "HBBS:Setup" file has changed, it now creates T:HBBS that quite a few doors now use! Time ==== Updated so it works if two users on seperate nodes use the time door at the exact same time :-) Unlikly but better to be safe than sorry. DupeCheck ========= Created a very simple duplicate checker, does not yet check the file lists for duplicate names. CheckFiles ========== Updated door to cope with AskConf and DupeCheck. AskConf ======= Created a simple version of this door. Need to write a routine into the HBBSNode.library to display a list of conferences Node ==== Updated DOOR_ContinuePrompt(). If the user pressed return it was not apparent what the user may have selected. It now prints Y or N on the screen to indicate. (only if used with the flag DCP_ADDYN) SetSuspect ========== Changed the ANSI 17-September-1997 - Alpha Release A15 uploaded to aminet - comm/bbs/dat_h15*.lha ================================================================================ Been very busy recently with the data division release of HydraBBS, me having to build a (spit) pc for someone, the flu, new car stereo speakers, web pages and other stuff, so sorry for lack of development in the last couple of weeks. All doors.. =========== Changed references of Hydra/LSD Hydra/TSN to Hydra/dAT :-) 8-September-1997 ================ Oh shit, my system was infected with the Happy new Year 96 virus and HBBS got released with it in. Argh!!! Anywayz, removed it using VirusZ. Thanks very much to the author of that program.. Tested HydraBBS with a PCMCIA PSION Dacom Goldcard Global and a PCMCIA PSION Dacom V34+Fax modems using pcmser.device. All seems to work fine in my A1200. Kewl.. Now I have 3 modems to use. 4-September-1997 ================ AccountEdit =========== Added options to browse all the users Added option to enter a user id as well as a handle Added loads of cool ansi colour to it. NodeLibrary =========== Changed the default colours of the BBSColours.cfg file option so that the letters in between []'s are now CYAN and the default option is now in yellow. before it was yellow and white which wasn't quite as obvious. 3-September-1997 ================ ConfirmUL ========= Changed [S]ysop to [P]rivate, as I was too used to pressing [S] to save stuff after typing things in (like the file_id.diz. :-) 2-September-1997 ================ AwardTime ========= Fixed! it was adding seconds instead of minutes. 1-September-1997 ================ Alpha Release A14 released! 28-August-1997 ============== Node_Misc.c =========== Improved/sped up screen output if the screen files contain @^@ sequences. Set a default TPAUSE value of 10 seconds *D* Document *C* make configurable! if the value after TPAUSE it missed out (i.e. @^TPAUSE^@) BRatio now prints "Disabled!" if ratio is 0 or access flag ACS_UNLIMBYTES is set File Maintenance ================ Been doing lots of work setting up HBBS so that it can be released on Aminet soon. Documentation ============= Updated docs XPR & HYDRA =========== Implemented CPS recording and interaction with BestCPSUp/BestCPSDown in the users data. They now tell the Information windows about last downloads NodeLibrary =========== New function, DOOR_Add_Last_Download() created Node ==== made to cope with DOOR_Add_Last_Download() WOW! Kewl... another kewl HBBS feature... Here i was writing a few ansi animation routines for a door and then i had a thought that it'd be kewl to make these routines usable in Screen files. So you can! :-) use SCROLLFROMLEFT SCROLLFROMRIGHT and COOLTEXT in your @^@ sequences. e.g. @^COOLTEXT^<------ Kewl Man ------>@ LastCallers =========== fixed, it was looking for a parameter called NOLOCAL rather than IncludeLOCAL! 20-August-1997 ============== HYDRA ===== Doh, found out that I ported an old version of it... anyway, reported it to latest hydra release version from term 4.7 source so it's pucker now... done loads of work on the xfer/chat windows and the like file resuming works now 0 enforcer hits! cool cps rates and more responsive chat. AskDLFiles ========== fixed incorrect time to d/l readings! Node ==== moved some routines from node_console.c and placed them in the HBBSNode.Library instead HBBSNode.library ================ doors can now call DOOR_ChangeConsoleMode() to open/close/change the node's watch window. Great for pager doors etc... i.e. you can have your watch window closed and it'll open when someone pages you! strucutres.h ============ added a few more usfull bits to the NodeData structure. 19-August-1997 ============== HYDRA ===== Implemented Hydra protocol. currently it all works fine but has not been bug tested at all. I've no idea if file resuming works at the moment the windows etc are not hbbs orientated at all at the moment, i.e. it opens the same windows as hydracom itself does.. :-) they don't appear on the watch window or anything.. they will soon though. UPLOAD/DOWNLOAD/TRANSFER/Protocols ================================== Changed to support HYDRA protocol. AskDLFiles ========== made it cooler.. 13-August-1997 ============== Node ==== ModemGetLine() changed to cope with multiple /r's /n's etc.. HangUp() now drops dtr then tries the commands or vice versa depending on the DropDTRHangup option rather than ALWAYS calling ReOpenSerial() even if it had already hungup using commands... Download/Transfer ================= The option for [G]oodybe After xfer is now enabled and working for downloads. P.S. this took a good two days of hard coding of loads of doors and stuff to get working by the way... NodeLibrary =========== fixed the door port name. it was 21 chars and the max length of the name was 20 chars including null terminator. the door port names have now been changed to: HBBS_Node_DP e.g. HBBS_Node_3DP4 12-August-1997 ============== Stuff for checking files if user has logged off.. ------------------------------------------------- Changed loads of doors to accept the NOUSER command line parameter which is given to all doors called by CHECKFILES in BG Checking Mode most of the stuff is OK for checking files in the BG now! SelectMode ========== This program used to use functions in the HBBSCommon.library to save and load config files. trouble is the routines it uses make references to the bbsglobal data structure that may not be initialised when selectmode is run. So select mode has now been changed so that it does not use any hbbs functions or libraries AT ALL. HBBSNode.library ================ the serial write requests that use the -1 option have now been changed to strlen(str) because of a bug in some serial device drivers actually outputting the null terminator! this didn't show up earlier because I have been using USRSerial.device until I got my '040 card which doesn't like USRSerial.device.. now what about 8n1.device ???? Node ==== Instead of HBBS:Screens/Users/.TXT being displayed. HBBS:System/Data/Users//.TXT is now dispayed this keeps all the user stuff together and copes with the user changing thier handle. added two options to the Device settings DumpModem UseCRLF 11-August-1997 ============== Since upgrading to an '040 processor I've been doing lots of bug fixes and finding some '040 related problems. Note: ----- USRSerial.device does not appear to function under '040. It causes the machine to lock up randomly when using the serial device. Term gives the same results. AskDLFiles ========== Changed the ANSI a bit. Node ==== Fixed opening serial device problems serial port is ALWAYS opened with XON/XOFF enabled now. checks to see if a user actually logged in before writing timeonline to the callers log. XPR === Made it use the "asyncio.library" for faster IO and less errors when the system is busy. SelectProtocol ============== writes selected protocol to callerslog so that you can see what protocols users are using Logout ====== the logout door must now call DOOR_HangUp(); this results in the BBS hanging up loads quicker. note: if you call multiple doors for the user command "G" then the one that hangs up the phone must now be last! 07-August-1997 ============== HBBSCommon ========== fixed crashes if /'s were missed of stringlists of PATH type requests in HBBS_GetSetting() 04-August-1997 ============== Node ==== Implemented Node Reserving FrontEnd ======== Implemented Node Reserving checks Displays a special screen "RESERVED" or a message if any other user tried to log on (including sysop) 03-August-1997 ============== Damn, i was supposed to of had the beta release v1 out by now, never mind! I'll upload hbbs in it's current form to my website tomorrow night i think.. Docs ---- Updated: HBBS:Developer/Developer.readme XPR === fixed resuming upload, seems to work OK now.. MoveFile ======== Fixed enforcer hit when moving a file that had no associated .diz to move at the same time. (caused by checking a cmdline paramater without checking how manay cmdline parameters there were...) CmdPrompt ========= made it display the LOGOFF special screen if a user runs out of time, then it displays either the NOTIME special screen or a message. Node ==== Getline now returns IN_TIMEOUT if the users time online has run out. AddTime ======= created program to award user time for uploads, very similar to AddCreds door. AddCreds ======== now has the optiuon AwardMsg_XX= which (if the option exists in the config file) is displayed to the user if an autoaward match is found CheckFiles ========== updated to call AddTime 31-July-1997 ============ XPR === xprftp.library -------------- Nuts, after much testing I've found the following bugs with xprftp.library: 1) it does not call xpr_update with the filesize of the file current being sent to the BBS. This means that the bbs can't tell how big the file is that the user is sending us. Which in turn menas that if the user cancels the file halfway through the bbs might think that the file is complete. this is not acceptable so at present the file will be kept as an incomplete upload even if the file was transfered ok. (as the bbs can't check ActualSize==ReceivedSize) So. I can't let users use XPRFTP.library for UPLOADING to the BBS. 2) every program that opens xprftp.library and starts a transfer makes the calling program cause two enforcer hits. I have traced this as far as I can and have found the hits occur during the XprotocolSetup() part of the library. Now saves a list of the skipped files in a text file called "/Work/XPR_SkippedFiles.TXT" Node ==== removes file "/Work/XPR_SkippedFiles.TXT" at every logon Docs ==== did loads of work on the dirstructure .guide file Time ==== made the call to figlet center the text to 80 columns JoinConference ============== fixed bug when using "<" from the bbs prompt when you were in the first conference that you had access to. 30-July-1997 ============ actualy no, storm-c is not going to be used just yet.. Got some problems with other stuff that make it's compiled code not compat. with sas/c stuff Doh.. did lots of testing of: telser.device/miami/amitcp/xprftp.library and xpr.. XPR === Oh yes, I AM a god.... :-) hehe.. Finally got xprftp.library working with my XPR implementation. it seems that some (i.e. xprftp.library) xpr libs don't make a call to xpr_ffirst() which meant that it never got the filenames of the files to open etc.. So as a safeguard I do all the work that xpr_ffirst() does in the main() part of the xpr implementation. This was a call to xpr_fnext() will get the right details returned to it!! Yeah! Of course, at this point in time HBBS is the ONLY bbs to support xprftp.library. Another world first! Well, actually it works for downloading from the bbs, but uploading doesn't work, it just hangs the system :-( I will recode the XPR door from scratch I think, and base/structure my code on the latest version of term as that appears to work with all xpr libs ok. As a side node: two enforcer hits are generated via any program using xprftp.library during it's initilisation of the library. e-mail to programmer for xprftp tomorrow I think.. HBBSNode.library ================ Fixed a MAJOR bug with HBBS_CheckConfAcs() in that it didn't allocate the lists required for HBBS_LoadConfAcs() causing about 50 enforcer hits and lots of memory corruption! Logout ====== Fixed a couple of enforcer hits, a one should have been a two.. Mail_Write ========== Fixed enforcer hits caused by HBBS_LoadConfAcs() Fixed "E C " not working correctly. Startparam is now set to 4 regardless of params if "E " is used. 29-July-1997 ============ Wow! - storm C kicks but. seeya sas/c... Spent most of the evening converting source code to stormc. It mainly has problems with the shared libs, I can't get them to compile at all yet. It keeps bitching about one thing or another. So for now you need sas/c to compile the libs and storm/c OR sas/c to complile everything else. Storm C has a better dubugging environment and project management tools than sas/c does. storm-c keep moaning about _exit not definind when i try to link it. I have found this the be because I'm using sprintf() in the source. How do I fix it ?? any ideas ? FrontEnd ======== Implemented N_ND->AllowLogins. It'll let the sysop do a local logon but if it is set to false no remote logins are permitted. 27-July-1997 ============ Argh! I've got a cold :-( Running noses and watering eyes sucks. still I 'spose it'll give me a good excuse to sit and code this all day now as I can't do aything else. Node ==== fixed SendModemCommand() in node_serial.c that kept retrying the command if the command had tilde (~) characters in it. Yeah! fixed the "modem not hanging up" bug, cause was when I implemented UseDevice I used a ! in the IF() statment causing it to hang up the modem if you wern't using the device and not to do anything if you were! OOOps.. that's what happens when you cut and paste code I guess system only actually calls hangup() if N_ND->LoginType == LOGIN_REMOTE DOORIO_HANGUP calls hangup depending on login type and now sets N_ND->OnlineStatus to OS_OFFLINE. Before it just called hangup regardless. 25-July-1997 ============ IMPORTANT!!! IMPORTANT!! THIS OPTION KICKS ASS!! IMPORTANT!!! IMPORTANT!! THIS OPTION KICKS ASS!! IMPORTANT!!! IMPORTANT!! THIS OPTION KICKS ASS!! IMPORTANT!!! IMPORTANT!! THIS OPTION KICKS ASS!! IMPORTANT!!! IMPORTANT!! THIS OPTION KICKS ASS!! IMPORTANT!!! IMPORTANT!! THIS OPTION KICKS ASS!! IMPORTANT!!! IMPORTANT!! THIS OPTION KICKS ASS!! IMPORTANT!!! IMPORTANT!! THIS OPTION KICKS ASS!! See below! "BBSGlobal/LogConfig" Control ======= Implemented BBSGlobal options LogConfig and ConfigLogFile. HBBSCommon.library ================== If you set BBSGlobal LogConfig and ConfigLogFile all calls to HBBS_LoadConfig() are now logged in the file specified. WOW, this option is amazingly usefull! It's just SOOO cool... 24-July-1997 ============ TagFile ======= fixed the checking of the door result from OKtoTAG door. Control & Node ============== Implemented DOOR_Timeout option in HBBS:BBSGlobal. HBBS no waits for a door to start and returns control if it doesn't start within the specified tieout period. A log entry is generatedin the nodelog. 23-July-1997 ============ Node ==== Carrier is now checked after DTR hangup is used to disconnect a user. If carrier is still present the bbs will attempt to use modem commands specified in the "HBBS:Nodex/Device" file to hangup the modem. If dtr hangup fails to hangup the modem a message is written in the node log file. Fixed the F4 on await screen not working after modem F2 was pressed Added extra delay between Turning on the modem's echo and sending modem init commands. Yeah, cool! added BBSStrings.CFG files everywhere! this feature works just like the BBSCols.CFG files except that various prompt strings can be set per conference, node and globally! e.g. you can replace the standard "Press [Return] to continue!" and make it different for each and every conference and node! how cool it that ? 21-July-1997 ============ Node ==== Finished up the InactivityTimer routines Now calls a System Door "InactivityTimeout" if a timeout occurs Fixed timeout on sting entry if user was still typing string and timeout occured. I.e. timer wasn't reset after each key pressed! Added new Action flag, I - InactivityTimeout occured. Writes to callers log if inactivity timeout occurs Changed callers log, now writes [-CONNECTION ESTABLISHED-] when a connection (be it local or otherwise) has been established. Did this because if a user never logged in then no comments were written to the log. MailScan ======== Changed text a bit to make functions more understandable 20-July-1997 ============ Shell ===== updated a bit of code, changed some ansi, checked get/put commands set exit as an alias for quit. Node ==== or Rather Get_Line(), Implemented InactivityTimeouts, check out NodeGlobal/NodeLocal InactivitySeconds and InactivityDisconnectOverride HBBSCommon.library ================== added check on submittimer() for timer with 0 seconds & 0 microseconds! Control ======= status messages in sttus bar contain node number now. 15-July-1997 ============ Tiedied a few more files and did more work on the documentation 14-July-1997 ============ XPR === Did a bit more work to try and solve the bad packets while downloading, it seemed to work ok but needs more testing HBBS_Common.library =================== ValidUserHandle() now ignores accounts with the status set to "O" (overwritable) so that really deleted users can't log in with old account details. They are now forced to rejoin the bbs again. Node ==== Now checks for presence of Work/Playpen/Commands directories on startup Documentation ============= Checkout HBBS:Docs/Doors/#? Check_Files =========== updated to cope with user renaming file to the same as something else in the playpen! ExtractDIZ ========== updated to remove old .DIZ, .ADD, .MISC files from Nodex/Work if file type is not known 02-DEC-1996 =========== Actually did all the work on the xpr from yesterday today too as I was up till 2:00am doing this for you all, hope you appricaite my lack of sleep! :-) Anyway, good news abounds.... I *think* that I've found the cause of the XPR uploading problems I believe they are caused by a small serial port receive buffer. Previously HBBS was using the default size (not sure what it defaults too, can't find any docs on it..) but now HBBS sets it to 16K. See HBBS:Source/Node/Node_Serial.c's openserial() function for details I set this to 256 bytes and you just get a million xfer errors and after setting it to 16k my machines have been fine.. So this couple with a better/more resiliant XPR door transfer should be cool from now on.. XPR === Cool, the door works and now I get xfer rates of 5.5k/sec both ways on a 57600 serial port. For those that find their system a bit slow when doing a transfer i suggest that you change the taskpri of the xpr door to 0 instead of 2 in the source code then recompile. The taskpri of doors will be configurable at some stage (probably via the door configs!) (i.e. XPR_Pri_1=2 or something..) I can finally concentrate my efforts on other cool stuff now!! Yeah!! 01-DEC-1996 =========== Bugger me, this XPR protocol stuff sucks, it's a bastard to debug for timeout errors.. Random Enforcer Hits/Machine Lockups etc.. ========================================== if you are suffering from the above then let me know where this is happening via e-mail but don't send me enforcer hit listings, instead, send me a list of doors that 'seem' to be causing the hits (sometimes it may be a routine in one of the libraries that is at fault rather than the door itself..) Don't just ignore them without telling me or I'll not know of the problems and If i don't know then I can't fix! So help me to help you... Also don't forget that the machine I program HBBS on does not have an MMU (68EC030) so I cannot check for them all the time. My A3000 does but it takes ages to check everything (as it's so big) and because of the pressure of getting new releases out sometimes things get forgotten about... XPR === right, been very busy with the XPR door's source, the timeout problems seem to be occuring within the xpr_sread part of the program so I have rewritten quite a few parts of that particular routine to try and fix the problem. I have now set up 4 computers with a null modem cabled between them, set the serial port to 57600 and transferred files, uploading gets around 3.1k/sec (slow ?) and downloading is about 4.5k/sec (average) Don't forget that the mail machine i use to program HBBS is not that fast in itself (a4000/030/25mhz :-( and I have to turn the data cache on the CPU off because of my GG2Bus+ card/PC Ethernet card combination (can't run enforcer to turn cpu data cache's on and off as required like I can on my A3000 because the '030 chip has no MMU :-( Grr..) Anyway, try this version of the XPR door out and let me know the results of it on your machines. If it is worse then go back to using the versions in HydraBBSA11.lha, HydraBBSA11U1.LHA or HydraBBSA11U2.LHA NodeLibrary =========== optimized a couple of routines and added another fix for the UseDevice config option (still not fully implemented, use at risk of machine crashing...) 21-NOV-1996 =========== strings.h ========= removed the \0 of str_CRLF HBBSCommon.library ================== Updated a few functions HBBS:Developer/Docs =================== Started writing docs for the libraries. 19-NOV-1996 - Update Pack #2 for A11 uploaded to website ======================================================== Oops, sorry this update is a day late!! I had to go looking for a new flat to live in.. NodeLibrary =========== oops! bug in HBBS_CheckConfAccess() caused the CheckUser door on some machines to either crash, cause enforcer hits or just refuse the user access to any conferences. Fixed! Node ==== Did more work on the implementing of N_ND->NodeSettings.UseDevice detailed below.. Logout ====== Fixed enforcer hit. 18-NOV-1996 =========== Node ==== The node program was ignoring the UseDevice option in NodeLocal files as I had not finished implementing it but had set the option in the release of A11. Starting node 0 caused the program to crash (not suprising if you send data to a device that hasnot been opened! :-) 15-NOV-1996 =========== Node ==== Opens the serial port in NON shared mode as in release A10 as some users had problems with serial drivers that do not support shared mode... XPR === does not re-open the serial port anymore (this re-introdues non functional XPR transfers for nullmodem.device nodes however... :-( ** In the next release there will be an option for serial port in shared mode per node. 07-NOV-1996 - Update Pack #1 for A11 uploaded to Aminet ======================================================= Mail_Write ========== if a handle is entered incorrectly you are prompted to change it, but now you actually get the handle in the string buffer to edit! added lots of GL_HISTORY's everywhere for command line history changed message about not being able to write multiple messages as it doesn't ask you to reenter, it just sends it to the first person now it tells you so! Mail_Read ========= if a handle is entered incorrectly you are prompted to change it, but now you actually get the handle in the string buffer to edit! wow, what the bugger, there was loads of unused code in this program that I must have forgotten to remove when I copied the code from the mail_write.c file.. Anyway, it's removed now.. added ctrl+c checking fixed problem with deletemail() not letting you delete some of your own mail messages to other users Rules for deting mail --------------------- Users with an access level of 250 or above can ALWAYS delete mail from anyone, even if setto non-deletable. Users can always delete mail that they wrote, even if it's non-deletable Users can delete messages written to them solong as it's not non-deletable Users can delete messages from other people if they have the correct access settings to allow them to do so Mail_ReadUSER ============= changed a few bits and bobs so you can read messages in reverse order added a displayed message about ctrl+c checking sysop can read sysop mail nomatter what access level (does SysopAccount name checking instead of AccessLevel checking..) MailCommon.i ============ moved a few routines from mail_write to it. Mail_Scan ========= it was scanning for sysop mail for all users, but displaying "Scanning Public Mail" it now displays "Scanning Sysop Mail" and checks to see if the user's handle is the same as BBSGlobal->SysopAccount Mail_Reply ========== recompiled because of MailCommon.i HBBSNode.library ================ Added another paramater to HBBS_AllowConfAccess() Node_Input.c ============== slight optimization in Get_Line() (codesize redection) JoinConference ============== Updated it to correct some ambigus/missing error messages Updated to cope with new HBBS_AllowConfAccess() CheckUser ========= Updated to cope with new HBBS_AllowConfAccess() 05-NOV-1996 - Alpha Release A11 uploaded to Aminet ================================================== Happy guy fawkes day!!! I've already seen enough fireworks on saturday so I'm going to be boring and stay in tonight! :-) Spent most of the evening tiedying up some config files and checking things out, and getting HBBS ready for the next alpha release XPR === Opens the serial port with XON/XOFF enabled when you are using a nullmodem cable. Control ======= Fixed LoadProtocols() subroutine so that it loads more than one protocol! Screens.guide ============= Updated to document usage of @^@ sequences with regard to print formatting e.g. @^-20.20^ComputerName@ FileLister ========== Changed some ansi JoinConference ============== Changed some more ansi if there are less than 10 confs there is no space between the [ and the number anymore LastCallers =========== Was linewrapping on some terminal emulators, so removed one char from the group item Pager ===== Made the Ctrl+C checking actually work :-) 31-OCT-1996 =========== Versionstrings! --------------- I have gone to great lengths to ensure that every major part of hbbs and every door now has a version string. To check the version of a program do "Version FULL" FrontEnd ======== Added a timeout value of 30 seconds to each password prompt so the bbs never sits around waiting for a dumbass user to enter a node password! Pager ===== Added Ctrl+C Checking (Just for you radiosity... :-) HBBSCommon ========== changed the HBBS_LogError() function so the log files look nicer and easier to read Control ======= Now writes to the bbs error log file when it is started and stopped Node ==== Now writes to the bbs error log file when a node is started or stopped XPR === What a DICK, I'm a HUUUUUGE fat dick. tho shalt not confuse | with || when setting variables.... i accidentally had the line: WaitSigs=(1L<mp_SigBit) || (1L<mp_SigBit); when it should have been WaitSigs=(1L<mp_SigBit) | (1L<mp_SigBit); so when I did a Wait(WaitSigs) it wait waiting for 0x01 instead of the actual signal bits! Major OOOOops! Node_Serial.c ============= If you are using a null modem cable then it sets the serial port options up differently. *D*ocument **** IMPORTANT ****** if you are using the USRSerial.device and have NullModemCable set to true in the device config for a node then you must use a 7 wire null modem cable If you only have a 3 wire null modem cable then you should use serial.device instead Transfer ======== is displayed "[S]tart Transfer," twice CheckFiles ========== the "." was not in the list of allowed chars for filenames so it complained about more or less every file! 29-OCT-1996 =========== NewUser ======= The message in the BBS Log file now contains the handle and group of the user just created ********************************** IMPORTANT ****************************************** The following settings have now been moved to a more suitable location: HBBS:Conferences/ConfList/NewUserConf -> HBBS:Doors/System/NewUser/NewUser.CFG/ConfNum HBBS:BBSGlobal/NewUserAccessLevel -> HBBS:Doors/System/NewUser/NewUser.CFG/AccessLevel and a new setting HBBS:Doors/System/NewUser/NewUser.CFG/TimeAllowed has been added more to come! HBBSCommon.library ================== HBBS_InitUserData() has been updated, you now pass it an Access level and a conf number for it to base its settings on. structures.h ============ BBSGlobal.NewUserAccessLevel BBSGlobal.NewUserConf have both been removed. Control ======= BBSGlobal.NewUserAccessLevel BBSGlobal.NewUserConf are not read from the config files anymore 09-OCT-1996 =========== Todo.TXT ======== Updated this list and ordered most of it. Account Edit ============ Implemented new user searching. HBBSCommon ========== Fixed and highlighted a few bugs and problems that I've found with a couple of my methods FrontEnd ======== Oops! User with a DELETED status could still login! :-) 08-OCT-1996 =========== Account Edit ============ Checks for valid access levels when you change a users access level! 02-SEP-1996 =========== Holy cow-dung batman! I've not been doing HBBS for over a whole month, sorry about that. Anyway, next week I'll be working on HBBS everyday so I should get quite a lot done with any luck. 21-AUG-1996 =========== Yoiks, having a girlfriend nicks all your time.... erm, anyway... Went bug hunting and made a big list of things that I need to do, also created HBBS:KnownProblems.TXT listing known problems that are NOT technically bugs. XPR === Did a bit of optimisation to try and fix the weird timeout problem when uploading via a real serial port.. AccountEdit =========== Revamped the code in a BIG way, started adding the stuff for checking for new users etc.. Announce ======== Changed ansi to make it cooler! 05-AUG-1996 =========== JoinConference ============== Whoops, in my hurry to get this out i forgot to finish the part where it rejoin the users prefered conf or lastconf.... (ie, it ignored the SYSTEM parameter and joined the first conf it found) Node ==== Displays error messages if items from NodeLocal or Device are missing Oops, TurnOnEchoDelay in the device config was being ignored! Control ======= Displays error messages if items from NodeGlobal are missing ErrorMessage ============ changed so that it replaces @E@ with all the params after the nodenum rather than just the first one HBBSCommon.library ================== HBBS_GetSetting was ignoring VTYPE_TIME. 01-AUG-1996 =========== PCMCIA scsi cards are cool..... anyway... Sorry for the lack of progress over the last couple of weeks, been somewhat busy with new toys, linux, women and my car.. :-) CheckUser ========= Now checks for the (lack of) user's conf acs data file. Account Edit ============ ditto NodeLibrary =========== added HBBS_AllowConfAccess(), call this to see if a user is allowed to join the conf number specified.. JoinConference ============== moved AllowAccess() to Nodelibrary :-) Version Numbers =============== Some people have pointed out that all the version numbers on various parts of the program never seem to match up. Well the reason for this is that it's all too easy to forgot to change them.. The one on the Await Screen (Await.TXT) should however always have the correct version number on it (is it's the easist one to change :-) 25-JUL-1996 =========== Hey, Linux roolz... A Much better OS than Windows to run on a PC.. (he says after installing it on his new laptop computer and playing with that for about a week) Oops. Back to HBBS.. Node ==== Fixed a little (?!) bug in my CheckRaw() code, it wasn't checking to see if the serial device or the console device were acutally open before using them which resulted in a crash of the node program! Thanks to Joel for pointing this out to me... CheckFiles ========== Now checks for invalid chars in filenames, the only chars that are allowed are: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqurstuvwxyz1234567890-_@!" 16-JUL-1996 =========== Node ==== Bug Fix: DisplaySpecialScreen() was using User.NormalData to find the access instead of User.CallData. This meant screens were not displayed if you changed the users access level for the duration of the call! Added GL_CVTUPPER GetLine() Flag to convert keys to uppercase as they are pressed! Nodelibrary =========== Fixed bug with HBBS_LoadConfAcs where it was looking for a config item called See_XX instead of SeeOverride_XX... JoinConference ============== Rewrote the entire door, it's better to use, looks nicer *AND* the code is realllllly nice now (as opposed to the complete mess it was before.. I'm ashamed to own up to coding the old one :-) AccountEditor ============= Added option to change preferred conference 15-JUL-1996 - Alpha Release 10a Uploaded to Aminet ================================================== Note: if your users have lots of CRC errors when uploading files using the serial port then change the xprzmodem.ibrary to a different one. see files: HBBS:System/Amiga/Libs/XPR/xprzmodem#?.library Rewrote readme.1st as it had become just a touch out of date! :-) Downloaded Joel Juillerat's doors from aminet and have decided to include them in the official HBBS archive as they are quite cool.. The doors can be found in the usual place, the directory names have _JJ added to them so you know who's are who's... :-) See the HBBS:Docs/Doors for details of Joel's doors.. Logout ====== Temporarilay disabled option of logging out after a transfer until i have a chance to implement it.. Transfer ======== Added NOGOODBYE parameter to disable "[G]oodbye After Xfer" ModifyDIZ ========= added an ansi esc seq to move up one line when a blank line is detected (e-o-diz) so that the diz looks the same on screen as it will in the file AddDIZToList ============ Now add's the sentby.. (a whole 5 lines of new code..) ExtractDIZ ========== tells the user what kind of file it is.. FileLister ========== Now displays sentby lines! 13-JUL-1996 - Alpha Release 10 Distributed Today (Only On Utopia!) ================================================================== Utopia! BBS is now set-up again, the number to call is +44(0)1202 434121 09-JUL-1996 =========== Did a bit of testing HydraBBS from work today, It seems actually pretty fast on the users side even when using a 14.4k modem with HyperTerminal on windows '95 :-) Shell ===== Just realised that XPR needs a trailing / or : on any download path (adds names to path) so had to modify the xpr door call. Sets the new action flag, ACTN_USEDSHELL (see defines.h) XPR === changed it so that you don't need /'s to be on the end of a path! :-) HBBSCommon.Library ================== HBBS_ValidUserHandle() checks for ;'s and ,'s in the username, returns FALSE if found.. 08-JUL-1996 =========== All in all, a good days work... Shell ===== Fixed the shell door so that it doesn't take creds for downloaded files :-)) :-) Hhehehheehheeee... Ooops, giggle, smirk hehehe hohoho haha... also fixed it's incorrect responce of "Command Not Found" when a program returned an errorlevel.. :-) XPR === Fixed stack problems, (see the __stack and scoptions...) xpr does not work unless you set CODE and DATA to FAR, so __stack must be __near'd.... fixed the W= options so that it works now :-) hehe, i was actually checking for existance of the file in the wrong place! Oops! Node ==== Whay, cool.... Added IN_DIALOUT to possible returns for GetLine() if the await connect door gets it then it'll ask for a phone number and it'll dial it... This roolz as it means sysops have the possibility to initiate a call rather than the user! Most excellent! AwaitConnect ============ Added support for IN_DIALOUT, oh yeah, you need to press Shift + F9 on the await screen to use it! Mail_Write ========== Added new option to config file (HBBS:Doors/User/Mail/Mail.CFG) called DefaultExpiryDays, defaults to 30 days. All messages can be made to expire by use of the access setting: AutoExpireMsg=YES ExtractDIZ ========== Displays name of file.. HBBSCommon.library ================== Fixed a bug in HBBS_RunDOSCMD() where i was using replace() directly on one of the inputs to the function, rather than taking a copy of the input and using that (which it now does) this could have caused memory corruption!! also made it so that it *ALWAYS* opens an output handle. instead of only opening an ouputhande when noredirection was used... (this seems to have fixed the random lockups of the shell door) Editor ====== added GL_HISTORY to the GetLine() call.. added Line Editing added message listing.. added ability to delete lines added a CLS option, press W at the menu prompt, it's not on the list tho... 07-JUL-1996 =========== Wall ==== Changed the format of the history file, it no longer pads the output string and adds the handle to the end of it. Logout ====== If you have tagged files it will display them (via the A door, "A L") then it will ask you if you are sure you want to logout now.. You can use the N parameter (N for NOW) on the logout command to skip checking. i.e. "G N" to logout without checking tagged files Shell ===== did a bit more flaffing around with this door, at the moment it seems to lockup randomly while running a command (locks up doing HBBS_RunDOSCMD() Doesn't seem to be a stack related problem, i can't seem to figure out what the blazes is going wrong with it...) XPR === Added a W= option to the commandline, so that if you want to pass it some filenames with a full path, it'll add whatever path you specify with this parameter. note: don't use dirs with spaces in! *C* Node_Input.c ============ Modified GetL_ine() so that when you use the PasswordChar parameter with a promptstr the promptstr is displayed using the PasswordChar. * Thanks to Joel for noticing that problem! 05-JUL-1996 =========== Shell ===== Created a cool (and simple) shell door for sysops to use, features uploading and downloading to current directory! Woooooo! 01-JUL-1996 =========== ************************* VERY IMPORTANT ***************************** ************************* VERY IMPORTANT ***************************** ************************* VERY IMPORTANT ***************************** ************************* VERY IMPORTANT ***************************** ************************* VERY IMPORTANT ***********pp**************pp ************************* VERY IMPORTANT ***************************** As of today, all Command config files are changed!!! Read on... Node ==== _Type_ params in command files have been changed! Now use one of CLS, CLI, HBBS, ECHO, DOS, SCREEN or SSCREEN i.e. NORMAL has been changed to HBBS Right, small change, but big effect... All _Door_ options in command files take the following format... (For CLI and HBBS type doors only) _Door_= [][{N}][{O}][...] e.g. FR_Type_1=HBBS FR_Door_1=HBBS:Doors/User/FileLister/FileLister.HBBS {N} {O} FR_Param_1=REVERSE {N} is replaced with the nodenum {O} is replaced with the options typed at the bbs prompt, so if a user on node 2 types in FR -1 The actual command that gets run is: HBBS:Doors/User/FileLister/FileLister.HBBS 2 -1 you can use {N} and {O} ANYWHERE in the Door_ parameter, so you could even run different executable files from different directories depending on what node you were on.... I may decide to create more {x} codes in the future too... Any suggestions welcome.. This makes running doors even more flexible now... example.. before now, you had to specify a system option to the mail door to force it to a particular type of mail. e.g. C_Type_1=NORMAL C_Door_1=HBBS:Doors/User/Mail/Mail_Write.HBBS C_Param_1=COMMENT But now you can set it up like this... C_Type_1=HBBS C_Door_1=HBBS:Doors/User/Mail/Mail_Write.HBBS {N} S {O} which is the same as the user typing "E C" at the bbs prompt... You can even do this: (example for nodestats) NSTAT_Type_1=SSCREEN NSTAT_Door_1=NSTATS{N} so if you were on node 2 and you typed NSTAT you'd get the screen called HBBS:Screens/Special/NSTATS2.TXT Cool or what ? Hope you all understand that and my reason for doing it. And sorry for the inconvenince of making you change ALL your command files :-( Wall ==== Now creates Wall.History in it's progdir: this records time/date/handle and text HBBSCommon.Library ================== Updated AssignOK() to cope with "Progdir:" which is a valid assign, but does not appear on volume lists! Ooohhh... I love you C=! I've only noticed this now cos I changed the wall which uses HBBS_SaveConfig() which uses AssignOK() on the path... Mail_Reply ========== Updated the quoting of messages part. You now get the option to quote all the message or just a section of it.. (At Last!!!!!) Mail_Read ========= If a message has no expiry date, then it won't be printed on the screen Zippy ===== Added Ctrl-C checking and fixed a bug where it sometimes displayed the last line twice of the last file in the filelist JoinConf ======== Fixed so it logs you off if you can't rejoin any conferences at login time... 30-06-1996 Update Pack #3 Released ================================== Oh bugger... I've made a slight miscalculation on the FILE_ID lengths i thought 48 would work, but it was 3 chars too long (causes linewrap) so I've had to change it to 45, BUT, the sentby in the user.data is still set to 48, doh... I've added a #define called LEN_DIZWIDTH now... I'll not change the sentby length to 45 until the next full alpha release... (however, the sentby door and the ModifyDIZ doors have been corrected..) SentBy ======t Changed to cope with LEN_DIZWIDTH Changed the ANSI ModifyDIZ ========= Changed to cope with LEN_DIZWIDTH HBBSCommon.library ================== Changed HBBS_RunDOSCMD() so that it supports redirection. if it detects a > or < charater in the command it is going to run it will not open the standard console output. Time (T at BBSPrompt) ===================== Created a new door, uing the new features of HBBS_RunDOSCMD(). It now writes the time to a temp file, and runs figlet to convert this file into cool ascii which is then displayed using DOOR_DisplayScreen() if you look at the source you'll see why I had to change HBBS_RunDOSCMD() above. FileHistory =========== Called after ExtractDIZ, this door create a file called .History in lha archives and lists all the bbs's, users and time/date of upload to that bbs so you can trace the file! Cool for bbs/trader charts. HBBS:System/FileID ================== Added <>nil: to each of the commands so that no output is seen from them (previously a window appeared on the control screen and went away again which was a bit annoying if you were trying into another window at the same time as a file_id.diz was being extracted! hehe..) Docs ==== Updaed a few of the docs, created a nw subdir in HBBS:Docs called Doors in which you should store all your .Guide files for all your doors. Don't forget to update DOORIndex.Guide when you put a new file in there FileLister ========== Found a rather major bug in the "New" list part of the program, it did't work unless there was a blank line between each file in the filelist!!?!! HBBSCommon.Library ================== was not initalising User->SentBy which caused a new user to get the sentby of the last person that logged in, fixed now MailScan ======== wasn't checking for the access level setting, therefore users could read mail that had an access level above their own access level, fixed now... 29-06-1996 Update Pack #2 Released ================================== Argh, I hate getting colds... (the flu..) CheckTags ========= Prints the date the user last called instead of DD/MMM/YY now.. CheckFiles ========== Now sets the user's LastUploadDate when a file is uploaded to a conference dir. Node ==== added two new @^@ codes, TIME and DATE... :-) Screens ======= changed the await screen again. 27-06-1996 ========== Most of today's coding was working on implementation of user time stuff. FileLister ========== Pressing Ctrl-c now displays the Prompt that you'd normally get at the bottom of a page, cool! Also fixed bug in that it would always say End-Of-File even tho it wasn't at it.. (this was just the wrong string passed to DOOR_MenuPrompt()) Frontend ======== added GL_NOOLM's too all the GetLine()'s... Logout ====== Moved most of the door to DOOR_Goodbye(); CommandPrompt ============= Added Autologoff when time runs out... Displays a message when a users time runs out if it can't find the specialscreen "NOTIME" Access.h ======== Added New Access Settings (120-123, Unlimxxxx) Account Edit ============ Added options (12,13 and 14) regarding time settings HBBSNode.library ================ added HBBS_TimeOnline() and HBBS_TimeLeft(), HBBS_TimeLeft() returns a LONG and can be a negative value (i.e. been on more that alloted time..) Updated {L} code (TimeLeft) Added {O} code for time online Updated LoadAccess() to cope with new access settings (see above) Added DOOR_Goodbye() which performs all the things needed to complete a sucessful logoff.. (see Logout above) Node ==== now adds "Time Online: " to the callers log when a user logs off.. so adjust your bulletin makers to find out how long a bbs was used for in a 24hr period. (for instance..) Added a new @^@ Code called @^TIMELEFT@ Updated the @^TIMEUSED@ code. Reminder: {?} codes are used on prompts (like command prompt) @^@ codes are used in screens (like the stats screen) 25-06-1996 ========== HBBSNode.Library ================ ***** ADDED DOOR_CheckRaw(), see HBBS:Source/Doors_User/Test/Main.C for an example of Ctrl-C checking. Basically, the gist of this function is that you call it and it returns true if it got a byte of data from either the serial port or the console device (depending on what was asked for..), you then check N_ND->CurrentLine[0] for that byte that was received. N_ND->CurrentLine[1] is set to 0 (to null terminate it) N_ND->CurrentLine[2] is set to 0x01 to denote input from console or 0x02 for serial note: if the sysop was to press Cursor left at *exactly* the same time as the user on-line then you might get a weird result if you were checking for the 2 character control sequence that pressing cursor left gives you. However, console input is processed before serial input so you might not!.. i.e. check console if data from console then return true check serial if data from serial then return true return false anyway, all those door codes who wanted raw input, here it is, so get coding raw input doors NOW... I'll be updating all my filelister/text viewer doors for ctrl-c checking v.soon... FileLister ========== When doing non-stop lists (a or l), it will now check for ctrl-c at the bottom of each page. Wow! 24-06-1996 ========== CUNTS, CUNTS the lot of em... I hate people that nick car stereo's... Today I wake up, go to the car and it's been fucking broken into. I have all the luck.. I'd just kitted it out with 1200 quid's worth of stereo.. (oh, yeah, I bought a nice new BMW 316 last month, so I'm now the proud owner of 2 of them! Heheh, this one's much newer and faster tho... has lowered suspension too.. Anyway...) Oh well, there goes another 500 quid to replace the Multi-CD player, Broken glass and Infared Remote control for the head unit.. Didn't do any work on HBBS today as I was too busy repairing my A4000's hard disks after a major crash... Fortunatly I didn't loose any HBBS stuff at all... 23-06-1996 ========== HBBSNode.library ================ fixed a slight bug that caused HBBS to crash if you started a node, logged in, logged out, shutdown and then restarted and then logged in.. As you can see it was a BIT hard to find :-) heheh.. 22-06-1996 ========== Included some 3rdParty software in HBBS:Utils/3rdParty Mirage - A very cool IFFANIM-ANSIANIM converter! THEAnsiEd - A beta version of an ANSI editor written by me, It's not finished yet, but you can use it to create 100% perfect ansi files (unlike other ansi editors) A lot of menu functions and features do not work yet and it's also a bit slow on the old screen refresh, but it's still cool... Oh, and It also supports @^@ codes in files! (AutoDetects an HBBS file... Cool or what ! !?!?!?!?!?!!!!) Node ==== Added GL_NODISTURB DOOR_GetLine() flag, if set, hbbs will not disturb the characters on the right hand side of where the string is to be entered. e.g. you can now write some text like this "Enter ID: [ ]" and with the GL_NODISTURB flag set the ] will stay firmly in place... However, don't use a maxlen value that makes hbbs linewrap (i.e. don't position ask for a string 20 chars long when you're starting at position 70) At the moment it's best not to specify GL_HISTORY as pressing up/down (and ctrl-x) wipes the line. to be fixed shortly.. AccountEdit =========== Fixed (slight) bug on length of ConfAcsDataFile was set to LEMN_GROUP instead of LEN_CONFACSFILE Added new option to change the SentBy string AskSentBy (SENT at bbs prompt) ============================== Created door. 21-06-1996 ========== No work really, just tiedied a few files here and there.. 20-06-1996 ========== Skived work today after getting completely wasted last night, so I've got a bit of time on my hands today. Node ==== Fixed small bug with the commands that were created from @^SYSDOOR@ commands in screens. AccountEdit =========== Changed this a bit to validate Access Levels, also added a Validate User option and a tiny bit of help regarding it.. FrontEnd ======== Hack door can be called with several parameters now, they are: TIME - User has no time left today. PSWD - Password Failed LOCK - Account Is Locked Out (Status=L) with these parameters the user has the chance to leave a message to the sysop so that the sysop can get back to the user. Heheh, so you can have loads of users annying the bollox of you asking for more time! :-) Hack ==== Created Door! It also used some special screens, depending on the reason for the hack attempt to be caused (no time, password, locked account) HACK will display a different screen, so far these are: HACK_PSWD, HACK_LOCK, HACK_TIME. When the user logs off again the screen HACK_BYE is displayed.. Have a look in HBBS:Screens/Special for examples 19-06-1996 ========== Happy Birthday To Me!! Uploaded to Aminet, Comm/BBS/HydraBBSA9.lha and Comm/BBS/HydraBBSA9src.LHA 18-06-1996 ========== Whay, it's my birthday tomorrow! SetSuspect ========== Yeah, you'll like this handy util... Ever had a user do weird things on your bbs and you wondered what had happened ? then this door is for you! You give it a list of users that you think are suspect and when they log on next, the doorlog setting in your nodes config is overridden having the effect of making it log all doors that are used by the user! Cool... Checkout the Source Code of the door for full details Doors_System/SetSuspect Mail_Write ========== You can now specify what type of mail you are going to write by using system parameters, see the EC door example in HBBS:Commands/Level_50 use any of the following: COMMENT, PUBLIC, CONFERENCE, USER, INTERNET Docs ==== Added info about WebSite in HBBS.Guide Control ======= Pressing "Configure" with the Config window already open brings it to the front! Node ==== Added DoorLog and DoorLogFile and DoorLogOverride to Node (see shared.c, NodeLocal, NodeGlobal, structures.h) DoorLogOverRide is only set for the duration of the call and may be set by any door to start logging doors from that point on, setting N_ND->DoorLogOverRide to TRUE means that any door that's run will be logged in the file specified by N_ND->NodeSettings->DoorLogFile regardless of wether N_ND->NodeSettings->DoorLog is ON or OFF. Totals: gets written to the callers log now, so that other programs can see what the user did when online.. e.g. 18-JUN-1996 21:56:34 ************************************************[LOCAL]** 18-JUN-1996 21:56:35 User logged in, Handle: Hydra Group: LSD Speed: LOCAL 18-JUN-1996 21:58:43 Actions: SWR 18-JUN-1996 21:58:43 Totals: FU=0 FD=0 BU=0 BD=0 PM=0 NK=0 MR=6 MW=3 18-JUN-1996 21:58:44 End Of Session Item Meaning FU Files Uploaded FD Files Downloaded BU Bytes Uploaded BD Bytes Downloaded PM Pages Made NK Files Nuked (that is, other users files that the user nuked using a nuker) MR Messages Read MW Messages Written The oder of these may change, and more will probably be added, they also might not all be two charater codes (may be more, maybe less...) so make your doors cope! Structures.h ============ Added KeepDIZWithFile to ConfData, also see the ConfConfig files for a setting of the same name... MoveFile ======== Added new parameters, MOVEDIZ which will move the .DIZ to the same place as the file CheckFiles ========== Changed to cope with MoveFile's new option 17-06-1996 ========== FUCK, it's 1:35AM and I've got work tomorrow! Doh! Still listening to DubStar is COOL.. My birthday on wednesday (2 days)... Wrote a couple of small scripts to rebuild all of the doors in one go the Mail/#? won't compile as it includes another source file and mkmk creates a smakefile that is wrong, so I've made it so that it does not go into subdirectories... see HBBS:Source/MakeDoor and HBBS:Source/RebuildDoors Created Example ConfAccess CFG files in HBBS:System/Data/ConfAccess See structures.h for ConfAcsData structure and N_ND->User.ConfAcs for data itself Changed HBBS:Access/Levels/Level_List so you can set which confaccess file to use by default. Control ======= added support for ConfAcs_XX in Access/Levels/Level_List file Node ==== moved HBBS:System/Data/TaggedFiles/ to HBBS:System/Data/Users//TaggedFiles.CFG HBBSNode.Library =============== Added HBBS_LoadConfAcsData() Updated HBBS_SetAccess() HBBSCommon.Library ================== Added HBBS_FindNode(List,Name), find's a node in the List with an ln_Name field the same as Name, or NULL if not found. Added HBBS_FindNodeNum(List,Name), save as HBBS_FindNode() except it returns the number of the node in the list, or -1 if not found. Updated HBBS_AddUser() creates directories called HBBS:System/Data/Users/ and one called HBBS:Mail/Users/ when a new user is added. it also SetComment()'s the directories with the user's handle etc.. (try creating a user and typing in this command to a shell window. LIST HBBS:System/Data/Users/#? lformat "UserID: %n, Created: %d, %c" Account Edit ============ Changed this so you can change the users setting for the ConfAccess file note: set the setting to just the name of the file without the .CFG and without the full path, and the file *MUST* exist at the moment as more extensive error checking still needs to be written for this feature.. e.g. "Normal Dood" see HBBS:System/Data/ConfAcs/#?.CFG 14-06-1996 ========== I have done work since 30-05-1996, but just not documented it... Anyway... **** IMPORTANT **** UserData format has changed so userdata created with HydraBBS A8 or earlier will not work, if you want to convert it then write your own program! Sorry, I do not have time.. to see what's changed just check out the structures.h files and see whats different... 30-05-1996 ========== Reminder! ========= when using GetLine, you can use the flag GL_NOOLM so that your door does not get interupted by OLM's... HBBSCommon.c/strings.h ====================== changed CtrlScrn in str_CONSOLE to @S@ and made RunDosCMD change all @S@'s to the current public screen name.. LogExtractor (in HBBS:Utils) ============================ Started work on this cool utility, that, when finished, will extract all data about a particular user from log files from one or more nodes and write it to a file (which can then be displayed by the program, or at a later date by the user.) It has the abilty to go back only a certain amount of days too.. Oh, and it's all GUI based too.. (CLI Options coming soon, makes a great sysop door too! (e.g. USRINFO Hydra 20 to show Hydra's bbs usage in the last 20 days!) 29-05-1996 ========== GoldED Sucks... Back to TTX! Structures.h ============ removed a few unused items and moved a few things around, also added ScreenInfoData structure and changed NodeUser.. mtype_ASK is not used and has been removed from all source... Control ======= Still changing it so that you can open HBBS on a public screen... (lots of work involved in doing this by the way, so I hope you are grateful) IMPORTANT!! =========== You must not ever try to LockPubScreen("CtrlScrn") anymore, instead use LockPubScreen(BBSGlobal->ScreenInfo.PubScreenName); if you are not opening the hbbs libraries (therefore mnot getting BBSGlobal) then check out the environment variable ENV:HBBS_ScreenName control, the nodes and all the doors have been re-compiled using the new/updated structures.h file. 24-05-1996 ========== Oh well, the alpha won't be ready for tomorrow anyway. doh.. :-) New text editor! I'm now using GoldED 3.x as my text editor as TurboText, reqtools/reqpatch and my New Cybervision64 GFX card don't get along very well.. All the icons will eventually change to using GoldED:GoldED instead of TTX as the default tool. Node ==== fixed the small line editing bug. cursor left was deleting the entire line instead of moving one char left. 16-05-1996 ========== Crikey, that's a big gap... Not been doing HBBS recently cos I've discovered London Nightlife! :-) hehee... Anyway, hopefully thing's will be back in full swing now. I'm going to concentrate on getting HBBS working as a BBS system and will have to leave alot of my really cool ideas for a later release, I just want to get to V1.0 as quickly as possible. Next full alpha release will be on the 25th of May 1996.. Mail_Write ---------- (and all other mail programs) Now reads Mail.CFG from the HBBS:doors/Mail directory, this only has two settings at the moment and these are to remove remove access to internet and fidonet mail options as I don't have time to write them yet. 29-02-1996 ========== Wow, a whole month to the day without doing a single bit of work on HBBS :-( I've not been able to do any work due to me relocating to london for my new job so sorry for no updates... Mail_Write ---------- asks if you are sure you want to abort a message 31-01-1996 ========== Free at last, well my current job has finished today, but I've got an interview for another one tomorrow. hope that goes well.. Anyway, yesterday I got my Apollo 4060 '060 Accellerator and it only half worked so it's gone back to the shop I bought it from for replacement. Basically it only worked intermittently and the scsi-2 and the fastram did not work either.. Great... But when it was working for about 5 mins I tried HBBS on it and it was mindblowingly fast, I've never seen a 256 col 1024x768 screen scroll text so fast :-) hehe.,.. for those that do not know my e-mail address has changed now, it is: dominicc@dircon.co.uk (note the 2 c's in dominicc) feel free to e-mail me about *ANYTHING*.... FrontEnd ======== added 2 new config options and changed the other option.. (so all config options are new from now...) they are: HandleToShortStr - displayed to a user when the handle they tried to use is too short InvalidHandleStr - displayed when a handle contains wildcards, ()'s ,'s or ;'s HangupCommand - what the user must type to log-off (defaults to "BYE") 25-01-1996 ========== Bollox, living in the UK sucks sometimes.. My fucking CarTax has run out and so has my fucking MOT so I gotta spend loads of money on my BMW 316 so I can actually legally drive the fucking thing... BASTARD Governments.. AAnnnnyyway.. back to hbbs.. FrontEnd ======== Has a config file which contains some strings, e.g. BadHandle, see HBBS:Doors/System/Frontend/FrontEnd.CFG AskDLFiles ========== Fixed a minor(!!) bug in that if a user had gone over their limit it would still let them D/L files.. OOops! :-) Node_input.c Node_Misc.c HBBSCommon.c ===================================== Changed a bit more so that text/screen output is faster still... it's still pretty slow, the thing that's holding it down is the routines used to conver the @^@ commands to text.. if you use the ? command from the file lister you'll see that it's blisteringly fast. but if use the 'S' door you'll see that it's a bit slow... (but still fast enough for mere mortals..) I can do the following to speed it up: queue DOOR_WriteTexts() and return control back to the door immediately (but to do this I'd have to take a copy of the data they pass to the BBS which would slow it down again, argh, I can't win..) use buffered/async IO on the screen files erm... any suggestions... (apart from code it in ASM :-) 24-01-1996 ========== FileLister ========== fixed a rather serious bug in that it crashed the machine if a file id had a long line of text in it... HBBSCommon/HBBSNode =================== speeded up some routiens so that it outputs text/ansi faster... Node (NodeMisc.c) ================= re-wrote alot of the code used to display screens (to make it faster!!) you now DON'T need to start HBBS screen files with @^@ anymore... (tho this may change in the future if I recode it.. the @^@'s are just skipped now.. 23-01-1996 ========== Sorry! ====== Note really had much chance do do stuff on HydraBBS for a a couple of weeks due to me getting a) an internet account and learning how to setup/use amitcp (which is coool) b) getting a CyberVision 64 GFX card c) buying an Apollo 4060 68060 50Mhz Accellerator for my A4000 so that I can compile stuff using SAS/C a hell of a lot quicker, d) getting about 10 new PS-X games :-) and a couple of saturn ones too! e) buying a mobile phone and f) getting 4 new hard disks and re-organizing all of my 3 amiga's with new setup's, latest software etc... Annnnyway.. back to HBBS.. -------------------------- LastCallers ----------- Fixed a few bugs in this handy util that were caused when do didn't have all the parameters (or didn't have optional ones, thanks to Radiosity for pointing this out..) 5/6/7-01-1996 ============= Loads of stuff, configurable prompts now done, check out HBBS:System/Data/BBSColours.CFG HBBS:Nodes/NodeX/BBSColours.CFG HBBS:Conferences//BBSColours.CFG I've done sooo much these last 3 days that I forgot to write in this file and now I can't remember what I've been doing apart from doing a bit more no the fr and olm doors... added a BBSGlobal->CallsEver (kinda handy..) this will be loaded/saved from the HBBS:System/Data/Private file when i implement it's usage.. oh yeah, and I added a Flags parameter to the loadconfig so just add ,LCFG_NONE to all your current calles to it, check out defines.h to see what's what.. (they were primally added so i could read ansi strings from a file into a config item, at the mo ;'s are used to denote comments, I'll have to change that to something else soon..) 04-01-1996 ========== HBBSCommon.library ================== ===================================== I T ' S C H A L L E N G E T I M E ===================================== I can't for the life of me figure out why the bloody hell my new version of HBBS_LoadConfig() causes the control program to hand the machine when it loads the HBBS:System/Protocols file. The new version of HBBS_LoadConfig() is currently commented out, and the old one is still in use (although it has several bugs fixed..) just change the comments round, re-compile and see what I mean... I've tried allsorts to see what's happening but to no avail, everything seems normal! Argh.. I hate bugs like this... Sooo, if you fix this bug then I'll give you a nice crispy 5 pound note! (if you are not from the UK then, erm, well I'll write you a custom door or sommat...) Node ==== Implemented the NFLG_CTRLC flag, if a users presses ctrl+c during a getline() then the NFLG_CTRLC bit will be set in N_ND->NodeFlags Added The variables needed to implement OLM's, checkout N_ND->OLMCount and N_ND->OLMList and struct OLMNode in structures.h and NFLG_OLMSWAITING in defines.h.. to add an OLMNode to the OLMList call HBBSNode.library's HBBS_AddOLM() function (see HBBSNode.c) there's also a few more NFLG's to look at. also note the new GetLine flag, GL_NOOLMS HBBSCommon.library ================== Added the function HBBS_SendOLM() very easy to use and works a treat too!, for an example check out ReadOLM and the OnlineMessage (OLM) doors.. OnlineMessage ============= created door, installed as OLM this door sends messages to other nodes. ReadOLM ======= created this SYSTEM door, it's called when the user is at a getline prompt automatically, it displays all the queued OLM's one by one and lets the user reply to them if they came from another node.. If you send a message from an external program you must make sure that you set up the olm so that the user cannot reply to it! :-) hehe.. SendOLM ======= this is a rather handy AmigaDOS CLI program to send OLM's to nodes, note: this is NOT a door!!! Man HBBS is cool.. do that with /X ! 03-01-1996 ========== MailScan and MailRead ===================== Wow, this is cool now.. I've finally finished off the new mail scanning part of this door. (apart from the mark as read option) prior to this version if you scanned mail, but only read a few of the mail messages the ones that you didn't read would not appear in the next mailscan, they do now! (Check Out HBBS:Mail/Users//UnreadList.CFG) HBBSCommon.library -> READ THIS! ================== really optimized and bug fixed HBBS_LoadConfig() and HBBS_LoadFile() you should find that the whole bbs now speeds up dramatically!! ReLogin ======= Created Relogin door, installed as command RL for users with access of 50 or over. And yes, the logoff scripts (see below) do get called if you use this command! (Unlike /X where you had to logoff and call back if you wanted to see updated bulletins that only updated when the logoff script was called) Node ==== Logoff scripts are now implemented, when a user logs off the following AmigaDOS scripts are executed (S flag need not be set, they are run via the dos C:Execute Command) HBBS:Scripts/LogOff.script HBBS:Scripts/GlobalLogOff.script both scripts are started with the following parameters if you want to access the users handle from your logoff scripts then use the environment variable "HNodeUser" e.g. use $HNode1User for the name of the user on node 1.. the reason usernames/handles are not passes as parameters is that they MAY have spaces in the filenames... also note the environment variable "HNodeLoginType" see HBBS:Scripts/GlobalLogoff.script for an example! Docs ==== updated the following doc files a bit HBBS:Docs/Misc/GUI.guide HBBS:Docs/Misc/Directories.guide HBBS:HBBS.Guide AddDIZToList ============ added a parameter check and writes to callers log if it has a problem.. 02-01-1996 ========== XPR === you can now resume files that you started to upload but either cancelled or lost carrier.. uploaded files are stored as /@ e.g. HBBS:Conferences/Amiga/PartUpload/BANANA.LHA@1 you must however set the xpr protocol options so that it allows resuming of files.. (E.G. Include "OR" in the protocol options, see the new updated HBBS:System/Protocols file...) FileLister ========== Woooooooooooooooooooooo, well quick now... rewrote my FGetsR() routine to be mucho quickero.. :-) FGetsR() just reads lines from a file starting from the current position and working backwards instead of forwards like the dos FGets(), hence the 'R' in the function name standing for Reverse.. I'll be putting this *COOL* function in the library soon! Also responds to a user handing up while browsing a filelist now.. added an H parameter so that you can scan the "holdlist" file of the conf you are in (Sysop's only..) works with all modes (FR,N and F) so N -2 H is cool! updated ansi when flagging files. does not clear screen at end of file anymore. View ==== fixed bugs and added sysop mode Zippy ===== same bug as filelist with the not checking for lost carrier.. fixed. also updated ansi when flagging files does not clear screen at end of file anymore.. 01-01-1996 ========== H A P P Y N E W Y E A R ! Man my neck hurts.... And I can't remember why, alcohol roolz.. FileLister ========== FR WORKS NOW!! But it's realllllllly slow as I just did a real quick'n'easy way of reading the file backwards.. It'll be speedier sooon. XPR === now checks other node's playpen dirs for existance of the file that a user is trying to upload (someone else might already be uploading it..) Pager ===== created door, installed as O command at the bbs prompt it uses 3 4 new screens that should be placed in a screens/special dir.. Page.TXT - displayed before the page reason prompt Paged.TXT - displayed when a sysop has been paged PageNoSysop.TXT - for when the chatflag is off PageCancel.TXT - for when a user cancels a page LinesPerScreen ============== created door. 100% cool and rather easy to create.. installed as LPS at the bbs prompt, or accessable from the W command 31-12-1995 ========== HBBSCommon.library ================== changed so that will read and keep config items with blank strings.. e.g. Door_Options= needed this for the UserSettings door... Control ======= updated gui (again) Node ==== made it use HBBS.font on the screen title as well.. SelectLanguage ============== updated program, much cooler now.. 30-12-1995 ========== Done loads more on the XPR door, moves cancelled files to PartUpload etc.. and some other bits and bobs.. Control/Node ============ changed all LCFiles references to PartUpload as LCFiles will not be used.. CHANGE YOUR CONFERENCE CONFIGS! MoveFile ======== now accepts a NOUSER parameter, if specified it will not display anything on the screen 29-12-1995 ========== anyway, I'm tired now and want to go to sleep.. to many l8 nights coding away on this... It can't be good for me.. Mind you, I saw ace venture 2 today and that was quite a good film.. XPR === re-wrote most of the XPR door, it now does things much better are more structured and doesn't guess at strings to figure out of files have been transferred ok! :-) it now builds a linked list of files transferred (one for ul's and one for dl's) and checks them at the end to find out what's what.. MailReply ========= Fixed a (small) bug in this door that caused it to crash on my A3000, but not on my 2 other computers making it a pain to track down... turns out I was going strcpy(Msg->To,Msg->From) instead of FreeAndSet(&Msg->To,Msg->From)... caused memorylist corruption.. 28-12-1995 ========== did sod all on HBBS today, first time for ages.. :-) 27-12-1995 ========== didn't do much today, tiedied a couple of bits and bobs up here and there did a bit more on the mail and xpr doors.. the caller and calls today on each node's "Info" window now work 100%, but I have got to make it read in the callers log so that it shows who the last few callers were when you close and node and then restart it.. 26-12-1995 ========== Had a bit of a bugfixing day today.. UserSettings ============ This door is set up as "W" at the bbs prompt.. Man, is this door cool.. with /X you could either get the W command to bring up internal /X settings config program, or you could make it display a menu of what you wanted to change (i.e. AquaSettings) But with this COOL command you can specify what all the options on one screen! Check out HBBS:Doors/User/UserSettings/UserSettings.CFG. Icons ===== updated all the .info files to cool magic WB one.. Control ======= fixed a few memory leaks updated it to use some new library routines added a new parameter to BBSGlobal, CopyBufferSize (see docs) HBBSNode.library ================ added HBBS_AddToCallersLog(string), rather handy, it writes the date and time automatically too.. Node ==== Made it write to the callers log.. need some options to make it ignore local logins etc.. tho. HBBSCommon.library ================== addd more routines, changed a few more, added (even) more error checking to some routines that deal with mem [de]allocation. Docs ==== updated the BBSGlobal.guide file.. 25-12-1995 ========== Yes, I was programming HBBS on christmas day, well it was better than sitting down stairs with the parents watching the fucking queen's speech. It was much more fun sitting upstairs listening to a bit of "Green Day", "Offspring", "Speedy J" and many other cool artists! XPR === fuck.. actually it still doesn't work :-( Doh.. I could have sworn it was working yesterday 100%, but no you still get timeout errors when it writes to the disk :-( Not fixed it yet tho.. FileList ======== Man, is this door cool! F and N work 100% pure coolness.. Zippy Search ============ well, my brother wrote this rather nice door. most of the code was nicked from my own doors tho :-) hehe Tag File ======== Prints CR's after files that have not been found now.. AccountEditor ============= this is working better now.. It also tells the user at the other end that the sysop is editing your account details.. It also reloads the access levels in when you quit it.. JoinConference ============== added another system option to it, "REJOIN" and have set up a command called RJ so you can rejoin a conference if you wish to see bulletins, etc.. --> requested by Cruise! HBBSCommon.library ================== added lots of routins for converting between dates and back to strings.. see the FileList door for examples! CheckFiles ========== now checks names of uploaded files (can't start with a '.' and can't be more than 12 chars long.. if they are it'll prompt you.. 24-12-1995 ========== XPR === yeah, it's working, and without buffered io, (but I'll still implement this..) I'm using zprzmodem.library 3.0 and USRSerial.device and it works a treat! Node ==== screen/window information is now saved in /Screen.CFG rather than HBBS:System/Data/Node_Private.CFG that way, if you delete a node, you delete it's associated data files too 23-12-1995 ========== XPR === the words AAAAAAAAAAAAAAAArrrgghhhh! spring to mind when thinking about this F**king door! it sends files fine, but can I get it to fucking receive files ? Can i FUCK as like.. it all seems to boil down to the xpr_fwrite() function.. if i make it return(Size * Count) then you don't get *any* timeouts or anything even when the CPU's loaded! but if I make it return(Write(FileBuf->FH,Buffer,Size*Count)); then it just makes xpr_sread() timeout!! Argh! So I'm going to have to nick some buffered/async disk IO routines from somwhere... the annoying this is that the XPRD program does not have any buffered IO and works fine... Argh!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! HBBSNode.library ================ fixed SerWriteStrWithTimeout() Node and Nodes/NodeX/Device =========================== added a config option called NullModemCable, if set to true then you can connect another computer to your computer via a serial port and connect to hbbs from that.. :-) Coooool! to get hbbs to connect, just press return on the other computer! today I've just done sooo much to the bbs, mainly tidying stuff and fixing things! 22-12-1995 ========== changed DOOR_GetLine(), it's not SUPERCOOLFABANDWHIZZO! :-) 21-12-1995 (PM) =============== XPR === added GUI and window, updates fine.. still have to make it refresh when you un-zoom the window! Node ==== Updated GUI, added more buttons on the NodeSettings window implemented N_ND->DoorContinue. HBBSNode.library ================ implemented DOOR_Continue() (causes further doors not to run if a door sets this to false) AskDLFiles ========== made it use DOOR_Continue Download ======== made it aware of AskDLFiles's DOOR_Return() setting Control ======= added EditorCMD to BBSGlobal Config. updated GUI 20-12-1995 (PM) =============== XPR === tiedied somemore. in testing this has hung a few times, more testing required Node ==== changed a screen commands, (Ratio is now BRatio) and added FRatio for Bytes Ratio and Files Ratio respectively added a COOL function for creating cool menu prompts.. MenuPrompt() fixed a rather silly bug in DisplayScreen() it wasn't unlocking files if there were 0 bytes.. i was trying to unlock and filehandle rather than a filelock (confused vars FL with FH) :-) HBBSNode.library ================ added the function DOOR_MenuPrompt() pass it a string with the first letter of your options enclosed in square brackets ( []'s ) and hbbs will auto convert the string to cool colours and print it out for you! you can also pass it a default char so that it causes one option to be printed in bold. e.g. DOOR_MenuPrompt("More [Y]es, [N]o :",'Y'); currently everything is printed out in white except the brackets which are printed in yellow, the Y in the example above would be printed in BOLD text this is a cool function for providing a standard menu prompting scheme that can be used through out the bbs. I'll be adding parameters so you can change the colours, don't worry :-) Mail_Write ========== added a stack of options that you can select when you are creating a message also updated the messagebase stuff so that you can set an access level for a message. started creating a config structure for the mail doors to use. (this way the users can have thier own configuration for all the mail doors to use, it'll be stored as HBBS:mail/users//mail.cfg. Mail_Scan ========= updated to use the access level and door_menuprompt. 19-12-1995 (PM) - 20-12-1995 (AM) ================================= XPR === **Loads** more work done, it's all set-up and running withing the bbs environment now. It's interesting to note that term 4.5 comes with xprzmodem.library version 2.58, I had 3.0 and the latest is 3.51. 3.51 causes term and ncomm to software fail when transferring between each other and the nullmodem.device 2.58 just sits there and timesout. and 3.0 works fine.. :-) ut I've got no docs for that version :-( I tried my xpr implementation with a some other xpr libaries, it only worked with zmodem and zedzap libs so far.. I have to do more tests. the otherlibs may require some of the xpr 2.0 extensions, I've only implemented 1.0 so far.. Transfer ======== Updated to cope with the XPR door SelectProtocol ============== defaults to protocol 1 instead of waiting for user input if they type in some shite the first time they are asked Mail_Scan ========= more stuff done HBBSNode.library ================ added two more routines, FindConf() (returns a confdata structure of the users current conf, or if they are not in a conf yet it'll return a confdata structure of the last conference they were in... ValidConfNum() returns true if you pass it a valid conference number (index starts at 1) 18-12-1995 ========== YESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS! Finally At Last! Whay!! (if you couldn't tell, I'm Excited!) XPR === Implemented! 17-12-1995 ========== Fuck! It's amazing how much work I've done over the last few days! :-) HBBSCommon.library ================== fixed a COOL bug in the AssignOK() routine in that say you had a HD with a volume name of "A3000_DH0:", it's device name being "DH0:" and you set a (say) upload path to somewhere on DH0: AssignOK() would incorrectly return FALSE! Oops! CLIProtocol =========== correctly returns errorlevel of door in N_ND->DoorReturn Transfer ======== deducts creds for files for that are downloaded successfully Node ==== Loads moe stuff changed, fixed and updated Control ======= ditto Mail_Scan ========= even more work done, this door is all but finished, implemented the mailscan lastread pointers (saved in HBBS:Mail/Users//MailScan.CFG) now supports a 'M' for mark as read, so you don't have to sit through millions of useless old mail the sysops seem to leave around (not that they will with HBBS, because messages can be set to expire! :-) Mail_Read ========= supports reading a list of mail messages, the list is created with CreateMsgList() and then saved using SaveMsgList() Mail_Read then read this list back in again and will let you read all the messages in the list. this is a really amazing feature, because you can then write another door to search the mail database for keywords, and build up a list of messages that you can then pass to Mail_Read which then let you read them! COOOOL or what ? Mail_Write ========== more work done, still needs a bit doing to it (you can't attach files yet!) CheckTags ========= changed to cope with the new updated Tag_File door (below) also changed the ansi and it looks much nicer now! Tag_File ======== actually checks for the existance of files now... :-) AskDLFiles ========== door (re)created fromm scratch, it works fine, needs more work doing to it, it's just functional now.. :-) (mind you, it looks pretty tho :-) 16-12-1995 ========== Node ==== Added CLS,PAUSE,ECHO and DOS as door types! :-) (for CLS to work, the _door option must also be set to CLS) Mail_Scan ========= Scans for ALL and EVERYBODY messages too Mail_Reply ========== created door, works ok! Editor ====== now appends to existing files is the LOAD parameter is specified FrontEnd ======== won't allow users access who's accounts have been disabled (status of 'L', for login's denied) 15-12-1995 ========== FrontEnd ======== Automatically logs in the a new user if the newuser door created an new account ok. NewUser ======= Revamped slightly. Mail_Read ========= added a continue prompt on long messages can delete mail now HBBSNode.library ================ Added a DOOR_ContinuePrompt() routine 14-12-1995 (PM) =============== MailRead ======== Very quick version done. Cannot be called from the R command yet, only the mail scanner can use it so far.. 13-12-1995 (PM) - 14-12-1995 (AM) ================================= Today has been a bit of a tidy-up day with lots of little (but important) things being done. Access Commands have been implemented (but only 10 access settings are loaded, of which only one is used (see the Status door and access command "AllowStatus") Check out HBBS:Access/#?, /Access/#?, /Access/#?. access data is updated when you a) login and b) change conference. This is actually a major thing beleive it or not... I'm surprised I've only just had to code it now... Also added a few new routines to both the libs (HBBSCommon and HBBSNode) hbbs also sets an env: variable called HNodeUser to the name of the person who's currently logged in. if no-one is logged in the variable will not be present the cool logoff screen is created using scripts and cli programs, see HBBS:Screens/Special/Logoff.txt HBBS:System/Amiga/CLI/ByeScript HBBS:System/Amiga/CLI/Figlet/#? (figlet just converts ascii text to large fonts made of ascii letters) Isn't hbbs wonderfull ?? :-) Node ==== F6 and SHIFT+F6 work now! AccountEdit =========== Right then, I've created this (smallish) and very unfinished door so that you can modify accounts by pressing F6 when a user is logged in. you can also run this from the command prompt, I've set it up so only users with an access level of 255 can do this. to run it just type "Accounts" at the prompt 12-12-1995 (PM) - 13-12-1995 (AM) ================================= DAMN I'M COOL.... Mailscan ======== Works a treat, implemented the little prompt so you can call the "mailread" door now. it seems to be working 100%, even has nice special ANSI effects! MailWrite ========= Whay hey hey! Now we're cooking! This door has come along in leaps and bounds this evening.. It now writes mail to people! Hehe, it even handles multiple user mails (e,g, messages with more than one recipient) currently it does not do anything with internet/fideonet messages it does not let you select any flags, or attach files orlots of things actually, but hey, it works.. And I love it when doors compile and run first time after you spend 4 hours coding it.. :-) oh, and you can wipe-out all the files in a mail dir and hbbs won't complain, it'll just re-init everything for you automatically.. Editor ====== it had to happen sooner or later... A line editor! Yippie! Well, this is in a very early stage at the moment, it took me all of about 2 mins to write this one... it's also more of a "creator" than "editor" at the moment too :-) p.s. did you notice that I've not started the "readMail" door yet :-) 7-12-1995 ========= Bollox... Life still sucks, aquafresh is sitting here next to me playing Sega Rally on my saturn, and he's quite shit at it :-) hehe.. Anyway, erm.. MailScan ======== Done more work, it's coming along quite nicely (still) 6-12-1995 ========= Well, life's still fucked today. The new fucking stereo for the car's gonna cost 300 quid, i need a new fucking head gasket for the engine, at another 300 quid. Then I need to replace a camera at 35 quid, and a personal stereo at 50 quid, followed by a new thermostat for the car at 20 quid followed by a new stereo surround for the car at 40 quid and 100 fucking quid for a new window in the car. FUCK Anyway... 5-12-1995 - The (Extremely) Bad Day =================================== ------------------------------------------------------ Warning - This Section May Cause Viewers Some Distress ------------------------------------------------------ Fuck Fuck Fuck Fuck Fuck Fuck Fuck, how bad can my life fucking get.. My car was broken into tonight, and I've just had the window broken, £300 quids worth of car CD player, 2 cameras and my personal stereo all fucking nicked. If I catch the bastard who did it I'm gonna rip his fucking head off, shove a 20000 volt mains cable up his ass and drop a bloody piano on his bollox. Today started badly when I noticed that a collar button had fallen off my shirt. Checked the mail, "Argh!" A letter from the bank saying "Please pay in 762 pounds into your account within the next 10 days", "Great" I thought. When I got to work ten mins late, all the fucking users rang me up saying "I can't get into vista" because the supposed "patch" from DEC had made the VT320 emulator even WORSE, then I couldn't send a fucking fax from the fax machine as it would not do 40 page faxes, the paper just jammed. So I tried using windows 95 on my pc to send a fax via my 28.8k courier and all it says is "Fax Transmission Inturupted", Great Fucking Help that is. So we try another PC, it then comes up saying "Intermittent memory error" and fucks itself. So that pissed me off, then we got a new printer in and we couldn't plug that into the fucking machine it was supposed to plug into as it came with a parallel interface rather than a serial interface. Then the pathworks license allocator would not fucking work so all these PC's could not map their "E:" drive to the (crap) VAX. So I had to spend 3 bloody hours fixing that. Then I came to set up my own spare PC and would the hard disk parition itself ? Would it fuck as like.. So, i then got another HD slapped that in all fine, copied about 200MB of warez 2 it. By that time it was about 7:30pm so i thought "I'm off now.." Went to my car, noticed the light in the glove box was on and I thought to myself "I'm sure I shut that when I came back from lunch", Went to open the door of the car and noticed the window had been smashed and my fucking new car cd player had ben nicked! Not only did they nick my car CD player, but they nicked my new "Alannis Morissette" CD I bought YESTERDAY! That was still in the cd player from lunchtime. Argh! Now it's started snowing (it had to snow the day my car has no fucking glass in the window of course, couldn't snow the next week could it, no, even the fucking weather has it in for me today), So it's fucking freezing and I've got to drive 8 miles home with no window, so I sat in my car freezing my nuts off all the way home. After I get home, I turn my Pentium PC on to copy all the warez from my spare PC, and after a moment i notice that it's making a rather loud sound. Fuck, the cables have just hit the fan that sits ontop of the pentium chip. Fuck you INTEL, why did you have to design such a shite processor! Then I checked out my "Home Contents" insurance to check wether my car stereo comes under it, and NO, course it fucking doesn't. FUCK. Damn this stupid fucking country. I couldn't afford "Fully Comprehensive" insurance earlier in the year because no insurance companies would do it as I'm 21, have a BMW 316 and haven't got any "No-Claims" bonus. The fucking insurance cost nearly as much as the car did. After all, the car was made in 1983 and I bought it for 750 quid but the insurance still costs 500, third party only (not even fire and theft..) CUNTS, I HATE LIFE IT, SUCKS, WHY DO WE HAVE TO WORK FOR A LIVING, I JUST WANT TO SIT AT HOME PLAYING SATURN/PSX/NEO-GEO/3DO GAMES AND CODE ON MY AMIGA, WITH A BOTTLE OF MALIBU SITTING NEXT TO ME, WITH AN ENDLESS SUPPLY OF PC'S I CAN KICK THE SHIT OUT OFF FOR BEING SO DAMN CRAP. FUCKING COUNTRY. FREEDOM, BOLLOX I SAY. Oh, and I've not done a fucking thing on HBBS today either. 3-12-1995 ========= Created the "Download" door modified transfer door to (temorarily) handle downloads Common/Structures.C ------------------- modified Struct TaggedFile (removed ExplicitPath and added WarezFile) done more work on the mail scanner CliProtocol =========== Removed banner Control ======= fixed bug in loading data from "HBBS:System/Protocols" file it was looking for "UNIDIRECTION" or "BIDIRECTION" but the data file had "UNIDIRECTIONAL" and "BIDIRECTIONAL"... (note the "AL" on the end!! whoops!) 2-12-1995 ========= done more work on the mail scanner 1-12-1995 ========= Oh shit, Time's running out, it's that festive season again.. Node ==== Fixed bug with SetWatchTitles() that would still try and set the window and screen titles of the watch window even if it was closed.. (caused system crash) N_ND->ActiveDoor->SystemOptions is always allocated, this would have been a null pointer if an _param_xx= was not specified, which caused problems for doors that do not check for a null pointer.. It also makes the door coder's life easier (but not mine) as it's one less thing they have to worry about. Done loads more on the mailscan door this evening too.. 29-11-1995 ========== Yeah! Another 2 months at macmillan.. Coooool. Loadsamoney.. No Erm, back to life and hbbs and that kind of thing.. !NewDoor/Main.C =============== set default stack size to 16k, this is because if you call many routines in the shared library (hbbscommon.library) you might run out of stack space causing spurious errors at random places due to memory corruption. All_Levels (access file) ======================== Setup "C" and "EMAIL" doors to use the "write_mail" door (see below..) note the use of _Param_1= Mail (note: as of today none of this works, I'm just laying the groundwork for it..) ==== Created all the dirs for the mail sub-system. HBBS:Mail/Public HBBS:Mail/Users HBBS:Mail/Sysop HBBS:Mail/Groups HBBS:Mail/Groups/LSD (for use with example setup, see BBSGroups in BBSGlobal) HBBS:Conferences//Mail from the above you can see that there are a few places for mail to reside. each user will have a *private* mailbox, they have a directory in HBBS:Mail/Users the dir name is the same as the users ID (not handle) e.g. HBBS:Mail/Users/1 the sysop has his own private mailbox (as well as a user mailbox) in which stuff like sysop comments are placed there is a public dir, any mail in here is scanned by all users everytime they login, this is where system ealls go each conference has it's own mail dir, this is where conference related mail goes it can be addressed to individual users or ealls, e.g. this is where you'd tell all your amiga users to download a new amiga release, rather than creating an eall in the public mailbox then you have group mail, a user can address a mail message to a particular group group mail works on a sort of bulletin board principle, a tag for each user having read a message is saved so they dont read it again. mail will have expiry dates! (yeah, ok, all you sysops fed up of asking users to delete thier mail can line up in a queue and thank me one at a time!) Write_Mail ========== Started writing this door now, just creating some routines that will be put into hbbscommon.c at the moment, like things for checking a list of user handles passed to a function via a string, it then checks the usernames are valid, and passes them, as well as the id numbers, back to the user as well as a return value. (true, false) See HBBS:Source/User_Doors/Mail/Mail_Common.c for some interesting info on how mail messages are made.. 28-11-1995 (AM) =============== Just got back from watching the new james bond film "Golden Eye", if you've not sen it yet then do so now! It's cool... Total Blast Fest! Why do I do this ? It's 01:36 am and I'm sitting here coding... !?! Still, Sega Rally on my saturn is COOL, got it on saturday so spend most of saturday evening with 4 m8s playing it on it's split screen mode. Gfx wise it's just as good (if not better) than ridge racer on my ps-x... Control ======= Checking some enforcer hits caused by a missing conference directory. It turned out it was caused by the routine HBBS_DoErrorMessage() in HBBSCommon.library when it was passed a null pointer for the errormessage HBBSCommon.C ============ Fixed enfocer hit in HBBS_DoErrorMessage() Node ==== Calls "CheckUser" system door to check that the users account is ok. the users setting for language is not used. .TXT is NOT automatically appended to a screen name. If a user is not vaid (i.e. not logged in) then the first language defined in BBSGlobal will be used. See HBBS:BBSGlobal, LanguageExtn and LanguageName. SelectLanguage Door, New User Door, CheckUser Door and Node_Input.c - DisplaySpecialScreen(). CheckUser ========= Door Created Checks all the users userdata is current and valid. Can be used to check for stuff like sentbys. Currently only checks selected language and conference are valid. SelectLanguage ============== Displays a list of languages availiable to the user and lets them pick one 23-11-1995 (PM) and 24-11-1995 (AM) Alpha Release 03 ==================================================== Argh, It's 1:54 am and I need sleep... I'm just about to lha this up now then I'm off to bed... L8rz... Ok, the main things that have been done between this alpha version and the last one is the handling of uploads. File ID's are now extracted and added to file lists.. (p.s. I've not included ZIP,UNZIP, LHA, TXTExtract, DMSDescript, GIFDesc or any other util used for handling archives or file ID's as you should already have these, I will however release them with the full version of HBBS) Oh, and I noticed that HBBS has been spread around many BBS's, i don't want HBBS being spread in it's current form (i.e. unfinished), I'm only releasing it like this to other possible sysop's and door coders.. It *may* be spread to all coders/sysop conferences however.. But not to general Amiga Warez conference... And woe-betide anyone who uploads it to Aminet!! Just so you know.. I've put some small files in HBBS:Nodes/Node3/PlayPen/T for you to test the uploads with. copy them into the nodes playpen when HBBS tells you to copy files to the playpen Have fun now.... Node ---- Now Supports 2 new door types. these are: SCREEN : just displays a text screen (pass the full file name as to _Door option) SSCREEN : displays a Special Screen (pass just the screen name with a path and without an extension as the _Door option.. E.G. 1 QS_Type_1=SSCREEN QS_Door_1=QuickStats typing QWS at the bbs prompt will force hbbs to look in the conference's screens/special dir for a file called "QuickStats." (e.g. QuickStats.TXT), if it's not there it'll look in the node's screens/special dir followed by hbbs:screens/special.. E.G. 2 QS_Type_1=SCREEN QS_Door_1=HBBS:Screens/Misc/QuickStats.TXT typing qs at the bbs prompt will force hbbs to display the file above.. HBBSCommon.library ------------------ HBBS_LoadConfig() does NOT call HBBS_LogError() when it can't open a config file anymore.. If you have optional config files then you get rather large ErrorLog files. I might make it off-onable tho.. Let me know if you want it ? *I* AddCreds -------- Door Created! You should notice the stats going up a bit for uploaded files.. Also...., Get this: I've built in a little auto-award part to this door, check out the file HBBS:Doors/System/AddCreds/AddCreds.CFG basically you can get AddCreds to automatically add extra (or even remove) credits for a particular file or files. As Always, Amiga Wildcards are supported so you can have: AwardFile_1=LSD#? AwardOpts_1=*3 or AwardFile_2=PGS-ZD.LHA AwardFile_2=+2000000 You get the jist... (it supports +,*,- and / options ) Cool, isn't it ?? MoveFile -------- Created Door it basically moves a file from the playpen to a HOLD, BAD or UPLOAD dir. I wrote this at about 1:20am and I need some sleep now so I've not had change to test it much, although it appears to be working ok.. If it give you greif then remove the door from the "System" door list.. It does however check for validated disks, free disk space and valid assigns, something that /X NEVER DID!! :-) But hey, that's a suprise right! NOT!!!! If it cannot move a file then it'll attempt to put it in HBBS:LostFiles and will tell you so (also logs this in HBBS:ErrorLog) 22-11-1995 (PM) and 23-11-1995 (AM) =================================== CheckTags --------- Nothing changed, just a reminder that you can use all wildcards here.. so #?.l??, *.ZIP or even ~(#?.LHA|#?.LZH) (the last example would clear all tags that did not end in .LHA or .LZH just if you didn't know what the ~, | or () things did.. :-) Amiga wildcards rule... Node & HBBSNode.library ----------------------- The MaxLen option of HBBS_AdvancedGetLine() works ok now.. (yeah!!!) for an example, upload a file with no File_ID.DIZ, the ModifyDIZ door uses this function.. File ID related doors --------------------- Updated bits and bobs here and there... looking much more like it now.. System/FileID ------------- There's now an option called Add_RenameDIZ_n=TRUE|FALSE option for each file type.. I was thinking of making the lines in the file be the format n_OptionName=blah rather than OptionName_n=blah what do you think... 20-11-1995 (PM) and 21-11-1995 (AM) :-) ======================================= HBBSCommon.C ------------ Added HBBS_SaveFile(), it saves the ln_name items of a linked list to a text file. Needs more error checking added to it. For an example see "hbbs:source/doors_system/checkfiles/Main.c" FileList -------- Changed output of ansi a bit recognises the P id. ExtractDIZ ---------- Created work/.ADD as well as work/.DIZ now. the former is the file that gets stored in the archive as the file_id the latter is what is added to the file lists.. (it ADDS file_id's as well as extracts them now..) AddDIZToList ------------ This now works fine.. I'll have to make it read the following files before it adds a diz.. work/.DIZ work/.MISC stuff like sysop comments, sent by etc are stored in the .MISC file in the format of the file list. 19-11-1995 ========== Just a reminder, if you want to test the upload door using something like Zmodem from your terminal program, then load it up, make sure you are using Node 3, set your terminal programs serial device to NullModem.device (instead of serial.device) and set the unit number to 7. Then make sure node 3 is running the await connect door. If so then just type ATD in your terminal program, press return and after a few seconds it should connect to the BBS! Whay.. Then log in as normal and just type out the "U" door... Distribution archives are now called HBBS-A??.L?? the first .LHA file is renames to .LHA to stop /X systems skipping it due to the archive being a multivolume archive. Common/Stuctures.c ------------------ Added Various items to various structures, you *MUST* re-compile *all* of your programs that #include this file. Node ---- When waiting for a call, Pressing F8 to switch between window/screen now causes the "await" (await connect) door to re-display the await.txt screen Added a MaxDIZLines to the node settings. (N_ND->NodeSettings.MaxDIZLines) N_ND->MaxDIZLines defaults to the above setting when the node is reset. JoinConference -------------- Modified so that it copies N_ND->CurrentConf->MaxDIZLines to N_ND->MaxDIZLines when you join a new conference. Skips conferences that a user doesnot have access to when they use > or < at the prompt If they are a NEW user then the conferences that they do not have access to will notappear in the list If they are NOT a new user but don't have access to a particulat conference then that conference will show up in RED. CheckFiles ---------- removed checking of sysop file and loading diz. moved LoadDIZ to a more generically usefull function called HBBS_LoadFile() and placed it in HBBSCommon.c changed references from Ask_UL to Conform_UL HBBSCommon.c ------------ Added HBBS_LoadFile(), loads a file into a linked list, one line of text for each node in the list. free output with FreeStrList() get items with HBBS_ListName() etc.. Rather handy i thought... AskUl ----- Renamed to ConfirmUL to avoid confusion between AskUL and AskULFiles (yet to be created) 14-11-1995 ========== Released alpha version 02 onto digital candy this morning. FileList -------- Sucessfully calls the "A" door to tag files 12-11-1995 Alpha Release 02 =========================== Heheh, well, I didn't get my arcade machine yet, still waiting for it to arrive, but I did get a sega saturn last weekend, so most of this week has been spent playing on that and watching various films like Under Seige 2, Clueless and Apollo 13.... Sorry people! Oh well, atleast I got loads of work done on it this evening... it's 10:00pm now and I started at 5:00pm so I think I've been productive today.. Tomorrow is cinema day (cheap day!) so I doubt I'll get much done then.. The distribution of this (alpha) version if done by multi-volume LHA archives now, each file will be called HBBS-A.L?? e.g. HBBS-A01.LHA HBBS-A01.L01 HBBS-A01.L02 Door coders should set their program's stack to 16384 (or thereabouts) if they are going to spawn other programs themselves (using HBBS_RunDOSCMD()) to do this use LONG __stack=16384; somewhere just after your includes.. AskUL ----- Door Created, all working OK.. Await Connect (Door) -------------------- if Await.TXT is found in a screens dir then it does not display the list of function keys to you. (i.e. you're supposed to have them in the .txt file) Created a nice little Await.TXT and stored it in HBBS/Screens/.. Special/Ansi/Await.TXT Common/Strings.c ---------------- added str_CSI_SF1-10 for shifted function keys System/FileID (Config File) --------------------------- changed @?@ codes to {?} codes (like the menu prompts use..) don't forget to use options like lha's -m for other diz extractors.. ExtractDIZ (Door) ----------------- Actually extracts the file id's now... *** Door not finished, until futher notice you must specify all options in the System/FileID file for each type of file to prevent errors Node ---- You now have to press ShIFT+F10 to log a user off instead of just F10 which is safer, no more accidental logoffs Runs a system door called Speed_ after frontend. (still displays the screen too...) You can press F4 to re-display the await connect screen 2-11-1995 ========= Doh, I'm slipping, not been doing any coding for ages again, it's this damn new playstation games that I've bought.. :-) Too many games coming out on it now! Oh nooo!! I just remembered, my new *arcade* machine is arriving next week complete with magic sword, gryzor, rygar and snow brothers P.C.B's.. That means at least a week of no more coding... ExtractDIZ ---------- Did a bit more work on it.. It's getting there... 24-10-1995 ========== ExtractDIZ ---------- Created door, not finished in today's session.. It will be a dual function door that will ADD and EXTRACT/UPDATE file id's from/to uploaded files... you specify the mode using N_ND->ActiveDoor.SystemOptions AwaitConnect ------------ Added F5, Toggle Modem Debug Who --- Changed ANSI Wall ---- Changed ANSI Added a line of -'s to the top of the screen before the wall lines are printed only adds lines to the wall if the line is 4 chars or more CheckTags --------- Re-Wrote most of the CheckTags door. It's now LOADS smaller, and much more optimized It does not call the Add_Tags door once for each file the user wants to tag, instead it calls it once with all the files to tag as parameters Added help to it fixed all bugs with old version (due to re-write..) it now will ignore spaces before,between and after parameters. (other door writers should take note of how this is done, check out the source..) 17-10-1995 ========== Created CheckFiles door, created CLIProtocol door uploading to the node's playpen now works! Modified the protocols a little bit (see struct ProtocolNode in structures.h) 11-10-1995 ========== Control ------- Removed enforcer hit when "control" closes. Node ---- Node's now save their screenmode preferences to hbbs:system/data/nodex_private.cfg to save a node's window position and screenmode click the "Save Windows" button on the node's settings window. Removed enforcer hit after a node shuts down. NewUser ------- NoNewAt_.TXT works HBBSNode -------- Added DOOR_PausePrompt(char *prompt) to the library. it does the same as a @^PAUSE^@ command in a screen file... Ahh shit, not worked on hbbs for 2 weeks. At this rate it's never gonna get finished! 25-09-1995 ========== Wrote the Select_Mode utility (HBBS:Utils/Select_Mode) Changed the "SetupAssigns" script. The docs (BBSGlobal.Guide) have not been updated yet! The current mail doors (MS, R, E and C at the bbs prompt) will be scrapped as my (little) brother wrote them and they're shite and full of memory leaks! Check out HBBS:Docs/Doors.TXT for full explanation of how each door works! (note, I've just started working out how the new mail doors will work) Control ------- Moved scr#? options from BBSGlobal to seperate file The Save Button on the Config window now works! Node ---- The scr#? settings in NodeGlobal and NodeLocal still work, but they will also be moved to a seperate file soon! You can now have a door type CLI as well as NORMAL in the Command list files (HBBS:Commands/System), e.g. FrontEnd_Type_1=NORMAL FrontEnd_Door_1=HBBS:Doors/System/FrontEnd/FrontEnd.HBBS FrontEnd_Type_2=CLI FrontEnd_Door_2=HBBS:Scripts/CheckMem The "Checkmem" program above is a normal amigados program. note: the node number is still added to the programs arguments, as are the BBS Prompt commands! (great for shells eh!!) CheckTags --------- you can go "A *" to clear all file tags at the BBS prompt added a few more printed messages HBBSCommon.library ------------------ FreeStr() now actually sets the variable being freed to NULL regardless of a call to freevec()