Display File Conventions

Display File Conventions

Display Filename Conventions

With virtually any filename that PCBoard displays to the caller, you can send different versions of the file based on:

  • the security level of the user
  • the current language
  • the graphics mode (if any) being used

Base Filename

Before you can understand how this works, you must know what PCBoard calls a base filename. The base filename is what you enter for the filename in a PCBSetup location. Look at the following example:

Name/Loc of Conference Join Menu  : C:\PCB\GEN\CNFN

In this example, the filename is CNFN and hence it is the base filename.

By creating new files which have special characters added to the filename, you can make special versions of the display files for a restricted group of users. These special characters are described below:

Language Specific

To make a display file for a particular language make the filename extension equal to the filename extension of the language as listed in your PCBML.DAT (PCBSetup | File Locations | Configuration Files).

                         BASE.LAN
                          |    |
         base filename----+    +-------language extension

Remember, that the default language does not have a file extension.
Therefore, you would use the base filename with no file extension specified.

Security Specific

If you want to make a file only viewable by a particular security level, you may do so by adding the security level to the base filename. For example, if you wanted to create a BRDM file that is only displayed to users with a security level of 40, create a new file called BRDM40.

                    BASE###
                     |   |
     base filename---+   +----- Security level

Graphic Specific

PCBoard supports two different graphics specific files – ANSI and RIPscrip.
To make separate files for the users that are currently using graphics mode on your system is very easy. Simply add a G to the base filename for ANSI specific files and an R to the base filename for RIPscrip files.

For example, if you wanted to create a version of the BRDM for those users who have graphics mode enabled, create a file called BRDMG.

                      BASEG
                       |  |
      base filename----+  +---- specifies file is for
                                graphics mode only

Likewise, if you want to create a file that would be viewed by those in RIPscrip mode, you would create a file called BRDMR.

                     BASER
                      |  |
     base filename----+  +---- specifies file is for
                               RIPscrip mode only

If the user is in RIPscrip mode, but a RIPscrip version of the file does not exist, PCBoard will attempt to find an ANSI specific version of the file (because RIPscript also supports ANSI). If no ANSI file is found, the base filename is used.

Combining

You are not limited to using one specific method. For example, you can make graphics and non-graphic versions of security specific files. Look at the following figure:

                     BASE###G
                      |   | |
     base filename----+   | +---- specifies this file
                       security   is for graphics only

Taking this one step further, you could even make this file language specific as illustrated in the following example:

                      security
                          |     +--- language
                          |     |
                     BASE###G.LAN
                      |     |
     base filename ---+     |
                        graphics specific

Order Of Language, Security, and Graphic Specific Files

In order to properly use language, security, and graphic specific files, you need to understand the process that PCBoard goes through in case the specific file does not exist.

PCBoard will use the most specific file that it can find. For example, you may have the following specific versions of your NEWS file:

  • NEWS
  • NEWS10
  • NEWS20
  • NEWS20G
  • NEWS.SPA

For this first example a user logs into the system selecting the default language, and the user also selects graphics mode. This particular user has been assigned a security level of 20. When the NEWS file is displayed to the caller, PCBoard checks to see what language the user selected. In this case, the user selected the default language so no language specific files will be looked for.

Now, PCBoard checks to see if there is a security specific version of the file. Upon searching, security specific files are found for levels 10 and 20. Because this user has a security level of 20, PCBoard must display either the NEWS20 or NEWS20G file. Of course the final check is for the graphics mode of the caller. If you recall, this user selected graphics mode so the NEWS20G file will be shown.

The caller hangs up and calls back again. This time, the caller selects language which happens to have an extension of SPA defined in the PCBML.DAT file. The news file is displayed to the caller only this time, the user has selected a language other than the default. PCBoard begins by checking to see if there are any language specific files. In our list of NEWS files, there was a file called NEWS.SPA. This was the only file with the SPA extension. Therefore, PCBoard will stop there since there are no security or graphic specific versions of the NEWS file with an SPA extension. This means that the caller will be shown the NEWS.SPA file.

For the final example, another user calls into your system. This caller selects the default language and chooses to enable graphics mode. This caller has been assigned a security level of 25 on your system. When the NEWS file is displayed to the caller, PCBoard does not check for language specific files because the caller choose the default language. Next, PCBoard searches for security specific files but only security specific files for levels 10 and 20 are found.
Since there were no language or security specific matches, PCBoard will check for a graphics specific file (NEWSG). However, that file does not exist, so the NEWS file will be displayed instead.

All Possible Specific Files

The following examples will help better illustrate the various files that you can create to make specific files based on language, security level, and graphics mode.

If PCBoard is going to display the following text file:

C:\PCB\GEN\BRDM

You can create the following language, security, and graphics specific versions of that same file:

  • BRDM
  • BRDMG
  • BRDMR
  • BRDM###
  • BRDM###G
  • BRDM###R
  • BRDM.LAN
  • BRDMG.LAN
  • BRDMR.LAN
  • BRDM###.LAN
  • BRDM###G.LAN
  • BRDM###R.LAN

Remember, the ### in each of these examples represents a security level.
Therefore, you could conceivably have 255 different security specific files if you have defined all 255 security levels. In addition, the .LAN represents the language extension. You can define multiple languages in your PCBML.DAT file so you would replace the .LAN with whatever language you want to make the display file for.

PCBoard @ Macros

In some of your display files you may want to display information that is specific to the caller currently viewing the file (e.g., name, connect speed, node number, etc.). Another possibility is that you may want to control the display of some of your files so that they pause at a particular point.
PCBoard uses @ macros to help you accomplish these tasks. These macros are special codes that you can enter in text files to make PCBoard display certain information or perform a particular action. All macros must begin and end with the @ character with the text between being in uppercase.

The following groups the macros into sections. Following the brief summary is a list of all @ macros in alphabetical order for easy reference.

@AUTOMORE@Subsequent more prompts are treated as @PAUSE@.
@BEEP@Send a beep to the caller.
@CLREOL@Clear all text on the current line to the right of the cursor.
@CLS@Clear the screen.
@DELAY:nn@Pause for the nn tenths of a second.
@HANGUP@Disconnect the caller.
@MORE@Interrupt display asking caller if they wish to see more.
@PAUSE@Same as @MORE@ but continues after 10 seconds.
@POFF@Disable normal more prompts when screen fills up.
@PON@Enable normal more prompting usage.
@POS:nn@Advance cursor to position nn.
@QOFF@Do not allow the display of the file to be aborted.
@QON@Allow the file display to be aborted.
@WAIT@Interrupt display of file with a Press Enter prompt.
@BYTELIMIT@Number of bytes that can be downloaded on a daily basis.
@BYTERATIO@Current byte ratio of caller.
@BYTESLEFT@Number of bytes user can download during current call.
@DAYBYTES@Number of bytes downloaded today.
@DLBYTES@Total number of bytes downloaded by the caller.
@DLFILES@Total number of files download by the caller.
@FILERATIO@Current file ratio of the caller.
@KBLEFT@@BYTESLEFT@ expressed in kilobytes.
@KBLIMIT@@BYTELIMIT@ expressed in kilobytes.
@NUMDIR@Number of file directories in current conference.
@PRODESC@Description of the default protocol selected.
@PROLTR@Default protocol selected by the current caller.
@UPBYTES@Total number of bytes uploaded by the caller.
@UPFILES@Total number of files uploaded by the caller.
@CURMSGNUM@Current message number being read.
@HIGHMSGNUM@High message number in message base.
@LMR@Last message read by user in the current conference.
@LOWMSGNUM@Low message number in the message base.
@MSGLEFT@Total number of messages entered by the user.
@MSGREAD@Total number of messages read by the user.
@BOARDNAME@The name of the bulletin board system.
@CONFNAME@The name of the current conference.
@CONFNUM@The number of the current conference.
@EVENT@The time that the next event is scheduled to take place.
@FREESPACE@Bytes available for uploading in the current conference.
@INCONF@Current conference number and name.
@LASTCALLERNODE@The last user that called the current node.
@LASTCALLERSYSTEM@The last user that called the system.
@NODE@The current node number.
@NUMBLT@The number of bulletins defined in the current conference.
@NUMCALLS@Total number of calls answered by the BBS.
@OFFHOURS@Hours that lower speed callers can call into the system.
@OPTEXT@Used in PCBTEXT to transfer information by PCBoard.
@SYSDATE@The current system date.
@SYSOPIN@Beginning time when the SysOp is available for chat.
@SYSOPOUT@Ending time when the SysOp is available for chat.
@SYSTIME@The current system time.
@WHO@Prints a list of who is currently online.
@BPS@Carrier speed of caller as reported by PCBoard.
@CARRIER@Carrier speed of caller as reported by the modem.
@CITY@Information entered in the city field of user's record.
@DATAPHONE@Information entered in the data phone field of user's record.
@EXPDATE@Expiration date of the caller.
@EXPDAYS@Number of days until the user's subscription will expire
@FIRST@First name of caller displayed in mixed case.
@FIRSTU@First name of caller displayed in all upper case.
@HOMEPHONE@Information entered in the home phone field of user record.
@LASTDATEON@Last date the caller called the system.
@LASTTIMEON@Last time the caller called the system.
@MINLEFT@Minutes left on system (includes download time estimates).
@NUMTIMESON@Number of times user has called the system.
@SECURITY@Current security level of the caller.
@TIMELEFT@Minutes left on system (excludes download time estimates).
@TIMELIMIT@The daily/session time limit of the caller.
@TIMEUSED@Total number of minutes used during current call.
@TOTALTIME@Total number of minutes used during current day.
@USER@The caller's name displayed in uppercase.

Formatting @ macros

With the exception of the Action Related @ Macros, you can apply the following formatting to any macro:

The total number of characters used to display the macro. This is commonly referred to as the maximum field length.

Whether the text should be center, right, or left justified when a maximum field length is specified.

To specify a maximum field length for a macro, enter a colon followed by the field length before the last @ of the macro. For example, if you wanted to display the user's name in a 30 character field, enter the following macro:

@USER:30@

Text is normally left justified in a field. If you want the text to be right or center justified, add a special character after the field length. To make the text in the field right justified, add an R to the field length. To make the text center justified, add a C to the field length. For example, to make the user's name in the previous example center justified, enter the following instead:

@USER:30C@

To make the same display right justified, enter:

@USER:30R@

Alphabetical List Of @ Macros

The following table lists all of the @ macros that PCBoard will allow you to use. The list is arranged in alphabetical order for easy access.

@VARIABLE@Description / Sample
@##@When entered in the TO: field of a message, you may address a message to a particular security level. You should replace the ## with the actual security level you wish to address the message to. This macro may only be used in the TO: field of a message. Example:@20@
@##-##@When entered in the TO: field of a message, you may address a message to a range of security levels. You should replace the first ## with the lowest security level to address the message to. The second ## should be replaced with the highest security level to address the message to. This macro may only be used in the TO: field of a message. Example: @20-35@
@AUTOMORE@Any More? prompts displayed after this macro will be interpreted as @PAUSE@ codes. If the user does not respond to the More? prompt within 10 seconds, the default of Y is accepted.
@BEEP@This macro sends an audible tone ( CTRL-G ) to the remote caller. In order for you to hear this audible tone, you must have the Bell turned on at the call waiting screen.
@BICPS@Used internally by PCBoard to display file transfer statistics.
@BOARDNAME@Displays the name of the BBS. This information is stored in PCBSetup > Node Information
@BPS@Displays the connect speed that PCBoard announced at login. For error-correcting connections, the opening port speed will be displayed. Otherwise, the actual carrier speed will be displayed. If you want to always display the carrier speed of the caller, use the @CARRIER@ macro instead. Example output: 38400
@BYTELIMIT@Displays the daily download byte limit of the caller. Example output: 737,280
@BYTERATIO@Displays the byte ratio for the current caller. The format for the output is downloads:uploads. For example, if a caller has downloaded 10,000 bytes and uploaded 2,000 bytes, they have a 5:1 byte ratio. In other words, for each five bytes they download they have uploaded one byte. Example output: 5:1
@BYTESLEFT@Displays the number of bytes the caller has left for the day. If the caller has been given unlimited downloads, the word Unlimited will be displayed instead of the actual amount of bytes. Example output: 325,567
@CARRIER@Displays the connect speed of the caller as returned by the modem. If the user is on via a local login, the opening port speed is reported. Example output: 14400
@CITY@This macro will display the caller's city. This information is stored inside of the user file in the City field. Example output: MURRAY, UT
@CLREOL@Clears the current text line to the end of the line (the last column on the display screen). This is useful if you want to make sure there is no other text to the right of the @CLREOL@ macro or if you are using a background color in your color displays and want to have it extend to the end of the text line.
@CLS@Clears the screen (i.e., no information is displayed on the screen immediately after this macro is used).
@CONFNAME@Displays the current conference name. This is quite similar to the @INCONF@ macro except it does not display the conference number. Example output:Main Board
@CONFNUM@Displays the current conference number Example output: 3
@CURMSGNUM@Displays the last message number the caller read, not necessarily the highest message number the caller has read. For example, if the caller had read to message number 532 but decided to go back and read message number 1, this macro would display 1 because that is the last message the caller actually read. Example output: 32,322
@DATAPHONE@This macro will display the business/data phone number stored in each user record. The actual text is not formatted – it is taken straight from the user record. Example output: 801-261-8976
@DAYBYTES@Displays the number of bytes downloaded on the current day. If the value displayed is negative, the caller has been given credit for an upload. Negative bytes are added to the daily byte limit of the caller. For example, if you used this macro and it displayed -52,322, that would mean that the caller could download 52,322 bytes in addition to their normal daily limit. Example output: 332,356
@DELAY:nn@Delays for nn tenths of a second. If you enter @DELAY:50@, PCBoard will pause for 5 seconds (50 * .10 = 5.0). You can enter any value between 0 and 255 meaning that you can pause between 0 and 25.5 seconds.
@DLBYTES@Displays the total number of bytes that the caller has downloaded from the system. Example output: 2,352,532
@DLFILES@Displays the total number of files the caller has downloaded from the system. Example output: 1,054
@EVENT@Displays the time (in 24 hour format) that the next system event will run. If you do not have your system scheduled to run an event or no events are defined, the time displayed will be 00:00. Example output: 14:30
@EXPDATE@This macro will display the expiration date of the current caller. If a user has no expiration date or if you have disabled subscription mode, 00-00-00 will be displayed. Example output: 08-30-94
@EXPDAYS@Displays the number of days until the caller's subscription will expire. If the user does not have an expiration date or you have disasbled subscription mode, nothing will be displayed on the screen. Example output: 325
@FILERATIO@Displays the file ratio for the current caller. The format for the output is downloads:uploads. For example, if a caller has downloaded 150 files and uploaded 30 files, they would have a 5:1 file ratio. In other words, for each five files they download, they have uploaded one file. Example output: 5:1
@FIRST@This macro will display the first name of the caller. When the caller's first name is displayed, the first letter will be capitalized and all subsequent letters in the first name will be lower case. Example output: Stanley
@FIRSTU@This macro will display the exact same information as @FIRST@ only the first name will be displayed in all upper case letters. Example output: STANLEY
@FREESPACE@Displays the amount of drive space in bytes that are available on the private upload drive of the current conference. Example output: 122,346,098
@HANGUP@This macro will disconnect the current caller. When the caller is disconnected, the number of minutes used and the Thanks for calling message will be displayed. This macro may only be used in display files but not in messages. In order for PCBoard to recognize this macro, it must begin at the first character of the line.
@HIGHMSGNUM@Displays the highest message number in the conference that the caller is currently in. Example output: 11,523
@HOMEPHONE@This macro will display the business/data phone number stored in each user record. The actual text is not formatted – it is taken straight from the user record. Example output: 202-555-1212
@INCONF@Displays the conference name and conference number that the caller is currently in. In addition, the word Conference will be added to end of the conference name and number. The only exception is the Main Board conference which will simply display Main Board. If you do not want the word Conference to be added, use the @CONFNUM@ and @CONFNAME@ macros instead. Example output: Support (1) Conference
@KBLEFT@Displays the number of kilobytes the caller has available for the rest of the day. If a user has earned upload bytes, they will be added to their normal daily limit. Example output: 768
@KBLIMIT@This macro will display the total number of kilobytes the caller is normally allowed to download each day. Example output: 2,048
@LASTCALLERNODE@Displays the name and city of the last caller to the current node. Example output: JIM SMITH (ANYWHERE, USA)
@LASTCALLERSYSTEM@Displays the name and city of the last caller to the entire system (all nodes are searched). Example output: BOB JONES (ANYPLACE, USA)
@LASTDATEON@This macro will display the last date the caller was on the BBS. The current call will not be taken into account. Example output: 09-25-93
@LASTTIMEON@This macro will display the last time the caller was on the BBS. The time is displayed in 24-hour format. This macro will not take the current call into account. Example output: 16:32
@LIST@This macro will enable you to address a single message to a list of users on the system. You can only enter this macro in the TO: field when addressing a message.
@LMR@Displays the highest message number the caller has read in the current conference. This is sometimes referred to as the Last Message Read pointer and is stored inside of the user's record. Example output: 7,938
@LOWMSGNUM@Displays the lowest message number in the conference the caller is currently in. Example output: 11,523
@MINLEFT@Displays the total number of minutes the caller has remaining for this session. If a user has flagged files for download, the estimated time that it will take to transfer those files is reflected in the @MINLEFT@ macro. In other words, if a caller has 35 minutes left for the session and they flag 10 minutes worth of files, the @MINLEFT@ macro will display 25. If you do not want to take the flagged files into account, use the @TIMELEFT@ macro instead. Example output: 34
@MORE@Displays a More? prompt. This is the same prompt that is normally displayed when the screen is full. You can manually insert a More? prompt to help control the display of a text file. Example output: (57 min left), (H)elp, More?
@MSGLEFT@Displays the number of messages the user has entered on the BBS system. This information is stored in the user record.
@MSGREAD@Displays the number of messages the user has read on the BBS system. This information is stored in the user record.
@NODE@Displays the node number the caller is currently using. Example output: 10
@NUMBLT@This macro will display the total number of bulletins available in the current conference. Example output: 32
@NUMCALLS@Displays the number of calls the BBS system has answered. Example output: 124,329
@NUMDIR@Displays the total number of file directories available in the current conference. Example output: 60
@NUMTIMESON@This macro will display the number of times the caller has called this BBS system. This number is stored in the user record. Example output: 365
@OFFHOURS@This macro will display the hours you allow lower speed callers to call your system. All hour displays are listed in 24 hour format. These hours are defined in PCBSetup > Modem Information > Allowed Access Speeds. Example output: 01:00-06:00
@OPTEXT@This macro is used throughout PCBTEXT to pass information from PCBoard into the records in PCBTEXT. You should only use this macro within those records that were designed to use @OPTEXT@.
@PAUSE@Displays a More? prompt. If the caller does not respond to the prompt within 10 seconds, the default value of Y will be assumed and the display will continue. Example output: (38 min left), (H)elp, More?
@POFF@Disables the More? prompt while displaying the file. If you use this command, make sure you use the @PON@ command at the end of the file to enable the more prompts again.
@PON@Enables the More? prompt while displaying a file. The default is to always display a More? prompt. However, if you use the @POFF@ macro, you will want to use the @PON@ macro to enable More? prompts again.
@POS:nn@Moves the cursor to position nn on the current line. If the cursor is already beyond the position entered, no action is taken. Otherwise, spaces are printed until the cursor reaches the position you specify.
@PRODESC@Displays the description of the default protocol the caller has selected. Example output: Zmodem
@PROLTR@Displays the protocol letter the caller has chosen fortheir default protocol. Example output: Z
@QOFF@This macro will disable CTRL-X / CTRL-K checking. Thismeans the caller will not be able to interrupt or abort the display of the file. Any More? prompts that are displayed after a @QOFF@ macro will be turned into Press (Enter) to continue? prompts because the caller cannot abort the display.
@QON@This macro will enable CTRL-X / CTRL-K checking. You should use this macro whenever you have turned off the checking and wish to turn it back on again.
@RBYTES@Used internally by PCBoard for file transfer statistics.
@RCPS@Used internally by PCBoard for file transfer statistics.
@RFILES@Used internally by PCBoard for file transfer statistics.
@SBYTES@Used internally by PCBoard for file transfer statistics.
@SCPS@Used internally by PCBoard for file transfer statistics.
@SECURITY@Displays the security level of the user. Any security level adjustments added when joining a conference will be reflected in the value displayed. Example output: 60
@SFILES@Used internally by PCBoard for file transfer statistics.
@SYSDATE@Displays the current date. Example output: 09-23-93
@SYSOPIN@Displays the beginning time a user may page the SysOp for chat. This time is defined in PCBSetup > Configuration Options > Limits. All time displays are in 24-hour format. Example output: 18:00
@SYSOPOUT@This macro will display the ending time a user may page the SysOp for chat. This time is defined in PCBSetup > Configuration Options > Limits.. All time displays are in 24-hour format. Example output: 17:00
@SYSTIME@Displays the current time. All time displays are in 24-hour format. Example output: 15:32
@TIMELEFT@Displays the amount of time the caller has left for this session. This macro does not take into account any files the user has flagged for download. If you wish to take flagged files into account, use the @MINLEFT@ macro instead. Example output: 32
@TIMELIMIT@Displays the total time in minutes a user can use per day/session. This limit is defined in the PWRD file in PCBSetup. Example output: 60
@TIMEUSED@Displays the number of minutes used during the current call. Example output: 12
@TOTALTIME@Displays the total amount of time (in minutes) that the caller has used on the system for the day. Example output: 128
@UPBYTES@Displays the total number of bytes the user has uploaded to the BBS. Example output: 36,928,674
@UPFILES@Displays the total number of files that the user has uploaded to the BBS. Example output: 352
@USER@This macro will display the full user name of the caller in all uppercase letters. You can also use this macro in the TO: field of a message. If you do, your single generic message will appear to each user to be addressed personally to them..Example output: EDWARD B. SMITH
@WAIT@This macro will display a Press (Enter) to continue? prompt to the user. Of course, the only way to continue past this prompt is for the caller to press EMTER.
@WHO@This macro will display the exact same thing as if the user had typed WHO at the PCBoard command prompt. The display includes all active node numbers and who is on each of the respective nodes. NOTE: Once the @WHO@ macro is used, the page line counter is reset to maximize screen output. Therefore, if you put the @WHO@ macro in the middle of the screen, be aware that the top of the screen may scroll off. To prevent this, you should put an @PAUSE@ or an @MORE@ just before the @WHO@.

Example output:

(#)   Status                  User
---   ---------------------   -----------------------------
 1   No Caller this Node
 2   Unavailable for CHAT    GREGORY GLENN (CHARLTON, ID)   
 3   Available for CHAT      BRIAN LARSEN (FREEDOM, LA)   
 4   No Caller this Node   
 5   No Caller this Node   
 6   No Caller this Node   
 7   Entering a Message      MILTA BARBOSA (ARMINE, NY)   
 8   Entering a Message      HUGH MCDEVITT (ARROYO, CA)   
 9   Available for CHAT      JACOB VANRIJ (OAKGROVE, ME)  
10   No Caller this Node 

@X Color Codes

In addition to supporting ANSI display files, you can choose to use PCBoard's @X color codes to colorize your display file and PCBTEXT prompts. If you choose to use ANSI to colorize your display files, you will need to create an graphics specific version of each display file in addition to the regular file.

The @X codes are eventually translated to ANSI so the caller can view the color screens. Before this occurs, however, PCBoard will check to see if the caller is capable of ANSI. If they are, PCBoard will translate the color codes into ANSI. If they are not, PCBoard will bypass the color codes so the user does not end up seeing what appears to be garbage on their screen. Because PCBoard is smart enough to determine if the caller is capable of ANSI or not, you can create one single display file for both your ANSI and non-ANSI callers. This saves you time when creating and updating your display files.

Included with your PCBoard package is a program called PCBEdit. This program should be used to create screens that are colorized with @X codes. You should also be aware that there are several other programs available as shareware which you can use to create screens in the PCBoard @X color code format.

If you want to enter @X codes in message or if you manually create your display files, you will need to know the proper format for the @X codes. The format is as follows:

@X[background value][foreground value]

After you enter @X, you need to enter a background value, followed by a foreground value. If you look at the table which follows this paragraph, you will notice that it is broken down into two halves. One half shows the values for the background colors and the other half shows the values for the foreground value. Notice also that the background and foreground sections are also divided. Background colors can be set to be blinking or not, and foreground values can be set to be bright or normal (dull) versions of the color that is shown in the left column of the table.

Background (1st Digit) Foreground (2nd Digit)
ColorNormalBlinkingNormalBright
Black0808
Blue1919
Green2A2A
Cyan3B3B
Red4C4C
Magenta5D5D
Yellow6E6E
White7F7F

Using the color code table you can quickly determine that by entering @X1F, you will be setting the current color to bright white text on a blue background. To help illustrate the color selection scheme, the following are sample @X color codes:

@X07Dull white (gray) text on a black background
@X47Dull white (gray) text on a red background
@X0BBright cyan text on a black background
@X8FBright white text on a blinking black background
@XC7Dull white (gray) text on a blinking red background.

Using @ Macros and @X Codes

There are primarily three places in PCBoard where you can use @ macros and @X codes. They are:

  • Display files
  • Most PCBTEXT entries (some does not support @ macros or @X codes).
  • Inside of messages left on the BBS. ===

To use the macros or codes, simply enter them into the display file, PCBTEXT entry, or message editor in the proper format. If you do, the code or macro will be properly substituted.

To help illustrate how to use macros and codes, this example is going to show you how to enter an @ macro and then to colorize the text that is displayed by the @ macro.

Begin by logging into PCBoard as the SysOp and getting to the conference command prompt.

Shell to DOS by pressing F5. You should now be at a DOS prompt. If you are not, you have disabled local shell to DOS in PCBSetup > Configuration Options > System Control.

Using a text editor of your choice, edit a file called TUTOR in the current directory. In this file, enter @USER@ and save the file and exit your text editor.

When you are back at the DOS prompt, type EXIT to return back to PCBoard.
Now, type 6 TUTOR at the conference command prompt. You are using the 6 SysOp command which enables you to view any file on disk.

Once the command is entered, you should see one line which prints your user name on the screen. Since you are the SysOp, it will print SYSOP instead of your user name. You will notice that if you log in as a different user, the user's name will be displayed on the screen.

Next, we will colorize the name to help provide emphasis. Shell to DOS again, and edit your TUTOR file.

In front of the @USER@, enter @X1F. After the @USER@, enter a space followed by @X07is the current user. Save the file, exit your text editor and type EXIT to return to PCBoard.

View the TUTOR file using the 6 SysOp command. This time, you should see your user name in white text on a blue background. After your user name, the text changes back to gray on black and the is the current user is printed.

Even though this example showed you only one of the places you can use @X codes and @ macros, you can apply the principles learned in this example to the other two places where you can use these flexible tools.

customizing/display_file_conventions.txt · Last modified: 2024/01/18 16:21
CC Attribution 4.0 International Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution 4.0 International