home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / PCBDXEXC.ZIP / CUSTBBS.DOC < prev    next >
Text File  |  1993-08-21  |  82KB  |  1,894 lines

  1. 9
  2. ==============================================================================
  3. Customizing Your BBS
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13. Internationalization
  14.  
  15. Menus
  16.  
  17. Adding Commands
  18.  
  19. The Look And Feel Of Your BBS
  20.  
  21. Display File Conventions
  22.  
  23.  
  24.  
  25.  
  26. Internationalization
  27.  
  28. Adding A Language
  29.  
  30. To add a language to your system, you need to edit your PCBML.DAT file 
  31. (PCBSetup | File Locations | Configuration Files).  By default, your file 
  32. should look like the following:
  33.  
  34.       Language             Extension  Country  CodePage  Yes  No
  35. -------------------------  ---------  -------  --------  ---  --
  36. English (Default)                                         Y    N
  37.  
  38.  
  39. If you want to add the French language to your system, you would press ALT-I 
  40. to insert a new line.  The following describes each of the fields in this 
  41. file:
  42.  
  43. Language        The name of the language.  This is the text that is displayed 
  44.                 to users when they are asked to choose a language at login.  
  45.                 You should include the number of the language on this line.
  46.  
  47. Extension       The filename extension for language specific files. For 
  48.                 example, if you are adding the French language, you may want 
  49.                 to make the extension .FRE.  This means if a file called 
  50.                 WELCOME.FRE exists, it will be displayed at login to anyone 
  51.                 who selects the French language.
  52.  
  53. Country         If you also want PCBoard to add date, numerical separator, 
  54.                 and capitalization support for the language you are defining, 
  55.                 enter the country number to use as defined by COUNTRY.SYS.  
  56.                 For the French language this value is 033.
  57.  
  58. CodePage        The code page is also a function of COUNTRY.SYS and defines 
  59.                 what characters are available in the language you are 
  60.                 defining.  This information should be provided in your 
  61.                 operating system manual.  As an example, the French language 
  62.                 uses 850 in this field.
  63.  
  64. Yes             Since Yes and No are not the same in all languages, you can 
  65.                 define the character that will be used to represent a 
  66.                 response of Yes.  In French, you most likely would like to 
  67.                 use the letter O.
  68.  
  69. No              As with the Yes field, the language you are defining may use 
  70.                 a character other than N to represent a response of No.  
  71.                 Simply enter the character you wish to use to represent a 
  72.                 response of No.
  73.  
  74. Keeping all of the previous information in mind, your entry for the French 
  75. language might look like the following:
  76.  
  77.       
  78.       Language             Extension  Country  CodePage  Yes  No
  79. -------------------------  ---------  -------  --------  ---  --
  80. English (Default)                                         Y    N
  81. French                        FRE       033      850      O    N
  82.  
  83.  
  84. Country Support
  85.  
  86. PCBoard has the ability to extract the dates, thousands separator, and 
  87. upper/lower case information from COUNTRY.SYS you can install with your 
  88. operating system (DOS or OS/2).  These changes will take effect  when a 
  89. language is chosen which selects a different country code.  
  90.  
  91. NOTE:  If a user is on remotely, your status line will continue to use the 
  92. default information as specified in your computer setup.  That way, a user 
  93. could be logged in, using the French language, but you, the SysOp, would 
  94. continue to see the dates and numbers displayed as you are used to seeing 
  95. them.
  96.  
  97. Dates
  98.  
  99. Dates will be displayed and entered using the country information specified 
  100. by the language.  For example, the United States uses the mmddyy format, 
  101. where most European countries use the ddmmyy format for specifying dates.  
  102. This all depends on the information provided by COUNTRY.SYS.
  103.  
  104. If you are using a country which specifies dates in a format other than 
  105. mmddyy, you will need to modify some of the records in the PCBTEXT file for 
  106. the language.  In particular, you will need to modify records 72, 266, and 
  107. 688 because they ask the user to enter the date in mmddyy format.
  108.  
  109. Thousands Separator
  110.  
  111. As with the dates, PCBoard will be able to decide if the language specified 
  112. needs to use the comma or the period for the thousands separator.  For 
  113. example, in the United States, a number could be displayed as 1,024,000 
  114. whereas with periods it would be displayed as 1.024.000.
  115.  
  116. Upper And Lower Case
  117.  
  118. In addition to reading the date and number information from COUNTRY.SYS, 
  119. PCBoard can also determine what the proper capitalized and lower case 
  120. characters are for a particular language.  PCBoard will use this information 
  121. throughout the system so users can enter responses in the syntax that they 
  122. are most familiar with.
  123.  
  124. Installing COUNTRY.SYS
  125.  
  126. For PCBoard to support internationalization of dates, thousands separator and 
  127. capitalization you must have COUNTRY.SYS installed on your system   
  128. COUNTRY.SYS should come with your operating system including the instructions 
  129. on how to install it in your system.  The following sections shows you 
  130. samples of how to install COUNTRY.SYS in both DOS and OS/2.
  131.  
  132. DOS
  133.  
  134. In your CONFIG.SYS file, add:
  135.  
  136. COUNTRY=001,437,C:\DOS\COUNTRY.SYS
  137.  
  138. This example shows an entry for the United States.  By referring to your 
  139. operating system manual, you should be able to see that 001 is the country 
  140. number, 437 is the code page number to use, and the last parameter is the 
  141. location of your COUNTRY.SYS file.
  142.  
  143. OS/2
  144.  
  145. The configuration for OS/2 is quite similar to the configuration for DOS 
  146. machines.  You need to add the following line to your CONFIG.SYS file:
  147.  
  148. COUNTRY=001,C:\OS2\SYSTEM\COUNTRY.SYS
  149.  
  150. This example also shows you the configuration as it would appear for the 
  151. United States.  As you can tell, you need to only enter the country number 
  152. and the location of your COUNTRY.SYS file.
  153.  
  154. International Fonts
  155.  
  156. The code-page information that you specify in PCBML.DAT gives PCBoard the 
  157. ability to change the font used by the display adapter whenever a caller 
  158. changes languages.    The font change only shows up on the local screen and 
  159. then only when it is a local login.  In addition, you must have an EGA/VGA 
  160. adapter in order to setup the ability to change fonts.
  161.  
  162. If you will recall, the previous section discussed how to add the French 
  163. language to your system.  The examples, for this section will revolve around 
  164. installing French on your system as well.
  165.  
  166. DOS
  167.  
  168. In your CONFIG.SYS, add the following:
  169.  
  170.  
  171. DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,437,2)
  172.  
  173. In your AUTOEXEC.BAT, add these lines:
  174.  
  175. NLSFUNC
  176. MODE CON: CP PREPARE=((437 850) C:\DOS\EGA.CPI)
  177.  
  178.  
  179. For additional information on DISPLAY.SYS, NLSFUNC, and MODE please refer to 
  180. your DOS manual.
  181.  
  182. If you are running multiple nodes under DESQview, you should be aware that 
  183. the font support is a little unpredictable in that the font changes in one 
  184. node may show up in another node's display instead.  In addition, Microsoft 
  185. Windows will not show the font change, unless you are running in a 
  186. full-screen window.
  187.  
  188. OS/2
  189.  
  190. In your CONFIG.SYS add the following:
  191.  
  192.  
  193. CODEPAGE=437,850
  194.  
  195.  
  196. OS/2 does a good job of displaying fonts.  You can easily have two separate 
  197. windows using two different fonts.
  198.  
  199.  
  200. For additional information on using the CODEPAGE line in your CONFIG.SYS, 
  201. please refer to your OS/2 manual.
  202.  
  203. Multiple Languages And Caller Logs
  204.  
  205. The PCBTEXT file contains almost all of the text that is written to the 
  206. caller log files.  If you have several languages available on your system, 
  207. you may find it difficult to interpret the information written to the caller 
  208. log because it would be written in the language chosen by the user.
  209.  
  210. To help ease the reading of the log files, PCBoard will use the entries from 
  211. the default PCBTEXT file (the one with no file extension) when writing to the 
  212. log files.  This means all of the entries will be the same for your callers 
  213. no matter what language they select.
  214.  
  215. Menus
  216.  
  217. There are several hooks in PCBoard where you can use a menu instead of the 
  218. normal input.  By using menus, you can help distribute the information 
  219. presented to the caller so they do not become overwhelmed with the choices 
  220. available at any one prompt.  You can access doors, bulletins, script, and 
  221. more from within the menu.
  222.  
  223. Creating A Menu
  224.  
  225. To create a menu, you need to create what is called an MNU file. To create 
  226. this type of file, you need to use the MKPCBMNU program that is included with 
  227. your package.  To create or edit a MNU file, specify the MNU file to edit on 
  228. the command line.  For example, if you wanted to edit or create 
  229. C:\PCB\MNU\MAIN.MNU, type the following at the DOS prompt:
  230.  
  231.  
  232. MKPCBMNU C:\PCB\MNU\MAIN.MNU
  233.  
  234. If you do not specify a filename to edit, the usage screen will be shown to 
  235. you which shows you how to specify a MNU file to edit.
  236.  
  237. If you specify a valid filename to edit or create, the MKPCBMNU program will 
  238. be loaded.
  239.  
  240. If the filename you specify already exists, you will be able to edit the 
  241. contents of that file.  If the file does not exist, you will be creating a 
  242. new MNU file.
  243.  
  244. You will see that the first screen has three fields.  To access the rest of 
  245. the fields, press F2 to toggle between the various configuration screens.
  246.  
  247. Title
  248.  
  249. In this field, enter the title or name of this menu.  This will be used for 
  250. the prompt after each menu is displayed.  For example, if you enter a title 
  251. of FILE, you will see the following prompt at the end of the menu:
  252.  
  253.  
  254. FILE Menu Command ('MENU' for options)
  255.  
  256.  
  257. The rest of the prompt can be configured to read however you wish by using 
  258. MKPCBTXT.EXE to edit record #682 in your PCBTEXT file.  For example, you may 
  259. want for it to say
  260.  
  261.  
  262. FILE Selection ('MENU' for options)
  263.  
  264.  
  265. in which case you would edit record #682 in PCBTEXT to look as follows:
  266.  
  267.  
  268. @OPTEXT@ Selection ('MENU' for options)
  269.  
  270.  
  271. As you can see, the @OPTEXT@ in the prompt is replaced by whatever you enter 
  272. as the title for the prompt.
  273.  
  274. Display File
  275.  
  276. This is the file you want to display for the menu.  This file should list all 
  277. of the options that are available in this menu. As with virtually any other 
  278. file that PCBoard displays, you can make security, graphics, and language 
  279. specific versions of this display file.
  280.  
  281. When a user is in novice mode, this file will be displayed each time before 
  282. they are asked to make a selection.  When in expert mode, the only way for a 
  283. user to be able to view this menu is to type MENU when prompted for input.
  284.  
  285. Help File
  286.  
  287. Keeping in line with PCBoard's extensive online help system, you can have 
  288. help files for each menu that you create.  Simply enter the filename you wish 
  289. to display when a ? is entered at your prompt for the menu.  Instead of the ? 
  290. a user could also enter H, HE, HEL, HELP unless you have replaced those 
  291. commands in your menu.
  292.  
  293. Menu Prompts
  294.  
  295. There is a default prompt in PCBTEXT (record #678) that is used by all menus.  
  296. It may not meet your needs for every menu though. However, since it is used 
  297. by all menus, it cannot easily be modified by MKPCBTXT to handle different 
  298. situations without making it worthless for other menus.  Because of this, you 
  299. can create different custom language prompts for each menu. MKPCBMNU allows 
  300. the editing of 32 language specific menu prompts.
  301.  
  302. The second screen in the menu editor (accessible by pressing F2) is where you 
  303. define the multi-lingual prompts that you wish to use.  Simply type in the 
  304. way you want the input prompt to appear for each language defined.
  305.  
  306. You will notice the first entry automatically has an extension of DEFAULT.  
  307. This is the prompt displayed to the user if they have the default language.  
  308. If you leave this blank, PCBoard will use the prompt from record #682 in your 
  309. PCBTEXT file.
  310.  
  311. In a previous example, you were shown how to change the prompt from @OPTEXT@ 
  312. Menu Command ('MENU' for options) to @OPTEXT@ Selection ('MENU' for options).  
  313. You could accomplish the same thing without modifying your PCBTEXT file.  
  314. Instead, change the default prompt on this screen to look like the following:
  315.  
  316.  
  317. @OPTEXT@ Selection ('MENU' for options)
  318.  
  319.  
  320. To add other language specific prompts, press ALT-I.  In the extension field, 
  321. type in the extension you would like to replace the prompt for.  Press TAB to 
  322. go to the MNU Prompt field and type in the prompt for that language.  If a 
  323. prompt cannot be found for the current language, the default prompt will be 
  324. used.
  325.  
  326. Defining Options
  327.  
  328. The final configuration screen is where you define the menu options that will 
  329. be available.
  330.  
  331. Keyword:  This is the command you want to define.  You can enter any command 
  332.           name up to 8 characters in length.  This means you are not limited 
  333.           to single letter commands, but you may certainly use single letter 
  334.           commands if it will make it easier for your users.
  335.  
  336. Sec:      In this field you need to enter the minimum security level required 
  337.           to access the command you are defining.  You may enter any value 
  338.           between 0 and 255.
  339.  
  340. Type:     Each menu option can be of a certain type.  In other words, one 
  341.           menu option may execute a door program, while another may display a 
  342.           bulletin.  The following list details each of the types you can 
  343.           assign to a command.
  344.  
  345.           BLT   This option type enables you to display any bulletin that is 
  346.                 defined in the current conference.  In the Parameters field, 
  347.                 enter the number of the bulletin you wish to display.
  348.  
  349.           BYE   This option is identical to using the BYE user command 
  350.                 available in PCBoard.  This option skips any warnings or 
  351.                 questions at logoff.  By default, this menu option is 
  352.                 available in every menu you create, unless you override the 
  353.                 command in your menu definition.  
  354.  
  355.           CONF  This option type enables you to change the conference number. 
  356.                 In the Parameters field, specify the conference name or 
  357.                 number you wish to join.
  358.  
  359.           DIR   You can display any of the file directories available in the 
  360.                 current conference.  Specify the directory number you wish to 
  361.                 display in the Parameters field.
  362.  
  363.           DIS   If you want to disable a menu option without actually 
  364.                 deleting it from the list of options available, use this 
  365.                 option.
  366.   
  367.           DOOR  If you want to execute a door application from a menu, you 
  368.                 may do so using this option type.  Only the doors normally 
  369.                 available in the current conference will be available for 
  370.                 execution.  Specify the door number or name to execute in the 
  371.                 Parameters field of the option you are defining.
  372.  
  373.           EXIT  While this option type is similar to QUIT, it is different 
  374.                 because it will quit all active menus.
  375.  
  376.           FILE  If you want to display a text file to the caller, you may do 
  377.                 so using this option type.  As with normal PCBoard display 
  378.                 files, you can create security, graphics, and language 
  379.                 specific versions of the file you are displaying to the 
  380.                 caller.  In the Parameters field, specify the path and 
  381.                 filename to display.
  382.  
  383.           GBYE  This option is identical to the G user command available in 
  384.                 PCBoard.  By default, this command is available in every menu 
  385.                 that you create, unless you use define G to perform some 
  386.                 other action in your menu.
  387.  
  388.           MENU  If you have assigned a menu command to have this type, you 
  389.                 can load another MNU file as specified in the Parameters 
  390.                 field. This would effectively let you create a sub-menu type 
  391.                 system that is very easy to navigate.
  392.    
  393.           PPE   Using this option, you can execute any PPE file you wish. 
  394.                 This only further enhances the options or tasks you can 
  395.                 perform with each menu.
  396.  
  397.           QUIT  To quit the current menu and return to the previous menu (if 
  398.                 any), define a menu option that uses this option type. 
  399.                 Remember that only the current menu will be exited.  To exit 
  400.                 all menus, use the EXIT option instead.
  401.  
  402.           SCR   Execute a script file.  The script number to execute should 
  403.                 be specified in the Parameters field.  For example, if you 
  404.                 want to execute script #3 in the current conference for a 
  405.                 particular menu option, set the type of the option to SCR and 
  406.                 in the parameters field,  enter 3.
  407.  
  408.           SFNR  To increase the capability of MNU files, this option type 
  409.                 enables you to stuff any text into the keyboard.  The text to 
  410.                 stuff comes from the file specified in the Parameters field. 
  411.                 Stuffing the keyboard will make it appear the user typed in 
  412.                 the text when in reality it is your menu.  Once the stuffed 
  413.                 text has been acted upon, the user will not be returned to 
  414.                 the menu file.
  415.  
  416.           SQNR  Stuff the keyboard with the text entered in the Parameters 
  417.                 field.  The text that is stuffed will not be displayed on the 
  418.                 screen.  Additionally, the user will not be returned to the 
  419.                 menu once the stuffed text has been acted upon.
  420.  
  421.           SSNR  Stuff the keyboard with the text entered in the Parameters 
  422.                 field.  Once the stuffted text has been acted upon, the user 
  423.                 will not be returned to the menu.
  424.  
  425.           STFF  Stuff the keyboard with the contents of the file specified in 
  426.                 the Parameters field.  Once the stuffed text has been acted 
  427.                 upon, the user wiill be returned to the menu.  
  428.  
  429.           STFQ  Stuff the keyboard with the contents of the file specified in 
  430.                 the Parameters field.  The stuffed text will not be shown on 
  431.                 the screen.
  432.  
  433.           STFS  Stuff the keyboard with the text entered in the Parameters 
  434.                 field.  To represent the user pressing ENTER, use ^M where 
  435.                 ENTER would normally be used. Once the stuffed text has been 
  436.                 acted upon, the user will be returned to the menu.
  437.  
  438.           XPRT  Using this option, you can toggle expert mode status or 
  439.                 explicitly state if you want expert mode on or off.  In the 
  440.                 Parameters field, simply enter ON, OFF, or TOGGLE based on 
  441.                 the action that you wish to perform.
  442.  
  443. Parameters:  In this field, enter any parameters required for the option type 
  444. that you are defining.  For example, if you use the STFF option type, you 
  445. need some way to specify the filename that you want to stuff the keyboard 
  446. with.  In the Parameters field, enter the filename that you want to display.  
  447. The description for each option will inform you if you need to enter anything 
  448. in the Parameters field.
  449.  
  450. NOTE:  There are some commands that are available with every menu even if you 
  451. do not have them actually defined in your MNU file.  The following lists all 
  452. of the default commands in all menus:
  453.  
  454. ?, H, HE, HEL, HELP - Displays the help file for this menu (if it exists)
  455. ME, MEN, MENU - Displays the menu file which shows menu options available
  456. Q - Quit the current menu and return to the previous menu (if applicable)
  457. X - Exit all menus.
  458. G - Logoff the system.  Warnings will be displayed at logoff
  459. BYE - Logoff the system.  Warnings will not be displayed.
  460.  
  461. The only commands that you cannot change or create are the top two items in 
  462. the list which display the help files and display file for the current menu.  
  463. All the rest of the options have option types you can assign to other 
  464. commands.
  465.  
  466. Adding Menu
  467.  
  468. There are three way you can install a menu file into PCBoard. They are as 
  469. follows:
  470.  
  471. Menu display files (e.g., BRDM, CNFN)
  472. Most display files (e.g., WELCOME, NEWS)
  473. CMD.LST (PCBSetup | File Locations | Configuration Files)
  474. Virtually any PCBText Entry
  475.  
  476. Using these methods, you should be able to install a menu into virtually any 
  477. area in your bulletin board system.  This means you can install a menu file 
  478. virtually anywhere in PCBoard.  The following sections describe the various 
  479. methods you can use to install a menu.
  480.  
  481. Menu Display Files
  482.  
  483. The most common place for you to insert a menu is when the user is going to 
  484. be prompted for input.  If you have a lot of conferences on your system, 
  485. chances are that your users will have difficulty deciding the conference to 
  486. join.  By using menu files instead of a single display file, you can help 
  487. your users find what they are after.  The following lists some likely 
  488. candidates for installing menus by adding a .MNU on the name of the menu 
  489. display file:
  490.  
  491. BRDM (PCBSetup | Conference Configuration) - Displayed at the conference 
  492. command prompt, but only when in novice mode, or when the MENU command is 
  493. used.
  494.  
  495. CNFN (PCBSetup | File Locations | Display Files) - Displayed when a user uses 
  496. the J user command.
  497.  
  498. DOORS (PCBSetup | Conference Configuration) - Displayed when a
  499. user uses the OPEN or DOOR user command.
  500.  
  501. BLT (PCBSetup | Conference Configuration) - Displayed when the B user command 
  502. is executed.
  503.  
  504. SCRIPT (PCBSetup | Conference Configuration) - Displayed when the S user 
  505. command is executed.
  506.  
  507. DIR (PCBSetup | Conference Configuration) - Displayed when the F user command 
  508. is executed.
  509.  
  510. For any of these display files, you can create a menu file that will be used 
  511. instead by adding a .MNU extension on the filename. For example, to create a 
  512. menu for your conferences, follow these steps:
  513.  
  514. Look at the location of your CNFN file (PCBSetup | File Locations | Display 
  515. Files).   You may see C:\PCB\GEN\CNFN.  In this case, you would create a MNU 
  516. file called CNFN.MNU and store it in the C:\PCB\GEN\ subdirectory.
  517.  
  518. Use MKPCBMNU to create the C:\PCB\GEN\CNFN.MNU file.  Follow the instructions 
  519. for creating a menu as outlined previously.  When you have finished defining 
  520. your menu file, save it.
  521.  
  522. Now whenever you type in J and press ENTER you will notice your menu file is 
  523. being used instead of the normal display file.
  524.  
  525. The most important thing to remember, is the menus are only used when the 
  526. normal display file would have been used.  If a user were to type J;3 your 
  527. menu will never be used because the conference menu would not have normally 
  528. been displayed by PCBoard.  Likewise, if you replace the BRDM file with a 
  529. BRDM.MNU, it will only be used when the BRDM file would have been normally 
  530. been displayed.  This means that if a user is in expert mode, they will not 
  531. see the menu, because the main menu is not normally displayed to them.  
  532. However, if a user in expert types MENU,  your menu file will be used.
  533.  
  534. CMD.LST
  535.  
  536. In the CMD.LST file (PCBSetup | File Locations | Configuration Files) you can 
  537. add new commands to your system.  The commands you define in this file will 
  538. only be available from the conference command prompt.  If you edit your 
  539. CMD.LST file, you will see a screen which resembles the following:
  540.  
  541.  
  542.                              File Locations
  543.  
  544.        Command     Security  PPE/MNU File -or- Keystroke Replacement
  545.    --------------  --------  ---------------------------------------
  546. 1)
  547.  
  548. You can add a MNU file by specifying the command you want to use for the 
  549. menu, the security level required to execute the command, and the actual 
  550. location of your MNU file.  For example, if you want to add a command called 
  551. ORDER which will put the user into a menu system where you could help them 
  552. make purchasing decisions, add the following entry:
  553.  
  554.  
  555.                              File Locations
  556.  
  557.        Command     Security  PPE/MNU File -or- Keystroke Replacement
  558.    --------------  --------  ---------------------------------------
  559. 1) ORDER               0     F:\PCB\MENUS\ORDER.MNU
  560.  
  561.  
  562. PCBText Entry
  563.  
  564. Instead of displaying a PCBTEXT record, you can have use a menu file instead.  
  565. To use a menu file, begin the PCBTEXT record with a $ followed by the name of 
  566. the menu filename that you want to use.  For additional information, refer to 
  567. the PCBText Utilities section in the Utilities chapter of this manual.
  568.  
  569. Adding Commands
  570.  
  571. One of the requirements of a bulletin board system is that it be customizable 
  572. to meet the needs of your users.  PCBoard gives you the ability to add new 
  573. commands to the system.  You can define these new commands to do the 
  574. following things:
  575.  
  576. Open a door - When you define a door, you must give it a name. You can 
  577. execute this door by typing entering the door name at the conference command 
  578. prompt.  There is no need to use the OPEN or DOOR user commands.  This method 
  579. enables you to add the door name to your main menu making it appear as a 
  580. command on your system.
  581.  
  582. Stuff the keyboard - Sometimes you may want to make things easier for your 
  583. users by combining commonly used commands into one single command.  For 
  584. example, if your users have a hard time remembering that R;Y;ALL would read 
  585. their own mail, create a command called YOURMAIL which stuffs the keyboard 
  586. with  R;Y;ALL. 
  587.  
  588. Run a PPE - A PPE can be generated by the PPL Compiler or by downloading a 
  589. pre-compiled PPE.
  590.  
  591. Execute a menu file - If you want to run a menu file as a new command, 
  592. specify the menu file you wish to execute.
  593.  
  594. All new commands you add to your main menu (with the exception of doors) need 
  595. to be added using the CMD.LST file (PCBSetup | File Locations | Configuration 
  596. Files).
  597.  
  598. Stuffing Text Into The Keyboard
  599.  
  600. Perhaps the most common way to add a new command is to stuff text into the 
  601. keyboard buffer.  Using this method you can create commands based on common 
  602. things your users may do.  In the CMD.LST, specify the text to stuff in the 
  603. right-most field on the screen (PPE/MNU File -or- Keystroke Replacement.)  
  604. The text you specify will stuffed into the keyboard buffer as if the user 
  605. entered it directly from their keyboard.
  606.  
  607. For example:
  608.  
  609.        Command     Security  PPE/MNU File -or- Keystroke Replacement
  610.    --------------  --------  ---------------------------------------
  611. 1) #                   0     D;ALLFILES.ARJ;N^M
  612.  
  613.  
  614. This entry defines the # command.  When this command is executed, the 
  615. commands necessary to download ALLFILES.ARJ are executed.  In addition the ;N 
  616. is added which will force PCBoard to use the (N)one protocol.  In essence, 
  617. this will force a protocol to be picked for transfer even if a default 
  618. protocol has already been selected.
  619.  
  620. There are two things you need to be aware of when stuffing the keyboard.  To 
  621. simulate pressing ENTER add a ^M to the text that you are stuffing into the 
  622. keyboard buffer.  In addition, you need to realize that any text you stuff 
  623. into the keyboard buffer will be lost if you run a door.  If you need to 
  624. stuff more characters than are available in the field, you should stuff a 
  625. file instead.
  626.  
  627. Stuffing A File To The Keyboard
  628.  
  629. To specify that you wish to stuff an ASCII text file instead of the text, 
  630. enter a % followed by the filename you wish to stuff. For example, if you 
  631. wished to create a command called VIEW that will stuff the text file 
  632. C:\PCB\TEMP\STUFFIT.TXT, add this entry:
  633.  
  634.        Command     Security  PPE/MNU File -or- Keystroke Replacement
  635.    --------------  --------  ---------------------------------------
  636. 1) VIEW                0     %C:\PCB\TEMP\STUFFIT.TXT
  637.  
  638.  
  639. Stuffing the keyboard buffer with a file is virtually identical to stuffing 
  640. the keyboard buffer with text (described in previous section) with the 
  641. following exceptions:
  642.  
  643. You may stuff as many characters as necessary.  When stuffing text, you are 
  644. limited to 256 characters.  However, with a file, all of the text inside the 
  645. file will be stuffed.
  646.  
  647. Instead of using ^M to represent ENTER, press ENTER when you are creating 
  648. your ASCII file to stuff into the keyboard buffer.
  649.  
  650. If you were to stuff S^M2^M when stuffing text, the ^M will be converted to 
  651. carriage returns.
  652.  
  653. If you were to stuff the same text from a file, it will resemble the 
  654. following:
  655.  
  656.                 S
  657.         2
  658.  
  659. Using A PPE File
  660.  
  661. To specify the command to execute a PPE file is very simple. All you need to 
  662. do is specify the new command, the security level required to execute the 
  663. command, and finally the name of the PPE filename to execute.  For example, 
  664. to create a command called STATS which will execute C:\PCB\PPE\STATS.PPE, 
  665. make the following entry:
  666.  
  667.  
  668.        Command     Security  PPE/MNU File -or- Keystroke Replacement
  669.    --------------  --------  ---------------------------------------
  670. 1) STATS               0     C:\PCB\PPE\STATS\STATS.PPE
  671.  
  672. Using A Menu File
  673.  
  674. You can add a MNU file by specifying the command you want to use for the 
  675. menu, the security level required to execute the command, and the actual 
  676. location of your MNU file.  For example, if you want to add a command called 
  677. ORDER which would put the user into a menu system where you could help them 
  678. make purchasing decisions, add the following entry:
  679.  
  680.  
  681.                              File Locations
  682.        
  683.        Command     Security  PPE/MNU File -or- Keystroke Replacement
  684.    --------------  --------  ---------------------------------------
  685. 1) ORDER               0     F:\PCB\MENUS\ORDER.MNU
  686.  
  687. Replacing Existing Commands
  688.  
  689. Using the CMD.LST file, it is possible for you to override PCBoard's internal 
  690. commands.  The commands defined in CMD.LST have the highest priority of any 
  691. command or function in PCBoard.
  692.  
  693. Even when you override a command, you can still access the original internal 
  694. command as strange as that might sound.  As a very simple example, add the 
  695. following entry to your CMD.LST file:
  696.  
  697.        
  698.        Command     Security  PPE/MNU File -or- Keystroke Replacement
  699.    --------------  --------  ---------------------------------------
  700. 1) N                   0     N
  701.  
  702.  
  703. As you can see, this will stuff N into the keyboard buffer when the user 
  704. executes the N user command.  If you login and execute then N command you 
  705. will notice it is identical to before you implemented the change.  If you 
  706. want to make sure everything is working properly, modify your N command in 
  707. CMD.LST so it looks like this:
  708.  
  709.  
  710.        Command     Security  PPE/MNU File -or- Keystroke Replacement
  711.    --------------  --------  ---------------------------------------
  712. 1) N                   0     N;S
  713.  
  714.  
  715. If you login and execute the N command, you will not be prompted for the 
  716. date.  Instead, you will be asked immediately for the directory numbers you 
  717. wish to search through.  This is because the internal N command is still 
  718. being used.
  719.  
  720. The Look And Feel Of Your BBS
  721.  
  722. PCBoard uses several display files and hundreds of text records (PCBTEXT) to 
  723. display information to the caller of the system. Each of these display files 
  724. and nearly all of the text records can be modified to your liking.
  725.  
  726. Without a doubt, you will spend a large amount of your time customizing your 
  727. bulletin board system to suit your needs and to help differentiate your 
  728. system from the other bulletin board systems.  This section describes some of 
  729. the ways you can customize the look and feel of your system.
  730.  
  731. Colorizing Screens
  732.  
  733. To help enhance the presentation of your display files, PCBoard will allow 
  734. you to create graphic specific versions of all of your display files by 
  735. adding a G to the end of the filename to be displayed.  For example, if you 
  736. use a file called WELCOME and you want to create a graphics specific version 
  737. of the file, create a file called WELCOMEG.  These graphic specific files are 
  738. usually created using either ANSI codes or @X color codes. There are several 
  739. ANSI screen and @X editors such as PCBEdit (included with PCBoard).  Simply 
  740. use the editor program to create your file and save the file using ANSI or @X 
  741. codes.
  742.  
  743. Despite the fact that you can create graphic specific files, you may not want 
  744. to create both a non-graphic and graphic version of the same file.  With the 
  745. @X code format, PCBoard can analyze the file and will omit the color 
  746. information in the file if the caller is not in graphics mode.  By making 
  747. just one version of the file, you can save a lot of maintenance time and 
  748. probably a significant amount of disk space.
  749.  
  750. Editing PCBText Records
  751.  
  752. Because most of the text that PCBoard displays comes from the PCBTEXT file 
  753. (for each language) you can put a great deal of time into customizing the 
  754. PCBTEXT records.
  755.  
  756. Each PCBTEXT record varies in length up to 79 characters.  There are nearly 
  757. 700 records in the PCBTEXT file that you may customize to fit your own needs.
  758.  
  759. To edit the PCBTEXT file, use a utility called MKPCBTXT.EXE which is included 
  760. with your package.  This utility will enable you to edit each record in the 
  761. PCBTEXT file to say whatever you want it to display.
  762.  
  763. If you browse through the various records, you may notice what appears to be 
  764. duplicate records which contain the same text. One record is displayed to the 
  765. user when they are in novice mode, and the other record is displayed when the 
  766. user is in expert mode.  The best way to determine which is which is by trial 
  767. and error -- there is no set method.
  768.  
  769. To increase the flexibility of each PCBTEXT record, there are some special 
  770. characters you can use at the beginning of a line to signify you would like 
  771. to do something other than display the record text.
  772.  
  773. For example, if you begin a record with a % followed by a filename, PCBoard 
  774. will display the filename instead.  This enables you to break the record 
  775. length limit in case you need to display additional text.  The screen on the 
  776. following page is a sample record showing you what it would look like to 
  777. display a filename instead:
  778.  
  779. You can also elect to execute a menu rather than displaying a particular 
  780. record.  This can be done by starting the line with a $ followed by the MNU 
  781. file that you wish to use for your menu.
  782.  
  783. If you have a PPE file that you wish to execute in place of a normal record 
  784. you may do so by beginning the record with an ! followed by the filename of 
  785. the PPE to execute.
  786.  
  787. NOTE:  There are some records that are built by PCBoard on the fly and 
  788. therefore cannot use the %, $, or ! characters as the first line.  A good 
  789. example would be record #609 in the PCBTEXT file which displays the credits 
  790. that are rewarded to a user after uploading.  PCBoard replaces the 0 in that 
  791. record with the appropriate values, hence it builds the record before 
  792. displaying it to a user.  If you use %, $, or ! as the first character, it 
  793. will be ignored.
  794.  
  795. For more information on MKPCBTXT, refer to the Utilities chapter of this 
  796. manual.
  797.  
  798. PPE Files
  799.  
  800. Perhaps the greatest way to customize how your bulletin board system operates 
  801. is to use PPE files.  You can use PPE files in the following places:
  802.  
  803. In a PCBTEXT record as described in the previous section
  804.  
  805. In place of a standard script questionnaire file simply by specifying the 
  806. filename of the PPE (including the PPE extension) in SCRIPT.LST.
  807.  
  808. In place of any menu display file (BRDM, CNFN, DIR, BLT, etc.) by creating a 
  809. PPE file using the base name.  For example to execute a PPE file instead of 
  810. displaying the normal menu, create a file called BRDM.PPE in the same 
  811. location as BRDM.
  812.  
  813. Within any display file by beginning a line (column 1) with an ! followed by 
  814. the filename of the PPE to execute.
  815.  
  816. From a menu selection as defined in a MNU file.
  817.  
  818. A PPE (PCBoard Programming Executable) file is simply the compiled version of 
  819. a PPL file.  In order to compile your own PPE file you will need to purchase 
  820. the PPL Compiler which is an optional add-on to your PCBoard software.  If 
  821. you have any background in BASIC or batch file programming, you should be 
  822. able to easily understand the PPL language.
  823.  
  824. Configurable Online Help
  825.  
  826. PCBoard uses standard text files for its context sensitive help system.  
  827. Therefore, you may modify the files that make up the help system to suit your 
  828. needs.  Your help files will be located in the directory you specified in the 
  829. Location of Help Files (PCBSetup | File Locations | System Files).  The 
  830. following lists the help files names that are included with PCBoard and a 
  831. description of the command or function that they provide assistance with.
  832.  
  833.         HLP!    (!) Repeat command
  834.         HLPA    (A)pandon a Conference
  835.     HLPALIAS    (ALIAS) enable/disable
  836.     HLPB    (B)ulletins
  837.     HLPBR    (BR)oadcast another node
  838.     HLPC    (C)omment to SysOp
  839.     HLPCHAT    (CHAT) or (NODE) commands
  840.     HLPCMENU    Menu available by pressing E while in chat.
  841.     HLPD    (D)ownload file(s)
  842.     HLPE    (E)nter a message
  843.     HLPENDR    Options available at the End of Message Command prompt.
  844.     HLPF    (F)ile directories
  845.     HLPFLAG    (FLAG) a file for download
  846.     HLPFSCRN    Full-screen editor (entering a message)
  847.     HLPG    (G)oodbye
  848.     HLPH    (H)elp
  849.     HLPI    (I)nitial Welcome
  850.     HLPJ    (J)oin a conference
  851.     HLPK    (K)ill a message
  852.     HLPL    (L)ocate a file
  853.     HLPLANG    (LANG) Change active language
  854.     HLPM    (M)ode of graphics (if any)
  855.     HLPN    (N)ew file scan
  856.     HLPNEWS    (NEWS) Online news
  857.     HLPO    (O)perator Page
  858.     HLPOPEN    (OPEN) a (DOOR)
  859.     HLPP    (P)age length setting
  860.     HLPQ    (Q)uick message scan
  861.     HLPQWK    (QWK) mail transfers
  862.     HLPR    (R)ead a message
  863.     HLPREG    Set conference registrations (within user record edit)
  864.     HLPREP    (REPLY) to a message
  865.     HLPRM    (RM)  Re-read memorized message number
  866.     HLPS    (S)cript questionnaire
  867.     HLPSEC    Message security (when entering a message)
  868.     HLPSEL    (SELECT) conferences to include in message scan
  869.                 Scan for prompts.
  870.     HLPT    (T)ransfer protocol
  871.     HLPTEST    (TEST) a file that is available for download.
  872.     HLPTS    (TS)  Search messages for text
  873.     HLPU    (U)pload a file
  874.         HLPUSERS(USER)  Display list of users on the system
  875.     HLPV    (V)iew user statistics
  876.     HLPW    (W)rite personal information
  877.     HLPWHO    (WHO) is currently online
  878.     HLPX    (X)pert mode toggle
  879.     HLPY    (Y)our mail scan
  880.     HLPZ    (Z)ippy search the file directories.
  881.  
  882. Display File Conventions
  883.  
  884. Display Filename Conventions
  885.  
  886. With virtually any filename that PCBoard displays to the caller, you can send 
  887. different versions of the file based on:
  888.  
  889.  
  890. the security level of the user
  891. the current language
  892. the graphics mode (if any) being used
  893.  
  894. Base Filename
  895.  
  896. Before you can understand how this works, you must know what PCBoard calls a 
  897. base filename.  The base filename is what you enter for the filename in a 
  898. PCBSetup location.  Look at the following example:
  899.  
  900.  
  901. Name/Loc of Conference Join Menu  : C:\PCB\GEN\CNFN
  902.  
  903.  
  904. In this example, the filename is CNFN and hence it is the base filename.
  905.  
  906.  
  907. By creating new files which have special characters added to the filename, 
  908. you can make special versions of the display files for a restricted group of 
  909. users.  These special characters are described below:
  910.  
  911. Language Specific
  912.  
  913. To make a display file for a particular language make the filename extension 
  914. equal to the filename extension of the language as listed in your PCBML.DAT 
  915. (PCBSetup | File Locations | Configuration Files).  
  916.  
  917.  
  918.  
  919.                          BASE.LAN
  920.                           │    │
  921.          base filename────┘    └───────language extension
  922.  
  923.  
  924. Remember, that the default language does not have a file extension.  
  925. Therefore, you would  use the base filename with no file extension specified.
  926.  
  927. Security Specific
  928.  
  929. If you want to make a file only viewable by a particular security level, you 
  930. may do so by adding the security level to the base filename.  For example, if 
  931. you wanted to create a BRDM file that is only displayed to users with a 
  932. security level of 40, create a new file called BRDM40.
  933.  
  934.  
  935.  
  936.                         BASE###
  937.                          │   │
  938.          base filename───┘   └───── Security level
  939.  
  940.  
  941. Graphic Specific
  942.  
  943. PCBoard supports two different graphics specific files -- ANSI and RIPscrip.  
  944. To make separate files for the users that are currently using graphics mode 
  945. on your system is very easy. Simply add a G to the base filename for ANSI 
  946. specific files and an R to the base filename for RIPscrip files.
  947.  
  948. For example, if you wanted to create a version of the BRDM for those users 
  949. who have graphics mode enabled, create a file called BRDMG.
  950.  
  951.  
  952.  
  953.                           BASEG
  954.                            │  │
  955.           base filename────┘  └──── specifies file is for
  956.                                     graphics mode only
  957.  
  958.  
  959. Likewise, if you want to create a file that would be viewed by those in 
  960. RIPscrip mode, you would create a file called BRDMR.
  961.  
  962.  
  963.                          BASER
  964.                           │  │
  965.          base filename────┘  └──── specifies file is for
  966.                                    RIPscrip mode only
  967.  
  968.  
  969. If the user is in RIPscrip mode, but a RIPscrip version of the file does not 
  970. exist, PCBoard will attempt to find an ANSI specific version of the file 
  971. (because RIPscript also supports ANSI).  If no ANSI file is found, the base 
  972. filename is used.
  973.  
  974. Combining
  975.  
  976. You are not limited to using one specific method.  For example, you can make 
  977. graphics and non-graphic versions of security specific files.  Look at the 
  978. following figure:
  979.  
  980.  
  981.                          BASE###G
  982.                           │   │ │
  983.          base filename────┘   │ └──── specifies this file
  984.                            security   is for graphics only
  985.  
  986. Taking this one step further, you could even make this file language specific 
  987. as illustrated in the following example:
  988.  
  989.  
  990.                           security
  991.                               │     ┌─── language
  992.                               │     │
  993.                          BASE###G.LAN
  994.                           │     │
  995.          base filename ───┘     │
  996.                             graphics specific
  997.  
  998. Order Of Language, Security, and Graphic Specific Files
  999.  
  1000. In order to properly use language, security, and graphic specific files, you 
  1001. need to understand the process that PCBoard goes through in case the specific 
  1002. file does not exist.
  1003.  
  1004. PCBoard will use the most specific file that it can find.  For example, you 
  1005. may have the following specific versions of your NEWS file:
  1006.  
  1007.  
  1008. NEWS
  1009. NEWS10
  1010. NEWS20
  1011. NEWS20G
  1012. NEWS.SPA
  1013.  
  1014.  
  1015. For this first example a user logs into the system selecting the default 
  1016. language, and the user also selects graphics mode.  This particular user has 
  1017. been assigned a security level of 20.  When the NEWS file is displayed to the 
  1018. caller, PCBoard checks to see what language the user selected.  In this case, 
  1019. the user selected the default language so no language specific files will be 
  1020. looked for.
  1021.  
  1022. Now, PCBoard checks to see if there is a security specific version of the 
  1023. file.  Upon searching, security specific files are found for levels 10 and 
  1024. 20.  Because this user has a security level of 20, PCBoard must display 
  1025. either the NEWS20 or NEWS20G file.  Of course the final check is for the 
  1026. graphics mode of the caller.  If you recall, this user selected graphics mode 
  1027. so the NEWS20G file will be shown.
  1028.  
  1029. The caller hangs up and calls back again.  This time, the caller selects 
  1030. language which happens to have an extension of SPA defined in the PCBML.DAT 
  1031. file.  The news file is displayed to the caller only this time, the user has 
  1032. selected a language other than the default.  PCBoard begins by checking to 
  1033. see if there are any language specific files.  In our list of NEWS files, 
  1034. there was a file called NEWS.SPA.  This was the only file with the SPA 
  1035. extension.  Therefore, PCBoard will stop there since there are no security or 
  1036. graphic specific versions of the NEWS file with an SPA extension.  This means 
  1037. that the caller will be shown the NEWS.SPA file.
  1038.  
  1039. For the final example, another user calls into your system. This caller 
  1040. selects the default language and chooses to enable graphics mode.  This 
  1041. caller has been assigned a security level of 25 on your system.  When the 
  1042. NEWS file is displayed to the caller, PCBoard does not check for language 
  1043. specific files because the caller choose the default language.  Next, PCBoard 
  1044. searches for security specific files but only security specific files for 
  1045. levels 10 and 20 are found.  
  1046.  
  1047. Since there were no language or security specific matches, PCBoard will check 
  1048. for a graphics specific file (NEWSG). However, that file does not exist, so 
  1049. the NEWS file will be displayed instead.
  1050.  
  1051. All Possible Specific Files
  1052.  
  1053. The following examples will help better illustrate the various files that you 
  1054. can create to make specific files based on language, security level, and 
  1055. graphics mode.
  1056.  
  1057. If PCBoard is going to display the following text file:
  1058.  
  1059. C:\PCB\GEN\BRDM
  1060.  
  1061. You can create the following language, security, and graphics specific 
  1062. versions of that same file:
  1063.  
  1064.  
  1065. BRDM
  1066. BRDMG
  1067. BRDMR
  1068. BRDM###
  1069. BRDM###G
  1070. BRDM###R
  1071. BRDM.LAN
  1072. BRDMG.LAN
  1073. BRDMR.LAN
  1074. BRDM###.LAN
  1075. BRDM###G.LAN
  1076. BRDM###R.LAN
  1077.  
  1078.  
  1079. Remember, the ### in each of these examples represents a security level.  
  1080. Therefore, you could conceivably  have 255 different security specific files 
  1081. if you have defined all 255 security levels.  In addition, the .LAN 
  1082. represents the language extension.  You can define multiple languages in your 
  1083. PCBML.DAT file so you would replace the .LAN with whatever language you want 
  1084. to make the display file for.
  1085.  
  1086. PCBoard @ Macros
  1087.  
  1088. In some of your display files you may want to display information that is 
  1089. specific to the caller currently viewing the file (e.g., name, connect speed, 
  1090. node number, etc.).  Another possibility is that you may want to control the 
  1091. display of some of your files so that they pause at a particular point.  
  1092. PCBoard uses @ macros to help you accomplish these tasks.  These macros are 
  1093. special codes that you can enter in text files to make PCBoard display 
  1094. certain information or perform a particular action.  All macros must begin 
  1095. and end with the @ character with the text between being in uppercase.
  1096.  
  1097. The following groups the macros into sections.  Following the brief summary 
  1098. is a list of all @ macros in alphabetical order for easy reference.
  1099.  
  1100. Action Related Macros
  1101.  
  1102. @AUTOMORE@        Subsequent more prompts are treated as @PAUSE@.
  1103.  
  1104. @BEEP@            Send a beep to the caller.
  1105.  
  1106. @CLREOL@          Clear all text on the current line to the right of the 
  1107.                   cursor.
  1108.  
  1109. @CLS@             Clear the screen.
  1110.  
  1111. @DELAY:nn@        Pause for the nn tenths of a second.
  1112.  
  1113. @HANGUP@          Disconnect the caller.
  1114.  
  1115. @MORE@            Interrupt display asking caller if they wish to see more.
  1116.  
  1117. @PAUSE@           Same as @MORE@ but continues after 10 seconds.
  1118.  
  1119. @POFF@            Disable normal more prompts when screen fills up.
  1120.  
  1121. @PON@             Enable normal more prompting usage.
  1122.  
  1123. @POS:nn@          Advance cursor to position nn.
  1124.         
  1125. @QOFF@            Do not allow the display of the file to be aborted.
  1126.  
  1127. @QON@             Allow the file display to be aborted.
  1128.  
  1129. @WAIT@            Interrupt display of file with a Press Enter prompt.
  1130.  
  1131. File Transfer Related Macros
  1132.  
  1133. @BYTELIMIT@       Number of bytes that can be downloaded on a daily basis.
  1134.  
  1135. @BYTERATIO@       Current byte ratio of caller.
  1136.  
  1137. @BYTESLEFT@       Number of bytes user can download during current call.
  1138.  
  1139. @DAYBYTES@        Number of bytes downloaded today.
  1140.               
  1141. @DLBYTES@         Total number of bytes downloaded by the caller.
  1142.                 
  1143. @DLFILES@         Total number of files download  by the caller.
  1144.                
  1145. @FILERATIO@       Current file ratio of the caller.
  1146.  
  1147. @KBLEFT@          @BYTESLEFT@ expressed in kilobytes.
  1148.  
  1149. @KBLIMIT@         @BYTELIMIT@ expressed in kilobytes.
  1150.  
  1151. @NUMDIR@          Number of file directories in current conference.
  1152.  
  1153. @PRODESC@         Description of the default protocol selected.
  1154.  
  1155. @PROLTR@          Default protocol selected by the current caller.
  1156.               
  1157. @UPBYTES@         Total number of bytes uploaded by the caller.
  1158.  
  1159. @UPFILES@         Total number of files uploaded by the caller.
  1160.  
  1161. Message Related Macros
  1162.  
  1163. @CURMSGNUM@       Current message number being read.
  1164.  
  1165. @HIGHMSGNUM@      High message number in message base.
  1166.  
  1167. @LMR@             Last message read by user in the current conference.
  1168.  
  1169. @LOWMSGNUM@       Low message number in the message base.
  1170.  
  1171. @MSGLEFT@         Total number of messages entered by the user.
  1172.             
  1173. @MSGREAD@         Total number of messages read by the user.
  1174.  
  1175. Miscellaneous Related Macros
  1176.  
  1177. @BOARDNAME@       The name of the bulletin board system.
  1178.  
  1179. @CONFNAME@        The name of the current conference.
  1180.  
  1181. @CONFNUM@         The number of the current conference.
  1182.                
  1183. @EVENT@           The time that the next event is scheduled to take place.
  1184.  
  1185. @FREESPACE@       Bytes available for uploading in the current conference.
  1186.  
  1187. @INCONF@          Current conference number and name.
  1188.                 
  1189. @LASTCALLERNODE@  The last user that called the current node.
  1190.  
  1191. @LASTCALLERSYSTEM@The last user that called the system.
  1192.  
  1193. @NODE@            The current node number.
  1194.  
  1195. @NUMBLT@          The number of bulletins defined in the current
  1196.                   conference.
  1197.  
  1198. @NUMCALLS@        Total number of calls answered by the BBS.
  1199.  
  1200. @OFFHOURS@        Hours that lower speed callers can call into the system.
  1201.  
  1202. @OPTEXT@          Used in PCBTEXT to transfer information by PCBoard.
  1203.  
  1204. @SYSDATE@         The current system date.
  1205.  
  1206. @SYSOPIN@         Beginning time when the SysOp is available for chat.
  1207.  
  1208. @SYSOPOUT@        Ending time when the SysOp is available for chat.
  1209.  
  1210. @SYSTIME@         The current system time.
  1211.  
  1212. @WHO@             Prints a list of who is currently online.
  1213.  
  1214. User Related Macros
  1215.  
  1216. @BPS@             Carrier speed of caller as reported by PCBoard.
  1217.  
  1218. @CARRIER@         Carrier speed of caller as reported by the modem.
  1219.  
  1220. @CITY@            Information entered in the city field of user's record.
  1221.  
  1222. @DATAPHONE@       Information entered in the data phone field of
  1223. user's record.
  1224.  
  1225. @EXPDATE@         Expiration date of the caller.
  1226.  
  1227. @EXPDAYS@         Number of days until the user's subscription will
  1228. expire            
  1229.  
  1230. @FIRST@           First name of caller displayed in mixed case.
  1231.  
  1232. @FIRSTU@          First name of caller displayed in all upper case.
  1233.  
  1234. @HOMEPHONE@       Information entered in the home phone field of user record.
  1235.  
  1236. @LASTDATEON@      Last date the caller called the system.
  1237.  
  1238. @LASTTIMEON@      Last time the caller called the system.
  1239.                  
  1240. @MINLEFT@         Minutes left on system (includes download time estimates).      
  1241.  
  1242. @NUMTIMESON@      Number of times user has called the system.
  1243.  
  1244. @SECURITY@        Current security level of the caller.
  1245.  
  1246. @TIMELEFT@        Minutes left on system (excludes download time estimates).
  1247.  
  1248. @TIMELIMIT@       The daily/session time limit of the caller.
  1249.  
  1250. @TIMEUSED@        Total number of minutes used during current call.
  1251.  
  1252. @TOTALTIME@       Total number of minutes used during current day.
  1253.  
  1254. @USER@            The caller's name displayed in uppercase.
  1255.  
  1256.  
  1257. Formatting @ macros
  1258.  
  1259. With the exception of the Action Related @ Macros,  you can apply the 
  1260. following formatting to any macro:
  1261.  
  1262. The total number of characters used to display the macro.  This is commonly 
  1263. referred to as the maximum field length.
  1264.  
  1265. Whether the text should be center, right, or left justified when a maximum 
  1266. field length is specified.
  1267.  
  1268. To specify a maximum field length for a macro, enter a colon followed by the 
  1269. field length before the last @ of the macro. For example, if you wanted to 
  1270. display the user's name in a 30 character field, enter the following macro:
  1271.  
  1272.  
  1273. @USER:30@
  1274.  
  1275.  
  1276. Text is normally left justified in a field.  If you want the text to be right 
  1277. or center justified, add a special character after the field length.  To make 
  1278. the text in the field right justified, add an R to the field length.  To make 
  1279. the text center justified, add a C to the field length.  For example, to make 
  1280. the user's name in the previous example center justified, enter the following 
  1281. instead:
  1282.  
  1283.  
  1284. @USER:30C@
  1285.  
  1286.  
  1287. To make the same display right justified, enter:
  1288.  
  1289.  
  1290. @USER:30R@
  1291.  
  1292. Alphabetical List Of @ Macros
  1293.  
  1294. The following table lists all of the @ macros that PCBoard will allow you to 
  1295. use.  The list is arranged in alphabetical order for easy access.
  1296.  
  1297.  @VARIABLE@     Description / Sample 
  1298.  
  1299. @##@               When entered in the TO: field of a message, you may 
  1300.                    address a message to a particular security level.  You 
  1301.                    should replace the ## with the actual security level you 
  1302.                    wish to address the message to.  This macro may only be 
  1303.                    used in the TO: field of a message.
  1304.                    
  1305.                    Example:     @20@ 
  1306.  
  1307. @##-##@            When entered in the TO: field of a message, you may 
  1308.                    address  a message to a range of security levels.  You 
  1309.                    should replace the first ## with the lowest security level 
  1310.                    to address the message to.  The second ## should be 
  1311.                    replaced with the highest security level to address the 
  1312.                    message to.     This macro may only be used in the TO: 
  1313.                    field of a message.
  1314.                      
  1315.                    Example: @20-35@ 
  1316.  
  1317. @AUTOMORE@         Any More? prompts displayed after this macro will be 
  1318.                    interpreted as @PAUSE@ codes.  If the user does not 
  1319.                    respond to the More? prompt within 10 seconds, the default 
  1320.                    of Y is accepted. 
  1321.  
  1322. @BEEP@             This macro sends an audible tone ( CTRL-G ) to the remote 
  1323.                    caller.  In order for you to hear this audible tone, you 
  1324.                    must have the Bell turned on at the call waiting screen. 
  1325.  
  1326. @BICPS@            Used internally by PCBoard to display file transfer 
  1327.                    statistics. 
  1328.  
  1329. @BOARDNAME@        Displays the name of the BBS.  This information is stored 
  1330.                    in PCBSetup | Node Information 
  1331.  
  1332. @BPS@              Displays the connect speed that PCBoard announced at 
  1333.                    login.  For error-correcting connections, the opening port 
  1334.                    speed will be displayed.  Otherwise, the actual carrier 
  1335.                    speed will be displayed.  If you want to always display 
  1336.                    the carrier speed of the caller, use the @CARRIER@ macro 
  1337.                    instead.
  1338.                      
  1339.                    Example output: 38400 
  1340.  
  1341. @BYTELIMIT@        Displays the daily download byte limit of the caller.  
  1342.                    
  1343.                    Example output:     737,280 
  1344.  
  1345. @BYTERATIO@        Displays the byte ratio for the current caller. The format 
  1346.                    for the output is downloads:uploads.  For example, if a 
  1347.                    caller has downloaded 10,000 bytes and uploaded 2,000 
  1348.                    bytes, they have a 5:1 byte ratio.  In other words, for 
  1349.                    each five bytes they download they have uploaded one byte.
  1350.   
  1351.                    Example output: 5:1 
  1352.  
  1353. @BYTESLEFT@        Displays the number of bytes the caller has left for the 
  1354.                    day. If the caller has been given unlimited downloads, the 
  1355.                    word Unlimited will be displayed instead of the actual 
  1356.                    amount of bytes.  
  1357.                    
  1358.                    Example output:     325,567 
  1359.  
  1360. @CARRIER@          Displays the connect speed of the caller as returned by 
  1361.                    the modem.  If the user is on via a local login, the 
  1362.                    opening port speed is reported.  
  1363.                    
  1364.                    Example output:  14400 
  1365.  
  1366. @CITY@             This macro will display the caller's city.  This 
  1367.                    information is stored inside of the user file in the City 
  1368.                    field.
  1369.                     
  1370.                    Example output:     MURRAY, UT 
  1371.  
  1372. @CLREOL@           Clears the current text line to the end of the line (the 
  1373.                    last column on the display screen).  This is useful if you 
  1374.                    want to make sure there is no other text to the right of 
  1375.                    the @CLREOL@ macro or if you are using a background color 
  1376.                    in your color displays and want to have it extend to the 
  1377.                    end of the text line.   
  1378.  
  1379. @CLS@              Clears the screen (i.e., no information is displayed on 
  1380.                    the screen immediately after this macro is used). 
  1381.  
  1382. @CONFNAME@         Displays the current conference name.  This is quite 
  1383.                    similar to the @INCONF@ macro except it does not display 
  1384.                    the conference number.  
  1385.                    
  1386.                    Example output:     Main Board 
  1387.  
  1388. @CONFNUM@          Displays the current conference number  
  1389.  
  1390.                    Example output:     3 
  1391.  
  1392. @CURMSGNUM@        Displays the last message number the caller read, not 
  1393.                    necessarily the highest message number the caller has 
  1394.                    read. For example, if the caller had read to message 
  1395.                    number 532 but decided to go back and read message number 
  1396.                    1, this macro would display 1 because that is the last 
  1397.                    message the caller actually read.  
  1398.                    
  1399.                    Example output:     32,322 
  1400.  
  1401. @DATAPHONE@        This macro will display the business/data phone number 
  1402.                    stored in each user record.  The actual text is not 
  1403.                    formatted -- it is taken straight from the user record.  
  1404.                    
  1405.                    Example output:     801-261-8976 
  1406.  
  1407. @DAYBYTES@         Displays the number of bytes downloaded on the current 
  1408.                    day.  If the value displayed is negative, the caller has 
  1409.                    been given credit for an upload.  Negative bytes are added 
  1410.                    to the daily byte limit of the caller.  For example, if 
  1411.                    you used this macro and it displayed -52,322, that would 
  1412.                    mean that the caller could download 52,322 bytes in 
  1413.                    addition to their normal daily limit.  
  1414.                    
  1415.                    Example output:     332,356 
  1416.  
  1417. @DELAY:nn@         Delays for nn tenths of a second.  If you enter 
  1418.                    @DELAY:50@, PCBoard will pause for 5 seconds (50 * .10  = 
  1419.                    5.0). You can enter any value between 0 and 255 meaning 
  1420.                    that you can pause between 0 and 25.5 seconds. 
  1421.  
  1422. @DLBYTES@          Displays the total number of  bytes that the caller has 
  1423.                    downloaded from the system.  
  1424.                    
  1425.                    Example output:  2,352,532  
  1426.  
  1427. @DLFILES@          Displays the total number of files the caller has 
  1428.                    downloaded from the system.   
  1429.                    
  1430.                    Example output:     1,054 
  1431.  
  1432. @EVENT@            Displays the time (in 24 hour format) that the next system 
  1433.                    event will run.  If you do not have your system scheduled 
  1434.                    to run an event or no events are defined, the time 
  1435.                    displayed will be 00:00.  
  1436.                    
  1437.                    Example output:     14:30  
  1438.  
  1439. @EXPDATE@          This macro will display the expiration date of the current 
  1440.                    caller.  If a user has no expiration date or if you have 
  1441.                    disabled subscription mode,  00-00-00 will be displayed. 
  1442.                    
  1443.                    Example output:     08-30-94 
  1444.  
  1445. @EXPDAYS@          Displays the number of days until the caller's 
  1446.                    subscription will expire.  If the user does not have an 
  1447.                    expiration date or you have disasbled subscription mode, 
  1448.                    nothing will be displayed on the screen.  
  1449.                    
  1450.                    Example output:     325 
  1451.  
  1452. @FILERATIO@        Displays the file ratio for the current caller. The format 
  1453.                    for the output is downloads:uploads.  For example, if a 
  1454.                    caller has downloaded 150 files and uploaded 30 files, 
  1455.                    they would have a 5:1 file ratio.  In other words, for 
  1456.                    each five files they download, they have uploaded one 
  1457.                    file.  
  1458.                    
  1459.                    Example output:     5:1  
  1460.  
  1461. @FIRST@            This macro will display the first name of the caller. When 
  1462.                    the caller's first name is displayed, the first letter 
  1463.                    will be capitalized and all subsequent letters in the 
  1464.                    first name will be lower case.  
  1465.                    
  1466.                    Example output:     Stanley  
  1467.  
  1468. @FIRSTU@           This macro will display the exact same information as 
  1469.                    @FIRST@ only the first name will be displayed in all upper 
  1470.                    case letters.  
  1471.                    
  1472.                    Example output:     STANLEY 
  1473.  
  1474. @FREESPACE@        Displays the amount of drive space in bytes that are 
  1475.                    available on the private upload drive of the current 
  1476.                    conference.  
  1477.                    
  1478.                    Example output:     122,346,098 
  1479.  
  1480. @HANGUP@           This macro will disconnect the current caller.  When the 
  1481.                    caller is disconnected, the number of minutes used and the 
  1482.                    Thanks for calling message will be displayed.  This macro 
  1483.                    may only be used in display files but not in messages.  In 
  1484.                    order for PCBoard to recognize this macro, it must begin 
  1485.                    at the first character of the line. 
  1486.  
  1487. @HIGHMSGNUM@       Displays the highest message number in the conference that 
  1488.                    the caller is currently in.  
  1489.                    
  1490.                    Example output: 11,523 
  1491.  
  1492. @HOMEPHONE@        This macro will display the business/data phone number 
  1493.                    stored in each user record.  The actual text is not 
  1494.                    formatted -- it is taken straight from the user record.  
  1495.                    
  1496.                    Example output:     202-555-1212 
  1497.  
  1498. @INCONF@           Displays the conference name and conference number that 
  1499.                    the caller is currently in.  In addition, the word 
  1500.                    Conference will be added to end of the conference name and 
  1501.                    number.  The only exception is the Main Board conference 
  1502.                    which will simply display Main Board.  If you do not want 
  1503.                    the word Conference to be added, use the @CONFNUM@ and 
  1504.                    @CONFNAME@ macros instead.  
  1505.                    
  1506.                    Example output:     Support (1) Conference 
  1507.  
  1508. @KBLEFT@           Displays the number of kilobytes the caller has available 
  1509.                    for the rest of the day.  If a user has earned upload 
  1510.                    bytes, they will be added to their normal daily limit.  
  1511.                    
  1512.                    Example output:     768 
  1513.  
  1514. @KBLIMIT@          This macro will display the total number of kilobytes the 
  1515.                    caller is normally allowed to download each day.  
  1516.                    
  1517.                    Example output:     2,048 
  1518.  
  1519. @LASTCALLERNODE@   Displays the name and city of the last caller to the 
  1520.                    current node.  
  1521.                    
  1522.                    Example output:     JIM SMITH (ANYWHERE, USA) 
  1523.  
  1524. @LASTCALLERSYSTEM@ Displays the name and city of the last caller to the 
  1525.                    entire system (all nodes are searched).  
  1526.                    
  1527.                    Example output:     BOB JONES (ANYPLACE, USA) 
  1528.  
  1529. @LASTDATEON@       This macro will display the last date the caller was on 
  1530.                    the BBS.  The current call will not be taken into account.  
  1531.                    
  1532.                    Example output:  09-25-93 
  1533.  
  1534. @LASTTIMEON@       This macro will display the last time the caller was on 
  1535.                    the BBS.  The time is displayed in 24-hour format.  This 
  1536.                    macro will not take the current call into account.  
  1537.                    
  1538.                    Example output:     16:32 
  1539.  
  1540. @LIST@             This macro will enable you to address a single message to 
  1541.                    a list of users on the system.  You can only enter this 
  1542.                    macro in the TO: field when addressing a message.  
  1543.  
  1544. @LMR@              Displays the highest message number the caller has read in 
  1545.                    the current conference.  This is sometimes referred to as 
  1546.                    the Last Message Read pointer and is stored inside of the 
  1547.                    user's record.  
  1548.                    
  1549.                    Example output:     7,938 
  1550.  
  1551. @LOWMSGNUM@        Displays the lowest message number in the conference the 
  1552.                    caller is currently in.  
  1553.                    
  1554.                    Example output: 11,523 
  1555.  
  1556. @MINLEFT@          Displays the total number of minutes the caller has 
  1557.                    remaining for this session.  If a user has flagged files 
  1558.                    for download, the estimated time that it will take to 
  1559.                    transfer those files is reflected in the @MINLEFT@ macro.  
  1560.                    In other words, if a caller has 35 minutes left for the 
  1561.                    session and they flag 10 minutes worth of files, the 
  1562.                    @MINLEFT@ macro will display 25.  If you do not want to 
  1563.                    take the flagged files into account, use the @TIMELEFT@ 
  1564.                    macro instead.  
  1565.                    
  1566.                    Example output:     34 
  1567.  
  1568. @MORE@             Displays a More? prompt.  This is the same prompt that is 
  1569.                    normally displayed when the screen is full.  You can 
  1570.                    manually insert a More? prompt to help control the display 
  1571.                    of a text file.  
  1572.                    
  1573.                    Example output:     (57 min left), (H)elp, More? 
  1574.  
  1575. @MSGLEFT@          Displays the number of messages the user has entered on 
  1576.                    the BBS system.  This information is stored in the user 
  1577.                    record. 
  1578.                
  1579. @MSGREAD@          Displays the number of messages the user has read on the 
  1580.                    BBS system.  This information is stored in the user 
  1581.                    record. 
  1582.  
  1583. @NODE@             Displays the node number the caller is currently using. 
  1584.                    
  1585.                    Example output:     10 
  1586.  
  1587. @NUMBLT@           This macro will display the total number of bulletins 
  1588.                    available in the current conference.  
  1589.                    
  1590.                    Example output:     32 
  1591.  
  1592. @NUMCALLS@         Displays the number of calls the BBS system has answered.  
  1593.                    
  1594.                    Example output:     124,329 
  1595.  
  1596. @NUMDIR@           Displays the total number of file directories available in 
  1597.                    the current conference.  
  1598.                    
  1599.                    Example output:     60 
  1600.  
  1601. @NUMTIMESON@       This macro will display the number of times the caller has 
  1602.                    called this BBS system.  This number is stored in the user 
  1603.                    record.  
  1604.                    
  1605.                    Example output:     365 
  1606.  
  1607. @OFFHOURS@         This macro will display the hours you allow lower speed 
  1608.                    callers to call your system.  All hour displays are listed 
  1609.                    in 24 hour format.  These hours are defined in PCBSetup | 
  1610.                    Modem Information | Allowed Access Speeds.    
  1611.                    
  1612.                    Example output: 01:00-06:00 
  1613.  
  1614. @OPTEXT@           This macro is used throughout PCBTEXT to pass information 
  1615.                    from PCBoard into the records in PCBTEXT.  You should only 
  1616.                    use this macro within those records that were designed to 
  1617.                    use @OPTEXT@. 
  1618.  
  1619. @PAUSE@            Displays a More? prompt.  If the caller does not respond 
  1620.                    to the prompt within 10 seconds, the default value of Y 
  1621.                    will be assumed and the display will continue.  
  1622.                    
  1623.                    Example output: (38 min left), (H)elp, More? 
  1624.  
  1625. @POFF@             Disables the More? prompt while displaying the file.  If 
  1626.                    you use this command, make sure you use the @PON@ command 
  1627.                    at the end of the file to enable the more prompts again. 
  1628.  
  1629. @PON@              Enables the More? prompt while displaying a file.  The 
  1630.                    default is to always display a More? prompt.  However, if 
  1631.                    you use the @POFF@ macro, you will want to use the @PON@ 
  1632.                    macro to enable More? prompts again. 
  1633.  
  1634. @POS:nn@           Moves the cursor to position nn on the current line. If 
  1635.                    the cursor is already beyond the position entered, no 
  1636.                    action is taken.  Otherwise, spaces are printed until the 
  1637.                    cursor reaches the position you specify. 
  1638.  
  1639. @PRODESC@          Displays the description of the default protocol the
  1640.                    caller has selected.  
  1641.                    
  1642.                    Example output:     Zmodem 
  1643.  
  1644. @PROLTR@           Displays the protocol letter the caller has chosen for
  1645.                    their default protocol.  
  1646.                    
  1647.                    Example output:     Z 
  1648.  
  1649. @QOFF@             This macro will disable CTRL-X / CTRL-K checking.  
  1650.                    Thismeans the caller will not be able to interrupt or 
  1651.                    abort the display of the file.  Any More? prompts that are 
  1652.                    displayed after a @QOFF@ macro will be turned into Press 
  1653.                    (Enter) to continue? prompts because the caller cannot 
  1654.                    abort the display. 
  1655.  
  1656. @QON@              This macro will enable CTRL-X / CTRL-K checking.  You 
  1657.                    should use this macro whenever you have turned off the 
  1658.                    checking and wish to turn it back on again. 
  1659.  
  1660. @RBYTES@           Used internally by PCBoard for file transfer statistics. 
  1661.  
  1662. @RCPS@             Used internally by PCBoard for file transfer statistics 
  1663.  
  1664. @RFILES@           Used internally by PCBoard for file transfer statistics. 
  1665.  
  1666. @SBYTES@           Used internally by PCBoard for file transfer statistics. 
  1667.  
  1668. @SCPS@             Used internally by PCBoard for file transfer statistics. 
  1669.  
  1670. @SECURITY@         Displays the security level of the user.  Any security 
  1671.                    level adjustments added when joining a conference will be 
  1672.                    reflected in the value displayed.  
  1673.                    
  1674.                    Example output:     60 
  1675.  
  1676. @SFILES@           Used internally by PCBoard for file transfer statistics. 
  1677.  
  1678. @SYSDATE@          Displays the current date.  
  1679.  
  1680.                    Example output:    09-23-93 
  1681.  
  1682. @SYSOPIN@          Displays the beginning time a user may page the SysOp for 
  1683.                    chat.  This time is defined in PCBSetup | Configuration 
  1684.                    Options | Limits.   All time displays are in 24-hour 
  1685.                    format. 
  1686.                    
  1687.                    Example output:     18:00 
  1688.  
  1689. @SYSOPOUT@         This macro will display the ending time a user may page 
  1690.                    the SysOp for chat.  This time is defined in PCBSetup | 
  1691.                    Configuration Options | Limits..  All time displays are in 
  1692.                    24-hour format.  
  1693.                    
  1694.                    Example output:     17:00 
  1695.  
  1696. @SYSTIME@          Displays the current time.  All time displays are in 
  1697.                    24-hour format.  
  1698.                    
  1699.                    Example output:     15:32 
  1700.  
  1701. @TIMELEFT@         Displays the amount of time the caller has left for this 
  1702.                    session.  This macro does not take into account any files 
  1703.                    the user has flagged for download.  If you wish to take 
  1704.                    flagged files into account, use the @MINLEFT@ macro 
  1705.                    instead.   
  1706.                    
  1707.                    Example output:     32 
  1708.  
  1709. @TIMELIMIT@        Displays the total time in minutes a user can use per 
  1710.                    day/session.  This limit is defined in the PWRD file in 
  1711.                    PCBSetup.  
  1712.                    
  1713.                    Example output:     60 
  1714.  
  1715. @TIMEUSED@         Displays the number of minutes used during the current 
  1716.                    call.  
  1717.                    
  1718.                    Example output:     12 
  1719.  
  1720. @TOTALTIME@        Displays the total amount of time (in minutes) that the 
  1721.                    caller has used on the system for the day.  
  1722.                    
  1723.                    Example output: 128 
  1724.  
  1725. @UPBYTES@          Displays the total number of bytes the user has uploaded 
  1726.                    to the BBS.  
  1727.                    
  1728.                    Example output:     36,928,674 
  1729.  
  1730. @UPFILES@          Displays the total number of files that the user has 
  1731.                    uploaded to the BBS.  
  1732.                    
  1733.                    Example output:     352 
  1734.  
  1735. @USER@             This macro will display the full user name of the caller 
  1736.                    in all uppercase letters.  You can also use this macro in 
  1737.                    the TO: field of a message.  If you do, your single 
  1738.                    generic message will appear to each user to be addressed 
  1739.                    personally to them..
  1740.                     
  1741.                    Example output: EDWARD B. SMITH 
  1742.  
  1743. @WAIT@             This macro will display a Press (Enter) to continue? 
  1744.                    prompt to the user.  Of course, the only way to continue 
  1745.                    past this prompt is for the caller to press EMTER. 
  1746.  
  1747. @WHO@              This macro will display the exact same thing as if the 
  1748.                    user had typed WHO at the PCBoard command prompt.  The 
  1749.                    display includes all active node numbers and who is on 
  1750.                    each of the respective nodes.  NOTE:  Once the @WHO@ macro 
  1751.                    is used, the page line counter is reset to maximize screen 
  1752.                    output.  Therefore, if you put the @WHO@ macro in the 
  1753.                    middle of the screen, be aware that the top of the screen 
  1754.                    may scroll off.  To prevent this, you should put an 
  1755.                    @PAUSE@ or an @MORE@ just before the @WHO@. 
  1756.    
  1757.                    Example output:
  1758.   
  1759.   (#)   Status                  User
  1760.   ---   ---------------------   -----------------------------
  1761.     1   No Caller this Node
  1762.     2   Unavailable for CHAT    GREGORY GLENN (CHARLTON, ID)   
  1763.     3   Available for CHAT      BRIAN LARSEN (FREEDOM, LA)   
  1764.     4   No Caller this Node   
  1765.     5   No Caller this Node   
  1766.     6   No Caller this Node   
  1767.     7   Entering a Message      MILTA BARBOSA (ARMINE, NY)   
  1768.     8   Entering a Message      HUGH MCDEVITT (ARROYO, CA)   
  1769.     9   Available for CHAT      JACOB VANRIJ (OAKGROVE, ME)  
  1770.    10   No Caller this Node 
  1771.  
  1772.  
  1773. @X Color Codes
  1774.  
  1775. In addition to supporting ANSI display files, you can choose to use PCBoard's 
  1776. @X color codes to colorize your display file and PCBTEXT prompts.  If you 
  1777. choose to use ANSI to colorize your display files, you will need to create an 
  1778. graphics specific version of each display file in addition to the regular 
  1779. file.
  1780.  
  1781. The @X codes are eventually translated to ANSI so the caller can view the 
  1782. color screens.  Before this occurs, however, PCBoard will check to see if the 
  1783. caller is capable of ANSI.  If they are, PCBoard will translate the color 
  1784. codes into ANSI.  If they are not, PCBoard will bypass the color codes so the 
  1785. user does not end up seeing what appears to be garbage on their screen. 
  1786. Because PCBoard is smart enough to determine if the caller is capable of ANSI 
  1787. or not, you can create one single display file for both your ANSI and 
  1788. non-ANSI callers.  This saves you time when creating and updating your 
  1789. display files.
  1790.  
  1791. Included with your PCBoard package is a program called PCBEdit. This program 
  1792. should be used to create screens that are colorized with @X codes.  You 
  1793. should also be aware that there are several other programs available as 
  1794. shareware which you can use to create screens in the PCBoard @X color code 
  1795. format.
  1796.  
  1797. If you want to enter @X codes in message or if you manually create your 
  1798. display files, you will need to know the proper format for the @X codes.  The 
  1799. format is as follows:
  1800.  
  1801.  
  1802. @X[background value][foreground value]
  1803.  
  1804.  
  1805. After you enter @X, you need to enter a background value, followed by a 
  1806. foreground value.  If you look at the table which follows this paragraph, you 
  1807. will notice that it is broken down into two halves.  One half shows the 
  1808. values for the background colors and the other half shows the values for the 
  1809. foreground value.  Notice also that the background and foreground sections 
  1810. are also divided.   Background colors can be set to be blinking or not, and 
  1811. foreground values can be set to be bright or normal (dull) versions of the 
  1812. color that is shown in the left column of the table.
  1813.  
  1814.  
  1815.      Background (1st Digit)         Foreground (2nd Digit)     
  1816. Color     Normal     Blinking     Normal     Bright 
  1817. -------------------------------------------------------------
  1818. Black     0        8              0       8 
  1819. Blue      1        9              1       9 
  1820. Green     2        A              2       A 
  1821. Cyan      3        B              3       B 
  1822. Red       4        C              4       C 
  1823. Magenta   5        D              5       D 
  1824. Yellow    6        E              6       E 
  1825. White     7        F              7       F 
  1826.  
  1827.  
  1828. Using the color code table you can quickly determine that by entering @X1F, 
  1829. you will be setting the current color to bright white text on a blue 
  1830. background.  To help illustrate the color selection scheme, the following are 
  1831. sample @X color codes:
  1832.  
  1833.  
  1834. @X07 - Dull white (gray) text on a black background
  1835. @X47 - Dull white (gray) text on a red background
  1836. @X0B - Bright cyan text on a black background
  1837. @X8F - Bright white text on a blinking black background
  1838. @XC7 - Dull white (gray) text on a blinking red background.
  1839.  
  1840. Using @ Macros and @X Codes
  1841.  
  1842. There are primarily three places in PCBoard where you can use @ macros and @X 
  1843. codes.  They are:
  1844.  
  1845. Display files
  1846.  
  1847. Most PCBTEXT entries (some does not support @ macros or @X codes).
  1848.  
  1849. Inside of messages left on the BBS.
  1850.  
  1851. To use the macros or codes, simply enter them into the display file, PCBTEXT 
  1852. entry, or message editor in the proper format.  If you do, the code or macro 
  1853. will be properly substituted.
  1854.  
  1855. To help illustrate how to use macros and codes, this example is going to show 
  1856. you how to enter an @ macro and then to colorize the text that is displayed 
  1857. by the @ macro.
  1858.  
  1859. Begin by logging into PCBoard as the SysOp and getting to the conference 
  1860. command prompt.
  1861.  
  1862. Shell to DOS by pressing F5.  You should now be at a DOS prompt. If you are 
  1863. not, you have disabled local shell to DOS in PCBSetup | Configuration Options 
  1864. | System Control.
  1865.  
  1866. Using a text editor of your choice, edit a file called TUTOR in the current 
  1867. directory.  In this file, enter @USER@ and save the file and exit your text 
  1868. editor.
  1869.  
  1870. When you are back at the DOS prompt, type EXIT to return back to PCBoard.  
  1871. Now, type 6 TUTOR at the conference command prompt. You are using the 6 SysOp 
  1872. command which enables you to view any file on disk.
  1873.  
  1874. Once the command is entered, you should see one line which prints your user 
  1875. name on the screen.  Since you are the SysOp, it will print SYSOP instead of 
  1876. your user name.  You will notice that if you log in as a different user, the 
  1877. user's name will be displayed on the screen.
  1878.  
  1879. Next, we will colorize the name to help provide emphasis.  Shell to DOS 
  1880. again, and edit your TUTOR file.
  1881.  
  1882. In front of the @USER@, enter @X1F.  After the @USER@, enter a space followed 
  1883. by @X07is the current user.  Save the file, exit your text editor and type 
  1884. EXIT to return to PCBoard.
  1885.  
  1886. View the TUTOR file using the 6 SysOp command.  This time, you should see 
  1887. your user name in white text on a blue background. After your user name, the 
  1888. text changes back to gray on black and the is the current user is printed.
  1889.  
  1890. Even though this example showed you only one of the places you can use @X 
  1891. codes and @ macros, you can apply the principles learned in this example to 
  1892. the other two places where you can use these flexible tools.
  1893.  
  1894.