mysticbbs/mystic/HISTORY.txt

4507 lines
186 KiB
Plaintext
Raw Normal View History

2012-02-13 15:21:07 -08:00
.---------------------------------------------------------------------------.
| 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<31> |11|&1 |03found.|CR
; Xfer failed: &1 = file name
084 |CR|12<31> |11|&1 |03skipped.|CR
; Displayed before running uploads processor
206 |12<31> |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<31> |03Searching for duplicate files :
; BLIND dupe found
378 Dupe found.
; BLIND no dupe found
379 None.
; Importing file_id.diz
380 |12<31> |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 |
`-----------------------------------------------'
+ 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 <space> 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<30><37> |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<30><37> |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 !<mpepath><mpename>. If <mpepath> 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<31>|15Yes|09<30>|16 |14N|11o |16
; Lightbar Y/N: NO text
317 |14 Y|11es |09|17<31>|15No|09<30>|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<data>
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.
<data> 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<socket descriptor>
-CID<comm handle>
! 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: <TextFile>;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=<textfile>
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
not a part of MPL comment/directive system anymore.
2012-02-13 15:21:07 -08:00
+ 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<DIRECTORY>|$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<DIRECTORY>|$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:
<root gallery path>;<speed>
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');
As a side note, there is NOT a GetPromptInfo because you can simply use
2012-02-13 15:21:07 -08:00
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 <in decimal>');
+ 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
// note: this value has changed check records.pas!
2012-02-13 15:21:07 -08:00
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 "CfgTNNodes"
2012-02-13 15:21:07 -08:00
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
2012-02-14 23:29:52 -08:00
compatibility. It might be removed in the future, so if you use the UID
command line, its best to switch to HOST.
2012-02-13 15:21:07 -08:00
+ 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.
2012-02-14 14:37:25 -08:00
! Mystic should now properly copy Welcome, News, and Goodbye files if they
exist into QWK packets.
2012-02-14 15:34:56 -08:00
+ Mystic now strips out pipe color codes from the headers of the allfiles
2012-02-14 23:29:52 -08:00
or newfiles exports in the file bases and in QWK packets.
2012-02-16 19:34:57 -08:00
+ FTP Server now has minimum and maximum port values for passive and
extended passive data ports. Defaults should be 60000, and 65535
+ FTP Server now has a configurable "per connection" timeout. Recommended
value is at least 300 seconds.
+ FTP server now has a configurable "max connections with same IP" value.
This should be set to at least 2, for incoming data connections with
the same IP.
2012-02-17 22:55:19 -08:00
+ Added configurable POP3 server options for connection Timeout and for
Delete Mail on Retrieve.
2012-02-21 14:42:44 -08:00
+ TAB key now works in the full screen editor. Tab stop is 5 spaces.
+ CTRL-D now functions the same as the right arrow in the full screen
editor.
+ CTRL-E now functions the same as the up arrow in the full screen
editor.
+ CTRL-F now moves the beginning of the current line in the full screen
editor.
+ CTRL-G now moves to the end of the current line (same as end key)
+ CTRL-J now erases the current line in the full screen editor. It does
not completely remove the line as CTRL-Y does, it just erases.
+ CTRL-N now does a page down in the full screen editor.
+ CTRL-O now displays the full screen editor help screen in the full
screen editor.
+ CTRL-P now does a page up in the full screen editor.
+ CTRL-T now moves one word to the left in the full screen editor.
2012-02-27 14:10:52 -08:00
+ CTRL-R now moves one word to the right in the full screen editor.
2012-02-21 14:42:44 -08:00
+ CTRL-X now moves down one line the same as the down arrow key in the
full screen editor.
2012-02-21 15:38:36 -08:00
+ CTRL-W now deletes the word to the left of the cursor in the full
screen editor.
2012-02-21 23:49:20 -08:00
! SysOp Chat Page in Windows now properly updates the user's terminal
during the page.
+ Sysop Chat Page in Windows now plays the "default beep" sound as
configured in Windows.
+ MBBSUTIL has a new function -FUPLOAD. This goes through every file base
and looks for new files. If a new file is found it will be added into
2012-02-24 06:05:10 -08:00
Mystic's file base listing as a new file. FILE_ID.DIZ will be imported
2012-03-10 15:07:56 -08:00
as well. **This was later moved to MUTIL**
2012-02-24 06:05:10 -08:00
! Mystic will no longer shell to the console and get "stuck" when trying
to execute an archive that has a blank command line in the configuration
! MBBSUTIL was sorting BBS Lists and File Lists in reverse alphabetical
order. This is now fixed to sort as most people would expect.
2012-02-24 09:22:47 -08:00
+ The HOME key now functions in the lightbar file listings to move to the
beginning of the list.
+ The END key now functions in the lightbar file listing. It is kind of a
half-assed implementation though, since doing it "the right way" will
involve some extra coding in the future.
+ File Base settings for all ACS strings has been increased from 20 to 30
characters.
+ File base "lightbar" list templates are now defined per file base in
the file base editor. The upgrade utility will set existing bases to
'ansiflst' but any newly created bases will need to have this value set
per base now.
+ Updated file base record structures and added options for the possible
future "Comment and Rating" system for file bases. In addition, some
boolean data has been changed into a bitmapped flag variable.
+ Added new ANSI file base editor into the System Configuration.
+ Added Copy/Paste functions into all new ANSI internal editors.
2012-02-26 03:51:59 -08:00
+ Added new ANSI message group and file group editors.
- Removed Password protected file and message bases. This is a barely
used feature and it doesn't integrate well when the bases are available
via FTP and NTTP, etc. Security around bases needs to be based on the
ACS system to avoid issues in those situations.
Prompts 66, and 67 are no longer used.
Prompts 103 and 104 are no longer used.
+ Ansi message reader template is now configured on a per-base level just
as the standard reader template is.
+ Ansi message reader message index is now configured on a per-base level
just like the ansi reader template.
+ Message base ACS length has been extended to 30 characters.
+ Message base standard reader header filename has been expanded to 20
characters.
+ Message base path expanded to 80 characters from 40.
+ Added new ANSI message base editor.
2012-02-26 12:44:07 -08:00
+ Added new ANSI security level editor.
+ SMTP server now has a configurable timeout value per session (in seconds)
2012-02-27 09:52:10 -08:00
+ SMTP server now has a configurable number of simultaneous connections
from the same IP address.
2012-02-27 14:10:52 -08:00
+ CTRL-K now cuts a line of text in the full screen editor. If you continue
to cut more than one time, the text is appended to the cut buffer and will
contiue to do so until it is pasted. Any cut after a paste resets the cut
data. This is inspired by the Nano/Pico editors on Unix platforms which
work the same way (with the same keys!). The cut buffer currently allows
up to 100 lines to be cut and pasted at once.
+ CTRL-U now Uncuts all text that is currently in the cut buffer within the
full screen editor. You can uncut (paste) as many times as you like with
the current buffer.
2012-02-29 11:58:27 -08:00
+ Mystic now has support for configuring Echomail domains for 5D addresses.
+ Mystic now has support to configure an uplink address for each echomail
address.
+ Default language filename can now be up to a 20 character filename
+ Default start menu can now be up to a 20 character filename
+ All ACS settings in the System configuration have been expanded from 20
characters to 30 characters max.
+ All paths in the System configuration have been expanded to 80 characters
max.
+ MBBSUTIL now has an -AREASOUT option which will export a list of all bases
flagged as Echomail in the AREAS.BBS format.
+ Added a new program called MUTIL. This will eventually become the
replacement for MBBSUTIL and MYSTPACK. In addition, it will have a ton of
new features that MBBSUTIL did not have. MUTIL and MUTIL.CFG contain more
details.
+ MUTIL now has the ability to import FIDONET.NA style files into Mystic's
message bases.
+ MUTIL now has the ability to perform an offline "Mass upload" into file
bases. It will also import File_ID.DIZ (optionally) based on the archive
configuration.
+ "Languages" have been renamed to Themes. LANGUAGE.DAT has been renamed to
THEME.DAT in the data directory. A ton of new features await with this new
system. It of course is still possible to use the Theme system to create
support for different languages as well.
Additionally, compiled prompt files that used to have the .LNG file
extension have been renamed to .THM extension. The upgrade utility should
take care of all this renaming for you.
- MAKELANG has been removed from Mystic BBS distribution.
2012-06-20 05:54:49 -07:00
+ MakeTHEME has been added to the Mystic BBS distribution. This utility
works much like MAKELANG did but it has a few new options:
1) The ability to decompile prompt files. Keep in mind, comments are
not added into compiled prompt files, so when you decompile one you
will lose that information.
2) MakeTheme will now check for the existance of a "mysticbbs"
environment variable. If it finds this variable, it will look in that
location for MYSTIC.DAT, allowing MakeTheme to no longer be required to
be in the root Mystic BBS directory.
3) Prompts within a prompt file no longer has to be in numerical order.
More to come on why this change is being made, but generally this
allows you to categorize prompts.
+ Mystic now saves the last known IP and hostname from each user.
+ Revamped last caller information. It now saves the IP, Hostname,
Gender, and if the user was a new user or not. In addition, it will now
save all 10 custom user questions (not implemented yet).
2012-03-03 20:38:56 -08:00
+ MUTIL can now import FILEBONE.NA format files, creating both file bases
and their directories (if they do not already exist). See MUTIL.CFG for
more information.
2012-03-04 10:26:05 -08:00
! The MCI parser for |!x MCI codes now checks for validity of the number
or otherwise does not parse the code.
2012-03-10 15:07:56 -08:00
+ MUTIL can now generate top 1-99 callers, posters, downloaders, uploaders
and post/call ratio all configurable by templates.
2012-03-04 18:27:33 -08:00
+ MUTIL now has a -NOSCREEN option which disables the screen output when
executing. When suppling this on the command line, a .cfg file must be
supplied as well. IE: mutil mutil.cfg -noscreen This is useful for
Linux/OSX people that may want to execute MUTIL during a login or
something but do not want their users to see the MUTIL screen.
2012-03-05 11:50:46 -08:00
+ Mystic now has 10 colors definable per theme, with 10 new MCI codes
|T0 to |T9 to display them.
+ Mystic's internal Language editor has now been replaced with a theme
editor. This editor is full ANSI lightbar-capable like other newer
configurations. It can also edit all prompts and compile prompt files
all internally. It support at least the features of the old MCFG editor
including prompt text search, jumping, copy/paste, undo, etc.
+ Mystic now checks for messages between nodes every 3 seconds while waiting
for input. Previously Mystic would check based on situation (ie, before
menu prompt, in between messages, etc) but never while idle waiting on
input as it does now.
! Mystic was not allowing node messages within MPL programs. It is not clear
if this was introduced in the 1.10 alphas or if the problem existed in the
past.
+ Mystic now saves and restores the user's screen before and after showing a
node message. You can now place a clear screen comfortably in those
prompts to make a really clean look when users are interrupted with node
messages.
+ MIS Linux can now accept telnet connections and properly redirect STDIO
while spawning Mystic. This means it can entirely replace a Linux
2012-03-13 23:23:20 -07:00
telnet daemon if desired such as ddTelnet or xinetd, etc.
2012-03-10 00:49:20 -08:00
+ Prompt 000 now has new MCI prompt info codes:
&1 = Login attempt number
&2 = Max login attempts
&3 = Attempts remaining
+ The scrollback buffer in node chat has been expanded to the same size as
2012-03-10 15:07:56 -08:00
the maximum message size (1000 lines up from 200). Its possible this
will change in the future again.
+ MUTIL now has the option to reverse sorting of top lists, meaning you can
create the "bottom 99" for each of the types of bulletins.
2012-03-13 23:23:20 -07:00
+ New formatting MCI code $X##C
This works similar to the $D MCI code except that the D version will
duplicate a character ## amount of times. The X version will only
duplicate the character until the cursor reaches column ##.
So for example:
|CLThis is a line of text|$X79!
The above example will print the ! character until the 79th column:
This is a line of text!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ Mystic now has user to user (node to node) private chat and paging system
so that users can page each other and chat. Linux and OSX sysops can use
this to chat with their users if needed. Any user with the Sysop ACS
level will have the option to force the user into chat and any users in a
forced chat session cannot leave.
A new menu command of NP will now allow a node to page another node for
a private chat session.
The following new prompts go along with this:
; User2User chat page which node?
479 |CR|09Enter node to chat with |01[|10?|01/|10List|01]|09: |XX
; User2User node/user is unavailable
480 |CR|15That user is marked unavailable.|CR|CR|PA
; User2User force user into chat?
481 |CR|12Force user into chat? |XX
; User2User sending chat request &1=User &2=Node
482 |CR|15Sending chat request to |&1...|DE|DE|CR
; User2User chat mode starting
483 |CL|09|17 <20> |15Chat mode engaged.|$X70 ESC/Quit |16|CR
; User2User chat mode ended
484 |CL|09|17 <20> |15Chat mode end.|$X79 |16|DE|DE
; User2User accept chat page request? &1=user &2=Node
485 |CL|15|&1 is requesting private user chat. Accept? |11
2012-03-17 11:11:50 -07:00
+ Mystic now has a new User Editor redesigned with the ANSI menu interface.
+ The ALT-U local Sysop command has been removed (moved to user editor).
Alt-E now opens a local user editor for the user which also contains the
Upgrade option.
2012-03-20 08:21:06 -07:00
+ Added CARDINAL (Unsigned 32-bit Integer) type to MPL
2012-03-25 12:43:12 -07:00
+ MPLC and MIDE now calculate the error position in the file (line and
column) after the error has occured. This takes a little bit of time
but it ensures that the column/line error position is accurate.
2012-04-02 01:02:51 -07:00
+ The Node message send menu command (NS) no longer sends the message to
the current node when it is doing a broadcast to all nodes.
+ Mystic now allows arrays of records in MPL.
+ Reduced the FTP server directory caching buffer to 4k, but expanded the
file send buffer from 4K to 32KB. After doing some local network FTP
transfers of giant files, it seemed like the 4K transfer was pretty
harsh on disk usage.
2012-06-18 06:11:17 -07:00
+ Mystic now allows base record variable types to be assigned to other
base record variable types.
2012-04-19 22:32:16 -07:00
+ When prompted to save an edited message, Mystic now defaults to YES.
2012-04-20 17:44:14 -07:00
+ Added SizeOf function to MPL which returns the size of a variable or
record type.
+ Added fWriteRec and fReadRec that can be used to write an entire record
or array of records to an opened file in MPL
Specific elements can be addressed with fWrite/fRead if desired.
2012-06-18 06:11:17 -07:00
+ Fixed a screen bleed bug under UNIX platforms.
+ Added some more CHATX.DAT checks in UNIX versions, although I am not sure
it will make any noticable difference in ghost nodes.
+ MIS in Linux now has the ability to Snoop telnet nodes if you use the
MIS console as a telnet server.
+ NNTP server is now somewhat functional but does need quite a bit more
work to make it good. It is now possible to enable it, but it has only
been briefly tested with XNEWS and does not follow RFC stadards yet.
2012-06-20 05:54:49 -07:00
+ New MPL function FillChar similar to Pascal. IE:
type
myuserrecord = record
username : string[30];
somevalue : array[1..5] of byte;
end;
var
u : myuserrecord;
begin
fillchar(u, sizeof(u), #0);
end.
2012-06-20 07:07:18 -07:00
+ Mystic Internet Server (MIS) can now be started in daemon mode by
executing MIS with the -d command line option for Unix platforms.
+ Added new Message Base "QuickScan" menu command (MQ). This command
does a scan of message bases and shows you the number of new messages,
new messages to you, total messages, etc. This is modeled after PCBoard
scans and only scans bases in the bases flagged for scanning by the
user. For example:
Starting QuickScan
Base: General Messages Total: 1,000 New: 24 Yours: 3
Base: Test Message Base Total: 1,000 New: 24 Yours: 3
Quick Scan Complete
By default the QuickScan will do a global scan of all message bases in
all groups. However there are many optional data options:
/CURRENT = scan only current message base
/GROUP = scan only current group's bases
/NOSCAN = do not show "scanning" prompt
/NOFOOT = do not show "end of scan" prompt
/NOHEAD = do not show "starting quickscan" prompt
This can be combined with the MN menu command to prompt the user what to
do next. You could even get creative with the & MCI codes and MPL to
make logical decisions for the user based on the results of the scan!
Four new prompts go along with this:
; MsgBase quickscan header prompt
486 |CR|12Starting Quick Scan|CR
; MsgBase quickscan Scanning prompt
; &1=basename &2=current base# &3=total bases#
487 Scanning |&1 [|&2 of |&3]...
; MsgBase quickscan base list prompt
; &4=msgs in base &5=new messages &6=your messages &7=global total msg
; &8=global new msgs &9=global your msgs
488 |03Base: |14|$R40|&1 |03Total: |09|$L04|&4|03 New: |11|$L04|&5 |03Yours: |12|$L03|&6
; MsgBase quickscan footer prompt
; &7=global total msg &8=global new msgs &9=global your msgs
489 |CRQuick Scan complete. |CR|CR|PA
2012-06-29 00:10:15 -07:00
+ The Full screen editor now does a full redraw of the editor screen and
text after uploading a .txt file into the editor.
+ New MPL procedure "hangup" does exactly what you think it does to the
caller! :)
+ Mystic now allows users to login by the permanent index number as well as
their user name. Private e-mails and other areas of the BBS also allow
for usage of the permanent index now as well.
2012-06-30 13:07:36 -07:00
+ Mystic now allows for the new user application process to be completely
replaced by an MPL program. You must at a very minimum set either the
user real name or handle fields, as well as the password value.
If the newuserapp.mpx exists in the scripts directory, it will be
executed instead of the normal application process.
2012-06-30 13:25:29 -07:00
+ New MPL function IsUser takes a string value which can contain either
a user realname, handle, or user perm index number. If the user exists,
it will return a TRUE result or FALSE if the user does not exist.
2012-06-30 19:03:02 -07:00
+ Enhanced standard menus to allow for HOME/END/PAGEUP/PAGEDOWN hotkeys
which execute menu commands when those keys are pressed. So the total
list of special hotkeys are:
ESCAPE
ENTER
TAB
HOME
UP
PAGEUP
LEFT
RIGHT
END
DOWN
PAGEDOWN
In addition these are still functional as auto-exec commands:
FIRSTCMD - Execute only once when the menu is first loaded
EVERY - Execute each time a menu is display, before it is displayed
AFTER - Execute after the menu is displayed but before the prompt
2012-06-30 20:05:02 -07:00
And hopefully soon I can get in the TIMER auto-exec from Mystic 2 which
is by far the most badass of all of them! :)
2012-06-30 20:05:02 -07:00
+ Added new prompt #490 to the themes. This prompt defines the message
base header flags which were previously hard coded. Each flag is one
word separated by a space:
; Msg header flags text one word each separated by a space
; 1=Local 2=Echo 3=Private 4=Sent 5=Delete
490 Local Echo Private Sent Deleted
+ Mystic will now abbreviate GIGABYTE size files in the file listings. In
the past it would only do megabytes and kilobytes. Still, the record
limitation is 4 gigs for the max filesize in the filebases. This needs to
be changed at some point, but it requires data format change.
+ Added new prompt #491 to the themes. This prompt defines the file size
and flags within the file listings.
; File base filesize flags one word separated by a space
; 1=offline 2=failed 3=unvalidated 4=GB 5=MB 6=KB 7=B
491 OFFLINE FAILED UNVALID GB MB KB B
2012-07-02 12:53:29 -07:00
+ Menu access ACS and each menu command ACS has been expanded to 30
characters.
2012-07-12 18:22:34 -07:00
! Fixed a bug in the Unix ANSI detection routines which caused an unwanted
2012-07-05 21:06:50 -07:00
extra pause in detection (thanks to Kevin Lamonte)
2012-07-12 18:22:34 -07:00
! Fixed a bug which could cause Mystic to sometimes crash when saving a
message reply if the message content was large (100+ lines or so)
2012-07-15 13:15:42 -07:00
+ While reading messages, it is now possible to Forward the message to a
different messsage base by using the F hotkey. This only works if you
are a SysOp or message owner. A new prompt goes along with this:
; Forward msg: which base
492 |CR|09Forward message to which base (?/List): |XX
+ The Sysop Password prompt has been added to the theme prompt files. A new
prompt goes with this:
; Sysop password prompt
493 |CR|09Sysop Password: |XX
+ MIDE now has a -50 command line option which forces the editor into 50
line text mode.
+ MPL identifiers now have a maximum size of 30 characters, up from 20.
2012-07-19 18:13:46 -07:00
! Mystic was not properly stripping the path of exported text files when
doing an export. Functionally it worked fine, but it was printing the
directory of the node's temp directory to the user.
+ New "user flag" in the user editor: No CallStats. If this is set to YES
the user's calls will not be added to the last caller information, and
they will also not have their call counted in the BBS history database.
+ New "user flag" in the user editor: No PWChange. If this is set to YES
the user will be exempt from the forced password change after the
configured time interval (if its enabled).
+ New "user flag" in the user editor: No History. If this is set to YES
the user will be exempt from BBS history tracking. This includes Emails,
Message posts, download stats, upload stats, new user counts, and call
counts. NoCallStats simply ignores the lastcaller display, and the system
caller count numbers. This flag ignores ALL history of the user.
2012-07-19 18:15:43 -07:00
+ MakeTheme now only looks at the "mysticbbs" environment variable if
mystic.dat is not found in the same directory.
+ The "Transfer of XXX" file prompt has been enhanced to attempt to
always strip the filepath from the file, in case of a strange situation
where it somehow gets into the prompt info code.
+ Display files that are not found in a theme directory now have the option
to "fallback" to the default display file directory, if Theme fallback
is enabled for the theme.
+ Added new ANSI menu editor to replace the old outdated crap. The new
editor has references to all of the menu commands as well as the special
functional hotkeys. It still maintains the ability to "simulate" menus
as well.
+ Revamped the entire menu system. Menu files must be converted if you are
any version pre 1.10 alpha 15 using the CvtMenus program. Simply copy
this into your folder with all of the *.mnu files are run it one time ONLY
After you are done you will want to review your system because the new
system is not a direct convertion of file format. The method that Mystic
links menu commands has changed. The conversion program does its best to
analyze your menu files and create a menu that functions the same, but
there may be issues - particularly in lightbar grid menus I would guess
since they can be quite complex.
2012-07-23 21:55:23 -07:00
For those of you alpha testing, if you do find a menu that does not
convert correctly, please send the .mnu file to me so that I can see if
I can improve the conversion process before 1.10 official release.
+ Each menu option on a menu now as its own "execution list" of menu
commands. This basically replaces the old "kludge" stacking of commands
to execute back to back with a single hotkey. It is a much more clean
approach this way, and it allows for more options!
+ Each menu command now has the option to redraw the menu or not after its
command list executes. This defaults to on to mimic previous menu system
however for some advanced stuff, like TIMER, you may will to turn them
off.
+ Menus can now be internally generated from 1 to 4 columns (up from 3)
+ Menus now contain a description configurable within the menu flags. A
new MCI code |MD goes along with it, and will display the description
of the current menu.
+ Menus now have an optional "user status" field in the menu flags. If this
is set to a non-blank value, the user's action in node listings will be
updated to this value. If the value is left blank, Mystic will use the
default "Browsing menus" prompt from the theme prompts.
+ Menus now have a "theme fallback" option similar to the recent change to
the display file system. If a menu is not found in its theme menu
directory, then if the option is enabled, Mystic will look for it in the
default menu directory configured in the System Configuration. When
combined with the similar display changes, it makes it very easy to build
additional themes off of the default. In your new themes, the stuff that
you haven't themed can simply fall back to your default theme now.
+ Merged the "Hot Key" and "Long Key" options from the old menu system into
one single hotkey field.
+ Added an "Input char" option to menu flags that defines how the user's
input is echoed back to them at a menu prompt. Valid options are
Uppercase, Lowercase, and hidden.
+ Lightbar menus now allow extended input while the lightbar continues to
function! This works for both standard lightbar and lightbar grid menus.
For example, you can set the hotkey to "OWNAGE" and have full lightbar
menu. Mystic will still recognize and execute the commands linked to
OWNAGE if the user types it. In addition, it has a smart input so that
it only allows valid characters to be entered. Mystic will use the X/Y
location of the cursor after the menu prompt is displayed, so it is best
to set where you might want to see the user's input (if its not hidden)
using the menu footer/prompt.
+ Lightbar grid menus now allow the following events to be handled in
addition to arrow keys:
Page Up
Page Down
Escape
Tab
2012-07-23 21:55:23 -07:00
Home
End
+ In a lightbar grid menu, each menu command now has the ability to execute
on a grid-specific event. The following are available options:
Selected
Up
Down
Left
Right
Tab
Escape
PgUp
PgDn
2012-07-23 21:55:23 -07:00
Home
End
+ All displayed menu items now have an option for display type. If it set
to Access it will only be displayed if the user has access. If it is set
2012-07-23 21:55:23 -07:00
to Always, it will always been displayed. If its set to Never, it will
never be displayed.
+ Lightbar and Lightbar/Grid menus now display menu header and prompts if
they are not set to a blank value. They were ignored in the past, but
this provides some better flexibility. If you have lightbar menus you
may need to validate that the header/footers in your menu flags are blank
if you do not want this feature.
2012-07-23 21:55:23 -07:00
+ New auto-exec hotkey for menu commands: TIMER. An item with the hotkey
of TIMER will automatically execute every X amount of seconds, which is
defined per menu command. This combined with all of the other new
features makes for an amazingly powerful new menu system!
2012-07-24 00:18:37 -07:00
+ Increased the menu reading buffer to 4k, up from 2k
+ Added new menu command -I which sets the menu timer counter to the value
in the optional data field. The menu timer is an internal incrementing
counter used to fire off TIMER commands. It represents the number of
seconds that have passed since the menu was loaded.
2012-07-24 01:07:31 -07:00
+ TIMER commands also have 3 types, configurable per each menu option:
Interval - Always execute at the configured timed interval
OnlyOnce - Execute at interval ONLY ONCE per menu being loaded
PerRedraw - Execute after each menu redraw as per timer interval
2012-07-24 01:07:31 -07:00
+ When using hotkey-style menu input, extended hotkeys are no longer
required to have a / first. You can make a hotkey command named QUIT
for example, and it will execute immediately when QUIT is entered.
Keep in mind it is still a hot-key styled input. So you cannot have
one hotkey named QUIT and one named QUITNOW. The QUIT command will
always get the hotkey. If you need functionality like that, hotkeys
can be disabled on the menu.
2012-07-24 01:07:31 -07:00
+ Similar to the display file and menu systems, the MPL scripts directory
will now also fallback from the theme scripts path to the default
scripts directory if the feature is enabled in the selected theme.
2012-07-24 18:33:04 -07:00
+ Enhanced the ANSI listbox functions for some better efficiency.
+ ANSI listbox now searches for an entire search string, rather than
jumping to first characters. For example, in the User Editor when you
are at the list of user names, you can simply start typing the user
name of the person you are looking for, and you will get there.
Anytime you do anything that isn't typing a character, the search string
will be "reset" allow you to continue searching for something else.
! Setting inactivity to 0 (to globally disable it) wasn't working. I don't
know if this was a fault in 1.10 alphas or also in 1.09, so I am
mentioning it just in case.
2012-07-24 21:55:32 -07:00
+ New MPL function: GetMBaseStats. This can be used as a function or a
procedure (returning true if successful). It takes 4 parameters.
#1: Message base number
#2: Total messages (this is a VAR parameter)
#3: New messages (this is a VAR parameter)
#4: New messages to you (this is a VAR parameter)
Example:
uses mbase;
var
count, total, new, yours : longint;
begin
count := 1; //start @1 to skip email base
while getmbase(count) do begin
getmbasestats(count, total, new, yours);
writeln('base : ' + mbasename);
writeln('total msgs : ' + int2str(total));
writeln('new msgs : ' + int2str(new));
writeln('your msgs : ' + int2str(yours));
writeln('');
count := count + 1
end;
end.
2012-07-30 15:21:13 -07:00
+ New MPL procedure: WriteXY. This procedure writes a string of text at
the defined X/Y location with a specific text attribute. This of course
requires the user has ANSI to function properly.
WriteXY (1, 10, 8, 'Prints at X:1 Y:10 with dark grey text');
+ New MPL procedure WriteXYpipe. This procedure writes a string of text at
the defined location, similar to WriteXY *except* it parses pipe color
codes *and* requires a "maximum field size" of which it will always
extend or restrict the length of the text within that field.
WriteXYPipe (1, 10, 8, 50, 'This pads to 50 chars at location 1,10');
+ Added new user flag "UserNoTimeout" which makes a single user immune to
inactivity timeout check.