# TTY

Library: | Input/Output
Introduced: | 2.2.0
Appearance: |

## Behavior

This component implements a very simple dumb terminal. It receives a sequence of ASCII codes and displays each printable character. When the current row becomes full, the cursor moves to the following line, possibly scrolling all current rows up if the cursor was already in the bottom row. The only supported control sequences are: backspace (ASCII 8), which deletes the last character in the final row, unless the final row is already empty; newline (ASCII 10), which moves the cursor to the beginning of the following line, scrolling if necessary; and form-feed (ASCII 12, typed as control-L), which clears the screen.

## Pins

West edge, upper pin (input, bit width 7)
  Data - this is the ASCII value of the next character to be entered into the terminal.
West edge, lower pin marked by triangle (input, bit width 1)
  Clock - when triggered while the write-enable pin isn't 0, the current ASCII value on the Data input is processed by the terminal.
South edge, leftmost pin (input, bit width 1)
  Write Enable - when 1 (or floating or error), a clock edge will result in processing a new character from the data input. The clock and data inputs are ignored when Write Enable is 0.
South edge, second pin from left (input, bit width 1)
  Clear - when 1, the terminal is cleared of all data, and all other inputs are ignored.

## Attributes

Rows
  The number of rows displayed in the terminal.
Columns
  The maximum number of characters displayed in each row of terminal.
Trigger
  If the value is Rising Edge, then when the clock input changes from 0 to 1, the data input is processed (when enabled by the write-enable and clear inputs). If it is Falling Edge,, then this happens when the clock input changes from 1 to 0.
Color
  The color with which to draw the text appearing in the terminal.
Background
  The color with which to draw the terminal's background.

## Poke Tool Behavior

None.

## Text Tool Behavior

None.

Back to Library Reference