Skip to content
Snippets Groups Projects
Commit b4ff8c01 authored by deuce's avatar deuce
Browse files

Document the "ANSI" music pause.

Reformat to look properly with boith eight and four character tabstops.
parent 4707b072
No related branches found
No related tags found
No related merge requests found
......@@ -213,10 +213,11 @@ CSI [ p1 ] L
CSI [ p1 ] M
Delete Line(s) / "ANSI" Music
Defaults: p1 = 1
Deletes the current line and the p1 - 1 lines after it scrolling the first
non-deleted line up to the current line and filling the newly empty lines
at the end of the screen with the current attribute.
If "ANSI" Music is fully enabled (CSI = 2 M), performs "ANSI" music instead.
Deletes the current line and the p1 - 1 lines after it scrolling the
first non-deleted line up to the current line and filling the newly
empty lines at the end of the screen with the current attribute.
If "ANSI" Music is fully enabled (CSI = 2 M), performs "ANSI" music
instead.
See "ANSI" MUSIC section for more details.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
......@@ -232,49 +233,50 @@ CSI N
CSI [ p1 ] P
Delete Character
Defaults: p1 = 1
Deletes the character at the current position by shifting all characters from
the current column + p1 left to the current column. Opened blanks at the end
of the line are filled with the current attribute.
Deletes the character at the current position by shifting all characters
from the current column + p1 left to the current column. Opened blanks
at the end of the line are filled with the current attribute.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI [ p1 ] S
Scroll Up
Defaults: p1 = 1
Scrolls all text on the screen up p1 lines. New lines emptied at the bottom
are filled with the current attribute.
Scrolls all text on the screen up p1 lines. New lines emptied at the
bottom are filled with the current attribute.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI [ p1 ] T
Scroll Down
Defaults: p1 = 1
Scrolls all text on the screen down p1 lines. New lines emptied at the top
are filled with the current attribute.
Scrolls all text on the screen down p1 lines. New lines emptied at the
top are filled with the current attribute.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI U
NON-STANDARD (Disabled in current code)
Clear screen with default attribute.
This code is *supposed* to go to the "next page" according to the ANSI/ECMA specs.
With CSI V going to "previous page"
This code is *supposed* to go to the "next page" according to the
ANSI/ECMA specs with CSI V going to "previous page"
SOURCE: BANSI.TXT
CSI [ p1 ] Z
Cursor Backward Tabulation
Defailts: p1 = 1
Move the cursor to the p1th preceeding tab stop. Will no go past the start of the
line.
Move the cursor to the p1th preceeding tab stop. Will no go past the
start of the line.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
CSI [ p1 [ ; pX ... ] ] m
Select Graphic Rendition
Defaults: p1 = 0
Sets or clears one or text attributes. Unlimited parameters are supported and are
applied in received order. The following are supoprted:
Sets or clears one or text attributes. Unlimited parameters are
supported and are applied in received order. The following are
supoprted:
Blink Bold FG BG (Modified)
0 - Default attribute, white on black X X X X
1 - Bright Intensity X
......@@ -318,16 +320,19 @@ CSI [ p1 [ ; pX ... ] ] m
CSI [ p1 ] n
Device Status Report
Defaults: p1 = 0
A request for a status report. CTerm handles the following two requests:
A request for a status report. CTerm handles the following two
requests:
5 - Request a DSR
CTerm will always reply with CSI 0 n indicating
"ready, no malfunction detected"
6 - Request active cursor position
CTerm will reply with CSI y ; x R where y is the current line and x is
CTerm will reply with CSI y ; x R where y is the current line
and x is
the current row.
255 - NON-STANDARD EXTENSION
Replies as though a CSI [ 6 n was recieved with the cursor in the bottom
right corner. ie: Returns the terminal size as a position report.
Replies as though a CSI [ 6 n was recieved with the cursor in
the bottom right corner. ie: Returns the terminal size as a
position report.
SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
(parameters 5 and 6 only)
......@@ -337,8 +342,8 @@ CSI s
NON-STANDARD EXTENSION
Save Current Position
Saves the current cursor position for later restoring with CSI u
although this is non-standard, it's so widely used in the BBS world that any
terminal program MUST implement it.
although this is non-standard, it's so widely used in the BBS world that
any terminal program MUST implement it.
SOURCE: BANSI.TXT
......@@ -352,12 +357,13 @@ CSI u
"ANSI" Music
============
This is the place where the BBS world completely fell on it's face in ANSI useage.
A programmer with either TeleMate or QModem (the first two programs to support
"ANSI" music as far as I can tell) decided they needed a method of playing music
on a BBS conenction. They decided to add an "unused" ANSI code and go their merry
way. Since their product didn't implement CSI M (Delete line) they assumed it was
unused and blissfully broke the spec. They defined ANSI music as:
This is the place where the BBS world completely fell on it's face in ANSI
useage. A programmer with either TeleMate or QModem (the first two programs to
support "ANSI" music as far as I can tell) decided they needed a method of
playing music on a BBS conenction. They decided to add an "unused" ANSI code
and go their merry way. Since their product didn't implement CSI M (Delete
line) they assumed it was unused and blissfully broke the spec. They defined
"ANSI" music as:
CSI M <music string> 0x0a
They used a subset of IBM BASICs PLAY statement functionality for ANSI music
......@@ -367,12 +373,12 @@ CSI MFABCD 0x0a and the F would not be played as a note. This just added
further confusion to the mess.
Later on, BananaCom realized the conflict between delete line and music, so they
added *another* broken code CSI N (Properly, erase in field... not implemented in
many BBS clients) which was to provide an "unbroken" method of playing music
added *another* broken code CSI N (Properly, erase in field... not implemented
in many BBS clients) which was to provide an "unbroken" method of playing music
strings. They also used CSI Y to disambiguate delete line, CSI Y is supposed
to be a vertical tab (also not implemented in very many clients). BananaCom also
introduced many more non-standard and stardard-breaking control sequences which
are not supported by CTerm.
to be a vertical tab (also not implemented in very many clients). BananaCom
also introduced many more non-standard and stardard-breaking control sequences
which are not supported by CTerm.
CTerm has further introduced a standard compliant ANSI music introducer CSI |
......@@ -386,8 +392,9 @@ If any character not in this list is present, the music string is ignored as
is the introducing code.
If the introducing code is CSI M the first char is examined, and if it is
a case-insensitive match for any character in "BFLNS" then the music string
is treated as though an M is located in front of the first character.
a one of "BbFfLlSs" or if it is "N" or "n" and is not followed by a decimal
digit, then the music string is treated as though an M is located in front
of the first character.
The music string is then parsed with the following sequences supported:
Mx sets misc music parameters where x is one of the following:
......@@ -410,10 +417,11 @@ O### Sets the octave of the music where ### is one or more decimal digits.
N### Plays a single note by number. Valid values are 0 - 71. Invalid
values are played as silence. Note zero is C in octave 0.
See following section for valid note modifiers.
A, B, C, D, E, or G Plays the named note from the current octave.
an "Octave" is the rising sequence of the following notes:
A, B, C, D, E, G, or P Plays the named note or pause from the current
octave. An "Octave" is the rising sequence of the following notes:
C, C#, D, D#, E, F, F#, G, G#, A, A#, B
This is contrary to normal music terminology.
The special note "P" is a pause.
Notes may be followed by one or more modifier characters which
are applied in order. If one overrides a previous one, the last
is used. The valid modifiers are:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment