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: by avon
