whats_new_106
Mystic BBS v1.06 - What's New
Every Mystic BBS archive contains a WHATSNEW.TXT file that tracks the development of Mystic BBS for the version related to that archive.
This page contains notes from the author (g00r00) during the development of Mystic BBS v1.06
It outlines what is a new or changed feature, a bug fix, or something that has been removed.
In order to interpret each entry below, the following key explains the nature of each change that has been noted in the WHATSNEW.TXT for this version of Mystic BBS.
! = Bug fix + = New or changed feature - = Removed
If you spot something you think looks amiss with these notes please contact us using the contact info found on this Wiki.
Version 1.06
+ 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 <procname> (<optional vars>) 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:<username> <- This sets the message's TO field. /SUBJ:<subject> <- This sets the message's SUBJECT field. /ADDR:<netaddr> <- 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 | `-----------------------------------------------'
whats_new_106.txt · Last modified: 2016/05/22 03:44 by avon