Programming Features - Output Commands

The Color 64 output commands differ from the standard BASIC PRINT statement. These commands send output both to the local screen and to the remote user. A regular PRINT statement only displays text on the Sysop’s screen when a caller is online.

Additionally, the Color 64 output commands automatically convert output to ASCII or ANSI when the remote user is operating in those text modes.

Text Output Commands
Cmd Details
# Format: #[<expression list>]

Example:

Output:

<expression list> may be a single expression or multiple expressions separated by semicolons (similar to PRINT).

If nothing follows the "#" command, the contents of A$ will be printed. This shortcut is commonly used when A$ contains data read from disk or keyboard input and must also be recorded in the caller log.

The "#" command automatically appends a carriage return unless a trailing semicolon is included.

$ Same usage rules as "#", except no carriage return is appended. This makes it suitable for prompts.

Example:

% and & "%" and "&" function like "#" and "$" respectively, but automatically adjust alphabetic characters (A–Z) to remain readable if Uppercase/Graphics mode is enabled.

If the system is in Uppercase/Graphics mode and shifted letters are present, these commands automatically convert them back to readable letters instead of Commodore graphic symbols.

These commands are commonly used in text editor routines where uppercase and lowercase modes may be switched dynamically.

' and ( These commands operate similarly to "#" and "$", but output is sent only to the modem and not displayed on the Sysop’s local screen.

They are primarily used when sending AT modem commands or when transmitting data that must not be processed by the normal output formatting routines. The CTRL/Y character does not function with these commands.

The apostrophe (') command:

  • Uses the same format as "#".
  • Sends output directly to the modem.
  • Performs no ASCII/ANSI conversion.
  • Appends a carriage return unless a trailing semicolon is included.

The open parenthesis "(" command:

  • Functions like the apostrophe command.
  • Never appends a carriage return.

Important Note on Logging

When output must also be recorded in the caller log, you must use the format:

A$=<text>:#

If you do not assign the text to A$ first, incorrect information may be written to the caller log because these output commands do not modify A$.

This caution applies to any situation where printed data is later reused elsewhere in the program.

Control-Y Command in Quotes

A special control character, CTRL/Y, has been added to the output routines. It functions like a carriage return but may be embedded directly inside quoted text.

In BASIC, CTRL/Y can be typed within quotation marks. On the BBS, it may be entered without terminating the current input line.

Key characteristics:

  • Behaves like a carriage return.
  • Can be recorded within text.
  • Does not cancel the velocity MCI command (£v), allowing long formatted output without interruption.

Restrictions:

  • CTRL/Y cannot replace CR$ when writing structured data to disk (such as message headers or system parameter files).
  • It should only be used when output is intended strictly for screen display and not later read by BASIC’s INPUT routine.
  • BASIC’s INPUT command does not recognize CTRL/Y as a valid end-of-line character.

An exception exists when CTRL/Y is intended to be stored as part of the data itself. In that case, it must still be followed by a standard carriage return.

See the customizable message headers section for an example of proper usage.

Next Section: The Enhanced If/Then Statement

Programming Features