diff --git a/mystic/HISTORY.txt b/mystic/HISTORY.txt new file mode 100644 index 0000000..231c89c --- /dev/null +++ b/mystic/HISTORY.txt @@ -0,0 +1,3783 @@ +.---------------------------------------------------------------------------. +| Mystic BBS History Documentation Versions 1.05 through 1.10 | +`---------------------------------------------------------------------------' + + ! = Bug fix + + = New or changed feature + - = Removed + + Note: Not all changes have been documented here. I try to keep a fairly + accurate list of changes, but there are many times when I either + forget, or just don't think its important to document a change. + +.-----------------------------------------------------. +| May 2nd, 1999 -> Mystic BBS Version 1.05 - RELEASED | +`-----------------------------------------------------' + + ! Mystic was not updating the user's total message posts if they were + posting via a REP offline mail packet. + + ! Mystic was not pausing on a screen full when displaying a text file! + I was testing some code right before the 1.05 release and I left the + page pausing stuff commented out. Duh... =) + + + Mystic now allows message bases to be defined as "mandatory" in the + scan setting. This means that users will never be able to toggle the + base off in their scan settings. + + ! When executing an MPE program, the arrow key functions would stop working + after a call to the MenuCmd procedure. + + + Mystic now displays "None" for the user's current message and file base + if they have never selected a message base instead of just blank spaces. + + + New MCI code: IL. This code returns either ON or OFF depending on the + user's node invisibility status. + + + Mystic now allows file bases to be defined as "mandatory" in the scan + base's scan setting. This means that users will never be able to toggle + the base OFF in their scan settings. + + + New command option for the MN (Message New Scan) option. When supplying + /M on the command line, the MN command will only scan bases that are + tagged as mandatory ("Always"). I will probably be re-writing the + MN and FN commands completely sometime in the near future... + + ! The percentage bar in MIDE would get corrupt when compiling a .MPS file + larger than 32,000 bytes. Fixed! + +.------------------------------------------------. +| June 9th, 1999 -> Mystic BBS v1.05a - RELEASED | +`------------------------------------------------' + + ! Fixed a bug in the Message Base Editor of MCONFIG.EXE which caused the QWK + Index to get corrupted. This caused QWK packets to be corrupted when + created via Mystic BBS. + + ! Fixed a bug in the File Base Editor of MCONFIG.EXE. The Default New Scan + field was not allowing file bases to be set to "Always Scan". + + + The full screen editor quote window now saves the current text position + after quoting, and will resume at that position if a user opens the quote + window again. + + + In the user editor, the [ and ] keys now wrap around to the first/last + record into the user database. This makes things a little easier... + + + The search function in the user editor now allows a record number to be + entered. If a record number entered, Mystic will automatically jump to + that record. + + + Added a new menu hotkey: TAB. When "TAB" is entered as a hotkey, the + menu command will be ran when/if a user presses the TAB key. + + + The DF mci code in language prompts can now have text after it. After + a DF is encountered, Mystic will look for a space or the end of the + prompt. For example, "|CL|DFhello more text here" will now be displayed + as expected. + + + Added four new menu command hotkeys: RIGHT, LEFT, UP, and DOWN. These + only work in non-lightbar menus and are used to detect arrow key input + in standard menus. + + ! Fixed carrier detection problems in the OS/2 native version. + + ! MIDE.EXE and MPLC.EXE were not always catching undefined variables in + MPS source code. + + ! When using the Matrix login system, if the Matrix menu was not found, + Mystic would loop over and over printing: "Menu not found. Loading + fallback." Mystic will now exit with an error if the Matrix menu is + not found. + + ! Other stuff... =) + +.------------------------------------------------. +| July 6th, 1999 -> Mystic BBS v1.05b - RELEASED | +`------------------------------------------------' + + + Added new DOOR MCI code: %0 passes the com port handle for Win32 and + OS/2 versions only. + + ! The Win32 (and possibly the OS/2) version was displaying the message + date incorrectly in JAM message bases. + + ! When executing a MenuCmd function from an MPE, the arrow keys would + stop working after the MenuCmd. This was just fixed in the past version + but I commented the fix for it out by accident when I recompiled the + 1.05b executables. + + + The -F menu command now allows multiple flags to be manipulated instead + of only one flag per menu command. See MYSTIC.DOC for more information! + + + Added a new display file: EMAILHLP.XXX. This file is displayed when the + user enters "?" while reading e-mail messages. + + + Added a (Q)uit option to the first screen of the group editor. + + + When in the message and file base editor, Mystic will now redisplay the + list of bases if enter is pressed at the prompt. + + ! It was rumored that ALT-U would drop carrier on a user. I wasn't able + to reproduce this problem, but hopefully it has been fixed. + + ! The ALT-U (upgrade user) command was not upgrading a user's time when + their security was changed while online. + + + If @S is found in a menu's display filename, Mystic will replace it with + the user's security level. For example, a menu's display file of + MAIN@S will translate to MAIN20 if the user has a security level of 20. + If MAIN20 doesn't exist, Mystic will strip the @S and use the base + filename (ie, MAIN in this example). + + + Bad password attempts now log the user name as well as the password + entered. + + ! Mystic was not executing events if the execution time passed while a + user was in a door. Now Mystic should log the user off immediately + after returning from a door (if the event is forced) or wait until the + user logs off (if the event is NOT forced). + + + The default screen length during a new user login is now configurable + in System Config -> General Configuration. Prompt #153 has been changed, + as well as prompt 372: + + 153 |CR|09Screen Pause Length (Enter/|&1): + 372 |CR|09Screen Pause Length (Enter/|&1): + + + Duplicate file scanning option: System Config - File Base Settings + -> Upload Dupe Scan. This can be set to three different options: + + None -> Mystic will not scan for duplicate files + Current -> Mystic will only scan the CURRENT file base for dupes + All -> Mystic will scan ALL file bases for duplicate files + + + Blind uploads have been added into Mystic. The entire upload process + has been rewritten. The following prompts have been changed during the + rewrite. Replace these new prompts with your old ones: + + ; File upload testing FAILED text + 035 Failed + + ; File upload PASSED text + 055 Passed + + ; Xfer successful: &1 = file name + 083 |CR|12þ |11|&1 |03found.|CR + + ; Xfer failed: &1 = file name + 084 |CR|12þ |11|&1 |03skipped.|CR + + ; Displayed before running uploads processor + 206 |12þ |03Testing file for errors : + + The following prompts are new. Add these to your language file and + recompile with the new MAKELANG.EXE: + + ; Blind upload? + 375 |CR|12Blind upload? + + ; Processing uploads + 376 |CR|14Processing uploads ...|CR + + ; BLIND dupe search + 377 |12þ |03Searching for duplicate files : + + ; BLIND dupe found + 378 Dupe found. + + ; BLIND no dupe found + 379 None. + + ; Importing file_id.diz + 380 |12þ |03Importing file description : + + ; FILE_ID found + 381 Found. + + ; No FILE_ID + 382 None. + + + New display file: BLINDUL.XXX - This file is displayed after a user + selects a blind upload, just as the UPLOAD.XXX file is displayed. + + ! Pressing enter when upgrading a user's security level from the user + editor was sometimes causing some strange display problems. + + ! Mystic was bombing out with an error when 0 byte files were uploaded, + or if a user tried to view the contents of a 0 byte archive. + + + New prompt info MCI code for prompt #072: &2 now displays the file + name for which the description is being entered. + + + Mystic now prompts the user to post a message on a message base after + the last message has been read. A new prompt goes along with this + addition, make sure you update your language files: + + ; Post on message base? + 383 |12Post on |MB? + + + Enhanced the archive view functions. When a user views a text file from + within an archive, Mystic will now display a line of text before sending + the text file. The filename prompt has also been added to the language + file. Prompt #306 should replace the old one, and prompt 384 should be + added to your language file. + + ; Viewing text file &1 = Filename + 306 |CL|14Viewing contents of text file: |15|&1|14.|07|CR + + ; View text file filename prompt + 384 |CR|09File name: + + + More rearrangement of prompts has brought two more additions to the + prompt file. Add the following: + + ; Download successful + 385 |CR|12Transfer successful! + + ; Download failed + 386 |CR|12Transfer failed! + + + Added the option to download files from within archived files. When + viewing the contents of an archive, files can now be downloaded. As + a result of this added feature, prompt #304 has been changed: + + ; Archive view command prompt + 304 |CR|14Archive View: (|15R|14)e-list, (|15V|14)iew File, (|15D|14)ownload File or (|15Q|14)uit: |15 + + + When viewing a text file from within an archive, MCI codes are no longer + filtered out. The file is displayed in straight text mode. + + ! If the last read pointer file in a JAM base was deleted for some reason, + Mystic would not recreate it, and thus users weren't getting their last + read information saved. + + ! Fixed a bug in MIDE which would cause an error when when text was + marked and deleted (under certain conditions). + + + New ACS command: OI. This returns true if the user is invisible. + + + New MCI code: AV. This returns Yes or No depending on the user's + node message availability. + + + New ACS command: OA. This returns true if the user is available to + receive node messages. + + + Added three new Prompt Info MCI codes to prompt #139 (Who's Online): + + &6 = User's gender (M or F) + &7 = User's Age + &8 = User's Availability + + + Added a new menu command: MM - This is a mass e-mail command, which + allows the sysop to send multiple users e-mail all in one shot. + The following new prompts have been added, make the nessasary changes + to your language files, and recompile: + + ; Mass mail prompt + 387 |CRsend mass mail by:|CR|CR(1) ACS level|CR(2) List of users|CR(3) All users|CR(Q) Quit|CR|CRCommand: + + ; Mass mail ACS prompt + 388 |CREnter ACS level: + + ; Mass mail name info + 389 |CR|11Enter user name, or search string.|CREnter a blank line to end.|CR + + ; Mass mail name prompt &1 = # of users in list + 390 |CR|11|&1 |03users in list. Enter user name: + + ; Mass mail name list + 391 |CR|14User mailing list:|CR + + ; Mass mail name format &1 = name + 392 |03|&1 + + ; Mass mail name list confirmation + 393 |CR|12send e-mail to this list? + + ; sending mass mail + 394 |CR|CR|14sending mass e-mail, please wait ... + + + New language prompt #395: Displayed when a user tries to send a node + message to an unavailable node: + + ; Node unavilable + 395 |CR|14Sorry, this user is marked as unavailable. + + + Added the option to perform a text search on message bases. When a user + selects to read message in the current message base, Mystic will now + offer the option to search for text, which will search the From, To, + and Subject fields as well as the message body. Prompt #112 has been + changed and a new prompt (#396) has been added: + + 112 |CR|07(|14F|07)|15orward, |07(|14N|07)|15ew, |07(|14Y|07)|15ours, |07(|14S|07)|15earch, |07(|14Q|07)|15uit? + + ; Msg search prompt + 396 |CR|03Enter search string: + + + Expanded the inactivity timeout setting to allow for up to 9999 + seconds. It would only allow for up to 255 seconds in the past. + + ! Fixed some strange MPE engine bugs in the Win32 and OS/2 versions. For + some reason, some MPE programs that worked fine with the DOS version + were not working correctly with the 32-bit versions. + + + Added ([) Prev and (]) Next commands to the Protocol editor. + + + Added the ability to toggle hotkeys on or off. A new MCI code HK is now + available which displays ON or OFF depending on the user's hotkey setting. + The GE menu command has been expanded as well - option 19 now toggles + the user's hotkey status. A new field has been added for each menu + command in the menu command editor. This field is called "LONG KEY" and + works just like the hotkey field except it sets the valid key to execute + the command when the user has hot keys toggled OFF. + + + Added new option to System Config -> New User Settings in preparation + for the lightbar message reading system. "Message Reader" has three + options, similar to the file lists: Normal, Lightbar, and Ask. Two + prompts have been added to go along with this: + + ; Info edit: Msg Read type + 397 |CR|11(|030|08) |14Normal |15: |10View messages page by page|CR|11(|031|08) |14LightBar |15: |10Scroll message lists with arrow keys|CR|CR|15S|10ele|02ct |15T|10yp|02e: |15 + + ; New user: Msg Read type + 398 |CR|11(|030|08) |14Normal |15: |10View messages page by page|CR|11(|031|08) |14LightBar |15: |10Scroll message lists with arrow keys|CR|CR|15S|10ele|02ct |15T|10yp|02e: |15 + + + Added new option to the Security Level editor. The option + "Post / Call Ratio" is used to set the number of posts a user must have + within 100 calls to the BBS. + + + Added new ACS command: OP. This option returns true if the current user + meets the set post / call ratio for their security level. If they do + not meet this ratio, OP will be false. + + + Added two new MCI codes: + + PC - This returns the user's actual post / call percentage. + SP - This returns the user's needed post / call percentage in + order to have a passing post/call ratio. + + + Completed the new full screen ANSI message reader / lister. There are + lots of changes that go along with this - as the entire message reading + process has been rewritten for this addition. + + The first new addition is a new ANSI template: ANSIMLST.XXX. This is the + template for the ANSI message index listing, where users can scroll + through a list of messages with the arrow keys. The following MCI codes + are used: + + !1 = Y position of the top line in the message index list + !2 = Y position of the borrom line in the message index list + !3 = Bottom of template. When a user exists from the list, Mystic + will move to this Y position in preparation for other text. + + The second new addition is a new ANSI template: ANSIMRD.XXX. This is the + template for the actual message reader, which allows the user to scroll + through the message using the arrow keys / pgup, pgdn keys. The following + MCI codes are used: + + !1 = Y position of the top line of the message text window + !2 = Y position of the bottom line of the message text window + !3 = Y position of the bottom of the template. + + The message header information is the same as it for the standard + message reading mode: + + |&1 From |&6 Total messages in base + |&2 To |&7 Reply to message number + |&3 Subject |&8 See also message number + |&4 Date / Time |&9 Message status + |&5 Message number + + The third new addition are new prompts. Add the following prompts to + your language files and recompile them using MAKELANG.EXE: + + ; Ansi msg read: index list format + ; &1 = msg # &2 = subject &3 = from &4 = to + 399 |15|$L05|&1 |10|$R30|&2 |14|$R20|&3 |13|$R20|&4 + + ; Ansi msg read: index list highlight + ; &1 = msg # &2 = subject &3 = from &4 = to + 400 |08|23|$L05|&1 |$R30|&2 |$R20|&3 |$R20|&4|16 + + ; Ansi msg read: index list highlight OFF + ; &1 = msg # &2 = subject &3 = from &4 = to + 401 |15|$L05|&1 |10|$R30|&2 |14|$R20|&3 |13|$R20|&4 + + ; Ansi msg read: delete msg + 402 |CR|12Delete this mail? + + ; Ansi msg read: jump to msg: &1 = cur msg num &2 = high msg num + 403 |CR|09Jump to which message? (1-|&2): + + ; Ansi msg read: scan toggle &1 = message base name + 404 |CR|11|&1 will NOT be scanned in new message scan! + + 405 |CR|11|&1 will be scanned in new message scan! + 406 |CR|11|MB is marked as mandatory reading! + + + Separated the "To:" prompt when posting a message. The following + new prompts are: + + ; Reply msg To: standard + 407 |CR|09To: + + ; Reply msg To: lightbar + 408 |CR|09To: + + + Mystic now has the option System Config -> New User Settings -> + HotKeys. This option allows for three options: Yes/No/Ask. Two + new prompts have been added: + + ; User edit: Hotkeys + 409 |CR|12Use hot-key input? + + ; New user: Hotkeys + 410 |CR|12Use hot-key input? + + + Added a new command to the standard message reader: (L)ist messages + Three new prompts go along with this new addition: + + ; Msg List Header + 411 |CR|15Msg # From To Subject|CR|09|$D79- + + ; Msg List Format (Same prompt info as header) + 412 |15|$L05|&5 |09|$R20|&1 |$R20|&2 |10|$R30|&3 + + ; Msg List Footer + 413 |09|$D79-|CR|PA + + + New MPL procedure: MOVEY. This works just like MOVEX except it works for + the Y position. + + + The DATE/TIME PromptInfo MCI code for message headers have been + separated. Now &4 = msg date, and &0 = msg time. + + ! Mystic had a slight error in the format of the CHAIN.TXT door drop file. + This should be fixed, and it should be created properly. + + + Rewrote the variable handling in the MPE engine. Arrays can now have + full expressions as indicies. For example: + + Str := 4 + Test(Str2Int(Str) - 3) := 'Hello world' + + + The Win32 version now sets the console window title to "Mystic Node x" + where X is the node number. Haven't added this to the OS/2 version yet + as I haven't had the chance to search for the appropriate API call. + + + The mouse is no longer active during a Mystic BBS Win32 session as it + was in the past. + + + The VAR statement (for defining variables) in the MPE engine has been + rewritten to allow a comma to separate variable defintions. For example, + the following is now supported: + + var + somestr string, + somech char, + somebyte byte + + + Added local procedure variables into the MPE language. This means that + variables can be defined within a procedure and will only be able to be + used in that procedure. For example: + + Proc Hello + Var S String + S := 'Hello' + WriteLn(S) + Pend Hello + + WriteLn(S) + + The above example would not compile because the main body of the program + is trying to access a variable which was defined within the HELLO + procedure only. Variables declared in the main body of the program are + still considered global variables, and will be available to any/all + functions. + + + The MPE engine compilers now ignore all "BEGIN" and "END" keywords to + make it a little more "pascal-syntax" friendly. Some people think that + the "BEGIN/END" helps make their program code more readable. However, + this could cause some confusion in the future since BEGIN and END don't + come up as errors, but they are not actual valid MPL keywords. + + + MIDE now syntax highlights "BEGIN" and "END". + + + Changed the syntax of the Procedure definition in the MPL. The new + format is as follows: + + Procedure () + Pend + + So for example, an old procedure that looked like this: + + Proc Hello_World + WriteLn ('Hello world') + Pend Hello_World + + Would now be changed to: + + Procedure Hello_World + WriteLn ('Hello world') + Pend + + Now that this change has been implemented, all older .MPS source code + will need to be modified to fit this format. The "PROC" keyword has + been extended to "Procedure" and the procedure name is no longer + required after the "Pend" statement. If you forget to remove the name + at the end of your Pend statement, the code will still compile. However, + it will not execute properly! + + + Variables can now be passed to procedures! For example, the following + is a valid procedure: + + Procedure Print (Str String) + WriteLn ('Contents of STR = ' + Str) + Pend + + Then, to call the procedure in your code: + + Print ('Hello World') + + And now that the MPL engine is a little more friendly to some of the + Pascal syntax, the following is a valid procedure: + + Procedure Print (Str String) + Var + Str2 String, + Str3 String + Begin + WriteLn (Str) + Pend + + + Added four new options to menu commands MW (Write e-mail) and MP + (post new message): + + /TO: <- This sets the message's TO field. + /SUBJ: <- This sets the message's SUBJECT field. + /ADDR: <- This sets the message's netmail address field. + /F <- Forces user to post the message (they can't + abort it from the editor). + + + Added two new options to the FF menu command (Create/Download file list): + + /NEW - Creates a list of only NEW files. + /ALLGROUPS - Creates a list of files in ALL file groups. + + + New MPL function: ISLOCALKEY. Returns TRUE or FALSE after calling + READKEY based on who entered the key. + + ! If Allow ANSI is set to NO, Mystic will now skip the graphics detection + and automatically set their terminal type of ASCII. + + ! Mystic was not pausing after a screen size of message and file group + names when selecting groups. + + + Added new MPL command: WriteLocalXY. This procedure allows text to be + printed to the local screen only. + + - Removed MPL command: StatusWrite. This procedure can be completely + replaced by the new WriteLocalXY command. + + + New MPL "CFG" variable: CFGSTATUSTYPE + + + Added two new prompts, to separate the Xport message function in ansi + and standard reading modes: + + ; Ansi msg read: export to file + 414 Export to filename: + ; Ansi msg read: local export + 415 Export to filepath/filename: + + + Added the user's age after their birthdate in the user editor. + + + MPE change: The Write and WriteLn statements now REQUIRE that any + variables passed or functions used are of the STRING type. If you want + to print numerical variables, you must use the strI2S function. + + + Added new MPE command: CONST. This allows constant variable + defintions to be defined. At this time there are a few limitations... + Any CONSTANT value cannot be used when assigning variables. For + example: + + Var + Str String + Const + SomeStr = 'Hello World' + Begin + Str := SomeStr + End + + The above example won't work, because you are trying to assign a + variable the value of a CONSTANT. They do work, however, in + expression evaluations: + + Const + SomeByte = 69 + Begin + If SomeByte > 69 Then + WriteLn ('Greater!') + ElseIf SomeByte < 69 Then + WriteLn ('Less than!') + Else + WriteLn ('Same') + EndIf + End + + + Added permanent user index numbers for each user. These will be used + quite a bit internally in the future. + + + New ACS command: Ux. This command will return true if the user's + permanent index matches the supplied number. For example, an ACS of + "u1" would only return true if the user's permanent index was 1. + + + Added FUNCTIONS into the MPE engine. Functions work almost indentical + to procedures except that they return values. The following is an + example function: + + Function Return10 : Byte + Begin + Return10 := 10 + Pend + + Var + Temp Byte + Begin + Temp := Return10 + 10 + WriteLn ('This should say 20 : ' + strI2S(Temp)) + End + + + Added new prompt #416 to the mass e-mail... + + ; mass email subj: prompt + 416 |CR|09Subject: + + + Added new MPE command: ONEKEY. + + + Added new ACS option to System Config -> General Settings. The + "See Invisible ACS" is the ACS level required to see users marked as + invisible in the Who's Online listing. + + + Added new USER variable into the MPE engine: USERPERMIDX is the user's + permanent user index number. + + + The new user feedback e-mail can now be configured in System Config -> + New User Settings. In the past it would automatically send the e-mail + to the SysOp name defined in System Config -> General Settings. + + + Added some new options to the Mass Upload command. The (G)lobal command + now scans all areas for all new files automatically. + + If no FILE_ID.DIZ file is found, Mystic will now prompt for a file + description, unless in Auto Area or Auto Global mode. The mass upload + command should also be much faster than it was in previous versions! + + + Added new MPE demo program: MPEDEMO.MPS into the default full + installation. I'll also include it into the 1.06 upgrade package. + + + Added a wide-beta release telnet server for the Win32 version. This + server allows Mystic BBS for Win32 to handle incomming telnet connections + without the need of a virtual modem driver. Unfortunetly, existing DOS + doors and protocol drivers will not work with this server, so it may not + attract too many SysOps. In the future, Mystic will have its own set of + internal protocols which will work over a telnet connection. + + + Separated many of the "invalid password" prompts. From now on, #417 + will be a "general" invalid password prompt, for most things like + invalid menu passwords, invalid file/msg base passwords, etc. Other + invalid password prompts have been separated and will be listed + below: + + ; General Invalid PW + 417 |CR|12Invalid password. + + + Separated the new user login PW prompts with the change password prompts. + Along with this comes some new prompts: + + ; INFO EDIT: Do not match + 418 |CR|12 Passwords do not match! + ; INFO EDIT: PW prompt + 419 |CR|03Enter your desired password.|CRIt should be between 4 and 20 characters.|CR|CR|09Password: + ; INFO EDIT: PW too short + 420 |CR|12Password must be at least 4 characters long! + ; INFO EDIT: Verify PW + 421 |CR|11Enter your password again for verification.|CR|CR|09Password: + + + Some new and changed invalid password prompts: + + ; User login: Invalid PW + 003 |CR|12invalid password. + ; Matrix user login: Invalid PW + 293 |CR|12Invalid password. + ; UNUSED + 331 UNUSED!! + ; General Invalid PW + 417 |CR|12Invalid password. + ; Invalid New User PW + 422 |CR|12Invalid password! + ; Invalid Matrix PW + 423 |CR|12Invalid password! + + + Added new blind upload prompt: + + ; Upload: No files found + 424 |CR|15No files found!|CR|CR|PA + + + Added new read command (B)y you. When this is selected, Mystic will + only show messages post by the user. Prompt 112 has been changed to + add this command: + + 112 |CR|07(|14F|07)|15orward, |07(|14N|07)|15ew, |07(|14B|07)|15y You, |07(|14Y|07)|15ours, |07(|14S|07)|15earch, |07(|14Q|07)|15uit? + + + Added new menu command: MV - View outbound (sent) e-mail. + + ! When compiling a file list, Mystic would sometimes not display the file + base name after the "Working..." prompt. This only happened when there + were no files in a base and the data files didn't exist for that area. + + + File list compiler now aborts if there are no files in the list. A new + prompt goes along with this: + + ; File list compile: No files found + 425 |CR|15No files found!|CR|CR|PA + + + Added the ability to refuse multinode user logins on multiple nodes. + If System Config -> General Config -> User Multiple Logins is set to + Yes, Mystic will not allow the same user to be connected to more than + more node at a time. A new prompt #426 has been added: + + 426 |CR|14You cannot login to more than one node at a time.|CR|CR|PA + +.-----------------------------------------------. +| Jan 30th, 2000 -> Mystic BBS v1.06 - RELEASED | +`-----------------------------------------------' + + + Added new Prompt Info MCI code to Prompt #30: &7 now returns the user's + age. + + + New MCI code: RPxx. This sets Mystic's pause count to the value contained + in xx when displaying a text file. I've found that this can come in + handy when doing some in depth modding. For example: RP10 will set the + pause count to 10, meaning Mystic thinks its displayed 10 lines since the + last page pause. + + ! SysOp feedback after a chat page was not working. It does now! =) + + + The key can now be used to toggle the Yes/No lightbars. + + ! New user feedback was not being forced. In other words, the user would + be able to abort posting the message. This has been fixed. + + + LANGEDIT.EXE will now ask if you would like the language file + automatically compiled after saving. + + + Updated the node chat a little bit. The chat now has real-time updating, + which basically means that you can be typing a reply and it will still + display other user's text. In the past, if you weren't typing it would + look for new text from other nodes, but now it will do it the entire time + you're in chat, no matter what you're doing! I've also been thinking + about rewriting the chat to be more IRC-like. If that sounds good, let + me know and i'll probably do it! =) + + + New program LANGUPDT.EXE has been added to the Mystic upgrade packages. + This program will automatically update old language files with new or + changed prompts... + + ! MPE: The GET/PUTMBASE functions were off by a number, for example + GetMBase(1) would actually return Base 0. + + ! MPE: PutMBase was corrupting a field in the message base record. + + + MPE: Added new MBASE variable: MBASENTYPE. Just to clear some things up + here: + + MBASENTYPE = Net type (Local, Echomail, etc) + MBASEBTYPE = Base type (JAM, Squish) + MBASEPTYPE = Post type (Public, Private) + + ! Fixed a small bug in the Win32 full screen editor that caused Mystic to + lock up. + + + New prompt in node chat: + + ; nodechat input &1 = username + 427 |07[ |15|&1 |07>> |03 + + + Added a configurable WFC screen template. The WFC screen template is + found in the data directory as "WFCSCRN.XXX". The random display file + system works as well, allowing up to 10 randomly selected WFC screens! + + The following screen info codes are used: + + !1 Status line (40 characters in length) + !2 System Time + !3 System Date + !4 Next Event Time + !5 Top X/Y position and standard color of node window + !6 Bottom X/Y position and highlight color of node window + !7 Top X/Y position and color of modem window + !8 Bottom X/Y position of modem window + + + MPE: Added two new USER variables: + + USERCURMBASE - User's current MBASE + USERCURFBASE - User's current FBASE + + + Added User's Screen Size into the user editor. I can't believe I forgot + to add that in the past! =) + + ! Mystic was not updating the user's flags on the statusline after the + -F menu command was used. + + + Passing a zero to the baud parameter when loading Mystic now skips the + WFC screen and runs the user login in local mode. Passing a -L on the + command line still goes to the WFC screen first. + + + Changed the split screen chat a little bit. First, the text color is + now defined by the screen info MCI codes. This allows the SysOp and + User windows to have different text color. Second, two new screen info + codes have been added: + + !0 - Specifies the X/Y position and color for the user's time left. + It will be updated every minute, and is optional. + !9 - Specified the X/Y position and color for the system time. It + will be updated every minute and is optional. + + + Added new nodechat prompt: + + ; nodechat user not found + 428 |CR|15User not found. + + ! The "S" optional data option for the MR menu command was not working + properly. + + ! When reading messages in the lightbar message reader, users were able + to delete messages even if they were not the user who posted them. + + ! Fixed a bug in the menu hotkeys when entering "/x" commands. Sometimes + Mystic would temorarily ignore input after backspacing over the "/" + character. + + + The maximum number of menu commands have been expanded to 75 commands + per menu, rather than the old maximum of 50 commands. + + + Added the option for Sysop/Users to toggle which mode the lightbar + message reader starts in: message index mode, or message reading mode. + Along with these additions comes to following: + + System Config -> New User Settings -> Msg Lightbar Idx. This option + sets the default for new accounts and can be set to "Yes/No/Ask". + + Added prompt #429: + ; new user: use lightbar message index? + 429 |CR|12Use lightbar message index? |11 + + Added new option to menu command GE: 21. This toggles the status of + the user's lightbar message reading index mode on/off. + + Added new MCI code: ML. This returns on/off based on the status of + the lightbar message index. + + + Added the (Q)uit command to the lightbar message reader. This command + was in the standard message reader, but I somehow overlooked it in the + lightbar version. + + + Added new program: MYSTPACK.EXE. This program packs all JAM message + bases on your BBS. It will remain external from MBBSUTIL.EXE until I am + able to finish the Squish side of things. Here's the following + functions: + + - Removes deleted messages from your data files. + - Renumbers messages in numerical order + - Renumbers the reply chains (Refer to and See Also) + - Updates each user's last read pointers + - Removes any message in violation of the Max Msgs / Max Age settings + for each base (found in the Message Base Editor). + + It also has the option to -SKIPFIRST, which will skip the first message + in all local message bases, so they will never be deleted unless marked + deleted by the SysOp. This allows for a "This base is for..." or + BASE_ID.DIZ message to always stay as the first message. + + ! When inputting a password and CTRL-Y was pressed, Mystic was filling the + entire field up with the echo character instead of blank spaces. + + + Added two new command options to the FG menu command (change file + group). The + and - command will now move to the next and the previous + file group. Mystic will automatically find the first file base the user + has access to after changing groups. + + + Added two new command options to the MG menu command (change message + group). The + and - command will now move to the next and the previous + message group. Mystic will automatically find the first message base + the user has access to after changing groups. + + + Added new prompt: Message base scan setting footer: + + ; msg scan setting footer + 430 + + + In Lightbar menus, Mystic will now keep track of the user's lightbar + position when a menu command is ran. In the past, it would always default + to the first command on the menu when it was redisplayed. + + + Full screen editor quote window now only adds a blank line to the bottom + of the message if new text was quoted. + + + The %0 door MCI code now returns the fossil com port in the DOS version. + In the past, it would not get filtered out. + + ! Ocassionally, when editing text of a posted message, Mystic would garble + up the display. + + ! Mystic was not correctly rewriting the message index information after + saving changes to an edited message. This would cause some JAM packers + to duplicate messages, which other JAM packers would process the index + correctly. + + + Mystic will now try to put new users into a group instead of having them + start out in no group. + + + The (N) command during a lightbar message index has been changed to + (G) to match the identical command when reading in non-lightbar mode. + This function goes to the next base in the message scan, or does + nothing if not in a message scan. You may want to update your lightbar + message index template and your AMSGHLP1.XXX files to reflect these + changes. + + + The (ESC) function in the lightbar message reader has been changed to + quit reading. In the past, it would show the lightbar message index. + + + The lightbar message index command, which was (ESC) in the past, has + been changed to (L) to reflect the same command as the non-lightbar + reading command to view the message index. + + + Made some major changes to the file lists, in preparation for support + for long file names. The ANSIFLST.XXX template has been changed quite a + bit and the highlight data has been moved to prompts to make it more + flexible. The following Screen Info codes are used in ANSIFLST.XXX now: + + !1 = Top Y location of the file list window. + !2 = Bottom Y location of the file list window. + !3 = Y location of the status text. + !4 = X/Y location of the number of files tagged. + + The following prompts are new or changed: + + ; Standard file list: #/filename: + ; &1 = file num, &2 = filename, &3 = tag char + 042 |15|&1|07|&3 |14|&2 + + ; Standard file list: description/info + ; &1 = size, &2 = date, &3 = DLs, &4 = desc, &5 = uploader + 043 |07ÀÄ |09|$L11|&1 bytes |10|&2 |11|&4 + + ; Standard file list, ext desc: &4 = description + 045 |11|$D34 |&4 + + ; Lightbar file list: #/filename: + ; &1 = file num, &2 = filename, &3 = tag char + 431 |15|&1|07|&3 |14|&2 + + ; Lightbar file list: highlight on: &1 = #, &2 = filename, &3 = tag char + 432 |00|23|&1|16 + + ; Lightbar file list: highlight off: &1 = #, &2 = filename, &3 = tag char + 433 |15|&1|07|&3 |14|&2 + + ; Lightbar file list: description/info + ; &1 = size, &2 = date, &3 = DLs, &4 = desc, &5 = uploader + 434 |07ÀÄ |09|$L11|&1 bytes |10|&2 |11|&4 + + ; Lightbar file list, ext desc: &4 = description + 435 |11|$D34 |&4 + + ; Lightbar file list, uploaded by: &5 = uploader + 436 |03|$D34 Uploaded By: |&5 + + ; Standard file list, uploaded by: &5 = uploader + 437 |03|$D34 Uploaded By: |&5 + + ! When a user tried to login on more than one node at a time (and multiple + login is disabled), their time left was being set to 0. + + + Added new MCI code: PI. This just displays a | character. + + ! There was a security leak in Mystic's email system that allowed user's to + access other user's email messages! This has been fixed! + + + Added a set of internal file transfer protocols. Included are the + following: + + Xmodem + Xmodem/CRC + Xmodem/1K + Ymodem Batch + Ymodem/G Batch + Zmodem Batch + + Support for external protocols has been removed, at least temporarily. + I'm not aware of any external protocol drivers that will work with + long file names, or with Mystic's internal telnet server anyway. So + supporting them wouldn't do much good. + + Two changed prompts go along with this: + + ; Protocol select batch prompt + 061 |CR|14[|15Y|14] Ymodem|CR[|15G|14] Ymodem/G|CR[|15Z|14] Zmodem|CR|CRSelect Protocol [|15Y G Z|14]: + + ; Protocol select standard prompt + 062 |CR|14[|15X|14] Xmodem CRC|CR[|151|14] Xmodem 1K|CR|14[|15Y|14] Ymodem|CR[|15G|14] Ymodem/G|CR[|15Z|14] Zmodem|CR|CRSelect Protocol [|15X 1 Y G Z|14]: + + Also, be aware that when updating you will probably want to modify all the + prompts that ask for a filename, by adding a CR at the end of them. For + example: + + OLD: 344 |CREnter file name: + NEW: 344 |CREnter file name|CR: + + - Display files PROTO.XXX and PROTOB.XXX have been removed, as they are + useless now. You can replace prompts #61 and #62 with the PROTO and + PROTOB display files if you want to still use those files. + + + Added new LightBar Grid menu type. In the menu flags for each menu, + there is now a menu type field, which can be set to any one of the + following options: + + Standard + Lightbar + Lightbar Grid + + Both Standard and Lightbar options work the same as they have in the + previous versions, but the LightBar Grid system implements a way more + confusing and way more flexible LightBar system. =) + + When the grid system is activated on a menu, it will use the following + new options that have been added to each menu command within a menu: + + Arrow Up : 1 + Arrow Down : 5 + Arrow Left : 2 + Arrow Right : 4 + + If a menu command is currently highlighted in a lightbar grid menu, and + the up arrow is pressed, Mystic will jump to menu command #1. If the + down arrow is pressed, Mystic will jump to menu command #5. The same + also goes for the left and right options. + + As you can see, this will allow for an enormous amount of flexibility as + compared to the previous lightbar system and the lightbar systems found + in most other BBS packages. However, its a little more work to create + these menus so I imagine only some of the hard core SysOps will make + much use of this system. + + + Due to "popular demand", file description line length has been expanded + from 45 characters to 50 characters. + + + The mass upload command now executes the upload tester if one has been + configured for Mystic. + + + Added a "Post on this base?" prompt after reading messages into the + Lightbar message reader. + + + Cleaned up the functionality of the Lightbar message reader quite a bit, + to make it operate more like the standard reader in certain places. + + + MPE: New MPL function ODD. Returns true or false based on if the passed + number is ODD or EVEN. + + + MPE: Finished up the CONST variable support. In the past CONST + variables would only work in evaluations and could not be used in + variable assigning statements. + + + MPE: In the past, declared functions were not allowed in expression + evaluations. They are now! =) + + + MPE: Boolean parameters are now allowed in declared functions and + procedures. + + + MPE: Boolean modifiers were not allowed when assigning variables. I + totally overlooked that somehow and never noticed that it wasn't + implemented. For example, this will work now: + + Function Neg (Bol Boolean) : Boolean + Begin + Neg := Not Bol + Pend + + + Added a character in the lightbar message index listing to mark messages + which are new. The character can be setup in System Config -> Language + Definitions -> New Msg Char. Prompts #399-401 now have a promptinfo &5 + code that returns either the new msg char or a space. + + + Recoded some internal MPE engine functions. The compiler is probably + now a little faster than it was in the previous release, and the executor + engine is probably about 300-400% faster in most cases! + + + Cleaned up the word wrapping in the full screen editor. In the past, + if a paragraph existed under the paragraph currently being edited, Mystic + would allow the text from the first paragraph to wrap into the second + paragraph. The editor now detects a second paragraph and will insert + a line when wrapping to prevent this. + + + Added a second set of access flags for each user. + + + Added new ACS command: "Dx". This command works just like the "Fx" ACS + command, except it targets the second set of access flags as opposed to + the first set, which "Fx" checks. + + + The login display file "FLAGx.XXX" has been changed to "FLAG1x.XXX". + + + Added new display file "FLAG2x.XXX", which is works just like FLAG1.XXX + except it targets the second set of access flags. IE: FLAG2A.XXX will + display during login if the user has flag A set in their second set. + + + Rewrote the user editor to make room for the second set of flags, and + other new user options. + + + Added new menu command: -D. This works identical to the -F command, and + is used to toggle or set flags in the user's SECOND set. + + + Added new user database field: E-mail address. This option can be set + or disabled in the new user settings, and edited within the user editor. + Two new prompts have been added to go along with this: + + ; new user: enter email address + 439 |CR|09Enter e-mail address|CR: + ; info edit: enter email address + 440 |CR|09Enter E-mail address|CR: + + An addition to the GE menu command has also been made. Optional data + 22 now edits the E-mail address field. + + New MCI code: UK has been added, which returns the users email address. + + + Added new user database field: User note. This option can be set or + disabled in the new user settings, and edited with the user editor. + Two new prompts have been added to go along with this: + + ; new user: enter user note + 441 |CR|09Enter your desired user note|CR: + ; info edit: enter user note + 442 |CR|09Enter your desired user note|CR: + + An addition to the GE menu command has also been made. Optional data + field 23 now edits the User Note field. + + New MCI code: UI has been added, which returns the user note field. + + + Added three new optional/configurable questions into the user database. + They can be configured/enabled/disabled in New User Settings. Six new + prompts have been added: + + ; new user: option 1 + 443 |CR|09Enter optional field 1: + ; info edit: option 1 + 444 |CR|09Enter optional field 1: + ; new user: option 2 + 445 |CR|09Enter optional field 2: + ; info edit: option 2 + 446 |CR|09Enter optional field 2: + ; new user: option 3 + 447 |CR|09Enter optional field 3: + ; info edit: option 3 + 448 |CR|09Enter optional field 3: + + Optional data fields for menu command GE have been added to edit these + fields. These are 24, 25, and 26. + + Three new MCI codes have been added. U1, U2, and U3. These return the + optional data 1, 2, and 3 fields. + + + The "Post on this base" question is no longer asked when a user aborts + reading messages. + + + Added the ability to disable the Lightbar Quote Window both on a SysOp + and a user basis. These have been added into the user editor and into + the new user settings. One changed prompt goes with this: + + ; New user: Use FSE quote window? + 060 |CR|12Use full screen editor quote window? + + Optional data field 27 has been added into the GE menu command to toggle + this option on a user basis. + + New MCI code of UQ has been added, which returns "standard" or "lightbar" + for the quote mode, based on the user's setting. + + + Added the ability to start reading in the lightbar index mode in just + the e-mail base. This is also configurable on a Sysop and individual + user basis. One changed prompt goes along with this: + + ; Start at message index in email? (lightbar msg reader) + 331 |CR|12Start at e-mail message index? + + Optional data field 28 has been added into the GE menu command to toggle + this option on a user basis. + + New MCI code UM returns ON/OFF based on this setting + + ! Mystic no longer asks users if they want to "Post a message here" when + viewing sent e-mail. + + + New MPE command: TextColor. This takes a text attribute number and + changes to that color. + + + New MPE function: TextAttr. This returns the current text attribute. + + ! MPE: Assigning a char variable to a string variable would cause a + variable type mismatch! IE: Str := Str + Ch + + + MPE: Support for CHAR variables as function results has been added. I + didn't even realized that they weren't supported! Hrrmmm, + Forgetful I am, yes... + + + Each network address now has a network name to go along with it, which + is defined in System Config -> Network Settings. There is also a new + MCI code that goes along with this: MN, which returns the network + name for the current message base. This can be used in the message base + scanning prompt or the message base list format prompt... or anywhere + else! =) + + + Added a footer to the "file base scan setting" list: + + ; file base scan setting footer + 449 + + + Default options for TSERVER can now be set in MCFG.EXE, under System + Configuration -> Telnet Options. + + + MPL: Added two new commands: GETFGROUP and PUTFGROUP. These are used + to read and write to the file group records, and work just like the + GETFBASE and PUTFBASE commands. Two new variables go along with this: + + FGROUPNAME - Name of File Group + FGROUPACS - Access string of File Group + + + MPL: Added two new commands: GETMGROUP and PUTMGROUP. These are used + to read and write to the file group records, and work just like the + GETMBASE and PUTMBASE commands. Two new variables go along with this: + + MGROUPNAME - Name of File Group + MGROUPACS - Access string of File Group + + + MPL: Added two new commands: GetTextStr and PutTextStr. These commands + will be used to read/write/edit messages and file descriptions as well + as being used to access the message and text editors within Mystic. + More on this stuff later! =) + + + Expanded the Prompt Info codes to 15 instead of ten. New Prompt Info + codes are &A through &E... + + + Added new prompt info codes for prompt #30: + + &8 = Email address + &9 = User note + &0 = Optional field 1 + &A = Optional field 2 + &B = Optional field 3 + + + Added new prompt info codes for prompt #142: + + &9 = User note + &0 = Email + &A = Optional field 1 + &B = Optional field 2 + &C = Optional field 3 + + + New menu command auto-exec type: AFTER. This works just like EVERY + except it is drawn AFTER the menu is displayed, directly before + the prompt. EVERY executes before the menu is drawn each time it is + drawn. + + + New menu option: "Input Type". This can be set to any of the following + values: + + Long key : Forces the menu to use long key input + Hot key : Forces the menu to use hot key input + User setting : Uses whichever input mode the user has set + + - Removed the Xmodem and Ymodem protocols. This is most likely a temporary + thing, but I doubt many will use them anyway. They're still kinda buggy + and I want to get 1.07 released as soon as I can. + + Changed two prompts for this: + + ; Protocol select batch prompt + 061 |CR|14Press [|15ENTER|14] to start Zmodem transfer, or [|15Q|14] to Quit: + ; Protocol select standard prompt + 062 |CR|14Press [|15ENTER|14] to start Zmodem transfer, or [|15Q|14] to Quit: + + + New menu command: VN. This will search for any new voting questions and + allow the user to vote on them. + + ! Mystic (Win32) wasn't setting the node number correctly in the Window + Title. + + + New prompt: Prompt #450 is now the TO: for a privately posted message + "TO:" field. + + 450 |CR|09To: + + + Added two new fields to the New User Settings in System Configuraton: + + Start Message Group + Start File Group + + This allows for the msg/file group that new users start off in to be + defined. In the past, Mystic would just put them in the first group + and first base they had access to. Setting these options to zero will + cause Mystic to act like it used to - putting the user into the first + group and base they have access to. + + - Removed MENUEDIT.EXE from the distribution + + - Removed LANGEDIT.EXE from the distribution + + - Removed MCONFIG.EXE from the distribution + + + Added new program: MCFG.EXE. This program is going to be an all-in-one + configuration and management utility! All of the functions that existed + in MENUEDIT, LANGEDIT, and MCONFIG have already been added to this, as + well as a file base list manager and many other parts of the System + Configuration. This program is not 100% completed, but its a VERY nice + start! Many MANY enhancements into the menu editor, and language editor + as well as an overall clearer and more intuitive interface! Includes + native DOS, Win32, OS/2 and Linux versions! + + + Completely rewrote MIDE.EXE, the Mystic Programming Language IDE. This + new version offers these new features: + + + Improved interface + + Allows up to 9 files to be edited at once + + Configurable tab spacing stops + + Ability to disable syntax highlighting + + Enhanced text copy/cut/paste block functions + + DOS, Win32, OS/2, and Linux native versions + + Full online help system similar to Borland's IDE help systems. + Includes a full reference to the Mystic Programming Language + functions and procedures - along with examples of each of them! + + + Completely rewrote MPL.DOC (The Mystic BBS Programming Language Manual). + Its not 100% completed, but its more organized and complete than the + MPL.DOC which was distributed with version 1.06. + + + Cleaned up the way Mystic determines file/msg groups for new users and + existing users. It's very "intelligent" now... + + + Rewrote the installation program. The install looks much nicer than the + pervious install and no longer requires any type of external archive + utility to complete the installation. + + + MYSTIC BBS NOW HAS A NATIVE LINUX VERSION! + + The linux version of Mystic BBS has been completed. Mystic/Linux is + a complete shell replacement, which means that it will work + effortlessly over dialup and telnet connections to your system! The + configuration is file case sensitive, but other than that all data + files are compatible with other native versions of Mystic (ie, DOS, + Windows, and OS/2). + + Many changes had to be made to the Sysop end of Mystic to work around + various Linux issues. Running a BBS under Linux is an entirely + different experience, but i've tried to make the transistion as easy + as possible for everyone. Just be aware that the functionality of + Mystic/Linux is identical to all other versions, but the Sysop + operations will be different. + + + TSERVER (the Mystic BBS telnet server for Windows) has been cleaned up. + When a new connection is received, TSERVER will now spawn new Mystic + windows completely in the background without interrupting the current + process. In the past, TSERVER would always force Windows to return to + the desktop - so, for example, if you were in a full screen DOS session, + it would return your DOS session to a GUI window. + + + Mystic now has full support for long file names. It already has since + early 1.07 alphas, but apparently I forgot to reflect that in the whats + new file! + + + Mystic's internal user editor now sets users who are logged into other + nodes as "read only" when their account is being viewed. If their + account needs editing, you'll have to switch to their task and edit them + with the SysOp functions. + + ! Mystic wasn't saving user accouts in the user editor if the user logged + in was trying to edit their own account. For example, if "Joe SysOp" + was logged in, went to the user editor, and tried to edit his account - + it wouldn't save. + + ! When using the ALT-E sysop command (edit user account), Mystic was not + changing the users online time if a new "Time Left" was set. + + + New MPE command: EXIT. This function will immediately exit the current + procedure or function. + + + Two new options have been added to the new user settings: Start Msg + Group and Start File Group. In the past, Mystic would start a new user + in whatever the first group they had access to was. This can be used to + start a new user in a definied message and file group. + + + New option added to the message base options: The option to "Show Bases + in Group List" must now be set to Yes for Mystic to calculate the number + of areas in that group when the user is selecting a message group. If + this option is toggled off, Mystic will return a "0" for number of areas + in a group. + + + New option added to the file base options: Show Base in Group List. + This works just like the same option in the message base settings. + + ! Fixed a bug with user's time left getting set to 0 on certain occasions + during a login. + + + Mystic now disconnects the user after three login attempts. If they + don't select to create an account in those 3 attempts, Mystic boots them. + + + MPE: Added support for including source files into the main source of + an MPS file. This hasn't been tested very well and has caused a slight + decrease in compile speed, but its there and appears to work! =) + + Example: + + # Sample source file which includes common.mps + # -------------------------------------------- + + #include common.mps + + Begin + WriteLn ('Any functions or procedures in common.mps can be called') + End + + Note that the compilers will still compile a procedure or function into + the executable if they're not used in the program. So if you did make + an include of common functions and procedures that you use, they will + all be compiled. In the future i'd like to add a "smart linking" + feature which would remove all unused functions and variables. + + + Added new user flag: Ignore LC. When set to YES, this option will + not add the user into the last caller information. + + + Mystic will now not add the user to the last callers file if they log in + in Invisible mode. + + ! Fixed a problem within MBBSUTIL's user packer. Under certain situations, + MBBSUTIL was messing up the user's last read pointers and their base + scan settings. This has been fixed. + + + MPE: Added new var to USER record: UserEditType. This returns the user's + current editor setting. + + + The one liners function now redisplays the oneliners after a user adds + a new entry. + + + Separated the post subject prompt and the REPLY subject prompt in the + language file. New prompt added: + + ; reply msg SUBJ + 451 |CR|09Subject: + + + Added a header prompt into the standard (non-quote-window) quote mode. A + new prompt has been added: + + ; standard quote header + 452 |15Quote mode: Select a range of text to quote + + + Added a new option to the message and file area selection menu commands + (MA and FA). When "nolist" is supplied in the optional data field of + the menu command, Mystic will just show the prompt to select a message + base number unless, of course, the user enters "?" on that prompt, which + they would then get a listing of available bases. + + + Added new option to Mystic's graphics detection when a user connects. + An option of "Force ANSI" can be set in the general settings of the + system configuration as the detect type. This will force the user into + ANSI mode and not attempt to detect or ask for the graphics mode. + + + Added new prompt: 453. This is the footer for the listing of users in + teleconference. + + ; footer for teleconference user list + 453 |CR|PA + + + Added an entirely new FULL SCREEN irc-like teleconference system! The + older system is still around for people who like it better or for users + who don't support ANSI graphics. This new system allows for the user to + have a permanent input line as well as a window where text will scroll, + maybe similar to a text-based mIRC client. Each user also has a 200 + line scrollback buffer! Many changes and additions go along with this: + + Changed prompts: + + ; nodechat user's text: &1 = user name + 181 |07<|15&1|07> |03 + + ; nodechat broadcast text: &1 = user name + 319 |01<|09|&1 |11Broadcast|01> |03 + + ; nodechat private text: &1 = user name + 218 |04<|12|&1 |14Private|04> |03 + + ; nodechat action text: &1 = user name + 229 |13* |&1 + + ; nodechat: info/status text + 226 |12- |07 + + ; new user: use full screen node chat? + 187 |CR|12Use full screen node chat? |11 + + ; Node chat scroll mode back + 237 |15Scrollback: (Up/Down) Move (Ctrl-R) Page Up (Ctrl-C) Page Down (ESC) Quit + + Also some new options in the new user settings, where the node chat can + be either forced on or off for new users, or the new user can be asked. + New additions for this field has also been added to the user editors as + well as an addition to the "GE" menu command with optional field data + of 29 to toggle the user's setting. The MCI code "CM" returns the + on/off status of the full screen chat function. + + ! Fixed a bug that existed when viewing text files. The pause prompt would + display on the last line of the page (overwriting the last line) rather + than moving down to the next line and displaying the pause. + + + When doing a new scan for personal messages, Mystic will now update the + last read pointers for each base. This wasn't a bug, I designed it to + not save the pointers, but I really don't know why I originally did it + that way. :p + + + Added a new menu command: MS. This command allows for easy message + searching in the current base, current group, or all groups/bases. + See MYSTIC.DOC for more information. Two changed prompts go along + with this new command: + + ; Message search: search text input + 310 |CR|03Enter text to search for: + + ; Message search completed + 311 |15Message search completed. + + + Two new additions to the MPL evaluation engine: In the past both function + calls and constant variables could not be evaluated in the second part of + a statement. I never noticed this before, but it has been completed now. + + For example (in the 1.06 MPL engine): + + OK: If Ord(' ') = 32 Then WriteLn('Hello') EndIf + BAD: If 32 = Ord(' ') Then WriteLn('Hello') EndIf + + + Added new option: System Config -> New User Settings -> Ask Screen Size. + If this option is set to Yes, Mystic will ask new users for their screen + size. If this option is set to No, Mystic will automaticly set the user's + screen length to the configured default screen length. + + + New MCI code: QL. This returns YES or NO based on the user's QWK setting + to include a new files list in each packet. + + - Removed the "OC" menu command (Set QWK options) and added the options + individually into the GE menu command. See MYSTIC.DOC for more + information on the GE menu command. + + - Removed prompt 228 that went along with the OC menu command. + + + Added a footer prompt to the batch queue listing. New prompt is #428 + + + Expanded the modem initialization string from 40 characters to a max + of 80 characters + + + Added new prompt to the QWK packet creation: Prompt #228 now displays + if a packet is created with 0 messages, and the download is then aborted + + ; QWK DL: No messages + 228 |CR|15No messages found.|CR|CR|PA + +.-----------------------------------------------. +| Mystic BBS v1.07 RELEASED : December 26, 2000 | +`-----------------------------------------------' + + ! MCFG: The New User Settings 1 -> Language file setting was backwards. + It'd say "Ask" when it really should have said "Use default". + + ! MCFG: The option New User Settings 2 -> Ask Screen Size was missing from + the options but available from within Mystic's internal configuration. + + ! Fixed a bug in the QWK system that would cause certain messages in a + packet to get scrambled. + + ! The QWK system was creating .NDX files for bases that didn't have any + messages in them. This is fine for most QWK readers, but there are a few + that didn't like that. In addition, the .NDX files were not getting + created correctly under certain operating systems. + + + Mystic will now restore the screen on the user's side after sysop chat + modes. + + + Mystic was looking for FILE_ID.DIZ in the Linux version of Mystic. This + has been changed to look for file_id.diz instead. + + ! In line quote mode, Mystic would not allow you to quote a range of text + that wasn't already displayed. + + ! MIDE: When changing the file name during a "Save As", MIDE was not + renaming the window to the new file name. + + + Added new MPL function: PATHCHAR. This will allow for MPE programs to + be easily written to work on both Unix and DOS type file systems. + + ! The index files in Squish message bases were getting written incorrectly. + I think i've managed to nail this bug but I haven't had any substancial + testing done as none of my alpha sites run Squish message bases. :( + + + MCFG: Added (ALT+S) Sort into the status line of the file base editor. + Sorting was always available, but for some reason I never put it on + the status line. Even the help listing had ALT-S documented. =] + + + Changed the INSTALL program to use CTRL-S to start the installation, + instead of the F2 key that was used. Linux users were not able to + use F2 over an xterminal. + + + MPL: Added new procedure called GETSCREENINFO. This is used to read the + values of the Screen Info MCI codes. This will come in handy when + creating lightbar mods which use ANSI templates similar to the rest of + Mystic. + + ! Fixed a small memory leak in the DOS/WIN/OS2 versions caused when running + external programs (doors). + + ! Fixed the DOOR32 problems in Windows version. I had some code commented + out when I released 1.07. I forgot to 'put things back to normal' when + I was done testing some things before the release. =] + + ! Fixed the viewing of the BBS list in the Linux version. Just the case of + an error in file casing. Mystic was looking for a data file in all + uppercased letters when it should have been lowercased. + + ! Fixed the error with inserting a new menu in the Linux internal menu + editor. + + ! Fixed a small problem with displaying the time in twelve hour format. + It'd display 12:01am when it should have said been 12:01pm. + + ! The BI mci code (User's Birthdate) wasn't being displayed correctly. + +.------------------------------------------------. +| Mystic BBS v1.07.2 RELEASED : January 20, 2000 | +`------------------------------------------------' + + + Added (Q)uit to prompt #361. Before if you selected to add to the BBS + list, you'd have to fill out the entire entry before you could save or + abort. + + ! Fixed a problem with the Linux MPE loader. If you tried to run a + script outside of the script directory, things wouldn't work. Mystic + was looking for a "\" instead of a "/". + + + MYSTPACK: Changed the file names of the temporary files created when + packing bases. Hopefully this will solve it crashing on some Linux + distributions. + + ! When Mystic prompted for an upload file name, a space could be entered + as a valid filename. + + ! MPL: When compiling a program, Numerical variables could be assigned to + a function which returned variables in the type of String. A mismatch + error should have occured. + + ! When the remote screen was redrawn after a sysop chat session, it would + redraw incorrectly on if the status bar was NOT in single line mode. + + + Mystic now creates QWK packet's CONTROL.DAT file in MSDOS format even + in Unix type file systems. This seems to be more compatible with all + types of QWK readers. + + ! MPL: When assigning certain numerical variable types, MIDE and MPLC would + report a variable type mismatch when it shouldn't have. + + + Optimized the idle sensitivity within Mystic's Windows version. This + should make keyboard input a little faster/more efficient. + + + Enhanced the method Mystic uses to determine if a line of message text + is quoted text. A few QWK readers would indent quoted text within the + message and Mystic wouldn't see it as quoted text. + + ! Fixed a bug in the file and message base selection listing. When the + base listing was aborted, Mystic would only let an area be selected if it + were already displayed in the list. + + + Mystic/Windows will now check to see if the window title was changed + after running a door, and restore it as "Mystic Node x" if it has been + changed. + + ! If the SysOp was in two line status bar mode and the node chat template + used line 23 as the input line, the teleconferance wouldn't work right. + Fixed. + + + Added new command into the message reading system. The (H) key will now + set the current message as the high water (last read) pointer. At the + moment it doesn't display anything telling you that it worked (when H is + pressed), but it does work. The reason for this is that I don't like to + add new prompts into minor builds. I'll add the new prompts for it in + the 1.08 release. Just thought i'd include it in this form because + there were a couple requests for this feature. + + + The ENTER key is now available in menus using longkey input. + + ! The Hotkey and Longkey settings were reversed in MCFG's menu editor. + + ! When using the lightbar file lister's previous page option, it'd skip + the second page (and ONLY the second page) and go directly from the + third page to the first page in the listing. Fixed. + + + The ESCAPE key in the full screen message editor will now bring up the + command prompt. + + + MCFG: There is now a command to delete a ghosted user from within the + node manager. + + + MCFG: Changed all the commands within MCFG to use CTRL keys instead of Fx + or ALT keys. It may take a little to get used to these changes, but it + allows for us to have MCFG work over terminals in Linux while keeping all + the function keys consistant in all versions of MCFG. + + + MCFG: The mouse cursor is no longer present in the Windows version. + + + MCFG: The window title is now set to "Mystic Configuration" + + + The Linux version of Mystic will now accept the D3 menu command. This + allows the Linux version to write a DOOR32.SYS drop file. + + ! MPL: Fixed a bug with the UserDeleted variable which could cause the + user's flags to get corrupted. + + ! The CHAIN.TXT drop file now outputs the user's age field and a zero for + the gold field. Apparently, having a blank and not a 0 for gold would + cause some doors to crash. + + ! Fixed some Squish related QWK bugs, which caused QWK packet corruption + on all Squish format message bases. + + + Added the (I)gnore message reading command into the lightbar message + index. + + ! Squish last read pointers were not stored in records based on a + 0-based user index. This would cause problems with 3rd party SysOp + mail readers. + + ! Fixed a problem with the lightbar message reader in Squish mode. Mystic + was giving strange results when the previous message command was selected + on the last message of a base. + + + Mystic now adds the ^AMSGID and ^AREPLY fields to all outbound echomail + posts and replies. + + + Mystic will now filter any kludge lines from message text, quoting, and + message exporting. Kludges lines are any line of text in which the first + character is a ^A (smiley face)... + + ! Fixed small input bug in MCFG's language prompt editor. + + ! If a user was online at midnight, their time per day wasn't getting reset + correctly. Mystic will now reset their time left to whatever their + daily limit is for their security level. + + + Added a new door command line MCI code: %U will now be replaced with + the user's alias. + + + MCFG: Added the General Settings into the System Configuration menu. + + + MCFG: Added the Global Message Base Editing feature into the Message + Base Editor. This is a very handy utility. + + + The online file listing editor will now allow renaming files based on + file casing, for operating systems that support it. + + ! Fixed a small bug in the lightbar file lister's next page option which + would sometimes report the end of the listing without displaying the + last file in the listing. + + + MIDE will now save its configuration file in the same path that the + actual MIDE.EXE file exists. This allows for MIDE to be placed in a + directory on the PATH and will prevent it from making a new .cfg file + in each directory MIDE is used. + + + MIDE will now also look for it's help file (mide.hlp) in the actual + path where MIDE.EXE exists. + + ! Finally got around to nailing one of the two word wrapping bugs in the + Full screen editor. This one would cause the BBS to lock up under + certain rare situations. + + + Removed the hard coded clear screen from the standard quote mode. You + will have to update prompt #452 with a |CL mci code in the beginning + of the prompt for it to work the same as it did in the past... + + + MPE programs can now be executed from one of the sysop macros. Any + macro which begins with a ! character will execute an MPL program. The + format is !. If is omitted, Mystic will + look in the SCRIPTS directory as defined in System Paths. + + ! When an MPL program resided in the scripts path, the ParamStr(0) function + would only return the file name of the MPL program and not the full + path and file name as it should have. + + + Added the OS/2 native version of Mystic back into the distribution. It + hasn't had much testing, but hopefully it will do us well. If you find + any problems with it, let me know and I'll try to fix it. Keep in mind + that I no longer have an OS/2 development machine here so I will need + a hand testing things. + +.----------------------------------------------. +| Mystic BBS v1.07.3 RELEASED : May 13th, 2000 | +`----------------------------------------------' + + + New MPL function: GETUSERTIME returns the number of minutes the user + has remaining. + + ! Kludge lines were not getting filtered out in standard message reader + mode. This also caused a problem creating REPLYID tags in networked + message bases. + + ! MCFG would exit out to the prompt when CTRL-C was used to copy a menu + command in the menu editor. + + + Added IP blocking into Mystic's Telnet server (TSERVER). The file + IPBLOCK.TXT can now be placed into the data directory and contain a + list of IP addresses which should be blocked. An asterics can be used + to block a mask of addresses. Each address needs to be in the format + of #.#.#.# and only one address can be specified on a single line. For + example: + + 204.186.*.* + 24.67.213.* + 24.87.321.534 + + + Completely rewrote MYSTPACK to fix some problems with the way the + previous version packed the message bases. Gone should be the crashes + and any problems with last read pointers being screwed up because of + MYSTPACK. Also added the -pack command line, which is now required + in order to start packing the bases. IE: mystpack -pack -skipfirst. Some + minor cosmetic changes have been made. A spinning cursor has been added + while each base is getting packed, and the total number of messages and + bytes removed are displayed or each base along with a total for all + bases after all packing has been completed. + + ! MPL: Fixed a bug which caused some of the MBASE variables to get + corrupted. + + ! MCFG: Fixed a minor aestetics error in the global file base editor. + + + Added a daily history system. Mystic will now track the following + things on a daily basis: emails, posts, downloads, uploads, upload KB, + download KB, calls, and new users. A new menu command (G1) has been + added to view all the daily history, and the following new prompts have + been added: + + ; no history data + 454 |CR|12No history data available.|CR|CR|PA + ; history header + 455 |CL|15Daily System History|CR|CR Date Calls New Posts Email DLs DLkb ULs ULkb|CR|08|$D79- + ; history list + ; &1=date &2=calls &3=newusers &4=posts &5=emails &6=dls &7=dlkb + ; &8=uls &9=ulkb + 456 |07|&1 |$R05|&2 |$R05|&3 |$R05|&4 |$R05|&5 |$R05|&6 |$R09|&7 |$R05|&8 |&9 + ; history footer &1=total days + 457 |08|$D79-|CR|15* Total days: |&1|CR|CR|PA + + ! The extended descriptions in the file list compiler were off by a single + character. Fixed. + + + Added message scan date setting. Users can now set the message last read + pointers based on a date. A new menu command of MD accesses this + function, and a few new prompts have been added: + + ; msg scan date prompt + 458 |CR|09Enter new message scan date |01[|10|UF|01]|09: |11 + ; msg scan date global prompt + 459 |CR|12Set this date for all bases? |11 + ; msg scan date: updating pointers + 460 |CR|12Updating pointers: Please wait... + + + The [ and ] keys now work while editing files within file listings. + + + Mystic will now automatically rename any file name longer than 70 + characters (the maximum Mystic supports) during an upload or a mass + upload. It will keep the file extention if there is one and make the + total filename length 70 characters. If a file already exists with the + new shortened name, Mystic will prompt for the user to enter a new file + name for the file, and then rename it to whatever they type. Pretty + slick if you ask me. =] A new prompt goes along with this: + + 461 |CR|12File of this name already exists.|CR|CR|09Enter new file name (max 70 chars)|CR: + + + Mystic's internal user editor will now accept partial user searching as + well as user record number jumping. + + + When importing FILE_ID.DIZ, Mystic will now strip off all extra blank + lines of text. So if a FILE_ID.DIZ has 10 blank lines before or after + the description, Mystic will remove those 10 blank lines. + + + MPL: Expanded the maximum number of parameters passed in a procedure or + function from 5 to 8. + + + Mystic can now set an ACS level for each node which a user must meet + in order to login to that node. This is found in the Modem/Node + editor. A changed prompt goes along with this: + + ; Node login ACS failed + 315 |CR|14You do not have access to call this node. + + + MPL: Added new MPL function: MCI2STR. This function takes an MCI code + and converts the value of the code into a string variable. + + + Added the /ALLGROUP optional data option into the QWK Download menu + command. + + + Removed the Lightbar Yes/No configuration from the language settings + into the language file as prompts. You will need to replace the + following prompts with the lightbar Y/N stuff: + + ; Lightbar Y/N: YES text + 316 |09|17Ý|15Yes|09Þ|16 |14N|11o |16 + ; Lightbar Y/N: NO text + 317 |14 Y|11es |09|17Ý|15No|09Þ|16 + + + Added a new option into the language settings. There are now two input + field colors, one being the color of the typed text, and the other + being the color of the field itself. This allows for some pretty cool + input field combinations, when playing with these two settings and the + input field fill character. + + + Added the language settings into MCFG, accessible via the language + editor. + + + Added new 'percentage bar' system into MCFG's language configuration. + The first percentage bar is the voting booth results bar. It is now + configured with the language editor and activated when the same Prompt + Info MCI code as in the past. This just allows more customization of + the percentage bar. + + + Added a percentage bar into the lightbar message viewer. The new + configuration options for the message reader percentage bar can be + found in the language editor of MCFG. Two new and optional Screen + Info MCI codes are now available in the ANSIMRD.XXX template file: + + !4 = The X/Y location and text attribute of the actual percentage + of the message read (ie a number between 0 and 100). If this + code is not in the template, it will be ignored. + + !5 = The X/Y location of the percentage bar. If this code is not in + the template file, it will also be ignored. + + + Changed the clear screen functions in Mystic to send an ESC[2J rather + than a ASCII #12 if the user has ANSI graphics. This is a little more + compatible with obscure terminals and telnet clients. + + + MCFG now saves the selected option when navigating menus, and keeps that + option highlighted when returning to a previous menu. + + ! When the status bar was set to single line and a user paged the sysop, + Mystic wouldn't update the statusbar properly to show the user name, + chat reason, and chat commands. + + + MCFG: Added some extra checking in the sort functions. This should + prevent any sorting problems due to memory limitations in the file + and message base editors. + + ! Fixed a bug which could cause some messages that were marked as deleted + to still be readable. In fact, they'd only be actually deleted when + MYSTPACK was ran on the bases. + + ! MCFG: Fixed a very bad bug in the user editor. If you selected CTRL-U + to upgrade, then hit ESC to abort the upgrade, MCFG would upgrade the + user to security level 255. VERY BAD - BUT FIXED NOW! SORRY! + + + Added the ability for message moving. If a user was the original + poster of the message, or if the user has SysOp access rights to the + message base, they can move the message to any message base they have + access to by pressing (M). Changed prompts: + + ; Move message to where? + 282 |CR|09Move to which base (?/List): + ; Moving message. &1=base name + 318 |CR|14Moving message to |15|&1|14... + + - Removed CTRL-Z and CTRL-R commands from the line mode text editor for + compatibility with Linux. Also removed prompt #161. + + + Removed CTRL-Z in the full screen editor and the full screen text editor. + CTRL-Z was save in the text editor and CTRL-Z was help in the normal + full screen editor. The help command has been moved to /H. + + ! Fixed a huge bug in MBBSUTIL's -FPACK function which would truncate + file descriptions at 45 characters. When Mystic was enhanced to allow + 50 characters on a line, somehow MBBSUTIL wasn't. :( + + + Added two new command line features: The -U and -P command line options + can be used to log in as a user from the command line, skipping the + user name and password prompts, or login matrix if one is activated. + These must be used along side the -B command line option in order to + work. If either the user name or password supplied is not valid, + Mystic will simply exit. When supplying a user name, you must replace + all spaces in a name with an underscore (_). For example: + + MYSTIC -B0 -Usome_user_name -Ppassword + + The above would start Mystic in local mode with user "some user name" + already logged in. + + + Mystic will now run STARTUP.MPE if it exists in the scripts directory + directly after the graphics emulation detection/selection. + + + When replying to a private or e-mail message, Mystic will now force + that the To: field is a valid user on the system. A changed prompt + goes along with this: + + 161 |CR|11|&1 is not a valid user on this system. + + + Added new ACS command "Mx" which is based on the current minute. This + command is used to check if a user is accessing a command at a certain + minute. Where X is the minute. For example: M15 will prevent the user + from accessing the command before :15 after each hour. + + + Added new ACS command "Wx" which is based on the current day of the week. + Where X is a numerical value from 0 to 6, representing a day of the week: + + 0 = Sunday + 1 = Monday + 2 = Tuesday + 3 = Wednesday + 4 = Thursday + 5 = Friday + 6 = Saturday + + For example, "W0" would make the command only accessible on sunday. W5 + would be Friday, etc. + + ! The Netmail Origin and Destination address was not getting set properly + when replying to a netmail message. The Origin address was also not + getting set properly when posting a netmail message. These are fixed! + + + Added new command line option: -X + This option goes along with the -U and -P command line options and when + supplied on the command line will execute a compiled MPL program file. + contains the file name and any command line options supplied to + the mpe program. As with the -U option, any spaces should be replaced + with a _ character. If no path is supplied, Mystic will look in the + configured scripts directory for the program. Some examples: + + MYSTIC -B0 -Ug00r00 -PHELLO -XTEST + MYSTIC -B0 -Ug00r00 -PHELLO -XBULLETIN_BULLETIN_BULLET_CHECK + MYSTIC -B0 -Ug00r00 -PHELLO -XC:\MYSTIC\SCRIPTS\GAME\MYGAME + + After the script is ran, Mystic will exit back to the operating system. + This is mostly useful to MPE developers being that they can setup an + external editor for coding their programs, and have it automatically + run the program from within the editor to test things. + + + Expanded the maximum number of variables in an MPL program to 500. This + took quite a bit of recoding because MPL was originally intended to be + a simple script engine, and was written with certain limitations. Well, + now one of those limitations is gone. Technically (if memory allowed), + I could expand the max variables up to 64,000 now! + + + Added the display of the user's permanent index within MCFG's User + Editor. That should have been there to begin with, but I must have + overlooked it. + + ! Fixed a small display bug in MCFG's user editor with the "Editing User + XXX of XXX" would get messed up. + + ! MCFG: The statusbar in the file base editor didn't have the (I)nsert + command on it. I'm not sure if it was like that in 1.07.3 or just the + 1.08 alphas, so I thought I'd mention it here. + + ! Did a full rewrite of the mandatory message base code. The old system + was very buggy and allowed users to quit reading mandatory bases. In + addition, the /M option of the new message scan (scan all mandatory + bases) was not working properly. This should all be fixed now. + + + Added a new auto-running menu command type called 'LINEFEED'. If you + set the hotkey of a internally generated menu to LINEFEED, Mystic will + go to the next line and display the 'display text' of the command. This + can be used, for example, to separate normal commands from sysop commands. + + + Added new 'LINEFEED' option into MCFG's menu editor. + + + The Linux version now sets the terminal mode back into RAW mode when + returning from doors. This should solve some problems with running + external programs that modified the terminal setting, causing Mystic to + seem like its getting input in 'line mode' (ie, no hotkeys). + + + Linux: The input buffer is now purged after an ANSI detection. + + + Added new Door execution MCI codes: + + %P = Current node's temp path where door drop files are made. + %T = Current user's time left in minutes. + %# = Current user's permanent user index number. + + + MIDE: New option for auto indenting added. This can be toggled on or off + within the MIDE options. + + + MPL: The compilers now ignore semicolons, so if you accidentally add on + at the end of a line or something, the program will still compile. + + + MIDE: When the delete key is pressed on a blank line or if it is pressed + at the end of a line, MIDE will now wrap the text from the following + line onto the current line. + + ! When reading private e-mail, it was possible to read another user's + email by using a combination of the prev/next message commands and the + reply command. This has been fixed. I doubt many people found the bug + though as it went over a year before it was reported to me. + + + New MCI display code: U#. This returns the user's permanent index + number. + + ! The GROUP.XXX and FGROUP.XXX display files were showing up during the + login sequence when Mystic was loading the user's msg/file group + information. + + + Added a percentage bar into the lightbar file lister. The new + configuration options for the file list percentage bar can be found in + the language editor of MCFG. Two new and optional Screen Info MCI codes + are now available in the ANSIFLST.XXX template file: + + !5 = The X/Y location and text attribute of the actual percentage + of the message read (ie a number between 0 and 100). If this + code is not in the template, it will be ignored. + + !6 = The X/Y location of the percentage bar. If this code is not in + the template file, it will also be ignored. + + + If the user's NoCaller flag is set, Mystic will no longer update the + total system calls. In the past, Mystic would only exempt the use from + the last callers data. + + ! Fixed a bug which would cause the message base listing to pop up during + the user's login. This was a rare bug, but I finally tracked it down + and squashed it. + + + The optional data field of command G1 (View System History) will now + accept a numerical value to display the last xx days of history. For + example, optional data of 10 will show the history of the last 10 + days. + + + New MCI Code: SN. Displays the SysOp name as configured in Mystic's + configuration. + + ! Fixed a bug in the mass mailing procedure that would cause the From: + field in the message to get corrupted. + + + Two new command line options for the Win32 version of Mystic. When + loading Mystic, the socket descriptor or the comm handle can be passed + on the command line. This is used for using 3rd party telnet and dialup + servers such as a mailer. The command line options are: + + -TID + -CID + + ! MPL/Linux: Fixed problems with the file access functions, specifically + FSEEK, but others may have been affected by the same bug. + + ! While reading messages using the lightbar message index, Mystic would + sometimes show messages as new when they were not. + + + The left/right arrow keys now work as page up and down in the lightbar + file listings. + + ! Mystic was not checking the Post ACS for message bases when uploading + a QWK reply packet. + + ! Mystic was not checking the ACS before running menu commands with the + AFTER hotkey. + + ! Mystic was not checking the ACS before running menu commands with the + EVERY hotkey. + + ! Fixed all mass email bugs. There were several and they should all be + squashed now + + - Removed Mystic's internal Zmodem protocol. + + + Added support for external protocols. Mystic is now compatibile with any + protocol driver that can create a DSZ-style log of the files that were + transferred. Mystic will automatically set the DSZLOG environment + variable before executing the configured protocol. Here are the MCI + codes used in the Protocol Configuration: + + %0 : Returns communications handle (Win32 and OS/2 only) + %1 : Node's modem port as configured + %2 : User's baud rate + %3 : FileName of file to send/receive (or path/filename of text file + which lists all of the files if in batch mode. When receiving + this will return the directory where files should be uploaded + to). + %4 : Node's baud rate as configured + %5 : User's UserID as passed with the -UID command option + %6 : User's handle. Spaces are converted to _. + %7 : Current node number + + + New Menu command of *P for Protocol Editor and new WFC menu key P to + access the Protocol Editor. + + + New command line option: UID. Here you can pass any value up to 60 + characters in length to identify the user. It must be a single word, + it cannot contain any spaces. + + + New MCI code UX returns the user's ID as it was passed with the -UID + command, or blank if one wasn't passed. + + + When pressing ENTER in the lightbar message reader, Mystic will now + PAGE DOWN instead of jumping to the next message immediately. This + allows reading of all messages in the reader by just using the ENTER + key! =] + + + Pressing ENTER in the lightbar file listings now work the same as the + message reader. ENTER will scroll down the listing a page, and if at the + bottom, will move onto the next base in the scan or quit the listing if + not scanning. + + + New Door MCI code (translated when executing doors): %5 will be replaced + by the User ID as passed with the -UID command line option. This works + the same as %5 in the protocol editor. + + + Added the ability to execute an MPL program instead of the command line + for a protocol. By starting your command line with a !, you can have + Mystic run a MPE program. For example: + + send Command: !test %1 %2 %3 + + The above would execute test.mpe from your scripts directory and pass + the results of the %1 %2 %3 protocol MCI codes as command parameters to + the MPL program. Keep in mind that if you do use this to execute some + type of protocol, you must set the DSZLOG environment variable yourself + and have it point to the current node's temp directory as xfer.log. Mystic + will also create an xfer.bat or xfer.sh (depending on operating system) which + can also be executed. + + + Added prompts for protocol selection to the language file. You will + need to replace the old prompts with the new prompts listed below, and + then recompile your language files: + + ; Protocol List Header + 359 |CR|14Available Protocols:|CR + ; Protocol list prompt &1=HotKey &2=Description + 061 |14[|15|&1|14] |&2 + ; Protocol select prompt + 062 |CR|14Select Protocol [|15Q/Quit|14]: |XX + + + Users now have the option to (R)eply to a received node to node message. + There are updated prompts that go along with this: + + 145 |CR|09(R)eply to Message or (ENTER/Continue): |15 + ; NodeMsg reply &1=from &2=node# + 360 |CR|09sending reply to |&1 on node |&2: + + + If a user is online when another user sends them e-mail, Mystic will now + notify the user via a system message that new mail has been received. + + + TSERVER now passes the user's IP address using the -UID command line + option. + + + The /TO: /SUBJ: and /ADDR: options now work with the MP menu command. + + ! MCI codes are now stripped from Message and File base names when they + are written to the Sysop logs. + + ! The UM (use lightbar message index in E-mail) MCI code was not working + correctly. + + ! Fixed MCFG and MIDE "Out of memory" errors that could occur sometimes + in Linux. Now if it happens, you are seriously out of memory that was + allocated to those programs. =] + + + Added the ability to change the message subject from within the line and + full screen message editors. The following new/changed prompts exist: + + ; Line editor "command" prompt help + 167 |CR|03(|11A|03)bort Message (|11C|03)ontinue Message (|11U|03)pload Message|CR(|11Q|03)uote Message (|11S|03)ave Message (|11H|03)elp|CR(|11T|03)itle Change + ; FS editor command prompt help + 355 |CR|03(|11A|03)bort Message (|11C|03)ontinue Message (|11U|03)pload Message|CR(|11Q|03)uote Message (|11S|03)ave Message (|11H|03)elp|CR(|11T|03)itle Change + ; line editor edit subject + 462 |CR|09Enter new subject: + ; FS editor edit subject + 463 |CR|09Enter new subject: + + + Expanded the data filename size from 8 characters to 40 characters in + both the message and file bases. + + + Mystic will now recreate MBASES.DAT with the Electronic Mail base if for + some reason reason it does not exist in the data directory. + + + Mystic now allows the quote header to be configurable in all quoted text. + A new prompt goes along with this: + + ; msgtext quote header &1=date &2=from &3=initials + 464 On |&1, |&2 said the following... + + + When tagging a file in the lightbar file lister, Mystic now automatically + moves to the next file after tagging the current. + + ! Fixed a bug in Linux relating to parsing MCI codes in a display file. + + + Completely rewrote all of the 'local' input and output functions in + the Windows version. It should be faster. + + - Removed the password being displayed in clear text on the SysOp status + bar when a user is logging in. + + + The user editor now masks the password with asterisk unless it is being + edited. + + - Removed the DOS and OS2 versions. + + + Completely switched all versions of Mystic BBS over to Free Pascal. Using + only one compiler now makes it much easier to maintain the code. + + + Added new MCI code |ISxx where XX is a two digit number. This limits the + actual max amount of input on the next input prompt. Whereas IN limits + the size of the input prompt space itself, this limits the actual amount + of characters that will be accepted. + + ! Fixed a bug when attempting to determine an archive's file extension + under Linux. The actual extension comparison is now NOT case sensitive + when checking it against the archive tools in the configuration. + + ! Fixed a bug in the full screen editor, where the cursor would move + strangely when using the right arrow key at the end of a line. + + + MBBSUTIL's UPACK (user pack) function will now go through every message + base marked as "Private" and delete any messages TO or FROM the person + being deleted. + + ! Mystic wasn't working correctly on voting questions #15-20 (if you had + that many). The maximum is 20 and all 20 should work correctly now. + + + All door menu commands can now include the /DOS option on the command + line data. If /DOS is found, drop files will be created in MSDOS format + even if the operating system is not Windows. If the /DOS option is not + supplied, the drop files will be created in the format of the operating + system (CRLF for Windows and LF for Linux/OSX). Ex: + + Menu Command: DD + Optional data: c:\mystic\doors\mydoor.sh %1 %2 /DOS + + + Removed all of the remote modem/TCPIP code for Windows and replaced it + with newer stuff from Mystic 2.0 code. Unfortunately this means that + built in support for modems/dialup has been removed. But it opens a + lot of doors moving forward. I would like to eventually support dialup + in Windows again in the future. It is probably possible using 3rd party + software for now. + + ! Mystic was not always setting the user's node action correctly when + reading messages. This should be fixed. + + ! Fixed various bugs with pause prompts, where some terminals sending + CRLF would cause subsequent pause prompts to be skipped. + + + Replaced TSERVER with MIS. MIS only has its telnet functionality + enabled for now. It is based off of the Mystic 2.0 server code, + which had semi-working POP3/SMTP/FTP servers and seems to be more + efficient and at least as stable. + + + Changed the WFC screen to "configuration mode", accessible by running + mystic -cfg command line. This also works in Linux allowing access + to the internal configuration editors. Mystic will skip checking + for created directories and some other data file related start up + checks when this command line is used, so that they can be corrected + using the editors. Mystic only requires MYSTIC.DAT and a valid language + file in order to enter configuration mode. + + - Removed the "screen saver" from the WFC/Configuration mode screen. It + was really only useful in the DOS version which is no longer supported. + + + Added a new MCI code: XX. This actually does nothing, but it can be useful + in some prompts files to help with prompts. For example, if you have an + editor that always removes any trailing spaces, you might use it to make + sure the ending space is never removed: + Enter user name: + Enter user name: |XX + + ! Fixed a bug where Mystic was doing a case sensitive check of language + files in Windows. + + + Expanded menu names to a maximum of 20 characters now, up from 8. Now + that the DOS version is no longer developed, we can finally start moving + away from its limitations! There will be places where this isn't updated + and that is because I didn't want to change the data file formats this + close to release. + + + Added in a new Intel Mac OSX native version of Mystic BBS! + +.------------------------------------------------. +| Mystic BBS v1.08 RELEASED : September 20, 2011 | +`------------------------------------------------' + + ! Fixed a bug in the full screen editor that could sometimes garble text + seemingly at random. + + ! The TAB and ESCAPE hotkeys were not working in lightbar menus. + + ! Fixed some minor display bugs in MCFG + + + Added new function to MBBSUTIL called -MTRASH. This will go through + all message bases and delete any messages To or From the users listed + in a text file. The file should contain one username per line, + and the names do NOT have to be members of your BBS. + + MBBSUTIL -MTRASH c:\mybbs\data\trashcan.dat + + It is recommended to use this with your trashcan.dat file in the data + directory, which Mystic uses to disallow new users with any usernames + found in the file. If you have networked message bases, this could + be executed whenever your tosser brings in new messages - assuming + it is not already able to filter out messages on its own. + + + Mystic now creates semaphore files in the DATA directory when new + networked mail is created: + + echomail.now - Created when new echomail has been posted. + netmail.now - Created when new netmail has been posted. + newsmail.now - Created when new "newsgroup" message has been posted. + + This is basically an alternative to using errorlevels to process + networked messages. This is now the recommended method to use for + tosser activity as there may be a time in the future when Mystic does + not exit after each session. + + + Did some restructuring of the file base data. The following changes + have been made in order to support future features: + + + Added FTP name for each base + + Added FTP list ACS for each base + + Expanded file base passwords to 20 characters + + Expanded all file base ACS strings to 30 characters + + Expanded the file directory to 120 characters + + Expanded the display file name to 20 characters. + + Added an ansi template field on a per base level. + + + Enabled the FTP server inside of MIS. At the time of this writing the + server does not support uploads and it does not properly send file and + directory dates. It has been tested with the following: + + Linux "ftp" - No problems + Windows FTP - No problems + Filezilla FTP - No problems + SmartFTP - No problems + Firefox - No problems + Chrome - Does not work. This is a problem with Chrome + which does not properly support the base FTP + protocol standards (tries to force EPSV mode) + I think. + Internet Explorer - Does not work, cannot determine why + + As a result, a version of MIS is now included in the OSX and Linux + versions. These versions do not support telnet (since Telnet is + currently handled by inetd-type services on those platforms). + + The FTP server creates a virtual directory structure, one for each + file base using the "FTP Name" configured for each file base. No + other configuration is needed outside of setting the basic FTP + stuff within the Internet options of MCFG. + + When configuring the FTP ACS for each file base, keep in mind that + any "session"-type data in ACS will automatically return true. This + means that most basic ACS works (security, time of day stuff, user + flags) but some things like "ansi graphics mode" are always true, + since the user cannot have a graphics mode via FTP. + + ! Removed some debug logging accidentally left in 1.08. + + + Expanded the maximum message size in the message bases to 500 lines, + up from 200. This was a bigger undertaking than I had expected, so + hopefully there are no issues. + + + Message Base permanent indexes are now shown in the internal message + base editor. + + ! Fixed a screen bleeding bug that could happen occasionally while + scrolling the screen. + + ! Door drop files under Linux were actually being created in old MacOS + file format, unless /DOS was specified to create DOS versions. Whoops! + + ! Fixed the installation where it would not properly assign/create the + local QWK path. + + ! Fixed a bug where Windows was not letting sub-processes properly + inherit a socket handle. This means that NetFoss for example was not + working properly with Mystic to run old DOS doors in Windows. + + + Mystic no longer creates duplicate socket handles when executing doors. + This was added to work around a bug in Windows 95, which I have decided + doesn't really need to be supported anymore. + + + Added in a POP3 mail server into MIS. This allows BBS e-mail be to + retrieved by e-mail clients, smart phones, etc. Use MCFG to set it up + under Internet Options and make sure you set your domain name correctly + as all email will be User_Name@yourdomain.com. + + + Mystic now saves the last 5 inputs and you can use the up and down arrow + keys to scroll through your input history during field-based input. + This doesn't work for hotkeys and the like, only field-based input such + as message subjects, node chat messages, etc. + + + Mystic will now remember the user name entered before "Create new user?" + question and force it into the input buffer as the default value if the + user selects to create a new account. Unless of course the user types + "new" then it will not default to anything. + + ! Fixed some file-casing issues with the message base editor, when + deleting a message base and its data files in Linux. + + + New MCI code [K sends a "clear to end of line" ANSI code, or nothing + if the user does not have a capable terminal. + + + New MCI code BS sends a destructive backspace. + + ! MCI code IS was not working correctly when it was found in a display + file. + + + New MCI code [Lxx, where XX is a two-digit number. This code takes the + cursor from its current position, and does a descrutive backpace until + it reaches cursor position XX. So for example, |[L01 would move the + cursor to the beginning of the current line, while erasing everything + on the way. If the cursor is already less than XX, it does nothing. + + ! Mystic now longer converts the user name to proper casing when a new + message is uploaded by QWK. + + + Removed some data file checks on startup of Mystic. Any major issues + which would cause Mystic not to start can be addressed using MCFG. + + + Added SMTP server into MIS to go along with the POP3 server. Settings + are in MCFG. Make sure you are setting your domain name correctly. Its + a very basic server. It does not reformat messages that might + be sent with a client that does not word wrap at a compatible level. In + addition, there is always the challenge of HTML emails. + + ! Fixed a small display file parsing bug. + + + If "newletter.txt" exists in the DATA directory, its contents will now + be automatically e-mailed to new users when their account is created. + + + If "sysletter.txt" exists in the DATA directory, its contents will now + be automatically e-mailed to the SYSOP whenever a new user account is + created. An example of its contents might be: + + A new user account has been created! + + Handle: |UH + Real name: |UN + Security: |SL (|SD) + IP: |UX + + This account was created on |DA at |TI. + + + If "hackwarn.txt" exists in the DATA directory, its contents will now + be automatically e-mailed to a USER if someone tries to log in as them + but fails the password check enough to be disconnected. An example of + its contents might be: + + This is an automated E-mail sent to users when an unsuccessful attempt to + login has occured. This could have been your own error, or possibly someone + attempting to access your account without your knowledge. + + Here is some information our system has logged from this attempt: + + Date: |DA + Time: |TI + IP Address: |UX + + + Added a new MPL function: PurgeInput. This will clear out any local + or remote input data. + + + Added new MCI code PB. This will purge the input buffer just as the + MPL function above will. + + + The left and right arrow keys now function the same as page down and + page up keys in the full screen editor quote window. + + ! Fixed a very rare MCI parsing bug. So rare it made it this long without + ever being reported! Hopefully this fix doesn't create any new issues. + + ! Fixed a small bug where the cursor wasn't properly updating on the screen + after a backspace during local mode in the Windows version! Whew! + + + The lightbar message reader now allows you to scroll through all messages + in the message base, regardless of where you start reading from. + + + The HOME key now works in the lightbar message index. This returns you + to the first message on the first page. + + + The END key now works in the lightbar message index. This takes you to + the last message on the last page. + + + The HOME key now works in the lightbar message reader. This takes you + to the start of the message. + + + The END key now works in the lightbar message reader. This takes you to + the end of the message. + + + New menu command: MX. This command posts a text file to a message + base. First it will look for the file in the DATA directory, but + you can also include the path in the command data. The format of + the command data is: + + Syntax: ;Area #;From;To;Subject + Ex: + Command: MX + Data: \mystic\mystic.doc;2;g00r00;All;Mystic Documentation + + The command will automatically split text files into multiple posts + if the text file is larger than 500 lines (the max per message). It + will also append the post count onto the subject. So for example, if + the above document was 1200 lines in size, it would create 3 posts in + area 2 with the subjects: + + Mystic Documentation (1/3) + Mystic Documentation (2/3) + Mystic Documentation (3/3) + + The command caps at 10,000 lines for a text file post. Even that much + would be pretty rediculous (20 posts!). + + + Setting message scan pointer dates now checks to see if a valid date + has been entered, and aborts if an invalid date has been entered. + + ! MCFG wasn't updating the status bar correctly when returning from the + message base edit back to the message base list. + + + Mystic now supports random origin lines on a per-base level. You can + replace the origin line for each message base with: + + @RANDOM= + + You can include a path to the text file, but if no path is included + Mystic will look in the DATA directory for the file. This allows + for random origin lines to be generated from separate lists, per base + if you choose. + + Example: + + Origin: @RANDOM=randomorigins.txt + + If the origin line is configured as above, it will select a random + origin line from the file "randomorigins.txt" in the DATA directory. The + random origin text file should contain one origin line per line in the + file. Traditionally the maximum characters for an origin line is 50, but + Mystic does not put any restriction on this - so you are responsible to + keep them at a length considered acceptable. Blank lines will not be + factored into the random line. If it finds a blank line, it will skip + over it and select a new one. + + Remember, you can use MCFG's global message base editor to update + every (or some) message bases at once with this new feature, if you + decide to use it. + + + The %0 code has been added to the Test upload commmand line. This + passes the socket handle. + + + Mystic now checks for valid date input when setting the new file scan + date. + + ! Fixed a bug in the installation program that would cause the terminal + in Linux/OS to get stuck in RAW mode if the installation encountered an + error. + + ! Fixed a problem in the FTP server where it was returning the wrong + status number with the PWD command. + + ! Fixed a problem with PASSIVE mode FTP transfers. The server was not + opening a passive connection immediately when a PASV command was + found. Instead it was waiting for the next command where a data + connection would be used to open it. This caused the server not to + work with some clients. As a result, it now works with Internet + Explorer and Cyberduck. + + + Added Extended Passive and Extended Port support to the FTP server. The + server now works with Google Chrome as a client. + +.------------------------------------------------. +| Mystic BBS v1.09 RELEASED : October 17, 2011 | +`------------------------------------------------' + + ! Mystic was not exiting with errorlevel 255 when quitting from the WFC + screen as it did in previous versions. + + + Added an "Active" and "OSType" to the archive configuration. You will + want to verify that these are set correctly for your OS when upgrading. + + + Added an "Active" and "OSType" to protocol configuration. You will want + to verify that these are set correctly for your OS when upgrading. + + + Added Protocol configuration to MCFG + + + Added Archive configuration to MCFG + + ! The internal editors for message and file groups were not correctly + displaying the group name during the group listing. + + + Pressing enter (entering nothing) during toggle of file and message + base newscan settings will now exit instead of redisplaying the prompt + again. + + + Did some minor optimization of the ANSI codes which Mystic generated + when using pipe codes. + + ! Mystic wasn't correctly determining the free space on the disk when + attempting to copy from a slow media device. This was only happening + on Linux/OSX. + + ! The right arrow key was not working as PAGEDOWN in the fs editor quote + window. + + + The HOME and END keys now work in the full screen editor quote window. + + + File and message groups can now be flagged as "Hidden" which means they + will not show in the group listings. + + ! Fixed a bug with the HOME and END keys in the lightbar message reader + which could cause a lock up. + + ! Fixed a bug when drawing percentage bars in the various places where it + was possible for a divide by zero crash. + + ! When using the -X command line, Mystic was going to the local WFC screen + if local mode was specified. The -X command line now forces an immediate + local login as it was intended. This only happened in Windows. + + + Fixed RAR internal archive viewing. It broke when we switched compilers. + Apparently it is still broken if there are comments embedded in the .RAR + file. Hopefully I will get this cleared up soon too. + + + MPL has been completely overhauled and now follows very closely to real + Pascal syntax. This will require lots of syntax changes, but the good + news is that the syntax will likely not change again, since we are + standardizing it. Most changes are in the following areas: + + - Pend, Wend, Fend all must be changed to END + - If statements now require a THEN and also a BEGIN/END if it has more + than one statement. EndIf is now just an End (if required), and + ElseIf is now two separate statements (Else If) + + OLD: + If Ch = 'A' + ElseIf Ch = 'B' + EndIf + + NEW: + If Ch = 'A' Then + WriteLn('A'); + Else + If Ch = 'B' Then + WriteLn('B'); + Else + If Ch = 'C' Then Begin + WriteLn('C'); + WriteLn('Needs a begin and end because there are two statements'); + End; + + - Variable declartions follow Pascal rules, so: + + OLD: Var ch char array(1..20) + NEW: Var ch : Array[1..20] of Char; + NEW: Var B1, B2, B3 : Byte; + + - Array elements are now specified with [ and ] instead of ( and ) + + - For and While statements now require "Do" and if there are more than + one statement in the looped section, it must have open and close + blocks (ie Begin End). Fend and Wend are changed to "End" now or + removed depending on if there is more than one statement. + + OLD: + For A := 1 to 10 + WriteLn('Hello'); + Fend + + NEW: + For A := 1 to 10 Do + WriteLn('Hello'); + + For A := 1 to 10 Do Begin + WriteLn('This code'); + WriteLn('Has more than one statement so it needs Begin/End'); + End; + + - "#" style comments are not supported. Instead most standard language + comments are supported... //, /* */ and (* *) comments are used. + + - Include files have been changed to {$include Myfile.mps} since # is + a part of MPL comment/directive system anymore. + + + New MIDE replaces old MIDE. This version does not yet have syntax + highlighting, but has a nicer pulldown menu interface. Syntax highlighting + may or may not be implemented in the future. This updated MPL has multiple + syntax and block comments which makes it a much larger effort to support. + + The good news is, MPL (at least the Pascal syntax) is consistant with real + Pascal compilers, so those editors will properly syntax highlight now! + + + New MPLC replaces old MPLC. + + + The "OneKey" function now has a boolean arguement which if true causes + Mystic to echo the character to the user. So: + + Ch := OneKey('ABCDEFG', True); + + Would be the same as the old: + + Ch := OneKey('ABCDEFG'); + + Supplying FALSE it will not echo, which increases its usability. + + - Removed fOpen, fReadRec and fWriteRec functions. + + + Added new File type variable along with fAssign/fReset/fReWrite + functions which work closer to how Pascal would work. It also makes + managing files all together much easier and includes the ability to + specify a "filemode" which in the example below 66 means "Read/Write" + and "Deny None" access to a file. This would be the most commonly + used filemode. + + OLD: + fOpen (1, Text, Reset, 'myfile.txt'); + NEW: + Var MyFile : File; + + fAssign (MyFile, 'myfile.txt' 66); + fReset (MyFile); + + FReadRec and FWriteRec can be replaced with FRead/FWrite. There are a few + considerations. Previously they were designed to work with Pascal records + now that limitation is removed, but a slight change is needed. Strings + need to have one more added to their size when you FREAD/FWRITE, and other + variable types used to not require a size, which they do now. + + OLD READING OF BBSLIST RECORD: + + fReadRec (1, bbs_cType) + fReadRec (1, bbs_Phone, 15) + fReadRec (1, bbs_Telnet, 40) + fReadRec (1, bbs_Name, 30) + fReadRec (1, bbs_Location, 25) + fReadRec (1, bbs_Sysop, 30) + fReadRec (1, bbs_Baud, 6) + fReadRec (1, bbs_Software, 10) + fReadRec (1, bbs_Deleted) + fReadRec (1, bbs_AddedBy, 30) + fReadRec (1, bbs_Verified) + fReadRec (1, bbs_Extra1) + fReadRec (1, bbs_Extra2) + + NEW READING OF BBSLIST RECORD: + + fRead (ListFile, bbs_cType, 1) + fRead (ListFile, bbs_Phone, 16) + fRead (ListFile, bbs_Telnet, 41) + fRead (ListFile, bbs_Name, 31) + fRead (ListFile, bbs_Location, 26) + fRead (ListFile, bbs_Sysop, 31) + fRead (ListFile, bbs_Baud, 7) + fRead (ListFile, bbs_Software, 11) + fRead (ListFile, bbs_Deleted, 1) + fRead (ListFile, bbs_AddedBy, 31) + fRead (ListFile, bbs_Verified, 4) + fRead (ListFile, bbs_Extra1, 4) + fRead (ListFile, bbs_Extra2, 2) + + Note the strings have one added to their size, and other variable types + now also include their size: + + Byte, Char = 1 byte + Integer, Word = 2 bytes + LongInt = 4 bytes + Strings = String size + 1 + + + MPL now does not trap File IO errors and stop execution of the MPL + program. Instead, the result of the last call is now stored in the + "IoResult" variable. Ex: + + fAssign (MyFile, 'myfile.txt' 66); + fReset (MyFile); + + If IoResult <> 0 Then + WriteLn('Unable to open file!'); + + + MPL now supports negative numbers. + + + MPL now supports the "Real" variable type which allows floating point + calculations. + + + MPL now supports proper order of operations (PEMDAS) during mathmatical + equations. It also now supports the ability to use paranthesis to + override order. + + + The "MOD" operator has been changed to a % character. So: + + OLD: A := 10 MOD 8 + NEW: A := 10 % 8; + + + MPL now supports a POWER operator in mathmatical equations: + + A := 2 ^ 3; + + + Support for line comments that begin with a # character has been removed + and replaced with a more standard // comment. + + OLD: # My comment here + NEW: // My comment here + + + MPL now supports block comments (* and *) similar to Pascal: + + (* + This is a comment + So is this + *) + + + Strings can now be defined with an actual string length. Supplying no + string length defaults to the maximum of 255 characters. + + Ex: Var MyString : String[10]; + + - Removed the GetCFG MPL command. The configuration variables now point + directory to the configuration record stored in Mystic's memory, so this + function is no longer needed - the variables are already populated. + + + MPL now allows variables to be declared in local blocks (ie anywhere) and + can default them to a value. IE: + + Var Ch : Char = 'A'; + + + MPL now allows functions and procedures to defined inside of other + functions and procedures. + + + MPL now allows procedures to be called recursively. + + + MPL now supports GOTO labels + + + Added new MPL variables for groups: FGROUPHIDDEN MGROUPHIDDEN + + + Added new DIRATTR attribute used with FindFirst/FindNext/FindClose in + MPL. + + + Increased the maximum number of MPL variables from 500 to 2500 + + + MPL now allows multi-dimensional arrays up to 3 levels deep: + + Var MyArray : Array[1..10, 1..10, 1..10] of String[30]; + + + MPL now allows a second type of Syntax which is closer to C but modeled + after Iniquity's programming language. This can be changed on the fly + in your code using a compiler directive. See MPLTEST.MPS now included + with the Mystic distribution for an example. + + + MPL now allows the memory location of a variable to be passed to + functions and procedures using the VAR keyword. It works the same + syntax as Pascal: + + Procedure myProc (Var Str: String) + + + MPL now handles variable memory differently, as well as does more file + seeks vs sequential reads to move around the compiled MPL program. In + some test cases this has increased execution speed by up to 400%, but + this gain is not consistant. I hope in general it will be an increase. + + + MPL now supports CASE statements. This has actually been expanded on + from the Pascal standard but still follows the same syntax. It has been + expanded to allow CASE of more variable types, such as strings. See + the included MPLTEST.MPS for examples. + + + Addressing an array element now uses the [ and ] characters instead of + the ( and ) characters similar to real Pascal. + + + MPL now allows characters to be referenced by their ascii number. + + Ex: If Ch = #32 Then WriteLn('Ch was a space key!'); + + + MPL strings can now be accessed (in most places) as if they are an array + of characters, as Pascal allows: + + Var S : String; + + S := 'Hello'; + + If S[1] = 'H' Then WriteLn('First letter is H!'); + + + MPL programs no longer require a "USES DIR" when doing directory stuff. + + + Renamed MPL function "fExist" to "FileExist" + + + Renamed MPL function fErase to FileErase. The reason I am renaming them + is because the "f" prefix implies a File IO function, and these are not + functions that deal with a "File" type variable. + + + Renamed MPL user variables USERLAST and USERFIRST to UserLastOn and + UserFirstOn. LAST and FIRST didnt really make sense. + + + MPL now allows functions to be called without a variable being assigned. + Ex: Function ReadKey normally returns a character, but it can be used + without one now simply but calling "ReadKey" by itself. This opens up + a lot of flexibility in the way MPL functions and procedures can work. + + Ex: + Write ('Press a key: '); + ReadKey; + + - Removed the "IsNoFile" function in MPL due to above change and because + of below change: + + + The DispFile function now optionally returns TRUE or FALSE depending on + if the file actually displayed. Keep in mind "IsNoFile" was TRUE if the + file was missing, while this is TRUE if it displayed a file. + + + Renamed the file extension of compiled MPL programs to .MPX. This was + because many operating systems think a MPE file is a video file, and also + to signify the giant changes in MPL with this version. You can delete + *.MPE from your scripts directory. + + + Renamed the "CLS" MPL function to ClrScr to match Pascal's CRT function. + + + Renamed the "fCopy" MPL function to "FileCopy" since the "f" implies a + file-type variable function. + + + Changed "FB" variables to "FBASE". These are the variables that go along + with USES FBASE. The prefix should match, as it does with the MBASE + variables. So Ex: FBNAME is now FBASENAME + + + Updated BBSLIST.MPS for 1.10 and fixed some potential issues which would + happen under Unix platforms. + + + The FindFirst/FindNext functions due to compiler/OS changes do not quite + work the same as they once did in DOS. You should assume that you will + get directories and files and use "DirExists" to determine the difference + until a better system is in place. Optionally you can check the DIRATTR + bit set to determine a directory vs a file. + + + MPL now supports /* and */ style block comments! + + /* + This is a comment block! + */ + + + New ACS code OM returns true if the user has Sysop access to the current + message base OR is the owner of the current message (if reading messages). + + ! When moving a message, Mystic could crash after listing the message bases. + If you did not list the message bases, it would work fine. + + ! Mystic was not properly redrawing the screen after moving a message in the + lightbar message reader. + + + New MCI code MT returns the total messages in the current message base. + + + New MPL variable AllowArrow (boolean) is used to turn on arrow key + processing in the readkey function. This is also used outside of MPL so + change it with caution. + + + New MPL variable IgnoreGroups (boolean) is used to cause all group ACS + evaluations to return true even if they are not in the group. This is + also used outside of MPL so change it with caution. + + + New MPL variable pausepos (byte) gives access to Mystic's internal line + counter used for screen pauses. + + + New MPL variable allowmci (boolean) toggles on/off MCI code parsing. This + is used outside of MPL so adjust this with caution. + + + New MPL function WordCount returns the number of words in a string using + the final parameter to define the character that determines what separates + words. Ex: + + Str := 'Hello this is a test'; + + WriteLn ('Str has ' + Int2Str(WordCount(Str, ' ')) + ' words in it.'); + + + New MPL function WordGet returns the actual word at a specific word count. + Ex: + + Str := 'Hello this is a test'; + + WriteLn('The second word was: ' + WordGet(2, Str, ' ')); + + + New MPL function WordPos returns the character position in the string where + s specific word is located. Ex: + + Str := 'Hello this is a test'; + + WriteLn ('Second word is at: ' + Int2Str(WordPos(2, Str, ' '))); + + + New MPL function DayOfWeek returns a number between 0-6 depending on the + day of the week: + + 0 = Sun, 1 = Mon, 2 = Tue, 3 = Wed, 4 = Thu, 5 = Fri, 6 = Sat + + + New MPL function DateJulian returns the longint Julian value of the current + date. + + + New MPL function DaysAgo function takes a Julian date value and returns + the number of days between the current date and the passed date. + + + New MPL function DateStrJulian works just like DateStr but accepts a + Julian date. + + + DateStr no longer accepts 0 as the users current date format. Pass the + user's actual date format to it if you want that. For example: + + Str := DateStr(MyDateTime, UserDateType); + + The other parameters (ie 1 = MM/DD/YY) work as they used to. + + + New MPL variable ProgName returns the path and filename of the current + MPL program. + + + New MPL variable ProgParams returns any of the parameters passed to the + MPL program as a single string. + + + New MPL function JustPath takes a string arguement and returns only the + path (including the trailing backslash). Ex: + + WriteLn ('This MPX is located in ' + JustPath(ProgName)); + + + New MPL function JustFile takes a string arguement and returns only the + filename: + + WriteLn ('This MPX filename is: ' + JustFile(ProgName)); + + + New MPL function JustFileName takes a string arguement and returns only + the base filename (ie, not the extension so it basically just removes + a file extension). This does not remove a path, JustFile does that. + + + New MPL funtion JustFileExt takes a string arguement and returns only the + file extension. + + + New MPL function ReadEnv returns the value of an environment variable of + the operating system. + + + New MPL function DirExist returns true or false if a directory exists. + + + New MPL function Replace replaces all occurances of a supplied text and + returns a string. Ex: + + Var Str : String = 'Hello Hello Hello'; + + Str := Replace(Str, 'Hello', 'World'); // Str is now World World World + + + New MPL function strWrap takes two strings and wraps them after the word + closest to the maximum supplied length. It optionally returns the actual + position where it wrapped. + + Var Str : String = 'This will wrap'; + Var Str2 : String = ''; + Var Where : Byte; + + Where := strWrap(Str, Str2, 10); + + WriteLn ('It wrapped at ' + Int2Str(Where)); + WriteLn ('First string: ' + Str); + WriteLn ('Second string: ' + Str2); + + + New MPL function strComma accepts a longint and returns it as a string, + with commas added where applicable: + + Ex: + + WriteLn (strComma(1000000)); // will print 1,000,000 + + + New MPL Cfg variable CfgTempPath returns the location of the current node + temporary directory. + + + New MPL function TimerMin works just like Timer except returns minutes + instead of seconds. + + + New MPL function Date2Dos takes a MM/DD/YY format date and converts it to + DOS packed datetime format. + + + New MPL function Date2Julian takes a MM/DD/YY format date and converts it + to a Julian date format. + + + New MPL function dateg2j takes a gregorian date format and converts it to + a Julian format. + + + New MPL function datej2g takes a julian date format and converts it to a + gregorian format. + + + New MPL function DateValid takes a MM/DD/YY date and returns true or false + depending on if the date is valid (ie, month is 01-12, etc). + + + New MPL funtion WritePipe works just like Write but only parses Pipe color + codes instead of all MCI codes. + + + New MPL function WritePipeLn is WritePipe with a CRLF at the end. + + + New MPL function WriteRaw works just like write except it does not parse + any pipe color codes OR MCI codes. + + + New MPL function WriteRawLn works just like WriteRaw except with a CRLF + added to the end. + + ! Mystic now properly buffers menu files when loading them. + + + New MPL fuction "MorePrompt" displays the system more prompt and returns + a Char value of either Y N or C depending on what the user selected. + + + New MPL function "Pause" displays the system pause prompt, for those that + don't like doing a "Write('|PA')". Keep in mind if you have a function + called Pause in your MPL program, you will need to rename it to something + else. + + + The %U code for running doors now replaces spaces in the username with an + underscore (_). + + + New MPL function AddSlash(String) : String takes a directory and appends + the appropriate ending backslash or forward slash depending on operating + system. If the slash is already there, it does nothing. + + ! InputNY function now correctly returns TRUE if they user selected YES. It + was reversing the result. InputYN worked fine, this one did not. MPL + programs that used a work around for this, will need to change code. + + + Mystic now properly parses PAGEUP and PAGEDOWN keys sent by SyncTerm. This + change is only for Windows as it has yet to be determined if making this + change in OSX is going to conflict with the F9 and F10 keys. I may end up + making this change on those sides too and forgetting to update the changes + file. Be forwarned :) + + + Mystic now has an internal ANSI gallery. A new menu command, 2 new + templates, a new percent bar configuration, and several new prompts come + along with this. + + The new menu command is GA and takes a command line option that points to + the root of where your ANSI files exist. This allows the user to move + around through the directory structure starting at the root supplied in + the command option data. + + The gallery allows for an unlimited "depth" in the directory structure with + the only limitation being that each directory can have up to 1,000 files + or folders in it. The gallery supports file downloads, first letter + filename jumping, and full arrow/pageup/pagedown/home/end manuvering. + + The gallery will also attempt to import SAUCE tags on the fly while + presenting the directory structure which will be sorted alphabetically on + the fly. SAUCE data is available as Prompt Info codes in the prompts + that go along with it. This stuff is CPU intensive and wasn't really + viable "back in the day". + + A new percent bar configuration can be found in the language settings in + MCFG for the Gallery Bar. This bar in the default template expects a bar + length of 20. You will need to go set that up how you'd like it, and if + you do not want to use it you can simply blank out the percent bar prompt. + + Two new templates go with this: + + ansigal.ans - Contains the main gallery screen. ScreenInfo codes !1 and + !2 are used to define the top line and the bottom line in + the file listing box. The actual content of the box is + defined using prompts. + + ansigalh.ans- This is the help screen displayed when the user enters + a ?. + + The following new prompts must be added to your language files, and your + language files must be recompiled using MAKELANG or MCFG: + + ; ansi gallery: Ansi is required to use this prompt + 466 |CRSorry, this gallery requires ANSI graphics|CR|CR|PA + + ; ansi gallery: Deselected file in list (bar OFF) + ; &1=filename &2=filesize &3=filedate &4=sauce author &5=sauce title + ; &6=sauce group &7=filetime + 467 |[X02|07|16 |$R49|&1 |$R12|&6 |$R12|&4 |XX + + ; ansi gallery: Selected file in list (bar ON) + ; &1=filename &2=filesize &3=filedate &4=sauce author &5=sauce title + ; &6=sauce group &7=filetime + 468 |[X02|15|17 |$R49|&1 |$R12|&6 |$R12|&4 |XX + + ; ansi gallery: Deselected DIRECTORY in list (bar OFF) + ; &1=filename &2=filesize &3=filedate &4=sauce author &5=sauce title + ; &6=sauce group &7=filetime + 469 |[X02|07|16 |$R49|&1 |12|$D15 |XX + + ; ansi gallery: Selected DIRECTORY in list (bar ON) + ; &1=filename &2=filesize &3=filedate &4=sauce author &5=sauce title + ; &6=sauce group &7=filetime + 470 |[X02|15|17 |$R49|&1 |12|$D15 |XX + + ; ansi gallery: Current path update prompt (when switching directories) + ; set to blank to not display a path + ; &1 = current path &2 = # of files in path + 471 |[X08|[Y05|15|16|$R70|&1 + + ; ansi gallery: Percent bar update (when redrawing page) + ; Set to blank to not display a bar. Bar config is in MCFG lang settings + ; &1 = Percentage bar &2 = Percentage (0-100) + 472 |[X52|[Y23|15|16|$L03|&2|07% |&1 + + ; ansi gallery: Default sauce values for no sauce record. 3 words separated + ; by semi-colons: Title;Author;Group IE: Unknown;Unknown;Unknown + 473 Unknown;Unknown;Unknown + + ; ansi gallery: Command prompt for ! (only download for now) + 474 |CR|12Download |&1? |XX + + Enjoy! + + + MPL FOR/WHILE/REPEAT loop statements now have CONTINUE and BREAK commands + availble to manipulate the loop. + + + When MIS creates a new telnet node in Windows, the specific node will have + its screen updates disabled by default. This will speed up output a bit. + Switching to the window and pressing ALT-V will toggle the local display on + and off so you can still "snoop" the user. A message is printed in the + Window with instructions when the screen is disabled. + + + Reworked Mystic's socket buffering in Windows. This combined with the + above change should give an output speed up in the Windows version when + not connected locally. Initial feedback from alphas say that these changes + have GREATLY improved speed in Windows. + + Linux and OSX will not notice much of a difference because those versions + had better buffering to begin with. + + + Increased OSX and Linux output buffer to 4KB up from 1KB. I am not sure + this will make much of a difference, but it is now the same as the new + Windows buffer. I think the "sweet spot" is around 2K actually. + + + New MCI code |DI## where ## is a number between 0 and 99. This MCI code + only works in display files and is used to set a character display rate. + The ## defines the number of characters displayed between delay, so 00 is + no delay, 01 is the slowest, 99 is the fastest. This can be useful when + trying to emulate certain baud rates, or if you have ANSImation and want + callers to actually see it! :) This code can be used multiple times in + a single display file to change speeds throughout. + + + Mystic no longer sends multiple warnings to a user when their time is + running out. It now only sends them one warning when they have 5 minutes + left. + + + Rewrote some of the input functions to be more efficient, mostly on the + Windows platform. Input should be a bit more responsive now on all + platforms though. Generally, when combined with the other Windows + changes, overall feel should be "snappier" than in the past. + + + The ANSI gallery menu command now accepts a second parameter to define + the display speed of the files in the gallery. The format for the + optional data is now: + + ; + c:\mystic\mygallery;0 + + Zero will disable any speed reduction. 1 is the slowest and you can go + up to 255 for the fastest delay with the speed option. + + + Mystic now updates the Window title with the current logged in user and + their node "action" in each node's window. (Windows only) ie: + + "Mystic Node 1 - g00r00 - Reading messages" + + + New MPL command SetPromptInfo. This allows you to set Mystic's internal + "changing" PromptInfo MCI codes (the |&X codes). For example: + + SetPromptInfo(1, 'Hello!'); + WriteLn ('This MCI code would like to say: |&1'); + + On a side note, there is NOT a GetPromptInfo because you can simply use + MCI2STR: + + WriteLn('This MCI code would like to say: ' + Mci2Str('&1')); + + + New MPL command GetScreenInfo. This allows you to read Mystic's internal + ScreenInfo codes, used in Templates - so your MPLs can easily have + templates just like Mystic! These are the |!X codes. + + Var + X, Y, Attr : Byte; + Begin + GetScreenInfo(1, X, Y, Attr); + + WriteLn('The value of the !1 MCI code was:'); + WriteLn(' X: ' + Int2Str(X)); + WriteLn(' Y: ' + Int2Str(Y)); + WriteLn('Attr: ' + Int2Str(Attr)); + End; + + + New MPL command "BufFlush". This causes Mystic to immediately send + whatever is in the output buffer to the client. In almost all cases you + will never need to use this, as Mystic knows most of the time when it + needs to do that. It is more of a precautionary function. + + ! This isn't really a bug, more of an oversight. When Mystic is saving + previously entered text, it would also save password input. Input + history is accessible by pressing the up/down arrows on field input. You + did know about that, right? Figures! :) + + + New MPL function "StripL" strips the left side of a string of any + specified leading characters. + + Var S : String = ' Hello'; + S := StripL(S, ' '); + + + New MPL function "StripR" strips the right side of a string of any + specifcied trailing character: + + Var S : String = 'Hello '; + S := StripR(S, ' '); + + + New MPL function "StripB" strips both sides of the string if a specific + character. + + Var S : String = ' Hello '; + S := StripB(S, ' '); + + + New MPL function "StripLow" strips all chracters from a string that are + less than ascii code #32. + + Var S : String = #12#12#12#12 + 'Hello'; + S := StripLow(S); + + + New MPL function "MCILength" works just like "Length" except it tries to + ignore MCI codes. It doesn't check for actual validity of MCI codes. + + Var B : Byte; + B := MCILength('|15Hello|UH'); + WriteLn ('Length should be 5: ' + Int2Str(B)); + + + New MPL function "Initials" takes a user name and attempts to return one + or two character initials. + + S := Initials('Jack Phlash'); // should return "JP" + + + New MPL function "StripPipe" takes a string and strips only pipe color + codes from it. + + S := StripPipe('|15Hello there, |UH'); //returns "Hello There, |UH" + + + New MPL function "StrMci" takes an entire string and attempts to translate + any MCI codes found in it, returning the entire result. + + S := StrMci('Hello |UH'); + + + New MPL function "BitCheck" accepts a bit position and checks it against + an integer, returning true or false if the bit is on. So for example in + the Records, the third bit in UserFlags is UserDeleted: + + GetThisUser + If BitCheck(3, UserFlags) Then WriteLn('User is marked deleted'); + + Note that this was implemented before actual bitwise math, which also + made it into this version. Keep reading! :) + + + New MPL function "BitToggle" accepts a bit position and an integer and + toggles the bit. + + GetThisUser + BitToggle(3, UserFlags); // undeletes if they are deleted or deletes if + // they are not deleted. + + + New MPL function "BitSet" accepts a bit position and an integer and sets + the bit ON/OFF based on a boolean: + + GetThisUser + BitSet(3, UserFlags, True); // user is marked as deleted + + + MPL now allows hexidecimal values to be used in numeric variable assignment + numerical evaluation, and in numeric constant variables. A hex value must + begin with a $ character. Some examples: + + Const + MyHexValue = $1F; + + Value := $10; + + If Value = $10 Then WriteLn('Value is 16 '); + + + MPL now fully supports bitwise math and operators! The following are + implemented: + + AND - Bitwise AND + OR - Bitwise OR + XOR - Bitwise exclusive OR + SHL - Bitwise shift left + SHR - Bitwise shift right + + Example: + + Const + UserDeleted = $04; // established bit for userdeleted from records.pas + Begin + GetThisUser + + If UserFlags AND UserDeleted <> 0 Then + WriteLn('User is deleted'); + End; + + + Mystic now keeps a "virtual terminal" of what the users terminal SHOULD + look like. This opens up the ability to have "remote" screen saves and + restores since Mystic thinks it knows what their screen looks like. :) + + + New MPL function "GetCharXY" returns the character located on the user's + screen at the XY location. + + Var Ch : Char; + Ch := GetCharXY(1, 1); + WriteLn('The user has the following character at 1,1: ' + Ch); + + This kind of stuff could allow you to create MPL-based custom screen + effects like TheDraw used to have, except for on-the-fly with whatever + is on the user's screen. + + + New MPL function "GetAttrXY" returns the attribute of the character + at position XY on the user's screen: + + Var Attr : Byte; + Attr := GetAttrXY(1, 1); + WriteLn ('The attribure of the character at 1,1 is: ' + strI2S(Attr)); + + + New MPL variable "CfgSeeInvis" gives you access to the "See Invisible" + ACS value from Mystic's configuration. + + + New MPL variable "CfgMaxNode" gives you access to the "Max Nodes" setting + from Mystic's configuration. -- LATER REPLACED IN SAME ALPHA KEEP READING + + + Completely reworked the System Configuration data file (MYSTIC.DAT). Some + variable names were changed for clarity. This also makes room for some new + features that are on the drawing board. Record formats will probably not + change again for quite some time. Configuration editors still need to be + reworked to better support the new format - big changes incoming on that + front. Ideally, writing a utility for 1.10 will work for many versions to + come - just as long as I didn't overlook something serious. + + + The Allow Multiple login feature is now an ACS setting instead of a simple + Yes or No. Find in in the configuration somewhere! :) + + - Removed the "Archiver" directory as it was meaningless. Put the path in + your archive configurations if you need to, otherwise they are probably + already in your 'path' to begin with and likely do not need one to begin + with. + + + Added a "Semaphore" directory. This is where the *.now files are now + created for new network-based message events. Previously they were created + in the DATA directory and could not be changed. + + + ACS strings in the System Configuration now have a maximum of 30 characters + up from 20. + + + System directories have been expanded to 80 characters, up from 40. + + + All menu names in the System Configuration now have a maximum filename of + 20 characters, up from 8. You still can't create + "omgthisismymenunowlolsitsawesome.mnu" but you CAN create "messagemenu.mnu" + + - Removed the unused "ScreenBlank" setting from Mystic. Screensaver does not + matter outside of a DOS OS, and DOS is gone, thankfully. + + + Increased the maximum number of "EchoMail" networks from 20 to 30. + + - Removed Node settings and NODEx.DAT files. You can delete node*.dat from + your data directory. Since Mystic no longer internally supports modems, + this configuration is not needed. Any MCI codes for doors and related that + normally put a baud rate or comport will now default to 38400 baud and COM1 + unless it is a local login. + + - Prompt #315 is no longer used. I can't remember why. :) + + + Removed MPL Cfg Variable "CfgMaxNodes" and replaced it with "CfgINetTNMax" + variable, which now contains the number of telnet nodes to allow. These + are basically interchangable in your MPL code but it is changing to more + accurately reflect what Mystic is doing. + + + Removed the "Max Nodes" from the System Configuration. This is now longer + needed. The number of telnet connections determines your max nodes, since + there are not telnet and dialup nodes now. Dialup can still be supported + using gating software that accepts a dialup connection, and creates a + telnet connection to Mystic. This may become internal at some point, but + I do not know of a single dialup Mystic BBS (and there is 3rd party + software to do this) so it is low in priority. + + + Added new "Max Telnet Nodes" in MCFG's Internet Configuration. This needs + to be set to the maximum number of nodes you wish to allow/listen for under + all platforms. This replaces the old "Max Nodes" setting. + + + Mystic now saves information in the configuration of when it was last + upgraded. If the data file formats are outdated, Mystic will refuse to run + and exit with an error. MIS, MBBSUTIL, MCFG, MYSTPACK also check to ensure + data files are current before executing. If you want to add something + similar into your utilities (that include records.pas), here is an example: + + {$I records.pas} + + Var + ConfigFile : File of RecConfig; + Config : RecConfig; + + Assign (ConfigFile, 'mystic.dat'); + {$I-} Reset (ConfigFile, Config); {$I+} + + If IoResult <> 0 Then Begin + WriteLn('Cannot read mystic.dat. Run from root Mystic dir!'); + Halt(1); + End; + + Read (ConfigFile, Config); + Close (ConfigFile); + + If Config.DataChanged <> mysDataChanged Then Begin + WriteLn('Your data files are not compatible with this version'); + Halt(1); + End; + + // Everything is good and now you have Mystic's configuration loaded + // in memory for your utility. + + Now granted, this checks ONLY the base Mystic configuration file, + but the upgrade utility for each release should update this base, AND + everything else too. So the assumption is if the base configuration is + not up to par, then nothing else is either. + + - The "Wait for call" screen has been removed from the Mystic process + executable. Instead, a Mystic -L just logs you directly into the BBS as + it would in Linux. Executing Mystic -CFG will take you to the + configuration that would normally be accessible from the "WFC" screen. + You can delete "wfcscrn.ans" from your DATA directory. + + - Removed -CID command line which was identical to the -TID command line + option since modems had been removed. + + + If MYSTIC.EXE is ran without any parameters, it will default to node 1 + local mode and start the login process in Windows. This change was made + because that is how the Linux and OSX versions work. Previously you would + get an error saying you needed to use -L for local mode, which was kind of + redundant. + + ! Mystic was only drawing 79 characters on the status bar during a Windows + login before the user logged in. Fixed. + + - Removed 2-line status bar option in the Windows version. I couldn't find + anyone that uses it, it complicates codes, and interferes with ANSIs that + are assumed to support 24-lines by pretty much all terminals. + + + When exiting Sysop chat mode on Windows, Mystic now remotely restores the + user's screen to what it was before chat was started. Small entry to the + whatsnew, but pretty awesome in what its really doing. + + + Mystic now has the option to define the maximum number of password + attempts. It used to be hard-coded to 3. + + + Mystic now has the option to define the maximum number of login attempts + when a user is first prompted for their user name before the connection + is terminated. This was previously hard coded to 3. + + + Mystic now allows the number of minutes given to an unknown user to be + defined in the configuration. This is the amount of time they have to + either login or create a new account. + + ! Mystic was not properly sending the 'hackwarn.txt' e-mail to a user + when their password was incorrectly entered via the Matrix login. + + + Mystic now allows the option for users to send a "password inquiry" email + to the user defined in the configuration as the "Feedback To" user. This + option is available when a user fails to enter a valid password from + either the Matrix login or the standard login. A new prompt goes along + with this: + + ; Password inquiry prompt + 475 |CR|12Send a password inquiry message to the SysOp? |XX + + This feature can be turned off or on in the login configuration. + + ! Fixed a bug in split screen chat text wrapping that as introduced in the + previous version. + + ! Split screen chat now filters out the linefeed character. Some terminals + that send CRLF when ENTER is pressed were causing some display issues in + split chat. + + + Added account expiration system into Mystic. User accounts now have a + Expires date (mm/dd/yy) and Expires To (security level) field on each + record. Accounts set to expire to level 0 will be marked as deleted. + + Two new MCI codes go along with this: + + XD - Displays the number of days until expiration (or 0 if none) + XS - Displays the security level user will expire to. + + Two new prompts go along with this: + + ; Displayed when account expired down to a security level > 0 + 476 |CR|14Your account has expired. Downgrading security to |XS. + ; Displayed when account expired down to level 0 (delete) + 477 |CR|12Your account has expired and is now marked for deletion. + + + Mystic can now force the user to change their password after a certain + number of days. This option is found in the system configuration login + settings. In addition, users can be individually flagged so that they + are never required to change their password. If the configuration value + is set to 0, it will disable this feature. + + A new MCI code goes along with this + + PW - Returns the value for password reset days in configuration + + A new prompt goes along with this: + + ; User required password change + 478 |CR|14This BBS requires a password change every |PW days. + + For now the password change uses the same prompts as the new user + configuration. That can be separated in the future if it is needed, + but for now it is the same. + + - Removed MCFG from Mystic BBS. It is being replaced with an new internal + configuration. Read on! + + + Mystic now has a complete ANSI-based menu UI system for configuration + editors and possibly more in the future. + + + Executing mystic -cfg now takes you directly to the configuration editors. + When quitting the editor, Mystic will exit back to the operating system. + If you are used to using MCFG you can create a MCFG.BAT or MCFG.SH which + just executes "mystic -cfg" to get a similar effect. + + The new internal editor uses the new ANSI menu interface which allows both + hotkey and arrow keys, listboxes, etc. This is also now accessible using + the *S Sysop menu command, meaning it usable over your telnet connection + or locally. + + A new ANSI file "cfgroot.ans" needs to be placed into the DATA directory. + This serves as a "wallpaper" for the System Configuration. + + + Replaced old, outdated Archive editor with a new "popup" lightbar + Archive editor, using the new ANSI UI system. + + + Replaced old, outdated Protocol editor with a new "popup" lightbar + Protocol editor, using the new ANSI UI system. + + ! Fixed a bug in file search "description" highlighting. Not sure if this + was in previous versions or introduced in the latest alphas but it should + be fixed up now. + + - Removed the ALT+J shell to DOS function from the Windows version. There + is no reason to have this built into the node process since DOS is no + longer supported. + + + Mystic now accepts a -IP command line which passes the IP. The old + -UID should pass the hostname. + + + Mystic now accepts a -HOST command line which passes the HOST. The UID + command line is the same as -HOST and remains only for backwards + compatibility. It make be removed in the future, so if you use the UID + command line, its host to switch to HOST. + + + New MCI code UY returns the IP address (UX returns host) + + + %4 when executing doors, now returns the IP address (%5 is host) + + + When executing protocols, %4 now returns IP address (%5 is host) + + + Mystic now replaces logging of the baud rate in the Sysop log with the + IP and hostname of the connection. + + + MIS now passes both the IP and HOST command lines when creating a telnet + session.