4924 lines
204 KiB
Plaintext
4924 lines
204 KiB
Plaintext
.---------------------------------------------------------------------------.
|
||
| 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.
|
||
|
||
+ 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
|
||
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!
|
||
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"
|
||
variable, which now contains the number of telnet nodes to allow. These
|
||
are basically interchangable in your MPL code but it is changing to more
|
||
accurately reflect what Mystic is doing.
|
||
|
||
+ Removed the "Max Nodes" from the System Configuration. This is now longer
|
||
needed. The number of telnet connections determines your max nodes, since
|
||
there are not telnet and dialup nodes now. Dialup can still be supported
|
||
using gating software that accepts a dialup connection, and creates a
|
||
telnet connection to Mystic. This may become internal at some point, but
|
||
I do not know of a single dialup Mystic BBS (and there is 3rd party
|
||
software to do this) so it is low in priority.
|
||
|
||
+ Added new "Max Telnet Nodes" in MCFG's Internet Configuration. This needs
|
||
to be set to the maximum number of nodes you wish to allow/listen for under
|
||
all platforms. This replaces the old "Max Nodes" setting.
|
||
|
||
+ Mystic now saves information in the configuration of when it was last
|
||
upgraded. If the data file formats are outdated, Mystic will refuse to run
|
||
and exit with an error. MIS, MBBSUTIL, MCFG, MYSTPACK also check to ensure
|
||
data files are current before executing. If you want to add something
|
||
similar into your utilities (that include records.pas), here is an example:
|
||
|
||
{$I records.pas}
|
||
|
||
Var
|
||
ConfigFile : File of RecConfig;
|
||
Config : RecConfig;
|
||
|
||
Assign (ConfigFile, 'mystic.dat');
|
||
{$I-} Reset (ConfigFile, Config); {$I+}
|
||
|
||
If IoResult <> 0 Then Begin
|
||
WriteLn('Cannot read mystic.dat. Run from root Mystic dir!');
|
||
Halt(1);
|
||
End;
|
||
|
||
Read (ConfigFile, Config);
|
||
Close (ConfigFile);
|
||
|
||
If Config.DataChanged <> mysDataChanged Then Begin
|
||
WriteLn('Your data files are not compatible with this version');
|
||
Halt(1);
|
||
End;
|
||
|
||
// Everything is good and now you have Mystic's configuration loaded
|
||
// in memory for your utility.
|
||
|
||
Now granted, this checks ONLY the base Mystic configuration file,
|
||
but the upgrade utility for each release should update this base, AND
|
||
everything else too. So the assumption is if the base configuration is
|
||
not up to par, then nothing else is either.
|
||
|
||
- The "Wait for call" screen has been removed from the Mystic process
|
||
executable. Instead, a Mystic -L just logs you directly into the BBS as
|
||
it would in Linux. Executing Mystic -CFG will take you to the
|
||
configuration that would normally be accessible from the "WFC" screen.
|
||
You can delete "wfcscrn.ans" from your DATA directory.
|
||
|
||
- Removed -CID command line which was identical to the -TID command line
|
||
option since modems had been removed.
|
||
|
||
+ If MYSTIC.EXE is ran without any parameters, it will default to node 1
|
||
local mode and start the login process in Windows. This change was made
|
||
because that is how the Linux and OSX versions work. Previously you would
|
||
get an error saying you needed to use -L for local mode, which was kind of
|
||
redundant.
|
||
|
||
! Mystic was only drawing 79 characters on the status bar during a Windows
|
||
login before the user logged in. Fixed.
|
||
|
||
- Removed 2-line status bar option in the Windows version. I couldn't find
|
||
anyone that uses it, it complicates codes, and interferes with ANSIs that
|
||
are assumed to support 24-lines by pretty much all terminals.
|
||
|
||
+ When exiting Sysop chat mode on Windows, Mystic now remotely restores the
|
||
user's screen to what it was before chat was started. Small entry to the
|
||
whatsnew, but pretty awesome in what its really doing.
|
||
|
||
+ Mystic now has the option to define the maximum number of password
|
||
attempts. It used to be hard-coded to 3.
|
||
|
||
+ Mystic now has the option to define the maximum number of login attempts
|
||
when a user is first prompted for their user name before the connection
|
||
is terminated. This was previously hard coded to 3.
|
||
|
||
+ Mystic now allows the number of minutes given to an unknown user to be
|
||
defined in the configuration. This is the amount of time they have to
|
||
either login or create a new account.
|
||
|
||
! Mystic was not properly sending the 'hackwarn.txt' e-mail to a user
|
||
when their password was incorrectly entered via the Matrix login.
|
||
|
||
+ Mystic now allows the option for users to send a "password inquiry" email
|
||
to the user defined in the configuration as the "Feedback To" user. This
|
||
option is available when a user fails to enter a valid password from
|
||
either the Matrix login or the standard login. A new prompt goes along
|
||
with this:
|
||
|
||
; Password inquiry prompt
|
||
475 |CR|12Send a password inquiry message to the SysOp? |XX
|
||
|
||
This feature can be turned off or on in the login configuration.
|
||
|
||
! Fixed a bug in split screen chat text wrapping that as introduced in the
|
||
previous version.
|
||
|
||
! Split screen chat now filters out the linefeed character. Some terminals
|
||
that send CRLF when ENTER is pressed were causing some display issues in
|
||
split chat.
|
||
|
||
+ Added account expiration system into Mystic. User accounts now have a
|
||
Expires date (mm/dd/yy) and Expires To (security level) field on each
|
||
record. Accounts set to expire to level 0 will be marked as deleted.
|
||
|
||
Two new MCI codes go along with this:
|
||
|
||
XD - Displays the number of days until expiration (or 0 if none)
|
||
XS - Displays the security level user will expire to.
|
||
|
||
Two new prompts go along with this:
|
||
|
||
; Displayed when account expired down to a security level > 0
|
||
476 |CR|14Your account has expired. Downgrading security to |XS.
|
||
; Displayed when account expired down to level 0 (delete)
|
||
477 |CR|12Your account has expired and is now marked for deletion.
|
||
|
||
+ Mystic can now force the user to change their password after a certain
|
||
number of days. This option is found in the system configuration login
|
||
settings. In addition, users can be individually flagged so that they
|
||
are never required to change their password. If the configuration value
|
||
is set to 0, it will disable this feature.
|
||
|
||
A new MCI code goes along with this
|
||
|
||
PW - Returns the value for password reset days in configuration
|
||
|
||
A new prompt goes along with this:
|
||
|
||
; User required password change
|
||
478 |CR|14This BBS requires a password change every |PW days.
|
||
|
||
For now the password change uses the same prompts as the new user
|
||
configuration. That can be separated in the future if it is needed,
|
||
but for now it is the same.
|
||
|
||
- Removed MCFG from Mystic BBS. It is being replaced with an new internal
|
||
configuration. Read on!
|
||
|
||
+ Mystic now has a complete ANSI-based menu UI system for configuration
|
||
editors and possibly more in the future.
|
||
|
||
+ Executing mystic -cfg now takes you directly to the configuration editors.
|
||
When quitting the editor, Mystic will exit back to the operating system.
|
||
If you are used to using MCFG you can create a MCFG.BAT or MCFG.SH which
|
||
just executes "mystic -cfg" to get a similar effect.
|
||
|
||
The new internal editor uses the new ANSI menu interface which allows both
|
||
hotkey and arrow keys, listboxes, etc. This is also now accessible using
|
||
the *S Sysop menu command, meaning it usable over your telnet connection
|
||
or locally.
|
||
|
||
A new ANSI file "cfgroot.ans" needs to be placed into the DATA directory.
|
||
This serves as a "wallpaper" for the System Configuration.
|
||
|
||
+ Replaced old, outdated Archive editor with a new "popup" lightbar
|
||
Archive editor, using the new ANSI UI system.
|
||
|
||
+ Replaced old, outdated Protocol editor with a new "popup" lightbar
|
||
Protocol editor, using the new ANSI UI system.
|
||
|
||
! Fixed a bug in file search "description" highlighting. Not sure if this
|
||
was in previous versions or introduced in the latest alphas but it should
|
||
be fixed up now.
|
||
|
||
- Removed the ALT+J shell to DOS function from the Windows version. There
|
||
is no reason to have this built into the node process since DOS is no
|
||
longer supported.
|
||
|
||
+ Mystic now accepts a -IP command line which passes the IP. The old
|
||
-UID should pass the hostname.
|
||
|
||
+ Mystic now accepts a -HOST command line which passes the HOST. The UID
|
||
command line is the same as -HOST and remains only for backwards
|
||
compatibility. It might be removed in the future, so if you use the UID
|
||
command line, its best to switch to HOST.
|
||
|
||
+ New MCI code UY returns the IP address (UX returns host)
|
||
|
||
+ %4 when executing doors, now returns the IP address (%5 is host)
|
||
|
||
+ When executing protocols, %4 now returns IP address (%5 is host)
|
||
|
||
+ Mystic now replaces logging of the baud rate in the Sysop log with the
|
||
IP and hostname of the connection.
|
||
|
||
+ MIS now passes both the IP and HOST command lines when creating a telnet
|
||
session.
|
||
|
||
! Mystic should now properly copy Welcome, News, and Goodbye files if they
|
||
exist into QWK packets.
|
||
|
||
+ Mystic now strips out pipe color codes from the headers of the allfiles
|
||
or newfiles exports in the file bases and in QWK packets.
|
||
|
||
+ 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.
|
||
|
||
+ Added configurable POP3 server options for connection Timeout and for
|
||
Delete Mail on Retrieve.
|
||
|
||
+ 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.
|
||
|
||
+ CTRL-R now moves one word to the right in the full screen editor.
|
||
|
||
+ CTRL-X now moves down one line the same as the down arrow key in the
|
||
full screen editor.
|
||
|
||
+ CTRL-W now deletes the word to the left of the cursor in the full
|
||
screen editor.
|
||
|
||
! 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
|
||
Mystic's file base listing as a new file. FILE_ID.DIZ will be imported
|
||
as well. **This was later moved to MUTIL**
|
||
|
||
! 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.
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ Added new ANSI security level editor.
|
||
|
||
+ SMTP server now has a configurable timeout value per session (in seconds)
|
||
|
||
+ SMTP server now has a configurable number of simultaneous connections
|
||
from the same IP address.
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ 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).
|
||
|
||
+ 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.
|
||
|
||
! The MCI parser for |!x MCI codes now checks for validity of the number
|
||
or otherwise does not parse the code.
|
||
|
||
+ MUTIL can now generate top 1-99 callers, posters, downloaders, uploaders
|
||
and post/call ratio all configurable by templates.
|
||
|
||
+ 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.
|
||
|
||
+ 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
|
||
telnet daemon if desired such as ddTelnet or xinetd, etc.
|
||
|
||
+ 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
|
||
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.
|
||
|
||
+ 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
|
||
|
||
+ 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.
|
||
|
||
+ Added CARDINAL (Unsigned 32-bit Integer) type to MPL
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ Mystic now allows base record variable types to be assigned to other
|
||
base record variable types.
|
||
|
||
+ When prompted to save an edited message, Mystic now defaults to YES.
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ 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
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ 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
|
||
|
||
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! :)
|
||
|
||
+ 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
|
||
|
||
+ Menu access ACS and each menu command ACS has been expanded to 30
|
||
characters.
|
||
|
||
! Fixed a bug in the Unix ANSI detection routines which caused an unwanted
|
||
extra pause in detection (thanks to Kevin Lamonte)
|
||
|
||
! 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)
|
||
|
||
+ 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
|
||
|
||
+ MPL identifiers now have a maximum size of 30 characters, up from 20.
|
||
|
||
! 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.
|
||
|
||
+ 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.
|
||
|
||
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
|
||
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
|
||
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
|
||
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.
|
||
|
||
+ 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!
|
||
|
||
+ 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.
|
||
|
||
+ 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
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ 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.
|
||
|
||
+ Enhanced the ANSI listbox search capabilities. Most listboxes will now
|
||
allow you to type a search string in which it will use to attempt to
|
||
select an item that matches the search string. While you are typing you
|
||
can use CTRL-A to search "again" with the current string, or CTRL-Y to
|
||
delete the current string. Moving the lightbar selector will also reset
|
||
the current search string. The search string is case insensitive.
|
||
|
||
Since the space key may need to be used in a search string, the hotkey
|
||
used to mark items in a listbox has changed from the SPACE key to the TAB
|
||
key.
|
||
|
||
+ If Message base list columns is set to 1, the toggle newscan and qwkscan
|
||
message base lists will also now be 1 column.
|
||
|
||
+ If file base list columns is set to 1, the toggle new scan list will now
|
||
also be shown in a single list.
|
||
|
||
! Mystic was not checking the "Download ACS" for each file base when files
|
||
were added to the batch queue within a file listing. Instead it was
|
||
relying on the List ACS. This is now fixed.
|
||
|
||
+ Mystic now allows users to select a default file transfer protocol. If
|
||
a protocol has been selected by a user they will not be asked to select
|
||
a protocol when transfering files.
|
||
|
||
A new addition to the GE menu command (optional data 32) will allow the
|
||
user to select their default protocol.
|
||
|
||
+ Restructured some class code to reduce executable sizes in the Mystic
|
||
binary. The result is about 120kb smaller executable size in Windows for
|
||
Mystic.exe. The other versions should see similar results.
|
||
|
||
! Mystic was not properly parsing long filenames with spaces in them during
|
||
external file transfer.
|
||
|
||
! Mystic was not properly setting the "Transfering files" node status when
|
||
executing transfer protocols.
|
||
|
||
+ Mystic now has internal Zmodem protocol. To enable it, just use the
|
||
@ZMODEM text for the send/receive commands in the Protocol editor, and
|
||
Mystic will do the rest. The Zmodem has been tested extensively with
|
||
the following clients. The current status is as follows:
|
||
|
||
mTelnet Windows Downloads and Uploads successful
|
||
SEXYZ Windows Downloads and uploads successful
|
||
NetRunner Windows/Linux Downloads and uploads successful
|
||
ZOC Windows Downloads and uploads successful
|
||
SyncTerm Windows/Linux Downloads ok, uploads fail
|
||
Qodem Linux Downloads ok, Upload Qodem segfault
|
||
HyperTerminal Windows Nothing works (ever) with this terminal
|
||
|
||
+ The file directory editor is now available in the standard file listing.
|
||
In the past it only worked in the lightbar file listing. Whoops. The
|
||
hotkey is E if you have SysOp access.
|
||
|
||
! File list downloader was not properly allowing a download after the list
|
||
was created.
|
||
|
||
+ File list compiler now only adds the filebase header/footer to the list
|
||
if the filebase has files listed.
|
||
|
||
+ File list compiler now uses megabytes instead of kilobytes in the file
|
||
base summary footer.
|
||
|
||
+ MIS and MYSTIC now switch ownership to the group/user who owns each
|
||
binary upon startup on Unix-based systems. MIS waits until after it
|
||
binds the ports, so if it is SUDO started, it can listen on ports less
|
||
than 1024 while not running as a root application/daemon.
|
||
|
||
+ Display files can now be aborted with the SPACE bar during transmission. I
|
||
may remove this feature if people do not like it.
|
||
|
||
+ New MCI code AO turns off display file aborting within the current display
|
||
file.
|
||
|
||
! The date shown in the message base header while reading messages should
|
||
now properly display in the user's configured date format. In the past
|
||
it was always MM/DD/YY format.
|
||
|
||
! Mystic was converting the passed hostname to all upper case. This is no
|
||
longer the case.
|
||
|
||
! Mystic was converting the passed MPL program (from command line) to all
|
||
upper case. This caused the Unix versions to fail to execute the MPL
|
||
program and exit.
|
||
|
||
+ MIDE now has a mide.ini configuration file. This file is in the .INI file
|
||
format and allows various things such as auto indent, tab space, screen
|
||
mode (25 or 50 line) and others to be defined.
|
||
|
||
+ MIDE now has a "Run" option which will compile and execute the current
|
||
MPL program without logging into Mystic itself. You will need to set up
|
||
the options with mide.ini in order for this to work. See the default
|
||
mide.ini for more information.
|
||
|
||
! Posts made via QWK were not being counted in the BBS history.
|
||
|
||
+ Mystic now supports QWK control posts. This means that with modern QWK
|
||
readers you can add/drop message bases that are included in your packet
|
||
from within the offline reader.
|
||
|
||
If the reader does not support that feature, you can post a message in
|
||
your reader to "MYSTICQWK" with the subject of either "ADD" or "DROP" in
|
||
the message base in which you want to add or drop from your QWK packets.
|
||
|
||
Tested with MultiMail
|
||
|
||
+ Mystic now supports the QWKE extension for offline mail. What does this
|
||
mean? Well it means first off that the 12 character message base name
|
||
limitation is completely gone. Mystic will now generate the full base
|
||
name with MCI codes stripped in QWKE packets. It also means that the
|
||
25 character limitation on From, To, and Subject fields is gone.
|
||
|
||
In addition, it opens up room for future enhancements such as offline
|
||
file requests, and the ability to maintain master file lists / new file
|
||
lists, as well as setting lastread pointers from within the offline
|
||
reader. And file attachments, and and...
|
||
|
||
A new menu command (OE) has been added to download a QWKE packet. When
|
||
uploading a .REP packet, Mystic can determine if the REP is QWK or QWKE
|
||
so there is no need for a new upload menu command.
|
||
|
||
+ Given the new changes, Mystic now includes ALL message bases in QWK
|
||
packets regardless of if it is in the QWK scan settings. Mystic will
|
||
NOT send any messages if you are not subscribed to the message base, but
|
||
it should still appear in the offline reader. This is changed so that
|
||
users can add/drop message bases.
|
||
|
||
- Menu passwords have been removed from the menu flags. If you want to
|
||
password protect your menus you can do the same thing by using the -P
|
||
and FIRSTCMD options on your menus.
|
||
|
||
+ Mystic should now be able to recognize FILE_ID.DIZ on Unix platforms
|
||
regardless of the casing, just as long as the archive program is able to
|
||
extract it. MUTIL mass upload should also work like this now.
|
||
|
||
+ Mystic should now be able to recognize TODOOR.EXT files from QWKE packets
|
||
regardless of their file casing, just as long as the archive utility is
|
||
able to extract it.
|
||
|
||
+ Added syntax highlighting back into MIDE, however it does not and probably
|
||
will not support block comment highlighting. Just use the single line
|
||
// comments if you like syntax highlighting. The highlighting can be
|
||
turned on/off via mide.ini by adding this option under "[General]":
|
||
|
||
; do syntax highlighting (note does not support block comments)
|
||
; and is substancially slower in screen updates
|
||
syntax_highlight = true
|
||
|
||
In addition, colors can be configured for the source code editor text:
|
||
|
||
[Colors]
|
||
|
||
; syntax highlighting colors (text attributes 0-255)
|
||
; attribute = foreground_color + background_color * 16
|
||
; foreground is 0-15 and background is 0-7
|
||
|
||
syn_normal = 30
|
||
syn_keyword = 31
|
||
syn_string = 27
|
||
syn_number = 19
|
||
syn_comment = 23
|
||
syn_hex = 28
|
||
syn_charnum = 27
|
||
|
||
! Fixed a bug that could cause viewing files from within an archive to
|
||
fail.
|
||
|
||
+ MUTIL now has the ability to import FILES.BBS files automatically. In
|
||
addition, if MUTIL detects that a file already exists, but has a
|
||
different file size, it will update the existing record and description.
|
||
This is for people who are using it for networked file bases and TIC.
|
||
See MUTIL.CFG file for more information.
|
||
|
||
+ When importing FILE_ID.DIZ, Mystic will attempt to use its internal
|
||
archive viewing capabilities to find the "casing" of the FILE_ID.DIZ file.
|
||
If it finds one it will pass the exact casing to the configured archive.
|
||
|
||
! Fixed a bug where Mystic would not detect and use its internal archive
|
||
viewing for LZH files with a different file extension (ie .LHA files from
|
||
an Amiga, for example). Mystic will now properly internally view LHA
|
||
extensions, as well as properly look for LHA in the archive configuration.
|
||
|
||
! Fixed a bug when viewing an archive that could cause the lightbar file
|
||
list display to not get redrawn after.
|
||
|
||
! Duplicate IP check in MIS was not working properly. It is now.
|
||
|
||
+ MIS telnet in Windows now has an option to hide node windows.
|
||
|
||
+ Added a new utility called NodeSpy. This utility will allow you to
|
||
monitor active nodes, snoop, kick, chat with users, etc.
|
||
|
||
! Mystic was not properly creating BBS history database if it did not
|
||
already exist.
|
||
|
||
+ MIDE now uses CTRL+K and CTRL+U to cut and paste text, similar to
|
||
Pico/Nano-like Unix text editors.
|
||
|
||
+ Mystic now tracks calls by the hour in its BBS history database.
|
||
|
||
+ Added USAGE.MPS to the default installation. This currently shows a
|
||
weekly and monthly usage graph calculated based on the number of calls.
|
||
|
||
! Fixed a bug which could sometimes cause a node to get disconnected just
|
||
after MIS answered the all in Windows.
|
||
|
||
+ If the user has zero downloads and uploads, Mystic will now allow them to
|
||
transfer one file for "free" (either a download or an upload) before the
|
||
ratio tracking comes into play.
|
||
|
||
! Sysop chat hours now function as expected. This was broken somewhere
|
||
around the 1.09 era.
|
||
|
||
! Fixed bugs with MIS calculating the wrong node number if a user was
|
||
logged in locally in Windows.
|
||
|
||
+ Mystic in non-Unix will now assign an available node number automatically
|
||
similar to how it works in a Unix environment. This will help prevent
|
||
a person from accidentally logging into a node that is being used during
|
||
a local login.
|
||
|
||
+ Mystic now sends IAC_DO_BINARY as part of the starting telnet negotiations
|
||
done by MIS. This will help fix some weird issues with Linux/OSX default
|
||
telnet command line client.
|
||
|
||
+ In MPL including a file has been changed to its own keyword as opposed to
|
||
mimicing a compile directive. All MPL programs for 1.10 must be updated
|
||
if INCLUDE files are used:
|
||
|
||
Old: {$include myfile.mps}
|
||
New: include myfile.mps
|
||
|
||
+ Added an hourly usage graph to usage.mps.
|
||
|
||
! MUTIL FILEBONE import was not adding the trailing slash when generating a
|
||
file path.
|
||
|
||
+ MUTIL now has an option to generate an allfiles list which contains a
|
||
listing of all files from each filebase in one text file.
|
||
|
||
The functionality if there, but its not very configurable yet. If
|
||
anyone has suggestions please let me know.
|
||
|
||
+ Added 3 new MPL functions: MsgEditor, MsgEditSet, MsgEditGet. These allow
|
||
access to the internal Mystic msg editor (line and/or full) from within
|
||
MPL. It even allows you to define wrap position and template to completely
|
||
make it look like its not the Mystic editor!
|
||
|
||
As a little hint the MsgEditSet and MsgEditGet stuff could be used to post
|
||
process message text on posts. Like say for example you wanted to write
|
||
a MPL that allows users to add Tag lines, you could do that by replacing
|
||
the "Saving message..." prompt and using those two in order to modify the
|
||
text before it is saved by Mystic!
|
||
|
||
Rather than trying to explain it all, here is an example of all 3:
|
||
|
||
Var
|
||
Lines : Integer = 0;
|
||
WrapPos : Integer = 79;
|
||
MaxLines : Integer = 200;
|
||
Forced : Boolean = False;
|
||
Template : String = 'ansiedit';
|
||
Subject : String = 'My subject';
|
||
Count : Integer;
|
||
Begin
|
||
MsgEditSet (1, 'this is line 1');
|
||
MsgEditSet (2, 'this is line 2!');
|
||
|
||
Lines := 2;
|
||
|
||
SetPromptInfo(1, 'MsgTo'); // if template uses &1 for "To:" display
|
||
|
||
If MsgEditor(0, Lines, WrapPos, MaxLines, Forced, Template, Subject) Then Begin
|
||
WriteLn('User selected to save.');
|
||
WriteLn('There are ' + Int2Str(Lines) + ' of text in buffer:');
|
||
|
||
For Count := 1 to Lines Do
|
||
WriteLn(MsgEditGet(Count));
|
||
|
||
Pause;
|
||
End Else Begin
|
||
WriteLn('User aborted the edit.');
|
||
|
||
Pause;
|
||
End
|
||
End
|
||
|
||
! Fixed a bug in the internal LHA archive viewing that could cause the last
|
||
file in the archive to get corrupted during the view, if the file had
|
||
comments (and was created on an Amiga?)
|
||
|
||
+ CTRL-Z and [ESCAPE] now both bring up the full screen editor prompt to
|
||
save, etc. I did a lot of research with old softwares and editors, and
|
||
found this approach to be the common ground between everything ever. :)
|
||
|
||
+ Revampped message quoting a little bit. Quoted text will now be auto
|
||
reformatted if adding the initials would cut off text in the original
|
||
message EXCEPT when quoting quoted text.
|
||
|
||
Quote initials will always be 2 characters now. In an effort to better
|
||
"standardize" quoting: If the User handle has a single word handle, Mystic
|
||
will now use the first two letters of their name instead of one.
|
||
|
||
! Fixed a bug that could corrupt a message and/or crash when editing a
|
||
message with a lot of lines.
|
||
|
||
+ New option: "Ask Theme" in the General Settings. If this is set to true
|
||
Mystic will prompt the user to select a theme after the graphics are
|
||
detected upon each connection.
|
||
|
||
+ Added new MPL function: Real2Str this takes a string and decimal place
|
||
value. Example:
|
||
|
||
Var
|
||
R : Real;
|
||
Begin
|
||
R := 1234.1234;
|
||
WriteLn (Real2Str(R, 2)); // Will print 1234.12
|
||
End
|
||
|
||
+ The GE menu command (edit user settings) option 14 (select theme) can now
|
||
have an option which specifies the base filename of a theme. For example
|
||
if the theme filename is "english" you can do:
|
||
|
||
Menu command: GE
|
||
Data: 14 english
|
||
|
||
This will cause the theme to be selected automatically, without prompting
|
||
the user for anything. If a second parameter is not supplied, the user
|
||
will be prompted to select a theme as usual.
|
||
|
||
+ Copy/Paste is now added/fixed for menu commands and menu execution lists
|
||
in the new menu editor.
|
||
|
||
+ NodeSpy in Windows now uses OS named pipes instead of Disk I/O.
|
||
|
||
+ NodeSpy in Unix now uses OS named pipes instead of Disk I/O.
|
||
|
||
+ NodeSpy now has a full blown telnet client, which replaces the "local
|
||
login" feature. Instead, the default the phone book will contain an entry
|
||
for "local login" which telnets to localhost.
|
||
|
||
+ NodeSpy now defaults "Auto Snoop" to OFF. Auto Snoop will automatically
|
||
start snooping a node upon connection if it is the only active
|
||
connection. To enable this, create an nodespy.ini file in the same
|
||
directory as the NodeSpy and add this content:
|
||
|
||
[General]
|
||
autosnoop=1
|
||
|
||
+ Renamed the default mutil.cfg to mutil.ini since it is indeed an INI
|
||
format file. This is just in case someone has .ini files associated with
|
||
an editor on their OS. EXISTING USERS WILL NEED TO RENAME MUTIL.CFG TO
|
||
MUTIL.INI unless you are supplying the filename on the command line.
|
||
|
||
+ Added logging into MUTIL. Add the following crap below into the
|
||
[GENERAL] section of your configutation files if you want to use it. If
|
||
you would like some things logged that are not please let me know, and
|
||
vice versa. Anyway, from the new default mutil.ini:
|
||
|
||
; Logging option. If no directory is specified in the logfile
|
||
; name, mUtil will attempt to use the configured LOGS directory from
|
||
; in Mystic's configuration. To disable logging, leave the logfile
|
||
; option commented out or set to a blank value.
|
||
|
||
logfile=mutil.log
|
||
|
||
; Level 1 = basic process logging
|
||
; Level 2 = verbose
|
||
|
||
loglevel=1
|
||
|
||
An example of loglevel=1 logging for mUtil configured for a single
|
||
process (mass upload) follows. I haven't tested the logging with all
|
||
processes to get them where I want them, so please give feedback if you
|
||
have something to suggest! :)
|
||
|
||
+ 09/24/12 23:11 Startup using mutil.ini
|
||
+ 09/24/12 23:11 Process: Mass Upload Files
|
||
+ 09/24/12 23:11 Add: mbbs_104.zip To: New File Base
|
||
+ 09/24/12 23:11 Add: SPOT1_3B.LHA To: New File Base
|
||
+ 09/24/12 23:11 Result: Uploaded 2 file(s)
|
||
+ 09/24/12 23:11 Shutdown
|
||
|
||
+ MUTIL now has a message purge function. This function will go through
|
||
all of the messages in all message bases and delete any messages that do
|
||
not meet the "Age" or "Max Messages" settings for each message base.
|
||
|
||
To use this function simply add the following into your [GENERAL] header
|
||
of your mUtil .INI configuration file(s):
|
||
|
||
PurgeMessageBases = true
|
||
|
||
! MBBSUTIL -UKILL was not working properly.
|
||
|
||
! MBBSUTIL BBS list packer was not working properly when checking
|
||
verification days.
|
||
|
||
+ MUTIL now has a message posting function. This function can post any
|
||
number of text files to a message base, including echomail and netmail
|
||
bases. It will also split large posts into multple messages - allowing
|
||
up to 10,000 line text files to be posted. To enable, add this to your
|
||
[GENERAL] section of your mUtil .INI configuration files:
|
||
|
||
PostTextFiles = true
|
||
|
||
Then add the [PostTextFiles] section from the default mutil.ini from a
|
||
new install.
|
||
|
||
+ The Toggle New Scan and Toggle QWK Scan menu commands now allow an optional
|
||
/ALLGROUP in the optional data. If this is supplied it will show all bases
|
||
in all groups. By default it only shows current group only.
|
||
|
||
- Removed MYSTPACK from Mystic BBS distribution. Do not use this anymore.
|
||
|
||
+ Added a message base packer and renumber option to mUtil. This replaces
|
||
MYSTPACK with the bonus that it also works with Squish (and appears to not
|
||
be as buggy as MYSTPACK was).
|