home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Beijing Paradise BBS Backup
/
PARADISE.ISO
/
software
/
BBSDOORW
/
FMNU11H.ZIP
/
MENU!.DOC
< prev
next >
Wrap
Text File
|
1996-05-17
|
25KB
|
571 lines
▄▄██████▄▄▀████████▄▀█████ ▄▄██████▄▄▀██████▄ ▄████▄
█████▌▐████▄▀██▌▐█████ ████ █████▌▐█████ █████ ████████
▐█████ █████▌▐█ █████▌▐███ ▄▄█ ▐█████ █████▌▐████ ████████
██████ ▐████▀▀▄█ ▐█████▌▐██████▀ ██████ ▐██████ ████ ████████
██████ ▀▀▀▄▄████▄██████▌▐███▀ ▀▄▀███▄███████ ████ ▄▄▄▄▀█████
█████████ ██████▀ █████▌▐███ █▄▄▄███ ███▀ ██████ ████ ▄██████▌▐████
██████▀▀▀ ██████ █████▌▐███ ▐██████▌▐██ ██████ ████ ██████ ████▀
██████ ██████ █████▌▐███ ██████ ███ ██████ ████ █████▌▀▀▀▀
██████ ██████ █████▌▐███ █████▌▐███ ██████ ████ █████▌▐███▄
██████ ██████ █████▌▐███▌▐████▌▐████ ██████ ████▌▐████▀▄██████
▄██████▄ ▄██████ █████▌▐███████▀▀▄█████ ██████ ████████▀▀ ▀█████▀ aC!
■■■ QUALiTY FRεεWARε AND SHARεWARε AT L0WεST PRiCεS! ■■■
^^ FATAL! PRESENTS ^^
[ MENU! v1.1h FOR REMOTE ACCESS 2.0X ]
.Disclaimer.
This program is released as SHAREWARE which means that you may evaluate it
for a reasonable period of time (usually 30 days) and then either
register it or delete it COMPLETELY off your hard disk !
Please read more information about registering in the REGISTER.NOW file.
Disassembling or changing the program (.exe) files is strictly prohibited
and is a violation of the copyright owned by the author !
I guarantee that this program needs some space on your hard disk.
I don't take any responsibility for damages caused by the program.
.What is it?.
FaTAL!MENU is not the first but the most comprehensive LIGHTBAR utility
for Remote Access 2.0x. You can define custom lightbar driven menus that
will guide your users through your board very comfortably by using the
cursor keys or defined hotkeys.
This tool is able to replace a lot of other tools flying around, offering
even more functions than most of them. It will easily do the following jobs:
- Your Mainmenu, Filemenu, Message menu etc. :-)
- Quick Login
- Upload manager (Private upload, normal upload etc.)
- Lightbar-Logoff
- Ansi-BBS-Addys
- Comment to Sysop-crew (buit-in or external message editor!)
- Door-executer
- Lightbar Bulletins with animated enter prompts
.The features at a glance.
- Supports .ANS / .AVT / .ASC and .PCB (!) files
- Supports RAL Prompts and ANSI nesting
- Associate hotkeys with lightbars
- You can define min/max security level and flags for each lightbar
- "Hidden" lightbars only reachable by hotkey
- Multiple commands for each lightbar possilbe
- Nice info text for each lightbar definable just like in setup programs :)
- Autoexec-lightbars
- RA-Menu-jumps (like fatal!doors did)
- RA-Hotkey-stuffing ("simulates" a keypress for RA)
- Internal menu structure with 50 levels deep GOSUB/RETURN and GOTO commands
- ESC-Key definable
- Random enter prompts (see also special FATAL! control codes)
- No jumpy cursor, it is hidden on both sysop's and user's end
- USERDOES-Support, definable for each menu (FaTAL!WHO recommended)
- Nice scrolly feature supporting PCB colorcodes AND RA-CONTROL-CODES !!
.The new FATAL!-DOOR-ENGINE supports the following:
- PCB color codes (@-Codes) in ansis and prompts !
- RA control (^K/^F) and color codes
- Some special FATAL! control codes like Animated enter prompts in ansis
using the @Yxxx-yyy command (xxx=RandomStart, yyy=RandomEnd)
- Receiving of online-messages in a nice popup-window
- RA semaphore files support (RAXITx.x - see RA.DOC)
- Built in ANS and AVT decoding for local screen
- Sysop can terminate the door with ALT-X without any changes being written
- Sysop can see user's password with ALT-P
--------------------------.How to use it.------------------------------------
There are three main ways in using MENU!, the well known "menu jump" ,
the "stuff Key" and the new "modify menu" method.
MENU JUMP METHOD:
You create a new .MNU file using RACONFIG, putting an AUTOEXEC MENU 7
(External Program) in the first line, to start MENU!.
the second line is a RETURN FROM GOSUB which makes RA read the menu stack
and return to the menu in the stack. Since MENU! changes this entry, RA will
jump where you want and thus giving the possibility to branch into different
RA menus, controlled by FaTAL!MENU.
(See JUMP command in the command description)
STUFF KEY METHOD:
In the main menu for example, instead of showing a "TEXTFILE WITH MENU HOTKEYS"
you AUTOexecute the FaTAL!MENU which then "simulates" a keypress to RA by
stuffing it into the local keyboard buffer and exiting MENU!.
This gives you the possibility to make almost EVERYTHING lightbar-controlled.
But for this to work the user MUST HAVE HOTKEYS "ON" in his user record !
(See STUFF command in the command description)
MODIFY MENU METHOD:
You create a new .MNU File where you put as many lines like your BBS has into,
each line must be AUTOEXEC and only allowed for one node. Have a look at the
enclosed !FTLMENU.MNU, thats the one I use :)
In the CTL file then you use the command MODIFY to change the line matching
the actual node number to another TYPE and OPTION and then JUMP to the menu.
By doing this you can save a lot of tiny .MNU files by just modifying one
to the function you need right then.
HOW TO DEFINE THE LIGHTBARS:
Defining the lightbars is very easy on one hand but somehow dangerous on the
other hand, since you have to be sure not to make definition mistakes !
Lightbars are currently defined by special characters for start and end
directly in the ANSI file. The character is a ASCII 173 (ALT-173) which
looks like "¡". Is you for example want to define 2 lightbars for a
"quick login" you would do it as following in your ANSI editor:
¡ Quick Login ¡ ¡ Normal Login ¡
for a left-right arrangement or
¡ Quick Login ¡
¡ Normal Login ¡
for an up-down arrangement.
When you are ready with your ansi (of course there shouldn't be any ¡'s
except those for the lightbars!) you can test it and wander around with the
Lightbars. You should use the the same fore- and background color for the ¡'s
so they won't be visible later.
Please note:
It's best to have straight columns and rows of lightbars like
LIGHTBAR LIGHTBAR
LIGHTBAR LIGHTBAR
LIGHTBAR LIGHTBAR
and to AVOID arrangements like
LIGHTBAR LIGHTBAR
LIGHTBAR
LIGHTBAR LIGHTBAR
since the program wouldnt know to which column the middle lightbar belongs!
Now that you have defined all lightbars in the ANSI, you have to define
the actions taken when pressing ENTER on a lightbar.
To do this you must understand how the positions are made up because in the
.CTL file you have to state a number representing a lightbar.
Your ANSI file must be 23 lines long. The lightbar tags are counted from
top-left to bottom-right as follows:
All lightbars in the leftmost column have their Y-position in the ANSI as tag.
All lightbars in the second column have their Y-position + 23 as tag.
So for each additional lightbar-column you have to add 23 to the Y-postion.
An Example:
column 1 column 2 column 3
-----------------top of ansi---------------------
1 |
2 |
3 |
4 | LIGHTBAR1 LIGHTBAR3 LIGHTBAR4
5 | LIGHTBAR2
6 |
. |
. |
. |
23 |
-----------------end of ansi---------------------
LIGHTBAR1 : Tag 4 because Y-position is 4
LIGHTBAR2 : Tag 5 because Y-position is 5
LIGHTBAR3 : Tag 23+4=27 because Y-position is 4 in the second column
LIGHTBAR4 : Tag 23+23+4=50 because Y-position is 4 in the third column
You have to state the lightbar tag after the MENU= command.
(see command description below).
For our little example it would look like:
MENU=04,<commands for LIGHTBAR1>
MENU=05,<commands for LIGHTBAR2>
MENU=27,<commands for LIGHTBAR3>
MENU=50,<commands for LIGHTBAR4>
This kind of numbering has the advantage that you can easily insert light-
bars without having to change all the MENU= lines.
In the [DEFAULT] menu block you can define global commands valid for the
ctl file. these defaults can be overridden in any menu block.
-----------------------.Commandline Parameters.------------------------------
MENU!.EXE <menu> [/C<ctlfile>] [/REM]
<menu> must be specified and defines the CTL menu block to start in.
/C<ctlfile> tells MENU! to read ALL informations from the specified CTL File.
/REM makes MENU! "remember" the CTL menu block where it was before.
This overrides the also given <menu> which still MUST be given.
In case no POSFILE is found MENU! starts at <menu>.
THIS ONLY WORKS IN REGISTERED MODE AND IN CONJUNCTION WITH A
POSFILE -> (see below).
WARNING: Be sure to use the *M parameter when calling MENU! from RA
otherwise there might be not enough free conventional RAM for
MENU! to work proberly.
---------------------.CTL File Commands Overview.----------------------------
The MENU!.CTL file MUST be plain ASCII with <CR> terminated lines, use an
ASCII editor like DOS's EDIT.COM !
[<label>] : Start label for each menu block in the .CTL file.
REGCLR=b,f : Color definition for the copyright and register-info line
at the bottom of the screen. b=background,f=foreground.
{+} Registered only
ANSI=<file> : Background ANSI for the menu block where the lightbars
are defined in.
LIGHTBARCLR=b,f : Color definition for the active lightbar, the inactive
colors are taken from the ANSI.
USERDOES=<text> : USERDOES-info for the menu block, is written to the
USERDOES.x file created by MENU!.
MINSCROLLBPS=x : Used in the [DEFAULT] menu block to define the minimum
bps rate to show the SCROLLTEXT.
SCROLLTXTPOS=x,y : Defines the starting x/y position for a scrolly
SCROLLTXTLEN=x : Defines the "window", how many chars to show at
the same time, range 5-80, keep small as possible
'cause it has to be transferred realtime :-)
SCROLLSPEED=x : Most important thing... the SPEED of the scrolly,
range 1-30 , 1=Fastest for >14400bps 30=Snail :)
SCROLLCLR=b,f : Default color settings for the scrolly, but you
can have it as colourful as you want using the PCB-
COLOR CODES in the scrolltext.
SCROLLTEXT="<TEXT>" Text to be scrolled. You can define a maximum of 8
SCROLLTEXT= lines, they will be linked together
internally before scrolling. AND NOW THE HIT:
YOU CAN USE RA's CONTROL CODES IN THE TEXT, so
you can welcome your users with their NAMES etc. :-)))
To do this, I suggest using
RACONFIG > MANAGER > CTL-FILES > OTHER and then type
MENU!.CTL to edit the CTL with RACONFIG's editor where
you can put RA CONTROL CODES into the text by pressing
CTRL-P and the code (see RA.DOC)
STARTONCE=<tag> : Defines the lightbar to start at when no position file
exists and the internal GOSUB stack is empty.
STARTALWAYS=<tag> : Defines the lightbar to start always at regardless what
position is in the stack. The position file is also
ignored.
[END] : END marker for each menu block in the .CTL file.
MENU=<tag>,<cmd> : Definition of action taken when ENTER is pressed on a
certain lightbar.
<tag> is the lightbar tag number as described above.
Some commands can only be stated once per MENU= line, These are marked
with an "*" in the description below. Other commands can be chained
and will be processed in the order they are stated (e.g. First show an
ansi, then jump to the upload menu).
<cmd> can be one of the following:
* KEY <ESC,0-9,A-Z>
Associates a HOTKEY with the MENU= line. Can only be used
once per line. If you define one MENU=00,KEY x,...
line then this function can only be called via hotkey,
since lightbar 00 will never exist :)
If you want to define some hotkeys not in conjunction
with lightbars you have to use tags that are not occupied
by a lightbar. Remember that each MENU= line (except
followups) MUST have a UNIQUE tag number, so MENU=00
can only be used ONCE (Useful for the ESC key).
KEY ESC defines action taken when ESC is pressed.
* AUTO
Defines the whole line as AUTOEXEC, which means it will
be processed instantly when the lightbar is selected,
without the need to press ENTER on it.
* MINSEC <0-65535>
Minimal security required for this MENU= line to be
processed.
{+} Registered only
* MAXSEC <0-65535>
Maximal security required for this MENU= line to be
processed. With the security commands it's easy to
set up two MENU= lines having the same lightbar
tag but different functions depending on the user's
security level.
{+} Registered only
* FLX <A1-A8,B1-B8,C1-C8,D1-D8>
Flags that the user must have SET for this MENU= line
to be processed. FLAG A1A2 means A1 AND A2 must be SET
{+} Registered only
* FLO <A1-A8,B1-B8,C1-C8,D1-D8>
Flags that the user must NOT have SET for this MENU= line
to be processed. FLAG A1A2 means A1 AND A2 must be SET
{+} Registered only
SHOW <filename> <promptcommand>
Shows <filename> to the user and immediately returns if
NO promptcommand is given. <promptcommand> can be
0 for the RAL-prompt or xx RND yy z for a FATAL! Prompt
like used with all the other FATAL! Programs.
xx is the prompt to start at, RND yy, if given, activates
the random prompt function selecting a prompt between
xx and yy automatically. z is the number of blank lines
MENU! will insert after the ANSI before showing the prompt.
Remember: The FATAL! Prompts must be in <RA-DIR>\PROMPTS.
EXEC <filename.ext> <parameters>
Executes <filename> as a sub-door from within MENU! with
auto-memory-swap feature, giving as much as possible of
free DOS memory for the sub-door. <parameters> are passed
to the program as command-line parameters, substituting
*B with the DTE BPS RATE, *P with the COM PORT (1-4),
*C with the PORT (0-3) and *N with the actual NODE NUMBER.
JUMP <ramenu>
Writes <ramenu> to the exitinfo-menustack and terminates
MENU!, causing RA to jump to <ramenu> when it encounters
the next RETURN FROM GOSUB command.
THERE CAN BE SEVERAL <RAMENU> TO JUMP INTO !
NOTE THAT THEY WILL BE EXECUTED IN REVERSE ORDER THAN
STATED, Example:
JUMP TOP SCAN MESSI is executed by RA in the order
MESSI -> SCAN -> TOP !!!
REQUIREMENT:
EACH MENU *MUST* END WITH A AUTO-RETURN COMMAND !
STUFF <keystroke>
Puts <keystroke> into the local keyboard buffer and
terminates MENU!, causing RA to interpret the "stuffed"
key as the user's keystroke and to take actions defined
in the RA menu where MENU! is called from.
WARNING: This only works with HOTKEYS "ON" in user's
setup !!!
MODIFY <.MNU-File> TYPE:<typ> OPT:<option>
Modifies the first line in <.MNU-FILE> matching the
actual node number to Menu Type <typ> and inserts <option>
into the option-line.
For the RA-Type definitions please see RA.DOC :-)
RZ <path>
Activates the INTERNAL Z-Modem Protocol to receive
files from the user into the directory <path>.
The internal Z-Modem is ZedZap8k compatible (8k Blocks!)
SZ <file>
Activates the INTERNAL Z-Modem Protocol and sends
<file> to the user.
GOTO <menublock>
Causes MENU! to read the [<menublock>] defined block
from the .CTL file without remembering where it came from.
GOSUB <menublock>
Causes MENU! to read the [<menublock>] defined block
from the .CTL file, remembering up to 50 levels deep
where the GOSUB was executed from.
RETURN
Causes MENU! to return to the last menu where a GOSUB
was encountered or, if the stack is empty, to terminate
MENU! like QUIT does.
QUIT
Terminates MENU! with errorlevel 0, saving back the
EXITINFO.BBS for RA to recognize changes made with the
built-in usereditor for example.
MSG [AREA:<areanum>] [TO:<name>] [SUBJ:<text>] [PVT]
Initiates the built-in message-write functions.
If AREA:<areanum> is stated with a valid area number, the
user will write the message into that area, if it's set
to 0 or not stated at all, the user will write in his
active message area.
If area type is "pick an alias", the user is prompted
for an alias to use.
if TO:<name> is stated, the message will be adressed to
that person regardlessly if it exists in the userbase
or not otherwise the user is prompted for the receiver
and depending on the type of area (Echomail/Local) the
receiver must exist in the userbase or not.
if SUBJ:<text> is stated, the message will be sent with
<text> in the subject field, otherwise the user will be
prompted for a message subject.
if PVT is stated, the message will be private if the
area is a PRIVATE/PUBLIC type.
If the user has FULL SCREEN editor set to "YES" and the
EXTERNAL EDIT line in RACONFIG is NOT EMPTY, the external
editor will be called, otherwise a simple internal line-
editor is used.
{+} External Editor only in Registered version
* NOPOSFILE
Tells MENU! not to save the lightbar position file
to disk at shutdown. Useful before logging the user off
so the next user has "fresh" positions.
{+} Registered only
* NOSAVEPOS
Tells MENU! not to save the position of the actual menu
to the position file when processing a GOTO, GOSUB,
RETURN, STUFF, JUMP or QUIT command, useful for a
"quit"-lightbar, so the lightbar doesn't reappear
on "quit" when restarting the menu.
{+} Registered only
* INFO <xx>,<yy>,<len>,"<text>"
INFO defines a help line, displaying <text> at position
xx,yy with length len. The rest will be filled with
blank spaces. If the infoline is longer than len, the
rest will be cut off.
Use the pcb-codes for colors :).
It is recommended to state an extra MENU= line with the
same tag as the MENU= line the help is for.
----------------------------.Quick Installation.-----------------------------
..1.. Create a dir preferably in your RA system dir and copy all files to it.
..2.. For a quick demonstration go to that dir and type MENU! MAIN /L.
..3.. Edit an ANSI and save it preferably in .PCB format so you don't need
separate .ANS and .AVT files !
..4.. Edit the given .CTL file to suit your needs.
..5.. Make up your mind what you want to use FaTAL!MENU for, we will give
an example here how to install it as a LIGHTBAR-LOGOFF.
So this is the LOGOFF menu block in the .CTL file (without the line
numbers ofcourse) :
---cut------cut------cut-----
1. [LOGOFF]
2. REGCLR =01,11
3. ANSI =LOGOFF
4. LIGHTBARCLR =04,15
5. USERDOES =MyWo Lightbar-Logoff
7. MENU=09,RETURN
8. MENU=10,STUFF !,NOPOSFILE
9. MENU=11,STUFF %,NOPOSFILE
10. MENU=12,GOSUB ADVERTS
11. MENU=13,EXEC M:\RA\UTILS\WALL\FTL!WALL.EXE
12. MENU=14,EXEC M:\RA\UTILS\STN\STN.EXE
14. [END]
---cut------cut------cut-----
Explanation:
Line 1 : The start label, must be unique in the ctl file to find the block
Line 2 : REGCLR gives REGISTERED sysops the opportunity of changing the
colors of the bottom line "Fatal!Menu by Electron/Fatal" and
to switch it off completely with REGCLR=00,00 !
Line 3 : ANSI defines the background-ansi to show (w/o extension!)
Line 4 : LIGHTBARCLR defines how the active lightbar will look like
(Background,Foreground)
Line 5 : USERDOES defines what users on other lines will see in FaTAL!WHO
Line 7 : MENU=09 means this is the control-line for the leftmost lightbar
found in line 9 (counted from top of screen)
RETURN means pressing ENTER here will return to the calling menu
if there is one or exit MENU! if this was the first menu
Line 8 : STUFF ! means pressing ENTER on this lightbar will STUFF the "!"
into sysop's keyboard buffer and exiting MENU! immediately so
that RA recognises the "stuffed" keypress and reacts in it's menu.
NOPOSFILE stops MENU! from saving the lightbar position.
Line 9 : Same as for line 8, here we stuff a "%" into the buffer
Line 10: GOSUB ADVERTS branches to the ADVERTS menu block in the CTL file, if
not defined, MENU! will exit with an error message to sysop and user.
Line 11: EXEC is the command to call "sub-doors" from MENU! (with ext!)
Line 12: same as for line 11
Line 14: The end label, vital for MENU! to find it's way through the nasty
ASCII rubbish :-)
__. ____
/ | / /\
____________________________________ _________/ | / / \
\ | \ | \ | \ /
\______ _______|__ \______ |___ \ | \ /
/ / \ / | \ | \ /
/ ____/ _ \/ | _ \ |_______ \/
: \ | | | /\ | | / / /\ :
::: :\ __|:|____|__ / :\ __|__|__ / ______/:/ \ ::
|:::::\ /::::::::::::\ /::::\ /::::::::\ /\ /::::::::\ /::|
-+------\/--------------\/------\/----------\/--\/----------\/---+-
| ---/\/ ALWAYS THE LATEST REMOTE ACCESS WAREZ \/\--- |
***************************************************************************
UPDATES ARE FREE DOWNLOAD IN MYSTERIOUS WORLDZ BBS (+49-30-8329130)
AND ALL REG- AND DISTSITES AROUND. DON'T MISS TO CALL TODAY.
***************************************************************************