The Message Command Interpreter (MCI) allows you to do a variety of things within messages you type. Each MCI command consists of:
-
the British pound character (£) for Commodore users, or backslash (\) for other computers
-
a command letter (can be either upper- or lowercase)
-
a number or letter
-
any arguments/parameters (additional information the command needs).
Since the parameter after a command letter is only allowed to be one character, letters are substituted for numbers as follows: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Think of it as “extended hexadecimal.” And by the way, this next good-sized chunk was pretty extensively reworked; I think the examples in the original manual don’t always explain themselves very well. |
If ever you need to output a single British pound sign (£), type two: ££. This is called “escaping” MCI. The first prepares to interpret the following character as an MCI command, the second cancels it. |
In general, MCI is what “spices up” an IMAGE BBS. It allows you to add color, cursor movement, and a “personal touch” to messages or posts in the sub-boards. The MCI commands available in IMAGE BBS are:
£AxTEXT£
About
Compare MCI variable £Vx
to TEXT
.
Notice the ending £
which delimits the comparison.
(For a list of MCI variables, see the £Vx
command.)
The comparison result can be used with £Dx
[jump line(s) on comparison not equal] or £Ex
[jump line(s) on comparison equal].
1 | £a3JOHN DOE££d2 |
2 | Hello, John Doe. What do you know?£x1 |
3 | This message is only for John Doe. |
1 | Compares (£a ) the user’s real name (3 , which is MCI variable £v3 ) to JOHN DOE (the second £ marks the end of the comparison). If the comparison is false, £d2 jumps 2 lines—the current line plus the next one—to avoid printing line 2. |
2 | Prints Hello, John Doe. What do you know? £x1 aborts the message, which avoids printing line 3. |
3 | Prints This message is only for John Doe. |
£Bx
Bells
Send x bell characters--CHR$(7)
--to the user.
If the user’s terminal supports bells, they hear them.
Speed up or slow down by using the £Sx command!
|
£Cx
Color
Set the current display color to x, where x is from the following table:
Value | Color | Value | Color |
---|---|---|---|
|
white |
|
brown |
|
dark red |
|
pink |
|
cyan |
|
dark gray |
|
purple |
|
medium gray |
|
dark green |
|
light green |
|
dark blue |
|
light blue |
|
yellow |
|
light gray |
|
orange |
-
0, black, is omitted since that is usually the color choice for terminal backgrounds.
-
Commodore 64/128 users can use Ctrl+1-8 or C=+1-8 instead of
£Cx
.
£Dx
Jump if not equal
Skips x lines when the result of the last compare command (£A
or £T
) was not equal.
Display an appropriate message based on whether the user’s handle is or is not SYSOP
:
1 | £a2SYSOP££d2 |
2 | Hello, Sysop!£d2 |
3 | Hey, you can’t read this! |
4 | £x1 |
1 | Compare (£a ) user’s handle (2 ) to SYSOP (the second £ delimits the comparison).
£d2 jumps 2 lines—the current line and the next line—if the comparison is not equal, to avoid printing line 2. |
2 | Output Hello, Sysop! . £d2 jumps 2 lines—the current line and the next line—to line 4, since the result of the last comparison is still false. This avoids printing line 3. |
3 | If the result of the comparison in line 1 is false, output Hey, you can’t read this! |
4 | Abort the file or message. |
£Ex
Jump if equal
Skip x lines if the result of the last compare command (£a
or £t
) was equal.
Display different messages based on whether the user’s handle is USER
or not:
1 | £a2USER££e2 |
2 | Too bad your handle isn’t USER!£j2 |
3 | Congratulations, your handle is USER! |
4 | £x1 |
1 | £a2 compares £v2 (the user’s handle) to USER (the second £ marks the end of the comparison).
If the user’s handle is USER , £e2 jumps 2 lines—the current line plus the next line—to avoid printing line 2. |
2 | If the user’s handle is not USER , this prints Too bad your handle isn’t USER! and £j2 unconditionally jumps 2 lines—the current line plus the next line—to avoid printing line 3. |
3 | If the comparison in line 1 is true, this prints Congratulations, your handle is USER! |
4 | In either case, the message is now aborted. |
£F1
Clear screen
This command sends a “clear screen” character to the user.
This is chr$(147) on Commodore terminals, or chr$(12) (a form feed) in ASCII mode.
|
£Gx
Get character
Wait until the user presses a key.
The keypress is stored in MCI variable £v7
(or an$
in BASIC).
Parameters:
-
If x=1, input is converted to uppercase.
-
If x=0, input is allowed in uppercase and lowercase.
1 | Press a key: £g1 |
2 | You pressed: £v7 |
1 | Prompt the user to Press a key: and waits for one keypress (which is converted to uppercase). |
2 | Print You pressed: and echo the character they pressed. |
£Hx
Backspace/delete
Display x backspaces/deletes (depending on the user’s terminal type).
1 | Apple£h5Banana |
1 | Display Apple , immediately erase it with five backspace/delete characters (£h5 ), then display Banana in its place. |
£Ix
Line input
Pauses output, allowing the user to input a line of text.
The input is stored in MCI variable £v7
(an$
in BASIC).
-
If x=0, input can be typed in uppercase and lowercase.
-
If x=1, input is converted to uppercase.
1 | Enter your name: £i1 |
2 | Hello, £v7! |
1 | Prompts the user Enter your name: , then accepts input (£i ) which is converted to uppercase characters (1 ). |
2 | Print Hello, the user’s input (£v7 ), and ! . |
£Jx
Jump
Do not display the next x lines of the message or file.
1 | Displayed£j2 |
2 | Not displayed |
3 | Displayed again |
1 | Prints Displayed , then jumps 2 lines (the current line is counted as the first line to jump). |
2 | Line 2 is not displayed. |
3 | Prints Displayed again . |
£Kx
Kolorific mode
Changes the color of each character output.
-
If x=0 (zero), Kolorific mode is turned off.
-
If x is any other color code (see
£Cx
), Kolorific mode is enabled, starting with£Cx
.
£k2This is a test£k0
-
Turn Kolorific mode on (
£K
), starting with the color red (2
, since£C2
is the color red). -
Displays
This is a test
, then turns Kolorific mode off (£K0
).
£Lx
Output to Printer
Control the printer attached to the BBS, if online.
-
If x=0, printed output is stopped.
-
If x=1, printed output is started (or resumed).
Printed output stops at the end of each line; you must include £L1 on each line to be printed.
|
£L1Hello
Print Hello
on the printer.
£M<x
Set Left Margin
Every carriage return output is followed by n spaces. The values for n are 0 to 9 and j-o (j=10, k=11, l=12, etc.)
£M>x
Set Right Margin
Same as £M<x
, except it sets the right margin.
This causes the BBS to word wrap text as if the user’s screen width was n characters less than it really is.
Text indents from the right side.
The use of £M<x
and £M>x
together allows you to make “block indents” of text that appear correct regardless of the user’s screen width.
1 | .c80 |
2 | £m<o£m>o |
3 | Left and right margins are now set to 15 characters and this will word wrap. |
4 | .m |
1 | Set .Columns to 80 (this allows line 3 to be entered all on one line without creating two separate lines of text). |
2 | £m< sets the left margin, and £m> sets the right margin to 15 (o ) spaces. |
3 | Enter this line to give the BBS something to word-wrap. |
4 | .MCI Read the message. This demonstrates the new margin settings: |
Left and
right
margins
are now
set to 15
characters
and this
will word
wrap.
£Ox
Repeat character
This command repeats a character 19 times. It is useful for making menus, etc.
Parameters: Replace x with the character wanted.
*£o-£o-*
Displays the following:
*--------------------------------------*
£Px
Print mode
Sometimes referred to as “cursor dancing,” print modes allow each character output to be displayed in a variety of ways. They can move the cursor, or perform “special effects.”
Parameters: Replace x with the print mode number. The print mode is set back to 0 (normal print mode) at the end of each line.
There are thirteen very powerful print modes in IMAGE BBS. We suggest trying to come up with interesting ways to use them—it is possible to create an entire “movie” file entirely within the IMAGE BBS editor with these commands!
£Qx
Reset MCI defaults
Turns off the following features:
-
Printer mode (see
£Lx
) -
Reverse mode (see
£Rx
) -
Uppercase mode (see
£Ux
)
The current print mode (see £Px
) and print speed (see £Sx
) are set to 0 for normal output at the fastest speed.
Parameters:
-
If x=0, then the current color is set to the default color.
-
Otherwise, the default color and current color are set to
£Cx
.
£Rx
Reverse mode
Controls displaying text in normal or reverse modes.
Parameters:
-
If x=0, reverse mode is turned off
-
If x=1, reverse mode is turned on
Reverse mode turns off at the end of every line. |
Commodore 64/128 users can also use Ctrl+9 for Reverse On and Ctrl+0 for Reverse Off. |
£Sx
Print speed
Delay each word output by x tenths of a second.
Parameters:
x ranges from 1
-J
(.1 to 1.6 seconds)
£TxTEXT£
Test variables
Tests a variable, here comparing it to TEXT
(similar to £a
).
The ending £
delimits the comparison.
Used in conjunction with £d
(jump if comparison is false) and £e
(jump if comparison is true).
If x=1, tests user input (£Gx
or £Ix
; in BASIC, an$
).
If x=2, tests access group (in BASIC, ac%
).
1 | £t29££d2 |
2 | Hi, sysop! Welcome!£x1 |
3 | £v2, this function is only for sysops. |
1 | Compare (£t ) the user’s access group (2 ) to 9 (£ is the end of the comparison).
£d2 jumps two lines—the current line plus the next line—to avoid printing line 2 if the comparison is false (access level is not 9). |
2 | Display Hi, sysop! Welcome! . £x1 aborts the message. |
3 | Display handle, this function is only for sysops. |
£Ux
Uppercase mode
Set the screen case. The screen case reverts to uppercase/lowercase at the end of the message.
Parameters:
-
x=1: on. The screen displays uppercase and graphics characters.
-
x=0: off. The screen displays uppercase and lowercase characters.
£Vx
MCI variables
Display the desired MCI variable.
Parameters: x is MCI variable number:
Variable | Purpose | BASIC variable |
---|---|---|
£v0 |
Current date and time |
|
£v1 |
Last call date of user |
|
£v2 |
User’s handle |
|
£v3 |
User’s real name |
|
£v4 |
User’s email address |
|
£v5 |
Name of BBS |
|
£v6 |
Board number during board entry, caller number during login |
|
£v7 |
User input |
|
£v8 |
Board name during board entry |
|
£v9 |
Last user on BBS |
|
£vj |
Dividing line justified to user’s screen width |
|
£vk |
True last call date |
|
£vl |
Current protocol |
|
£vm |
Access group name |
|
£vn |
Login identifier |
|
£vo |
Login identifier + ID |
|
£Wx
Wait
Delay x seconds before proceeding, similar to £Sx
.
Parameters: x ranges from 1-J (1 to 15 seconds)
£X1
Abort file
Skips the rest of the lines in a file or message, not displaying anything contained in those lines.
The number of lines skipped is actually limited to 255; I discovered this while re-writing the BBS editor help menu file. |
£←xx
Tab
This command tabs the cursor from the left column, to column #xx (00
-39
are valid).
Use the back-arrow key (←) to the left of the 1 key. |
To tab over less than ten columns, use a leading zero (£←05 , £←08 ).
|
If the tab-to column specified is less than the cursor’s current column where the cursor is now, any text after the tab command is displayed directly after the current cursor position. |
These next few commands are probably only useful if you’re programming modules for Image BBS in BASIC. |
£#x
Leading characters
When you use £%v
(below), this specifies either:
-
The number of digits to display
-
To use leading zeroes or spaces
Parameters:
-
When x is a number between 1 and 5, x sets the number of digits to display a numeric value with.
-
When x equals zero, as many digits are in the number are displayed.
-
When x is a space character, leading spaces are used, but the number of digits to display is not affected.
See the examples for £%v
, below.
£%v
Display integer variable
Display the value of any one-letter integer variable with or without leading characters.
The periods in the examples are not shown in actual use of this command; they only illustrate how many leading spaces are used. |
£#4£# £%a
Display 4 digits of a%
, with leading spaces
If a%=1
, this displays …1
£#2£%a
(Display two digits of a%
)
If a%=1
, this displays 01
If a%=23
, this displays 23
If a%=789
, this displays 89
, the rightmost two digits.
£#0£%a
(Disable leading characters, display up to 5 digits)
If a%=1
, this displays 1
If a%=42
, this displays 42
£$x
Display string variable
Display any one-letter string variable (a$
, for example).
£$a
Display the contents of the string variable a$
.
£!a
Display floating point variable
Display as many digits are in a floating point (non-integer, i.e., 3.14) variable.


π is displayed in the BBS with as many significant digits as the BASIC interpreter stores.
Setting leading spaces or leading characters as with £%a is not supported.
|