# TwoStep

TwoStep is an esoteric programming language where each statement consists of two characters: a command character and a single digit (or other character). There are 12 commands, and it uses digits 0-9 and a single byte of memory.

## Commands

Command Function
`+` Adds the given digit to memory
`-` Subtracts the given digit from memory
`/` Divide memory by the given digit if the digit is not zero
`*` Multiply memory by the given digit
`>` Do next statement if the given digit is less than memory, otherwise skip over next statement
`<` Do next statement if the given digit is greater than memory, otherwise skip over next statement
`)` Do previous statement if the given digit is less than memory, otherwise skip over next statement
`(` Do previous statement if the given digit is greater than memory, otherwise skip over next statement
`[` Output memory as a single byte. Digit is ignored
`]` Input a single byte to memory. Digit is ignored
`.` Stop the program. Digit is ignored
` ` (space) No operation. Digit is ignored, so it can be used for comments

## Examples

This program prints out "Hello, World!" Notice the comment at the beginning.

``` H e l l o ,   W o r l d !  *0+6*2*6[ *0+5*5*4+1[ +7[ [ +3[ *0+5*9-1[ *0+8*4[ *0+5*5*4+9+2[ +3[ -6[ -8[ *0+8*4+1[ .
```

This program runs an infinite loop that prints out "x".

```*0+6*4*5[ )0.
```

This cat program outputs its input.

```] [ .
```

It may be possible to create a quine in TwoStep, if you can manage to run the following program using the same byte of memory the program is stored in. However, this program only uses a single character, instead of the required two, for the statement.

```[
```