;
; eSoft, Inc.
;
; TBBS Sample System RIP Menus
; SDL Source Code
;
; created by: Karl E. Glasgow IV
;***************************************************************************
;****** WE RECOMMEND YOU PRINT THIS FILE IN ITS ENTIRETY FOR REVIEW ******
;***************************************************************************
; --------------------------------------------------------------------------
; THIS IS THE SDL (SYSTEM DEFINITION LANGUAGE) SOURCE CODE THAT CREATES
; THE SAMPLE RIP MENU SYSTEM. THE COMMENTS IN THIS FILE EXPLAIN EACH PART
; AND ITS PURPOSE. DON'T BE AFRAID OF THE TERM "LANGUAGE" -- YOU DON'T
; HAVE TO BE A PROGRAMMER TO WORK WITH SDL.
;
; BY READING THROUGH THE COMMENTS IN THIS FILE FROM START TO FINISH, YOU
; CAN GAIN ENOUGH UNDERSTANDING TO ALLOW YOU TO MAKE CHANGES TO THESE MENUS
; WITH THE MINIMUM OF EFFORT.
;
; REMEMBER! IF YOU MAKE CHANGES TO THESE MENUS YOU MUST RECOMPILE THIS
; SOURCE CODE SO THAT YOUR CHANGES TAKE AFFECT. TO RECOMPILE,
; DO THE FOLLOWING:
;
; FROM THE "C:\TBBS\MENU" DIRECTORY, TYPE "SDL MENU" AND HIT <ENTER>.
; --------------------------------------------------------------------------
; INTRODUCTION:
; --------------------------------------------------------------------------
;
; This sample SDL code is heavily commented to provide you with as
; much context-sensitive help as possible as you review these menus
; and make changes.
;
; (Comments are any lines which begin with a semi-colon ";")
; Nearly all of these sample system menus use a TBBS tool called a
; "Macro". To make simple changes to these menus, you usually don't
; have to worry about changing the macros that have already been
; defined -- you can just use them (and that's relatively easy).
;
; However, if you wish to view or edit the macros used in the sample
; system, or add new macros of your own, you will find them in a separate
; file called "MACROS.SDL". Comments in that file will help you
; understand what individual macros do.
; The main system DOS path, and your BBS' name are defined by the Install
; program and stored in the file called "PATHS.SDL"
;
Include: PATHS.SDL
; All of the macros which set ANSI colors are contained in the file
; called "COLORS.SDL"
;
Include: COLORS.SDL
; All of the RIP macros used here are defined in the file called
; "RIPMACRO.SDL"
;
Include: RIPMACRO.SDL
; TBBS MENU DEFINITIONS:
; --------------------------------------------------------------------------
; SDL MENU STRUCTURE:
;
; TBBS menus defined in SDL begin with the "Menu:" keyword, followed
; by the 1-4 character name of the menu. The last entry in a menu
; definition is the "EndMenu:" keyword.
;
; Within each menu, individual menu entries are marked by the "Entry:"
; keyword first, followed by any number of entry-specific keywords.
;
; For more information on menu structure, available functions and
; commands, etc., see Chapter 6 and 7 of your TBBS reference manual. The
; tutorial found in the Understanding How It Works Guide also covers this
; in detail.
; MENU ENTRIES IN THIS SAMPLE SYSTEM:
; --------------------------------------------------------------------------
; Each menu entry here has commentary before it, describing briefly what
; the entry is for.
; Most menu entries in this sample system SDL code are laid out as
; follows:
; Entry:
; @OPTIONn(key,text,@key)
; Key=key Type=type Opt Data=optional data
;
; Example:
; Entry:
; @OPTION1(F,File Areas,@F)
; Key=F Type=5 Optdata=RFIL
;
; @OPTION1(F,File Areas,@F)
;
; The @OPTION1() macro used in each entry tell TBBS which option on the
; menu you're defining. This sample menu system allows up to 7 regular
; menu options and 3 global command option per menu. If you're defining
; the 4th option on the menu, you'd use @OPTION4(), the 6th option would
; be @OPTION6(), and so on.
;
; Inside of the parenthesis of the @OPTION1 macro are three items. The first
; is the character that will appear highlighted on the menu. This should
; tell the user what key to press to activate the option. Second is the
; description of this menu option that will appear on the menu next to the
; highlighted key. In the above example, the description will read "File
; Areas". The third is the RIP hotkey that will be used for this option.
; It should always be the key you've selected with an at sign (@) before it.
;
; KEY=F
;
; This tells TBBS that this menu option is activated by the user pressing
; the "F" key. This should match the first item in the @OPTION macro.
; (Otherwise, pressing the highlighted key does nothing!)
;
; TYPE=5
;
; This tells TBBS what it should do if the specified key is pressed by
; the user (in this example, an "F"). Available functions can range from
; 1 to 255. A comprehensive listing of all menu types appears in your
; TBBS reference manual under Chapter 6. (The Type=5 in our example here
; sends the user to another menu if selected)
;
; OPT DATA=RFIL
;
; OPT DATA stands for "optional data", and it provides TBBS with whatever
; additional information it needs to perform the function you've defined.
; If you want to download files from a particular directory, the Opt Data
; would say which directory that is. If you want the menu option to allow
; a user to read messages from a particular message area, the Opt Data
; would say which message area, and so on. (In our example, the Type=5
; sends the user to another menu, and the Opt Data of "RFIL" indicates that
; that menu is called "RFIL" (MENU: RFIL).
;
; --------------------------------------------------------------------------
; NOW FOR THE ACTUAL MENU DEFINITIONS:
; **************************************************************************
; ENTRANCE MENU
; This menu performs functions ONLY ONCE PER CALL, and then sends
; the user to the "RMN" menu.
; **************************************************************************
;
; This menu was created dynamically by eSoft's INSTALL program. To view
; and/or edit the very first menu that RIP callers access when they call
; your system, it can be found in the "RIP_1ST.SDL" file.
Include: RIP_1ST.SDL
;
; **************************************************************************
; MAIN MENU
; This is the main system menu (top level menu).
; **************************************************************************
;
Menu: RMN
; This macro paints a background RIP button image and displays the title
; for the menu. "BACKGRND.RIP" is the name of the file containing the
; RIP screen background, "Main Menu" is the menu's title, and the BBSNAME
; macro is your BBS' name (as defined by the Install program, and stored
; in the PATHS.SDL file).
;
@TITLE(BACKGRND.RIP,Main Menu,@BBSNAME)
; Go to the Message Areas menu (MENU: RMES)
Entry:
@OPTION1(M,Message Areas,@M)
Key=M Type=5 Opt Data=RMES
; Go to the File Areas menu (MENU: RFIL)
Entry:
@OPTION2(F,File Areas,@F)
Key=F Type=5 Opt Data=RFIL
; Go to the News and Information Menu (MENU: RNWS)
Entry:
@OPTION3(N,News and Information,@N)
Key=N Type=5 Opt Data=RNWS
; Go to the Utilities Menu (MENU: RUTL)
Entry:
@OPTION4(U,Utilities,@U)
Key=U Type=5 Opt Data=RUTL
; Run the "VOTING" questionnaire (QAL)
; The questionnaire itself is called "VOTING.QAL", and can most
; likely be found in the TBBS\QA directory.
Entry:
@OPTION5(P,Participate in User Poll,@P)
Key=P Type=32 Opt Data=VOTING
; View the results thus far of the VOTING questionnaire.
; QAL voting statistics are stored in the VOTING.QAF file
; itself. To clear the statistics, simply recompile the
; questionnaire by typing "QAL VOTING" from the \QA directory.
;
Entry:
@OPTION6(V,View Results of Poll,@V)
Key=V Type=33 Opt Data=VOTING
; Enter chat mode via the "CHITCHAT" conference.
; Conferences are defined in CEDIT under the <O>ther option.
Entry:
@OPTION7(C,Chat User-to-User,@C)
Key=C Type=52 Opt Data=CHITCHAT
; Go to the Goodbye menu, prior to logging off the system (MENU: RBYE)
Entry:
@GLOBAL1(G,Goodbye,@G)
Key=G Type=5 Opt Data=RBYE
; Go to the Sysop menu, if you have a PRIV level of 255 (MENU: RSYS)
Entry:
@GLOBAL3(\!,\! Sysop,@!)
Key=! Type=5 Opt Data=RSYS
Priv=255
Endmenu:
;
; **************************************************************************
; FILE AREAS MENU
; File uploads and file download areas.
; **************************************************************************
;
Menu: RFIL
; This macro paints a background RIP button image and displays the title
; for the menu. "BACKGRND.RIP" is the name of the file containing the
; RIP screen background, "Main Menu" is the menu's title, and the BBSNAME
; macro is your BBS' name (as defined by the Install program, and stored
; in the PATHS.SDL file).
;
@TITLE(BACKGRND.RIP,File Areas,@BBSNAME)
; Allows the user to upload a file with description. This file
; will be added to the LIST.DIR pseudo directory that can be
; found in the path specified by the UPLDPATH macro.
;
Entry:
@OPTION1(U,Upload a New File,@U)
Key=U Type=47 Opt Data=@UPLDPATH+\LIST
; Allows the user to access the AREAS.FAR file area listing,
; which can be found in the path specified by the DNLDPATH macro.
; Files can then be downloaded from any of the file areas found
; within that FAR listing.
;
Entry:
@OPTION2(D,Download File Section,@D)
Key=D Type=4 Opt Data=@DNLDPATH+\AREAS /z
; Go to the Goodbye menu, prior to logging off the system (MENU: RBYE)
Entry:
@GLOBAL1(G,Goodbye,@G)
Key=G Type=5 Opt Data=RBYE
; Return to the previous menu
Entry:
@GLOBAL2(-,- Prev,@-)
Key=- Type=12 Opt Data=1
; Go to the top level menu (usually MENU: RMN)
Entry:
@GLOBAL3(0,0 Main,@0)
Key=0 Type=12 Opt Data=0
Endmenu:
;
; **************************************************************************
; MESSAGE AREAS MENU
; Message areas and e-mail menu.
; **************************************************************************
;
Menu: RMES
; This macro paints a background RIP button image and displays the title
; for the menu. "BACKGRND.RIP" is the name of the file containing the
; RIP screen background, "Main Menu" is the menu's title, and the BBSNAME
; macro is your BBS' name (as defined by the Install program, and stored
; in the PATHS.SDL file).
;
@TITLE(BACKGRND.RIP,Message Areas,@BBSNAME)
; Go to the RMSG menu (MENU: RMSG) and reference the "E-Mail" message
; board (as defined in CEDIT under <M>essage, <B>oard Definitions).
; "Electronic Mail" will be the title of that menu.
;
Entry:
@OPTION1(1,1 Private E-Mail,@1)
Key=1 Type=5 Opt Data=RMSG "Private E-Mail" "Electronic Mail"
; Go to the RMSG menu (MENU: RMSG) and reference the "General" message
; board (as defined in CEDIT under <M>essage, <B>oard Definitions).
; "General Messages" will be the title of that menu.
;
Entry:
@OPTION2(2,2 General Messages,@2)
Key=2 Type=5 Opt Data=RMSG "General Messages" "General Messages"
; Go to the RMSG menu (MENU: RMSG) and reference the "Technical" message
; board (as defined in CEDIT under <M>essage, <B>oard Definitions).
; "Technical Discussion" will be the title of that menu.
;
Entry:
@OPTION3(3,3 Technical Discussion,@3)
Key=3 Type=5 Opt Data=RMSG "Technical Area" "Technical Discussion"
; Go to the RMSG menu (MENU: RMSG) and reference the "Lounge" message
; board (as defined in CEDIT under <M>essage, <B>oard Definitions).
; "The Lounge" will be the title of that menu.
;
Entry:
@OPTION4(4,4 The Lounge,@4)
Key=4 Type=5 Opt Data=RMSG "The Lounge" "The Lounge"
; Go to the RMSG menu (MENU: RMSG) and reference the "Classifieds" message
; board (as defined in CEDIT under <M>essage, <B>oard Definitions).
; "Classified Ads" will be the title of that menu.
;
Entry:
@OPTION5(5,5 Classified Ads,@5)
Key=5 Type=5 Opt Data=RMSG "Want Ads" "Classified Ads"
; Go to the Goodbye menu, prior to logging off the system (MENU: RBYE)
Entry:
@GLOBAL1(G,Goodbye,@G)
Key=G Type=5 Opt Data=RBYE
; Return to the previous menu
Entry:
@GLOBAL2(-,- Prev,@-)
Key=- Type=12 Opt Data=1
; Go to the top level menu (usually MENU: RMN)
Entry:
@GLOBAL3(0,0 Main,@0)
Key=0 Type=12 Opt Data=0
Endmenu:
;
; **************************************************************************
; UTILITIES MENU
; User utilities such as changing your password and terminal
; settings, viewing what other users are currently on-line, duration
; of this call, etc.
; **************************************************************************
;
Menu: RUTL
; This macro paints a background RIP button image and displays the title
; for the menu. "BACKGRND.RIP" is the name of the file containing the
; RIP screen background, "Main Menu" is the menu's title, and the BBSNAME
; macro is your BBS' name (as defined by the Install program, and stored
; in the PATHS.SDL file).
;
@TITLE(BACKGRND.RIP,Utilities,@BBSNAME)
; Execute the TBBS command to allow the user to view and alter their
; terminal and user settings.
;
Entry:
@OPTION1(T,Change Terminal Settings,@T)
Key=T Type=31 Optdata=/s
; Display a text file called "USERSTAT.TXT". This particular file
; contains Insertion Parameters (see Chapter 2, page 2-14 of your
; TBBS reference manual for more information on Insertion Parameters)
; that will display certain user statistics from the USERLOG file.
;
Entry:
@OPTION2(I,Status Info Display,@I)
Key=I Type=1 Opt Data=USERSTAT.TXT
; Display the date and time of when this call began and how long
; the user has been on-line.
;
Entry:
@OPTION3(D,Display Time Parameters,@D)
Key=D Type=11
; Allow the user to reset the pointers which record what the last
; message read by the user was, message area by message area.
;
Entry:
@OPTION4(R,Reset Last Read Msg Pointers,@R)
Key=R Type=16
; Page the sysop at the local TBBS console. A bell will ring to alert
; the sysop that someone has requested their attention.
;
Entry:
@OPTION5(S,Chat With the Sysop,@S)
Key=S Type=23
; Allows the user to change their logon password.
;
Entry:
@OPTION6(P,Change Logon Password,@P)
Key=P Type=25
; Presents a listing of what other users are currently on-line
;
Entry:
@OPTION7(W,Who is Online Now,@W)
Key=W Type=50
; Go to the Goodbye menu, prior to logging off the system (MENU: RBYE)
Entry:
@GLOBAL1(G,Goodbye,@G)
Key=G Type=5 Opt Data=RBYE
; Return to the previous menu
Entry:
@GLOBAL2(-,- Prev,@-)
Key=- Type=12 Opt Data=1
; Go to the top level menu (usually MENU: RMN)
Entry:
@GLOBAL3(0,0 Main,@0)
Key=0 Type=12 Opt Data=0
Endmenu:
;
; **************************************************************************
; UNIVERSAL MESSAGE AREA MENU
; Displays the common message area options such as sending a message,
; reading messages, etc.
;
; * THIS MENU IS USED FOR ALL SYSTEM MESSAGE AREAS, and the commands
; relate to whichever message area it is instructed to use via menu
; parameters.
;
; To call this menu from another menu, use the following syntax as a
; part of your menu entry:
;
; Type=5 Opt Data=RMSG "<board name from CEDIT>" "<title of area>"
;
; NOTE: For more information on Menu Parameters, see your TBBS
; reference manual, Chapter 6, page 6-7.
; **************************************************************************
;
Menu: RMSG
; This macro paints a background RIP button image and displays the title
; for the menu. "BACKGRND.RIP" is the name of the file containing the
; RIP screen background, "Main Menu" is the menu's title, and the BBSNAME
; macro is your BBS' name (as defined by the Install program, and stored
; in the PATHS.SDL file).
;
@TITLE(BACKGRND.RIP,%m2%,@BBSNAME)
; Enter a new message in the specified message area
;
Entry:
@OPTION1(S,Send a Message,@S)
Key=S Type=7 Opt Data=%m1%
; Read messages in the specified message area
;
Entry:
@OPTION2(R,Read Messages,@R)
Key=R Type=6 Opt Data=%m1%
; Scan a listing of messages in the specified message area
;
Entry:
@OPTION3(Q,Quickscan Messages,@Q)
Key=Q Type=8 Opt Data=%m1%
; If any unread messages are waiting for this user, display them in
; a listing and allow them to read those messages now.
;
Entry:
@OPTION4(W,Read Waiting Messages,@W)
Key=W Type=15
; Go to the Goodbye menu, prior to logging off the system (MENU: RBYE)
Entry:
@GLOBAL1(G,Goodbye,@G)
Key=G Type=5 Opt Data=RBYE
; Return to the previous menu
Entry:
@GLOBAL2(-,- Prev,@-)
Key=- Type=12 Opt Data=1
; Go to the top level menu (usually MENU: RMN)
Entry:
@GLOBAL3(0,0 Main,@0)
Key=0 Type=12 Opt Data=0
Endmenu:
;
; **************************************************************************
; NEWS AND INFORMATION
; View text information
; **************************************************************************
;
Menu: RNWS
; This macro paints a background RIP button image and displays the title
; for the menu. "BACKGRND.RIP" is the name of the file containing the
; RIP screen background, "Main Menu" is the menu's title, and the BBSNAME
; macro is your BBS' name (as defined by the Install program, and stored
; in the PATHS.SDL file).
;
@TITLE(BACKGRND.RIP,News and Information,@BBSNAME)
; Display the list of available text files under the family name
; of "NEWS" -- see Chapter four of the TBBS reference manual for more
; information about Type 2's.
Entry:
@OPTION1(N,System News,@N)
Key=N Type=2 Optdata=@TEXTPATH+\NEWS
; Display the list of available text files under the family name
; of "INFO" -- see Chapter four of the TBBS reference manual for more
; information about Type 2's.
Entry:
@OPTION2(I,Information About TBBS,@I)
Key=I Type=2 Optdata=@TEXTPATH+\INFO
; Go to the Goodbye menu, prior to logging off the system (MENU: RBYE)
Entry:
@GLOBAL1(G,Goodbye,@G)
Key=G Type=5 Opt Data=RBYE
; Return to the previous menu
Entry:
@GLOBAL2(-,- Prev,@-)
Key=- Type=12 Opt Data=1
; Go to the top level menu (usually MENU: RMN)
Entry:
@GLOBAL3(0,0 Main,@0)
Key=0 Type=12 Opt Data=0
Endmenu:
;
; **************************************************************************
; SYSOP MENU
; For sysop-level users ONLY (PRIV=255)
; System maintenance and control functions
; **************************************************************************
;
Menu: RSYS
; This macro paints a background RIP button image and displays the title
; for the menu. "BACKGRND.RIP" is the name of the file containing the
; RIP screen background, "Main Menu" is the menu's title, and the BBSNAME
; macro is your BBS' name (as defined by the Install program, and stored
; in the PATHS.SDL file).
;
@TITLE(BACKGRND.RIP,Sysop Menu,@BBSNAME)
; Read messages in all message areas together (as if everything were
; contained in one single message area)
;
Entry:
@OPTION1(C,Combined Message Access,@C)
Key=C Type=6
; Choose which message areas should be accessible when reading combined
; messages (see above entry).
;
Entry:
@OPTION2(S,Select/Deselect Combined Areas,@S)
Key=S Type=24
; Allow general file maintenance of the areas/files contained in
; AREAS.FAR. This FAR file can be found in whatever directory has been
; defined in the DNLDPATH macro (definition itself can be found in
; PATHS.SDL).
;
Entry:
@OPTION3(F,File Area Maintenance,@F)
Key=F Type=14 Opt Data=@DNLDPATH+\AREAS
; Go to the Goodbye menu, prior to logging off the system (MENU: RBYE)
Entry:
@GLOBAL1(G,Goodbye,@G)
Key=G Type=5 Opt Data=RBYE
; Return to the previous menu
Entry:
@GLOBAL2(-,- Prev,@-)
Key=- Type=12 Opt Data=1
; Go to the top level menu (usually MENU: RMN)
Entry:
@GLOBAL3(0,0 Main,@0)
Key=0 Type=12 Opt Data=0
Endmenu:
;
; **************************************************************************
; GOODBYE MENU
; Allows the user to hangup, return to the last menu, or leave a
; message to the sysop and then hangup.
; **************************************************************************
;
Menu: RBYE
; This macro paints a background RIP button image and displays the title
; for the menu. "BACKGRND.RIP" is the name of the file containing the
; RIP screen background, "Main Menu" is the menu's title, and the BBSNAME
; macro is your BBS' name (as defined by the Install program, and stored
; in the PATHS.SDL file).
;
@TITLE(BACKGRND.RIP,Goodbye?,@BBSNAME)
; Log off the system (hangup)
Entry:
@OPTION1(G,Goodbye - Logoff Now,@G)
Key=G Type=10
; Return to the previous menu instead of hanging up
Entry:
@OPTION2(-,- Prev,@-)
Key=- Type=12 Opt Data=1
; Enter a message to the sysop, and then hangup
Entry:
@OPTION3(L,Leave a Message First,@L)
Key=L Type=7 Opt Data=MSG TO SYSOP /f:"SYSOP"
Endmenu: