Opus Embedded Commands

Opus Embedded Commands (or Codes) (OEC) are commands consisting mostly of control characters (from ASCII's C0 controls), singly or in sequences, which are assigned special meanings in files presented to users of the Opus-CBCS bulletin board system software.

These commands are used in files with a .BBS or .GBS extension. .BBS is the normal extension used, while .GBS originally was for files including ANSI codes sent only to users supporting them, but eventually became mostly unnecessary due to the fact that later Opus versions support AVATAR commands as part of the OEC command set and will translate them into ANSI codes for supporting users (and skip them if not supported).

Commands
Sequences like ^A mean control characters, Ctrl-A in this case. Some have their standard C0 control meanings; others are specific to Opus.

^A inserts "Press ENTER to continue" prompt and waits for the keypress.

^B disables the ^K break character but not ^C.

^C allows the ^C break character.

^D Show 'More?' prompt and wait for keypress if within 5 lines of end of screen.

^E Enables 'More?' prompts at each end-of-screen.

^F See ^F codes.

^G Ring bell on caller's system (if their terminal supports it)

^H Backspace.

^I Tab.

^J Insert Carriage Return/Linefeed pair

^K Disable 'More?' prompts.

^L Clear screen.

^O See ^O codes.

^P See ^P (privilege) codes.

^V See ^V (Avatar) codes.

^X See ^X (Expiration) codes.

^Y Followed by two characters; causes the immediately following character to be repeated the number of times represented by the byte value of the character after that. Thus, ^YA^E causes "A" to be repeated 5 times (the value of Ctrl-E).

^F Commands
^FA Displays total number of messages the user has read.

^FB Displays total number of messages the user has written.

^FC Invokes the _SEND_MESSAGE interline chat command.

^FW Displays other users currently online (from ACTIVE*.DAT and LASTUS*.DAT files).

^FL Send a message to the user in the current Opus task (intended for use in BYEBYE.BBS).

^FR Displays CHAT* file if one exists.

^FM Displays active menu.

^FS Invokes _SYSOP_MESSAGE menu command and terminates OEC file.

^FW Shows who else is online in multiline system.

^FZ Dump memory to Opus log file for debugging.

^F^A Show quote (rotates through quote file).

^F^B Show user's name.

^F^C Show user's city/state.

^F^D Show current date.

^F^E Show total calls user has made as ordinal number (1st, 2nd, etc.)

^F^F Show user's first name.

^F^G Pause 1 second.

^F^H Show last time/date user accessed current file area.

^F^K Show total minutes online for current user in last 24 hours (including current call).

^F^L Show minutes so far in current call.

^F^N Disconnect immediately (Control-Niel).

^F^O Show minutes remaining in current call.

^F^P Show date/time user must be off system.

^F^Q Show total number of calls to date (as ordinal number).

^F^R Show net downloads today (downloads minus uploads).

^F^T Show current time.

^F^U Make all questionnaire answers required.

^F^V Make all questionnaire answers optional.

^F^W Show total bytes uploaded by user.

^F^X Show total bytes downloaded by user.

^F^Y Show user's download:upload ratio.

^O Commands
^OA Followed by filename; shows that file and then continues with the current one. This may be nested multiple levels.

^OB Followed by number; shows rest of line only if user's baud rate is greater than or equal to the number.

^OC Followed by program filename; executes it and then re-reads LASTUS*.DAT and stuffs ENTER in command buffer before returning.

^OD Sets default directory for GBS/BBS files.

^OE Skip if not full-screen.

^OF Followed by filename; on exit from current file, show that (OEC) file next.

^OG Followed by menu commands, stuffs them into Opus command buffer and terminates file. They will execute starting with the current menu. HEX codes can also be used preceded with escape character.

^OH Followed by program filename; executes it without re-reading LASTUS*.DAT file on exit; stuffs ENTER in command buffer before returning.

^OI Gets and saves string from user (up to 58 characters). It will be appended to the next ^OC, ^OH, ^OJ, ^OK, ^O2, ^O3, or ^OG command, with a space between command and string.

^OJ Followed by program filename; does not stuff ENTER into command buffer.

^OK Followed by program filename; does not stuff ENTER into buffer or re-read LASTUS*.DAT.

^OL Followed by language code (1 character) and decimal number; if user language is equal to specified language, jump to specified byte.

^OM followed by string; stores multiple-choice response. (String is optional and identifies the question.)

^ON followed by string; stores user-supplied line. (String is optional and identifies the question.)

^OO followed by filename; opens the file for storing user responses. (Do this before the ^OM, ^ON, or ^OP commands.)

^OP posts user stats to answer file.

^OQ quits the file immediately.

^OR follosed by list of characters; waits for input character from user and checks for match in list, prompting to try again if character is not in list. Used in conjunction with ^OU. Pipe (|) represents ENTER.

^OS followed by filename displays specified file.

^OT goes to the top of the file.

^OU followed by character; conditional on user response from ^OR command. Shows rest of line if input matches character, else skips to next line.

^OV followed by number; goes to byte position in file corresponding to number.

^OW followed by filename; checks for existence of file. Skips rest of line if file does not exist. Wildcards are allowed, and substitutions of language and task numbers are used where present.

^OX followed by position number, jumps to position given and remembers current position; later, ^OY returns to current position (like GOSUB in BASIC).

^OY Return from subroutine.

^OZ followed by number; compares number to DOS errorlevel from ^O2 or ^O3 command and operates like "IF ERRORLEVEL" in batch file.

^O0 followed by number; goes to byte in file designated by number.

^O2 followed by program filename; spawns program and returns errorlevel when it exits.

^O3 followed by program filename; spans program and returns errorlevel on exit, but doesn't re-read LASTUS*.DAT on return.

^P Commands
^PA followed by keys (ending in space); add keys for the user.

^PC followed by keys; clear keys for the user.

^PB followed by first letter of privilege level; if user priv is below this, skip rest of line.

^PF followed by first letter of privilege level; if user priv is below this, end file now.

^PH followed by help level (N=Novice, R=Regular, E=Expert); if user's help level is not equal to this, skip rest of line.

^PK followed by keys; end file now if user does not have keys.

^PL followed by first level of privilege level; if user privilege is above this, show rest of line.

^PN followed by keys; if user does NOT have keys, show rest of file.

^PO followed by keys; if user does NOT have keys, show rest of line.

^PP followed by keys; if user has keys, show rest of line.

^PQ followed by first letter of privilege level; if user privilege is equal to this, show rest of line.

^PX followed by first letter of privilege level; if user privilege does NOT equal this, show rest of line.

^PY followed by language code; skip rest of line if user language is NOT this language.

^PZ followed by language code; skip rest of line if user language is this language.

^PS followed by section; if user section is equal to this, show rest of line (or was that skip?).

^PT followed by section; if user section is NOT equal to this, skip rest of line (or was that show?).

^V Commands (Avatar)
^V^A^A Blue (ANSI [0;34;40m)

^V^A^B Green (ANSI [0;32;40m)

^V^A^C Cyan (ANSI [0;36;40m)

^V^A^D Red (ANSI [0;31;40m)

^V^A^E Magenta (ANSI [0;35;40m)

^V^A^F Brown (ANSI [0;33;40m)

^V^A^G LightGrey (ANSI [0;37;40m)

^V^A^H Grey (ANSI [0;30;40m)

^V^A^I LightBlue (ANSI [0;1;34;40m)

^V^A^J LightGreen (ANSI [0;1;32;40m)

^V^A^K LightCyan (ANSI [0;1;36;40m)

^V^A^L LightRed (ANSI [0;1;31;40m)

^V^A^M LightMagenta (ANSI [0;1;35;40m)

^V^A^N Yellow (ANSI [0;1;33;40m)

^V^A^O White (ANSI [0;1;37;40m)

^V^B Blinking on (until next ^VA command) (ANSI [5m)

^V^C Cursor up (ANSI [1A)

^V^D Cursor down (ANSI [1B)

^V^E Cursor left (ANSI [1D)

^V^F Cursor right (ANSI [1C)

^V^G Clear to end of line (ANSI [K)

^X Commands
^XC If user has expiration date, show the date, e.g., "15 Mar 93"

^XD If user has expiration date, show number of days until expiration.

^XE If user has expiration date, show rest of line.

^XM If user has expiration flag by amount of time, show number of minutes remaining.

^XN If user has expiration flag by amount of time, show rest of line.