The SB-Bus defines the use of some Ctrl characters (ASCII values below $20).
You usually generate those characters by typing an Alpha character while holding down the Ctrl key.
Others are so common that they even have their own dedicated keys on the keyboard.
Below you'll find a list of all the Ctrl characters which are defined for the SB-Bus.
Slaves are to ignore all other Ctrl characters they receive and never send those themselves
Ctrl | ASCII | Function |
Ctrl-C | $03 | This Ctrl character is best avoided because some higher level programs will interpret it as an abort signal, causing the program to be stopped. |
Ctrl-H | $08 | The Back-Space character.
This character erases the last received character from the Slave's input buffer.
It is ignored when the Slave's input buffer is already empty.
The Back Space character has the same effect as the DEL character and therefore may be handled by the same routine.
A Slave usually doesn't send Back Space characters itself. |
Ctrl-J | $0A | The Line Feed character is to be ignored by all Slaves.
It is usually sent by the Master together with a Ctrl-M or Carriage Return character.
Slaves never output a Ctrl-J character themselves. |
Ctrl-M | $0D | The Carriage Return character, or CR for short.
This character is usually sent when pressing the Enter key on the keyboard.
It signals the end of the current line.
The Slave must start interpreting the input buffer's data when a CR character is received and then clear the line from the input buffer. Usually the input buffer contains a Command and possibly some Parameters. After decoding the input line successfully, the Command will be executed. The input buffer may also contain some data, belonging to a Data transfer. In that case the input buffer is again checked and then accepted or declined. If the input buffer is empty when a CR character is received, the last Command is repeated together with all of its Parameters, provided that the Slave was in Command mode. The Slave may decide what to do with a CR on an empty line of data if it is in some kind of Data transfer mode. A Slave will send a CR after every data line and after every Status Prompt. It will never output a Line Feed though! |
Ctrl-Q | $11 | Flow Control XON character.
This Character is usually used to resume transmission, when it was paused by an XOFF character.
Go to the Xon/Xoff Flow Control page to see a full description. |
Ctrl-S | $13 | Flow Control XOFF character.
This character can be used to pause the transmission from the other side, when the receiver can't keep up with the flow of data it receives.
Both Master and Slave devices can send the XOFF character when their input buffer threatens to overflow.
Go to the Xon/Xoff Flow Control page to see a full description. |
Ctrl-X | $18 | When a Slave receives this character it is instructed to flush its input buffer.
The Slave will simply clear its input buffer as if you've typed the Back-Space key often enough to clear all characters from the input buffer.
Please note that a terminal program usually does not erase the current line from the screen when you press Ctrl-X, which might be a bit confusing. Commands in the input buffer that were already terminated by a Carriage Return are NOT cleared from the input buffer though! A Slave will not send a new Prompt to the Master when it receives the Ctrl-X character, multiple Back-Spaces wouldn't do that either. |
ESC | $1B | The ESC character is used to abort a long data transfer or a long running Command.
This character can be ignored when there is nothing to abort.
It has no use though to abort most short commands, or commands that output only one line of data. Therefore a Slave may decide to ignore the ESC character when cancelling a command makes no sense. A Slave which had to abort a command because it received an ESC character will respond by sending an Execution Error Prompt. |
DEL | $7F | The DEL character has the same effect on the Slave as the Back-Space character (Ctrl-H). |