Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
custom:ctrl-a_codes [2018/03/01 12:21] – old revision restored digital man | custom:ctrl-a_codes [2019/08/20 02:00] – [Use] Mention \x01 syntax for Ctrl-A digital man |
---|
====== Ctrl-A Codes ====== | ====== Ctrl-A (Attribute) Codes ====== |
"Control A" codes (a.k.a. ^A codes) are terminal control sequences embedded in Synchronet text and menu display files. | "Control A" codes (a.k.a. ^A codes) are terminal control sequences embedded in Synchronet text and menu display files. |
| |
| |
===== Use ===== | ===== Use ===== |
Ctrl-A codes are 2-character sequences which begin with a Ctrl-A (ASCII 1) character (hence the name) and are followed by a single character (case insensitive) which determines the operation to be performed. The only exception to this 2-character sequences is the Ctrl-A''"//filename//'' code, which takes a filename as an argument and the filename is considered part of the sequence and not displayed. | Ctrl-A codes are 2-character sequences which begin with a Ctrl-A (ASCII 1) character (hence the name) and are followed by a single character (case insensitive) which determines the operation to be performed. The only exception to this 2-character sequence is the Ctrl-A''"//filename//'' code, which takes a filename as an argument and the filename is considered part of the sequence and not displayed. |
| |
It can sometimes require a special purpose text editor to actually enter a Ctrl-A character into a text file. Some editors may require a special key sequence or use of a menu option to enter a Ctrl-A character into a file. The graphical representation of the character may be a happy face or any other non-alphanumeric symbol that the editor chooses to render to represent that character code. There are [[atcodes|@-Codes]] for the equivalent of many of the Ctrl-A codes, so may consider using them if they are more convenient for your text editor of choice. | It can sometimes require a special purpose text editor to actually enter a Ctrl-A character into a text file. Some editors may require a special key sequence or use of a menu option to enter a Ctrl-A character into a file. The graphical representation of the character may be a happy face or any other non-alphanumeric symbol that the editor chooses to render to represent that character code. There are [[atcodes|@-Codes]] for the equivalent of many of the Ctrl-A codes, so may consider using them if they are more convenient for your text editor of choice. |
| |
In the ''[[custom:text.dat]]'' and possibly some other files, Ctrl-A characters may be entered using the C escape sequence: ''\1''. | In the ''[[custom:text.dat]]'' and possibly some other files (e.g. [[JavaScript]] and [[:util:Baja]] source files), Ctrl-A characters may be included by using the escape sequence ''\1'' (or ''\x01'') rather than having to insert an actual control character into the file. |
| |
The [[util:ANS2ASC]] utility may be used to convert files encoded with ANSI X3.64 terminal escape sequences (e.g. ''*.ans'') into Ctrl-A encoded output and the [[util:ASC2ANS]] utility can be used to perform the opposite operation (useful for editing Ctrl-A encoded files (e.g. ''*.msg'' or ''*.asc'') with an //[[resource:ansi editors|ANSI-BBS screen editor]]//). | The [[util:ANS2ASC]] utility may be used to convert files encoded with ANSI X3.64 terminal escape sequences (e.g. ''*.ans'') into Ctrl-A encoded output and the [[util:ASC2ANS]] utility can be used to perform the opposite operation (useful for editing Ctrl-A encoded files (e.g. ''*.msg'' or ''*.asc'') with an //[[resource:ansi editors|ANSI-BBS screen editor]]//). |
===== Colors ===== | ===== Colors ===== |
| |
The following table is a list of Color Ctrl-A codes and their purpose: | The following table is a list of //Color Control// Ctrl-A codes and their purpose: |
| |
^Color ^Foreground^Background^ | ^Color ^Foreground^Background^ |
===== Attributes ===== | ===== Attributes ===== |
| |
The following table is a list of Attribute Ctrl-A codes, and a brief description of each code's usage: | The following table is a list of //Attribute Control// Ctrl-A codes, and a brief description of each code's usage: |
| |
^Attribute ^ Code ^Description ^ | ^Attribute ^ Code ^Description ^ |
|Blink-Font | ''f'' |Set the //Blink// attribute **only** if a alternate [[config:fonts.ini|Blink-font]] has been activated in the terminal (new in v3.17) | | |Blink-Font | ''f'' |Set the //Blink// attribute **only** if a alternate [[config:fonts.ini|Blink-font]] has been activated in the terminal (new in v3.17) | |
|High-Blink-Font | ''F'' |Set the //Blink// attribute **only** if a alternate [[config:fonts.ini|High-intensity Blink-font]] has been activated in the terminal (new in v3.17) | | |High-Blink-Font | ''F'' |Set the //Blink// attribute **only** if a alternate [[config:fonts.ini|High-intensity Blink-font]] has been activated in the terminal (new in v3.17) | |
|Normal | ''N'' |No Special Attributes (Normal) | | |Normal | ''N'' |No Special Attributes (Normal, e.g. light-gray) | |
|Optimized Normal | ''-'' |Only sends sequence if High Intensity, Blinking, or Background attribute is set (or pop attributes if pushed)| | |Optimized Normal | ''-'' |Only changes to //normal// if High Intensity, Blinking, or Background attribute is set (or pop attributes if pushed)| |
|Optimized Normal | ''_'' |Only sends sequence if Blinking or Background attribute is set| | |Optimized Normal | ''_'' |Only changes to //normal// if the Blinking or Background attribute is set | |
| |
===== Control ===== | ===== Control ===== |
| |
The following table is a list of Terminal Control Ctrl-A codes, and a brief description of each code's usage: | The following table is a list of //Terminal Control// Ctrl-A codes, and a brief description of each code's usage: |
| |
^ Operation ^ Code ^ Description ^ | ^ Operation ^ Code ^ Description ^ |
|Delay | ''.'' |Delay for two seconds| | |Delay | ''.'' |Delay for two seconds| |
|Cls | ''L'' |Clear the screen and home the cursor| | |Cls | ''L'' |Clear the screen and home the cursor| |
|Home | ''`'' |Home the cursor| | |Home | ''`'' |Home the cursor (without necessarily clearing the screen)| |
|Clreos | ''J'' |Clear to end of screen (leave cursor in current position)| | |Clreos | ''J'' |Clear to end of screen (leave cursor in current position)| |
|Clreol | ''>'' |Clear to end of line (leave cursor in current position)| | |Clreol | ''>'' |Clear to end of line (leave cursor in current position)| |
|LF | '']'' |Send a line feed character (Ctrl-J) - Cursor Down| | |LF | '']'' |Send a line feed character (Ctrl-J) - Cursor Down| |
|Cond-Newline | ''/'' |Send a new-line sequence (CRLF) **only** when the cursor is not already in the first column (new in v3.17) | | |Cond-Newline | ''/'' |Send a new-line sequence (CRLF) **only** when the cursor is not already in the first column (new in v3.17) | |
| |Cond-Linecont | ''\'' |Send a line-continuation sequence (''[[custom:text.dat]]'' //LongLineContinuationPrefix// line) if terminal < 80 columns | |
|Cond-Blankline | ''?'' |Send a blank-line sequence **only** when the previously printed line was not blank (new in v3.17) | | |Cond-Blankline | ''?'' |Send a blank-line sequence **only** when the previously printed line was not blank (new in v3.17) | |
|Push Attr | ''+'' |Save current attributes into attribute LIFO stack| | |Push Attr | ''+'' |Save current attributes into (server-side) attribute LIFO stack| |
|Pop Attr | ''-'' |Restore attributes from stack (or Optimized Normal, if no attributes saved/pushed)| | |Pop Attr | ''-'' |Restore attributes from stack (or Optimized Normal, if no attributes saved/pushed)| |
| |SOH | ''A'' |Send an actual Ctrl-A (ASCII 1) character| |
| |SUB | ''z'' |Send an actual Ctrl-Z (ASCII 26) character (note: lowercase 'z' only v3.17c and later) | |
| |EOF | ''Z'' |Premature end-of-file (note: uppercase 'Z' only in v3.17c and later) | |
|Cursor Right | 128-255 |Move cursor to the right (code-127) characters| | |Cursor Right | 128-255 |Move cursor to the right (code-127) characters| |
| |
===== Macros ===== | ===== Macros ===== |
| |
The following table is a list of Macro Ctrl-A codes, and a brief description of each code's usage: | The following table is a list of //Macro// Ctrl-A codes, and a brief description of each code's usage: |
| |
^Macro ^ Code ^Description ^ | ^Macro ^ Code ^Description ^ |
|Date | ''D'' |Display the current system date (in "MM/DD/YY" or "DD/MM/YY" format)| | |Date | ''D'' |Display the current system date (in "MM/DD/YY" or "DD/MM/YY" format)| |
|Time | ''T'' |Display the current system time (in "HH:MM am" or "HH:MM:SS" format)| | |Time | ''T'' |Display the current system time (in "HH:MM am" or "HH:MM:SS" format)| |
|Ctrl-A | ''A'' |Send an actual Ctrl-A (ASCII 1) character| | |
| |
===== Advanced ===== | ===== Advanced ===== |
| |
The following table is a list of Advanced Ctrl-A codes, and a brief description of each code's usage: | The following table is a list of //Advanced// Ctrl-A codes, and a brief description of each code's usage: |
| |
^Operation^ Code ^Description ^ | ^Operation^ Code ^Description ^ |
|Sync | ''S'' |Synchronize output with remote system| | |Sync | ''S'' |Synchronize node status and output with terminal (i.e. initiates a call to ''nodesync()'')| |
|EOF | ''Z'' |End of displayable text in this file | | |Embed File| ''%%"%%//filename//''| Display contents of //filename// from the Terminal Server's ''[[dir:text]]'' directory| |
|Embed File| ''%%"%%//filename//''| Display contents of //filename// from your ''[[dir:text]]'' directory| | |
| |
===== Security ===== | ===== Security ===== |
| |
Synchronet also supports Ctrl-A codes used to hide text from users | Synchronet also supports //Secure Control// Ctrl-A codes which may be used to hide text from users |
not meeting certain security criteria (i.e.: Security Level or Flags from Flag Set #1). | not meeting certain security criteria (i.e.: Security Level or Flags from Flag Set #1). |
| |
The following table is a list of Security Ctrl-A codes, and a brief description of each code's usage: | The following table is a list of Security Control Ctrl-A codes, and a brief description of each code's usage: |
| |
^Code ^Description^ | ^Code ^Description^ |
* [[:ref:ANSI]] | * [[:ref:ANSI]] |
* [[:custom:|Customization]] | * [[:custom:|Customization]] |
| * [[:resource:ANSI Editors]] |
| |
{{tag>ansi}} | {{tag>ansi}} |
| |